Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   ПЛИС и всё что с ними связано (http://zx-pk.ru/showthread.php?t=9342)

IanPo 22nd October 2010 11:10

Quote:

Originally Posted by aniSKY (Post 324522)
помню пролетала прошивка данного теста на форуме, да вот теперь все никак найти ее не могу.

Помнится, какую-то тестовую прошивку zst выкладывал: http://zx.pk.ru/showthread.php?t=10548
http://zx.pk.ru/showthread.php?t=10548&page=77

zst 22nd October 2010 12:26

Quote:

Originally Posted by aniSKY (Post 324522)
ЗЫ: может у кого есть картинка тестового экрана (:v2_dizzy_photo: или :v2_dizzy_photo:) для спека (или вся прошика этого теста) на которой изображены круги полоски градации? помню пролетала прошивка данного теста на форуме, да вот теперь все никак найти ее не могу.

Программа для тестирования мониторов: http://zx.pk.ru/showthread.php?t=11194
Прошивка для ПЛИС с градациями яркости: http://zx.pk.ru/showpost.php?p=212360&postcount=113

mbojenov 23rd October 2010 01:22

товарищи и господа! а есть ли информация по РТ1/РТ2 ?

имеется в виду способ программирования, а не справочные данные на микросхемы из пыльных сборников про ПЗУ.

Mick 23rd October 2010 10:13

Quote:

Originally Posted by mbojenov (Post 324782)
товарищи и господа! а есть ли информация по РТ1/РТ2 ?

имеется в виду способ программирования, а не справочные данные на микросхемы из пыльных сборников про ПЗУ.

Была книга вроде про отечественные ПЛМ. Там вроде и описывался принцип программирования этих микрух. Лично я такую книгу не видел, кроме картинки обложки в инете. Еще вроде как программатор от ATM позволял их шить, но это надо проверять.

mbojenov 23rd October 2010 11:57

Mick, у меня имеется "Стерх", который их шьет. Проблема в том, что не знаю на каком языке писать прошивки, как и в каком софте. Может быть вспомните название книжицы?

Sandro 24th October 2010 22:55

1 Attachment(s)
Quote:

Originally Posted by aniSKY (Post 324522)
ну наконец то добился толку от своего нагромождения кода :D

"Нагромождение" -- это очень удачное слово. Честно говорю, эта задача решается проще ;)
Просто, как я понимаю, ты раньше работал исключительно со схемным вводом, а VHDL только начал учить? Код уж больно характерно выглядит.

Quote:

Originally Posted by aniSKY (Post 324522)
привязял к клоку - от этого и шел косяк, стоило убрать привязку - ка все бульк и в порядке :eek:

Хм. Вообще говоря, если ты что-то исправил, и оно почему-то заработало, это не значит, что ты исправил ошибку. С вероятностью не менее 50% ты просто её замаскировал, и она вылезет когда-нибудь потом. Симуляцией пользуешься хоть?

Quote:

Originally Posted by aniSKY (Post 324522)
то что получилось в прицепе (мот кто глянет если не лень будет, подскажет что где подправить чтоб правильно и грамотно было :v2_blush:)

Приступим. Для начала, тебе следовало бы посмотреть в отчёт квартуса. Он там синим по белому пишет вот такое:

Quote:

Warning: Can't achieve minimum setup and hold requirement CLK25 along 32 path(s). See Report window for details.
То есть, попадание в желаемые времянки квартусу не удалось (а если не задавать максимальную тактовую частоту, то квартус выдаёт красным предупреждение про clock/data skew, что более правильно, как мы увидим позже; почему он его не выдаёт при заданной частоте -- хз, это косяк).

На такое сообщение надо реагировать, как бык на красную тряпку: работоспособность схемы не гарантируется !!! То есть надо бросать все, и разбираться, почему.
Разбираемся: лезем в Report Window и открываем в нём вкладку Timing Analyzer. Сразу видим, что там выделены красным строки Summary и Clock Hold:' CLK25'. Ну, общая сводка на то и общая, что в ней деталей нету, поэтому открываем вторую, про CLK25. Видим список цепей, красным выделены те, по которым есть нарушение времянок. У меня они начинаются с hcnt[2]->PIXd0[1], что уже само по себе подозрительно (ладно, когда сигналы данных попадают в нарушения по Clock Setup, это просто схема тормозная получилась, но Clock Hold? :v2_dizzy_fear: Это явный признак гонки сигналов :v2_scare:).

Что же, тыкаем правой кнопкой мыши в первую строку, и выбираем 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 -- именно такие.

aniSKY 26th October 2010 03:14

Quote:

Originally Posted by Sandro (Post 325254)
PS: Если ты действительно переходишь со схематика, то Tools->Netlist Viewers->RTL Viewer тебе очень поможет. Сразу видно, какую схему квартус соорудил из твоего кода.
PPS: Прошу не обижаться на тон ;) Просто это действительно базовые вещи при работе с полностью синхронными схемами. А FPGA -- именно такие.

:v2_thumb: такая критика только на пользу идет, все четко описано (ляпы начинающего VHDL-кодера), побольше таких людей на форумах, которые не отказываются в помощи начинающим - смотришь и умельцев больше будет:v2_cool:. В книгах конечно все описано, но все не охватишь сразу, возникают попутные вопросы, которые у книги не спросишь, а тут все четко и на конкретный вопрос с конкретным примером. огромное спасибо тебе за это, теперь обязательно буду на это обращать внимание!!!!:)
P.S. исправил, как описано выше - коварный "Warning" больше не светится.:smile: ...... рученки уже зачесались писать дальше:v2_dizzy_write:!

axel_sunrise 28th October 2010 13:18

2 Attachment(s)
Нашёл простую схему программатора USB ALTERA

Ewgeny7 28th October 2010 13:37

Спасибо. Я ее видел, НО ТАМ ПИК!!! Ужос. Было бы АВР...

ZEK 28th October 2010 14:42

Quote:

Originally Posted by axel_sunrise (Post 326251)
Нашёл простую схему программатора USB ALTERA

Прикольно, можно попробовать засунуть в PicKit


All times are GMT +4. The time now is 06:39.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.