Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Собственно, я и затевал освоить FPGA/CPLD, чтобы не делать проекты типа микропроцессора на ТТЛ мелочевке... Вопрос влезет/не влезет - так и остался повисшим в воздухе, но я всё же решил поискать какую-либо оценку. Понятно, что прежде чем лепить что-то своё, неплохо бы попробовать заведомо рабочий проект. И я подумал, что, пожалуй, микропроцессор 6502 - один из тех, которые как только не эмулируют, и, возможно, оценить можно при помощи проектов эмуляции 6502 в CPLD... В общем в лобовую искал я по сочетанию " 6502 in CPLD" и нашел вот такой проект: Arlet_cpld-6502_ 6502 CPU in 4 small CPLDsЗдесь 6502 впихнули в 4 сравнительно небольших CPLD типа XC9572XL. Я сделал примерную прикидку для этого проекта: CPLD XC9572XL:Количество макроячеек: 72 Количество блоков логических массивов (LAB): 4У меня вот такая ПЛИС: MAX 3000A EPM3256ATC144-10N:Количество блоков логических массивов 16 Количество макроячеек 256Если брать по максимуму, то в проекте 6502 используют 72 х 4 = 288 макроячеекБолее чем уверен, что не все из 72 макроячеек в каждой ПЛИС задействованы. Следовательно, проект 6502 должен уместиться в 256 макроячеек ПЛИС MAX 3000A EPM3256ATC144-10N. С учётом того, что и межсоединения 4 ПЛИС свернутся внутрь одной ПЛИС. Но это чисто вот такие рассуждения " на первый взгляд"... И у меня вопрос к нашим гуру по FPGA/CPLD: это правильная прикидка, или я чего-то не учитываю?
_________________ iLavr
|
16 Apr 2022 04:57 |
|
|
Icer
Senior
Joined: 21 Aug 2018 07:39 Posts: 163 Location: Кемеровская обл.
|
У плисин внутренние соединения тоже ресурс. Есть шанс что у одной плисины их меньше чем суммарно у четырех.
|
18 Apr 2022 10:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мне проект показался интересным вот по какой причине: он явно разделён на 4 части, и можно будет пробовать их соединять и "размещать" в моей ПЛИС. Если в итоге ячеек хватит - в результате получится то, что я и хотел. Если не хватит ячеек - будет очевидно, сколько в мою ПЛИС помещается. Если взять априори полный проект 6502 в одну ПЛИС, и он не полезет - тут уже ничего не сделаешь... А в проекте из 4-х ПЛИС у автора явно был запас и он всунул в проект ещё и аппаратные интерфейсы RS-232 и SPI, значит есть возможность чем-то пожертвовать, если не лезет целиком в одну ПЛИС.
_________________ iLavr
|
18 Apr 2022 23:03 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
А что мешает указать в качестве target интересующую CPLD и попытаться скомпилировать ? Сразу все станет понятно, при этом саму микросхему даже иметь не обязательно…
|
21 Apr 2022 07:16 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Поддерживаю. Я таким образом искал подходящую ПЛИС для работы.
|
21 Apr 2022 07:25 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мешать ничего не мешает. Но я, как мне кажется, постарался понятно объяснить: Указываю я в качестве target интересующую CPLD: MAX 3000A EPM3256ATC144-10N. Нахожу в сети проект 6502 одним файлом verilog, компилирую, и он в неё не лезет... Дальше fifan мне посоветует " искать подходящую ПЛИС для работы." А я вот этих MAX 3000A EPM3256ATC144-10N 6 штук купил вроде как. Мне в неё надо влезть, а не " искать подходящую ПЛИС ..." Так что отвечаю на риторический вопрос:" А что мешает указать в качестве target интересующую CPLD и попытаться скомпилировать ?" Ничто не мешает.
_________________ iLavr
|
21 Apr 2022 17:26 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 859 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Если вбить в поиск яндекса слово "марсоход", то можно найти сайт о ПЛИС. Я начинал с их проектов. И я помню, что тоже долго не мог впихнуть один их их проектов в свою плисину (кажется EPM7128SLC84 - тоже полдесятка было). Желание использовать близлежащую микросхему Lavr'ом по максимуму мне понятно. Дерзай!
|
22 Apr 2022 10:09 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Спасибо, конечно, fifan... Только вот топик " Starting with FPGA" я начинал 24 июня 2016 г. И подсказывать мне в 2022 году слово "марсоход", это всё равно, что играть в Капитана Очевидность... P.S. Но поскольку мы не одни тут беседуем, и, может быть, кто-то ещё ищет пути для старта с ПЛИС, ссылочку эту я тут, пожалуй, выложу: https://marsohod.org
_________________ iLavr
|
24 Apr 2022 02:04 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Симулирую под MAX+Plus II вентиль " И" (" И-НЕ") на VHDL и Verilog HDL. В качестве ПЛИС выставлено AUTO (семейство MAX3000). Задержки распространения получаются ВСЕГДА = 5 нс. Мне кажется, что это многовато... Для вентиля я ожидал где-то 2.5 нс. Это нормально или я что-то не так делаю?
_________________ iLavr
|
10 May 2022 15:11 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | Lavr wrote: Понятно, что прежде чем лепить что-то своё, неплохо бы попробовать заведомо рабочий проект. И я подумал, что, пожалуй, микропроцессор 6502 - один из тех, которые как только не эмулируют, и, возможно, оценить можно при помощи проектов эмуляции 6502 в CPLD... В общем в лобовую искал я по сочетанию " 6502 in CPLD" и нашел вот такой проект: Arlet_cpld-6502_ 6502 CPU in 4 small CPLDsЗдесь 6502 впихнули в 4 сравнительно небольших CPLD типа XC9572XL. Я сделал примерную прикидку для этого проекта: CPLD XC9572XL:Количество макроячеек: 72 Количество блоков логических массивов (LAB): 4У меня вот такая ПЛИС: MAX 3000A EPM3256ATC144-10N:Количество блоков логических массивов 16 Количество макроячеек 256Если брать по максимуму, то в проекте 6502 используют 72 х 4 = 288 макроячеекБолее чем уверен, что не все из 72 макроячеек в каждой ПЛИС задействованы. Следовательно, проект 6502 должен уместиться в 256 макроячеек ПЛИС MAX 3000A EPM3256ATC144-10N. С учётом того, что и межсоединения 4 ПЛИС свернутся внутрь одной ПЛИС. Но это чисто вот такие рассуждения " на первый взгляд"... | | | | |
В интернетах этих наших попадалась мне примерная оценка якобы даже от Altera, что соотношение между "логическими ячейками" Xilinx и "логическими ячейками" Altera примерно 1.3 ... Я специально избежал оригинальных названий "логических ячеек", и я не знаю, как получили этот коэффициент 1.3Скомпилировал я под MAX+Plus II файл alu.v из упомянутого выше проекта, и получилось у меня вот что: То есть АЛУ под Xilinx CPLD XC9572XL уместилось в 72 макроячейки, а под Altera CPLD EPM3256ATC144-7 - влезло аж в 165 этих ихних LCs... Хреновенькая статистика, честно говоря... либо я опять чего-то не умею...
_________________ iLavr
|
11 May 2022 11:56 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Что-то у меня очень нехорошее подозрение, что в MAX+PLUS II устаревший компилятор Verilog HDL... Чтобы не грешить уже на несоответствие макроячеек Xilinx<--> Altera, нашел очень близкий проект CPU на Altera CPLD EPM7128 - 128 макроячеек. Проект и сам по себе интересный: Tiny CPU in a CPLD - в 128 макроячеек автор упихал сильно урезанный, но всё-таки работоспособный вариант 6502! Скомпилировал я его проект под MAX+PLUS II и Altera CPLD EPM3256ATC144-7 - 256 макроячеек. От результата я просто офигел! Ожидал я что из 256 макроячеек хотя бы половина останется свободной, но 322 макроячейки вместо 128 - я никак не ожидал... В MAX+PLUS II компилятор Verilog HDL от 2000 года, а в 2001 году в Verilog HDL внесли изменения. В частности компилятор Verilog HDL от MAX+PLUS II не понимает always @* - приходится ставить условие... И вот эту конструкцию он также не понимает: Попробую под Quartus II перекомпилировать оба проекта... но помнится мне, что под Quartus II нет поддержки MAX 3000 device family у меня.
_________________ iLavr
|
12 May 2022 05:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | Lavr wrote: Что-то у меня очень нехорошее подозрение, что в MAX+PLUS II устаревший компилятор Verilog HDL... В MAX+PLUS II компилятор Verilog HDL от 2000 года, а в 2001 году в Verilog HDL внесли изменения. | | | | |
Это нехорошее подозрение оправдалось: в MAX+PLUS II от 2000 года компилятор Verilog HDL аж от 1995 года... А вот в Quartus II можно выбрать компилятор Verilog HDL, но версия от 2001 года - последняя. Quartus II справился лучше, но в 128 макроячеек запихать Tiny CPU также не сумел... Тем не менее, упихать проект в 172 макроячейки - это лучше, нежели в 322... Видимо, не зря Verilog HDL сравнивают с языком С - каким компилятором компильнёшь, такой результат и получишь...
_________________ iLavr
|
12 May 2022 09:23 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А этот проект Quartus II значительно улучшить не смог... 165 макроячеек ужал всего лишь до 150... Может быть оптимизации какие-то в Quartus II включать надо - я не знаю... Хотя, я посмотрел схему АЛУ, которая по Verilog-проекту получается... ну, честно говоря, АЛУ 6502 я бы руками нарисовал гораздо лучше!
_________________ iLavr
|
12 May 2022 10:04 |
|
|