В некоторых случаях нужно, чтобы проект в FPGA стартовал сразу после включения устройства. Это можно реализовать при помощи специального конфигурационного ПЗУ. Хотя конфигурационное ПЗУ на плате Марсоход2 не предусмотрено, оно разведено, и может быть установлено на шилдах.
Сейчас существует два шилда, на которых может быть установлена флэш память для загрузки: шилд разъемов и шилд Ethernet.
Для того, чтобы в это ПЗУ зашить нужный вам проект, существует два способа...
Первый способ - непосредственно программатором (на картинке вверху).
Для этого на плате должен быть разведен специальный разъем для подключения программатора, а сам программатор должен поддерживать режим "Active Serial".
Второй способ - через "JTAG" и проект в самой FPGA, в который должна быть встроена специальная мегафункция - "altserial_flash_loader" (на картинке внизу).
Использование этой мегафункции "altserial_flash_loader" описано в AN370.PDF:
Далее мой очень краткий и вольный перевод.
Итак, в проект, через который будет происходить программирование, должна быть встроена мегафункция "altserial_flash_loader".
Если у вас топлевел проекта Quartus II в графике, то нужно установить в любом месте компонент "ALTSERIAL_FLASH_LOADER"
Никакие сигналы никуда подключать не надо.
Если у вас топлевел на верилоге, то в него нужно вставить фрагмент кода:
module cyclone3 (KEY0,KEY1,LED);
input KEY0,KEY1;
output [3:2]LED;
assign LED[3] = KEY1;
assign LED[2] = KEY0;
altserial_flash_loader altserial_flash_loader_component (
.noe (),
.asmi_access_granted (),
.asmi_access_request (),
.data0out (),
.data_in (),
.data_oe (),
.data_out (),
.dclkin (),
.scein (),
.sdoin ()
);
endmodule
Далее проект нужно откомпилировать и загрузить в FPGA .
Проект, который нужно зашить в ПЗУ, сначала нужно конвертировать. Для этого заходим в меню Altera Quartus II File => Convert Programming Files..
и делаем следующие установки:
- Programming file type : JTAG Indirect Configuration File(.jic)
- Configurration device: EPCS4 (ну, или какая там у вас)
- Mode : Active Serial
- File name: C3_sfl.jic (это, собственно, имя выходного файла)
После этого в окне "File/Data area" должны появиться две строки - "Flash Loader" и "SOF Data".
Для начала жмем на строку "SOF Data" , кнопку "Add File" и находим тот ".sof" файл, который нам нужно конвертировать.
Затем жмем на строку "Flash Loader" , кнопку "Add Device" и ставим галочку на EP3C10.
После того, как все установки сделаны, жмем кнопку "Generate".
Теперь запускаем программатор, через "Add File" открываем наш ".jic" файл и нажимаем "Start".
Если все прошло успешно, то после выключения/включения питания нашего девайса, должен сразу заработать зашитый нами проект.
Подробнее...