[an error occurred while processing this directive]
|
когда незначительное изменение дизайна или размера регистров приводило к поразительным результатам типа Ж... Тогда , тоже были предположения о кривом компе,софте и.т.д, но все оказалось гораздо прозаичнее - несинхронный дизайн ! Причина? - Оптимизация.Заказываешь регистр на выходе ,например после кейса, стробируешь его глобальным сигналом и думаешь так и разведется в Ксилинксе - нет... маппер его выкинет , хотя в РТЛ от Синплифай все как надо.Как это увидеть? - после маппинга запустите FPGA editor из под Альдека. Там все сразу станет понятным.Ну а картинка в Альдеке нарисует ,то чего вы и не ждали(после маппера ,конечно).
Насчет Альдека....попробуйте так: Альдек, Design Flow Manager, Synthesys(необходимые установки сначала - мегагерцы итд),Implementation( Constraints editor , руками пропишите необходимое в usf файле, опции для implementation),Tools(Альдека) и там Generate Test Bench), опишите все входные сигналы для модуля, который тестируете,На том же окне Design Flow Manager,после Implementaition в options в качестве входного выбирайте ваш TB файл и если нужно для дизайна ,не забывайте про glbl.v,далее timing simulation, в Design Browser будет видно ваш xx_TB и glbl.Руками задайте GR/GSR(Spartan или Virtex) и GTS по 100ps (правой кнопкой кликаете сигнал в Waiveform editor,Stimulators,Formula,value...time offset)и далее...),методом перетаскивания из Design Browser помещаете интересующие вас входные и выходные сигналы TB файла( производные сизналы возьмете из UUT:xx).
Другие,возможно,знают лучшие пути...но для начала и этот может оказаться полезным.
E-mail: info@telesys.ru