Получил платку.
Сразу давай её мучать.
Подал питание 12В. посмотрел что выдает тестовая прошивка.
Получилось что у меня тест памяти не прошел. :(
Поставил ISE 10 которая на диске идет, ну что бы 100% все работало и открывалось из родной поставки.
Посмотрел UCF файл еще раз проверил что выходит на ноги.
Все равно на 37 X4 выходит 0В, а на 38 X4 3,27В.
Кстати заметил, что 1 и 2 ноги пронумрованы правильно (прозвонил 1 2 и4 ноги), а вот 39 и 40-я перепутаны. То есть 1-я нога и 40-я находятся на одной половине (правой), а 2-я и 39 на другой (левой). ПРАВИЛЬНО - где 1-я там все нечетные ноги и наоборот где 2-я там четные. Сразу же одел кембрики на 2 и 4 ноги всех Х-ов, дабы не замкнуть случайно и не вывести ПЛИС из строя (форум перед покупкой почитал :-) ).
Подключил программатор к LPT порту.
Пробую, что то менять а все равно прошивается стандартная прошивка (каким только образом не заливал :) ). Оказалось что по умолчанию грузится прошивка из файла с расширением MCS, который в свою очередь делается из BIT файла с помощью конвертилки, а там пути прописаны не мои. В общем что бы мозг не ломать сделал загрузку BIT файла. И о чудо вроде шьется все мое творение, ноги дергаются.
А странность в следующем.
Для дергания ногами в начале файла сделал следующие изменения:
module demo(
CLC,
Data,
Addr,
CS,
OE,
WE,
TEST_OK,
TEST_ERR,
LED1,
LED2,
LED3);
input CLC;
inout [7:0] Data;
output [18:0] Addr;
output CS;
output OE;
output WE;
output TEST_OK;
output TEST_ERR;
output LED1;
output LED2;
output LED3;
always @(posedge CLC)
begin
Counter = Counter + 1;
end
Сделал простой делитель тактовой частоты.
Если заливать только в FPGA то дергается только одна нога LED1(вроде) остальные в 0.
Если залить во FLASH и дернуть питание то дергаются все 3-и.
Как то жалко для таких простых экспериментов FLASH использовать. Тем более по времени долго получается.
Еще заметил, если заливка во FLASH прошла быстро (показало только до 10% а потом пишет все ОК), то 100% не будет работать как надо. А когда перед заливкой появляется окно в котором установлена галочка верификации, то шьется долго и рисует где-то до 70%. Но зато работает на 100%.
Кто с такой ситуацией сталкивался, или может у меня руки не из того места растут?
С ПЛИС это мой первый опыт, в основном пишу для контроллеров.
Я сталкивался с ошибками при программирование через ЛПТ - шил CPLD (да и Atmega). Ноут P4, LPT (через PCMCIA). Проскакивали ошибки при записи - лечилось остановкой "жадных" процессов и увеличением приоритета для программы записи (почти до realtime). Ну и верификация для гарантии.
С ФПГА я возился на дилетантском уровне. Схемы рисовал в графике. Работал именно с обычной заливкой в ФПГА. Все ножки были доступны и подконтрольны. Имеет смысл проверить начальные установки для кристалла и еще раз просмотреть логи на предмет отсутствия наличия ошибок связанных с пинами (LED2, LED3).
Комп у меня на работе нормальный Core2Duo вроде 3 гигагерца ОЗУ 2Гб. Из приложений только почта и браузер запущены. Дело в том, что без всяких изменений проекта при заливке сразу в FPGA и заливке во флеш, поведение разное.
Верификация делается, пока не разобрался почему, только если шить во флеш. Из за этого шьется долше и по прогрессу доходит за 50%. Если прямо в FPGA лить то быстро до 10-11% добегает и все. Попобую еще другим программатором через USB прошить но там надо переходник сделать будет. Еще думаю попробовать на 11 версию перейти. Я LPT тоже не сильно доверяю, но за пару дней которые я бился ниодного несовпадения при верификации не было. Может это как то связано с тем что я bit файл лью, а в проекте изначально mcs заливается? Неужели у меня одного такая ситуация? Судя по этой ветке форума, FPGA платы мало кто берет, хотя цена тут заманчивая.
Как ни странно, количество гигагерц и гигабайт тут роли не играют. А влияют настройки самого порта (например ошибки/помехи в железе) и реализация драйвера порта (LPT). Гигагерцы полезны, если требуется формировать правильную времянку для записи прошивки..
Я работал и с USBBlaster - работа стала приятнее и проще, ошибок вроде не было. Имеет смысл попробовать.
Ну а с ситуацией видимо или к Павлу, как к создателю кита или задавать вопросы на более специализированных форумах, типа electronix caxapa telesys
Итак, по существу первоначального вопроса ...
Как выяснилось, поставляемый тест работает не правильно, а я в следствии ошибки маркировки контактов разъема, считал его выполнение успешным.
Вот рабочий вариант:
Что касается загрузки битстрима прямо в FPGA, я этим и пользуюсь (у меня сейчас почемуто при попытке создания MCS "вылетает"), присваиваете в JTAG цепи устройству BIT файл и выбираете "Program FPGA only", другое дело что сам Impact местами странно себя ведет и не обновляет битник, хотя и спрашивает "обносить или нет", приходится его перезапускать, хотя может это следствие моей версии Висты ...
MCS это BIT подготовленный для сохранения в конфигурационную флешку, кроме самого битстрима еще содержит некоторую дополнительную информацию (скорость конфигурации, состояние некоторых бит ...).
На будущее, выделяйте отдельные вопросы в отдельные темы, чтоб не валить все в одну кучу.
В общем:
1. Спаял переходник для Xerxes-а для подключения к платке (на плате 6-ти контактный, а на Xerxes -14-ти);
2. Установил 11 ISE;
3. Для удобства отладки на 8 выходов X4 припаял резюки и светодиоды, что бы не тыкаться мультиком каждый раз.
Итог:
Заработало, пока лень искать в чем именно было дело.
Работает на 100%, глюков с выходами как ранее было не наблюдается.
Ну вот теперь можно по человечески работать не юзая флеш.
Всем, спасибо.
PS: Кстати еще не написал, в IMPACT-е сделал заливку не mcs, а bit файла. Так как для mcs нет выбора заливки в FPGA.
Правда на работе юзаю только LPT программатор. Из отпуска выйду буду ковырять с ним. Как разберусь отпишусь здесь, вдруг понадобится кому.
[quote]Итак, по существу первоначального вопроса ...
Как выяснилось, поставляемый тест работает не правильно, а я в следствии ошибки маркировки контактов разъема, считал его выполнение успешным.
Вот рабочий вариант:
[/quote]
А можно проект целиком - при попытке подменить
верилог - файл - вылазит 59 ошибка , Cleanup files -
не помогает.