Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Gameduino, проблема с комиляцией проекта.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
microsin
Привет всем посетителям форума! Пытаюсь скомпилировать проект Gameduino [1] с помощью Xilinx ISE Design Suite.



Сам Gameduino с открытым исходным кодом на Verilog, применяемый чип XC3S200A-4VQG100C, семейство Xilinx Spartan-3A, исходные коды можно скачать по ссылке [2], или взять из проекта для Xilinx ISE Design Suite 14.1 по ссылке [3]. Вот краткая история моих приключений:

1. На версии Xilinx ISE Design Suite 14.1 (120609gameduino-bad-xilinx-prj.zip) синтез прошел, причем не нужно было комментировать ICAP_SPARTAN3A и DNA_PORT. Имплементация не пошла, так как не хватало лицензии.

2. На версии Xilinx ISE Design Suite 13.3 синтез не пошел из-за непонятной ошибки "отсутствие исходных модулей verilog".

3. На версии Xilinx ISE Design Suite 11.1 синтез прошел только после того, как закомментировал в файле top.v блоки кода с ICAP_SPARTAN3A и DNA_PORT. Имплементация не пошла с ошибкой размещения, превышено количество блоков BRAM:
Number of bonded IOBs: 23 out of 63 36%
Number of RAMB16s: 16 out of 12 133% (OVERMAPPED)
Number of MULT18X18s: 6 out of 12 50%
Number of BUFGMUXs: 1 out of 8 12%
Number of DCMs: 1 out of 4 25%


Что посоветуете, как скомпилировать исходники Gameduino, в какую сторону копать?

[Ссылки]

1. Gameduino, игровой (видео, аудио) адаптер для AVR и других embedded платформ.
2. Making a Gameduino.
3. 120609gameduino-bad-xilinx-prj.zip - полностью проект для Xilinx ISE Design Suite 14.1.
microsin
Путем долгих плясок с бубном все-таки разобрался. Нужно было установить ISE версии 14.1 в режиме WebPack и получить у Xilinx лицензию. После этого синтез и имплементация пошла.

Теперь появилась новая проблемка - похоже что что-то не так с загрузкой моей FPGA xc3s200avq100-4 из микросхемы памяти AT45DB041D. Симптомы следующие: при включении питания на микросхему памяти постоянно от FPGA приходит активная выборка (~CS == 0) и такты данных (SCK порядка 4.4 МГц), и из микросхемы памяти постоянно выходят данные SO, не останавливаясь (на SI постоянно 0). Т. е. загрузка FPGA не прекращается, хотя по идее она должна была загрузиться и заработать, и передача данных от микросхемы памяти должна прекратиться. На ножке INIT_B при включении питания появляется импульс длительностью около 700 мс, и потом там постоянно 0 (вроде как сигнал о том, что не совпала CRC). После включения питания сигнал DONE устанавливается в 1 (вроде как сигнал о том, что загрузка завершена). И, само собой, вся система не работает, как надо, молчит, на экран ничего не выводит.

Связь между памятью и FPGA похоже в порядке, так как утилита iMPACT нормально микросхему увидела и прописала, и даже проверила (verify). Где косяк, не подскажете?
microsin
Последние новости - попробовал на железе запустить простейший тестовый проект - счетный одноразрядный триггер. Все заработало сразу. Поведение сигналов INIT_B и DONE при включении питания осталось такое же, но вот клоки с памяти пропадают примерно через 200 мс, и после этого триггер начинает нормально работать. А с проектом Gameduino такое не происходит - загрузка из микросхемы памяти не останавливается, SCK и SO работают без передышки.

Подозреваю, что-то не так в настройках Verilog-проекта Gameduino, либо в проекте iMPACT, я составлял проекты тупо, как новичок (как, впрочем, и тестовый проект триггера), там все стоит по умолчанию. Но что там проверить в настройках, и какие они должны быть на самом деле - для меня пока что тайна.

Не оставляю надежды, что кто-нибудь прочитает мой пост, откликнется и поможет советом.
microsin
Всем привет! Наконец-то моя платка gameduino заработала. Выражаю огромную благодарность хорошему человеку nerudo (которого нашел на Хабре) - он мне очень помог своими консультациями и подсказками, без него бы не разобрался.

Если кому интересно: в проекте не хватало файла constraints с описанием ножек (на этапе Implementation система PlanAhead из Xilinx ISE назначала ножки как попало), и была проблема с загрузкой по SPI (в которой, кстати, так до конца и не разобрался). Когда по подсказке nerudo попробовал грузануть платку через JTAG, то все завелось с полоборота, и gameduino заработала в полном объеме. Причем - чудеса, да и только - автоматически заработала также загрузка с внешней памяти SPI, т. е. JTAG стал не нужен. Что-то наверное не-так было в настройке проекта iMPACT, но что не так - пока не понял. Компилировался проект gameduino с помощью установленного Xilinx WebPack 14.1, для него доступна бесплатная персональная лицензия.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.