На настоящий момент, я только приближаюсь к теме практического использования ПЛИС, и в этом направлении стал немного изучать Verilog и использовать симулятор Ikarus.
Я тоже достаточно долго ходил вокруг и около, а потом в очередном проекте меня прижала необходимость иметь пятьдесят четыре независимых канала восьмибитного ШИМ, и я понял, что момент настал.
И вы знаете, несмотря на все свои опасения, за пару дней я не торопясь освоил работу с ПЛИС в объеме, необходимом для того, чтобы сделать такой ШИМ-генератор с SPI-интерфейсом. К чему это я... FPGA/CPLD это не так сложно, как кажется. Меньше углубляйтесь в теорию, больше занимайтесь практикой.
Я себе брал
вот такую плату, на ней стоит чип в BGA, но Altera выпускает CPLD и в корпусах, которые
вполне можно паять на коленке.
Собственно, для меня важно описать схему именно поэлементно, чтобы можно было её воспроизвести конкретно на дискретных компонентах при необходимости, и чтобы была ясна её внутренняя реализация.
В таком случае вообще не надо ничего писать на Verilog. Quartus (если говорить про экосистему Altera) позволяет нарисовать схему непосредственно, как в обычном схемотехническом редакторе.
К слову, Quartus скачивается с официального сайта совершенно бесплатно, не надо никаких кряков.
А вот Verilog особенно хорош как раз тогда, когда схема потенциально будет настолько сложна, что заморачиваться с ней вообще не хочется (и, естесственно, перспективы реализовывать ее на дискретной логике тоже нет). Тогда можно просто описать то, чего хочется, и система синтеза сама разберется. Но, кстати, если хочется, и в этом случае можно запустить RTL Viewer и посмотреть, что же там было синтезировано.
Но кстати для простых систем Verilog тоже имеет преимущества перед рисованием схемы.
Конечно, каша у меня складывается, но, тем не менее, получается, что ПЛИС состоит из ячеек, и каждая ячейка содержит как массив логических вентилей, так и несколько триггеров, которые можно настроить и использовать, экономя вентили для более нужных целей.
Именно так. Базовый элемент CPLD/FPGA - триггер (как правило один) и массив логики.
Я так понял, что это счётчик на 5 бит, но организован он как бы через сумматор.
Да. Делать асинхронные счетчики (на основе T-триггеров) в CPLD/FPGA не имеет смысла, потому что это не позволит реализовать потенциал по быстродействию.
А какую программу более порекомендуете?
ПЛИС Altera вроде бы более доступны, соответственно - Quartus.
Кроме того, лепить свою плату... достаточно сложно, даже если не с BGA: как правило, там заморочки с питанием (несколько напряжений, которые подавать-снимать надо в определённой последовательности) и со скоростными линиями
Это все в старших сериях. С младшими (тот же MAX 3000) таких заморочек нет.
хотелось бы приобрести плату с тем типом ПЛИС, который потом я смогу осилить в самостоятельной практике
Особенность ПЛИС по сравнению с контроллерами заключается в том, что код на Verilog будет работать на любой ПЛИС (даже разных производителей), только бы влез по количеству ячеек и используемых физических выводов. Потому какой чип будет стоять на отладочной плате - не так важно.
Разница между теорией и практикой на практике гораздо больше, чем в теории.