Помнится, какую-то тестовую прошивку zst выкладывал: http://zx.pk.ru/showthread.php?t=10548
http://zx.pk.ru/showthread.php?t=10548&page=77
Помнится, какую-то тестовую прошивку zst выкладывал: http://zx.pk.ru/showthread.php?t=10548
http://zx.pk.ru/showthread.php?t=10548&page=77
Последний раз редактировалось IanPo; 22.10.2010 в 10:14.
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
Программа для тестирования мониторов: http://zx.pk.ru/showthread.php?t=11194
Прошивка для ПЛИС с градациями яркости: http://zx.pk.ru/showpost.php?p=212360&postcount=113
Последний раз редактировалось zx-kit; 22.10.2010 в 11:31.
"L-256"
товарищи и господа! а есть ли информация по РТ1/РТ2 ?
имеется в виду способ программирования, а не справочные данные на микросхемы из пыльных сборников про ПЗУ.
ZX Evolution
Mick, у меня имеется "Стерх", который их шьет. Проблема в том, что не знаю на каком языке писать прошивки, как и в каком софте. Может быть вспомните название книжицы?
ZX Evolution
"Нагромождение" -- это очень удачное слово. Честно говорю, эта задача решается проще
Просто, как я понимаю, ты раньше работал исключительно со схемным вводом, а VHDL только начал учить? Код уж больно характерно выглядит.
Хм. Вообще говоря, если ты что-то исправил, и оно почему-то заработало, это не значит, что ты исправил ошибку. С вероятностью не менее 50% ты просто её замаскировал, и она вылезет когда-нибудь потом. Симуляцией пользуешься хоть?
Приступим. Для начала, тебе следовало бы посмотреть в отчёт квартуса. Он там синим по белому пишет вот такое:
То есть, попадание в желаемые времянки квартусу не удалось (а если не задавать максимальную тактовую частоту, то квартус выдаёт красным предупреждение про clock/data skew, что более правильно, как мы увидим позже; почему он его не выдаёт при заданной частоте -- хз, это косяк).Warning: Can't achieve minimum setup and hold requirement CLK25 along 32 path(s). See Report window for details.
На такое сообщение надо реагировать, как бык на красную тряпку: работоспособность схемы не гарантируется !!! То есть надо бросать все, и разбираться, почему.
Разбираемся: лезем в Report Window и открываем в нём вкладку Timing Analyzer. Сразу видим, что там выделены красным строки Summary и Clock Hold:' CLK25'. Ну, общая сводка на то и общая, что в ней деталей нету, поэтому открываем вторую, про CLK25. Видим список цепей, красным выделены те, по которым есть нарушение времянок. У меня они начинаются с hcnt[2]->PIXd0[1], что уже само по себе подозрительно (ладно, когда сигналы данных попадают в нарушения по Clock Setup, это просто схема тормозная получилась, но Clock Hold?Это явный признак гонки сигналов
).
Что же, тыкаем правой кнопкой мыши в первую строку, и выбираем Locate->Locate in RTL viewer. Видим то, что в аттаче, и ужасаемся.
Со счётчика hcnt сигналы идут одновременно на тактовый вход триггеров PIXd0, и на вход разрешения записи, через логику! При этом получается, что прибывают они в недопустимом порядке, сначала клок напрямую, а потом сигнал разрешения записи через логику. Таким образом, разрешение записи прибывает на один период hclk[0] позже, чем подразумевалось в VHDL коде, и схема работает только потому, что там есть очень большой запас по времени защёлкивания VD в PIXd0, да и само разрешение записи висит целый период hclk[0]. Стоит уплотнить временную диаграмму доступа в память, и полезут ошибки, странные и непонятные.
О лечении. На самом деле, проще и лучше всего отказаться от использования множественных клоков. FPGA и их компиляторы разработаны для того, чтобы запихивать в них преимущественно синхронную логику. Если планируется делать логику асинхронную (а наличие более одного клока -- это уже асинхронная логика), то с гонками и метастабильностью придётся бороться вручную. Тебе это надо?
Кроме того, в твоей FPGA всего 8 линий для тактовых сигналов, из которых твой код уже использует 5. Как только при расширении проекта потребуется девятый клок, то он пойдёт не по специальной выделенной цепи с выровненным временем доставки, а по обычным проводам (точнее, по ним пойдёт клок с наименьшим количеством триггеров). Что опять же приведёт к гонкам сигналов и глюкам.
Не, в такой простой схеме лучше сделать один клок.
PS: Если ты действительно переходишь со схематика, то Tools->Netlist Viewers->RTL Viewer тебе очень поможет. Сразу видно, какую схему квартус соорудил из твоего кода.
PPS: Прошу не обижаться на тонПросто это действительно базовые вещи при работе с полностью синхронными схемами. А FPGA -- именно такие.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
такая критика только на пользу идет, все четко описано (ляпы начинающего VHDL-кодера), побольше таких людей на форумах, которые не отказываются в помощи начинающим - смотришь и умельцев больше будет
. В книгах конечно все описано, но все не охватишь сразу, возникают попутные вопросы, которые у книги не спросишь, а тут все четко и на конкретный вопрос с конкретным примером. огромное спасибо тебе за это, теперь обязательно буду на это обращать внимание!!!!
P.S. исправил, как описано выше - коварный "Warning" больше не светится....... рученки уже зачесались писать дальше
!
БЭМЗ ПЭВМ БАЙТ 48к
CAHTAKA.002 48k
БПК "Элара-Д" 48к +BDI(TR-DOS 5.03)
SPECCY.2007 48k(2008.09)
Нашёл простую схему программатора USB ALTERA
Спасибо. Я ее видел, НО ТАМ ПИК!!! Ужос. Было бы АВР...
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)