Программирование двоичного файла 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, если я не использую неправильный синтаксис.

Другие вопросы по тегам