CUPL, part V, немного практики

Есть ПЛИС и желание сделать сравнение адресов. Для определённости, есть ATmega8515, которая имеет 512 байт ОЗУ внутри, плюс регистры, плюс ввод-вывод… Итого, первые 608 байт заняты. Надо сделать так, чтобы для адресов 608-65535 декодер адреса выдавал логическую 1 для выбора нужной микросхемы ОЗУ. Язык CUPL сравнение не поддерживает совсем. Спрашивается – как решить задачу?
Continue reading CUPL, part V, немного практики

CUPL, part II

Язык CUPL по сложности находится где-то между PALASM и Verilog. То есть, логические выражения на нём уже можно писать, и компилятор даже попытается их оптимизировать. Есть ещё некие “расширения”, которые позволяют описывать триггеры и разные аппаратные особенности. Плюс конечные автоматы, таблицы истинности и симулятор. А вот сделать простое сравнение больше/меньше простым путём уже не получится. На мой взгляд, самым большим преимуществом языка CUPL является его простота/понятность.
Continue reading CUPL, part II

CUPL, part I

Ещё совсем недавно, лет 30 назад, ПЛИС были маленькими, а языки для их программирования простыми. Именно тогда и появился язык Cupl. Однако, если верить Хиллу и Хоровицу, он и сейчас является адекватным для программирования небольших ПЛИС.
Continue reading CUPL, part I

Ретро-ПЛИС

У меня есть давняя мечта – подключить память к AVR!
Увы, просто подключить память не интересно, а хочется разнообразия: портов, индикаторов, etc. А значит нужна ПЛИС. Изначально я хотел взять что-то типа EPM3032, но, мне захотелось DIP корпус и очень не хотелось учить Verilog/VHDL.
Continue reading Ретро-ПЛИС