Программирование двоичного файла iceStorm по какому адресу?
Я пытаюсь самый первый пример, представленный здесь: http://www.clifford.at/icestorm/
Я пытаюсь запрограммировать плату iCEblink40-HX1K в Windows с помощью программы digilent adept https://reference.digilentinc.com/reference/software/adept/start?redirect=1
Когда я запускаю Adept, программа говорит:
Загрузка информации о плате... Внимание: не удалось найти конкретную информацию о плате. Загружена информация по умолчанию.
Когда я выбираю программу example.bin из iCEstorm, программа adept сообщает "Неверный адрес. Адрес должен быть введен как двоичное, DEcimal или шестнадцатеричное значение".
Поэтому я просто ввел ноль, нажмите "Файл >> Устройство", чтобы загрузить двоичный файл, и программа скажет:
Успешно прочитано 32220 байт из F:\me\fpga\example.bin.
Тем не менее, демо "мигающие огни", которое уже пришло с платой, просто продолжает работать. Кажется, ничего не изменилось.
Я полагаю, что либо example.bin не содержит правильный адрес в файле, либо что причиной проблемы является отсутствие информации о плате для программы digilent adept.
В любом случае, кто-нибудь знает, какой это может быть адрес?
2 ответа
Спасибо Клиффорд, теперь это работает.
Сначала немного мини-разглагольствования (направлено на парня, который выложил PCB).
Ряды со строками заголовков в наборе оценки HX1K (стр. 4) имеют номера: http://www.mouser.com/pdfdocs/iCEblink40Datasheet.pdf Они не соответствуют фактическим выводам в пакете vq100 и таблице данных. не упоминает, что эти цифры должны означать.
Однако на стр. 14 упоминается, какие выводы fpga заканчиваются на каком разъеме.
Схематичный парень даже не удосужился нарисовать пакет vq100?!
Также сложно найти простое изображение или таблицу с распиновкой vq100. Lattice предоставляет один лист Excel: http://www.latticesemi.com/~/media/LatticeSemi/Documents/PinPackage/iCE/iCE40PinoutHX1K.xlsx?document_id=49383 но предполагается, что вы знаете, что означает "IOL_1A". Таблица данных HX1K не имеет обзора распиновки. Что происходит?
В любом случае, вернемся к делу: я заметил, что вывод 11 на корпусе vq100 является силовым выводом, поэтому пример для ice40stick никогда не будет работать с такой же разводкой. После переназначения выводов ввода / вывода на выводы 1, 2 и 3 пример просто сработал! Я прошил его с помощью iceutil.exe, по какой-то причине программное обеспечение Adept отказывается делать что-либо во флэш-памяти.
Большое спасибо, теперь пришло время немного поиграться с кодом.
У меня пока нет решения, но iCE40ProgrammingandConfiguration.pdf http://www.latticesemi.com/view_document?document_id=46502 на стр. 12 говорит:
При первоначальном включении начальный адрес всегда равен 0x00_0000. После ожидания восьми дополнительных тактов устройство iCE40 начинает считывание последовательных данных с PRI PRI.
Таким образом, похоже, что программирование файла.bin из 0 должно было сработать.
Я пробовал программировать с помощью программатора iceutil, который поставляется с icecube2, как описано в iCEblink40HX1KEvaluationKitUsersGuide.pdf http://www.latticesemi.com/view_document?document_id=45922
Файл конфигурации потока битов FPGA Требуемый образ потока битов является частью проекта iCEcube2. Несколько версий битового потока хранятся в каталоге _Implmnt\sbt\output \bitmap. Необработанная шестнадцатеричная версия потока битов называется _bitmap.hex. Альтернативным форматом той же информации является шестнадцатеричный файл Intel с именем _bitmap_int.hex. Пример необработанной шестнадцатеричной команды /iceutil -d iCE40 -res -cr -m M25P10A -fh -w _bitmap.hex Пример шестнадцатеричной команды Intel /iceutil -d iCE40 -res -cr -m M25P10A -fi -w _bitmap_int.hex
Я предполагаю, что мой файл должен быть запрограммирован как двоичный файл, используя -fb
iceutil -d iCE40 -res -cr -m M25P10A -fb -w <my path>/example.bin
Это, кажется, запрограммировано, демонстрация capsense перестала работать на плате, красный светодиод питания включен, желтый светодиод "сделано" включен, и инструмент iceutil говорит:
Частичное удаление устройства флэш-памяти. Запись файла /example.bin на устройство флэш-памяти. Байт, записанных на флэш-память: 32220.
Однако файл примера должен был содержать и входы 1 и 10, и выводить их на 11. Это не работает. Также все светодиоды тускло горят, что кажется неправильным.
// example.v
module top (input a, b, output y);
assign y = a & b;
endmodule
# example.pcf
set_io a 1
set_io b 10
set_io y 11
Я пробовал iceutil, чтобы запрограммировать демоверсию capsense, и это прекрасно работает.
Похоже, я не могу использовать двоичный файл yosys вместе с программатором iceutil, если я не использую неправильный синтаксис.