Для начала, мне кажется, стоит проверить все сигналы м-у ПЛИС и РОМ на предмет наличия и залипушек, может обрыв где. А по предыдущему совету, проверить распиновку, если совпадает, то почему нет, алгоритмы прошивки РОМ через ПЛИС, думаю, не будут особо отличаться.
Karabas Pro Rev.E / MiST 1.31 / ZX-Evolution (Rev.C4 + VDAC2 + ZiFi) / ZX Spectrum 128K +2B / DivGMX / ReVerSE-U16 (EP4CE22+16M16+TS-Conf) / Пентагон-128К (2014) PS/2, NemoIDE / Компаньон-2 (1994)
Вполне серьёзно, именно так и прошивал ром на ep4ce6 и ep4ce55. Крайний раз это делал вчера.
По размеру какого файла судить о размере прошивки? Хочу поставить EPCS1 вместо EPCS4 (ПЛИС EP4CE6E22), если влезет. Заливается POF, но у него заголовки и еще что-то. Тогда, SOF?
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
ну как бы "судить" надо по документации на саму плису. у xilinx есть "четкие" таблички в документации, где говорится реальный размер битового потока для программирования плисы. сам файл прошивки может быть в разы "толще" чем реальный размер - зависит от формата файла.
В ISE можно голый бинарь получить, правда, я не помню как, но точно можно.
Возможно, даже без лишних телодвижений, оно его куда то среди своих говен откладывает.
electronox necromancer
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Мужики, подскажите, как Lattice ispLever, проектик на Verilig'е (от Altera EPM30/70), назначить номера пинов для GAL22V10 сигналам из этого файла?
Или там ещё чего "лопатить" придется?Код:module ProfROM( oe_n, // /OE strobe a, // address bus (a2..a15) a16,a17 // output to ROM ); input oe_n; input [15:2] a; output a16,a17; wire a16,a17; reg [1:0] plane; reg [1:0] newplane; reg enable_switch; assign a17 = plane[1]; assign a16 = plane[0]; always @* begin if( a[15:4] == 12'b100000010000 ) enable_switch <= 1; else enable_switch <= 0; end always @* begin case( {a[3:2],plane[1:0]} ) 4'b0000: newplane <= 0; 4'b0001: newplane <= 1; 4'b0010: newplane <= 2; 4'b0011: newplane <= 3; 4'b0100: newplane <= 3; 4'b0101: newplane <= 3; 4'b0110: newplane <= 3; 4'b0111: newplane <= 2; 4'b1000: newplane <= 2; 4'b1001: newplane <= 2; 4'b1010: newplane <= 0; 4'b1011: newplane <= 1; 4'b1100: newplane <= 1; 4'b1101: newplane <= 0; 4'b1110: newplane <= 1; 4'b1111: newplane <= 0; endcase end always @(posedge oe_n) begin if( enable_switch==1 ) begin plane <= newplane; end end endmodule
И ещё вопрос - триггер ТМ2 (7474) каким символом можно заменить? У Lattice очень "бедный" набор символов стандартной TTL-логики...
Последний раз редактировалось Alex_NEMO; 19.07.2022 в 20:49.
Speccy-2007 + 48k(пока) + TR-DOS + ZX-VGA
KAY-1024 v2010/SDCard HxC Floppy Emulator/Epson SD-700/ZX-VGA/.....
Камрады, не знаю, куда отнести этот вопрос, может в тему для начинающих, но все же...
Есть цель: освоиться с FPGA, ибо до этого с ними дел почти не имел. Пока для начала хочется рассматривать FPGA как очень жирную CPLD (то есть без всех ее специфических возможностей) - возможно ли это ? Ну то есть при одинаковых питаниях всех ее "частей" считать все ноги условно равнозначными и работать так, как это делалось бы для CPLD cерий max3000 или maxII ? Или будет обязательно тонна граблей, которые необходимо знать заранее ?
Сейчас прицел на что-то доступное, дешевое, античное и 5в-толерантное, например Altera ACEX ep1k30, полагаю, что его проще всего сопрягать с привычными нам железяками из ретро-мира.
Как я успел понять, только у FPGA современнее циклонов возможно просто навесить конфигурационное ПЗУ (spi flash ?) и просто заливать их через JTAG, чувствуя себя примерно так, как при работе с flash-based CPLD. У ACEX какой-то свой интерфейс конфигурационной памяти ASMI, да и память не вся одинаковая (напр. epc1* одноразовые). И шьется она совсем не так - вот на эту тему просветите пожалуйста в двух словах (или двух ссылках). А лучше, если есть какой-то пример схемы девборды на ACEX с конфигурационной памятью и процедурой заливки оной
Спасибо.
valerium
Упрощенно можно считать FPGA как большую CPLD.
Грабли с выводами начинаются, например, когда используете дифф. сигналы (типа HDMI), также часть выводов могут работать только на вход или иметь специфические функции - поэтому необходимо тщательно и полностью читать справочный лист на чип.
5-вольтовые Альтеры сильно устарели, отсюда могут быть проблемы с доступностью, в т.ч. плат разработчика. Циклоны успешно сопрягаются с 5-в чипами через преобразователи уровней.
Прошивка у циклонов может зашиваться в конфпзу EPCS1(4,16) - через jtag записывается прошивка, которая заливает в конфпзу вашу прошивку. Тут все описано и есть схема https://kit-e.ru/memory/programmirovanie-pzu-po-jtag/. Такой вариант позволяет избежать переключателей.
Я бы начал с дешевых плат на 2 или 4 циклоне - их на Али навалом.
У ACEX прошивка грузится через интерфейс Passive Serial (конфпзу EPC1, например и они не одноразовые вроде) - тактовая идет от конфпзу. На циклонах есть режим Active Serial (EPCS1) - тактовая идет от Циклона.
Последний раз редактировалось IanPo; 28.07.2022 в 11:08.
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
valerium (28.07.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)