Есть ПЛИС и желание сделать сравнение адресов. Для определённости, есть ATmega8515, которая имеет 512 байт ОЗУ внутри, плюс регистры, плюс ввод-вывод… Итого, первые 608 байт заняты. Надо сделать так, чтобы для адресов 608-65535 декодер адреса выдавал логическую 1 для выбора нужной микросхемы ОЗУ. Язык CUPL сравнение не поддерживает совсем. Спрашивается – как решить задачу?
Continue reading “CUPL, part V, немного практики”
Tag: cupl
CUPL, part IV
Расширения
CUPL предлагает большой список расширений (см.ниже). Увы, применительно к ATF16V8B подходит только одно – D-триггер.
Continue reading “CUPL, part IV”
CUPL, part III
Битовые поля
Объявление битового поля назначает простое имя переменной группе бит.
Continue reading “CUPL, part III”
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 “Ретро-ПЛИС”