Перейти к содержанию
    

Обновление файла инициализации ROM

Есть Quartus 14.1 web, в котором сделан небольшой проект, использующий ROM, сгенерированный макрофункцией. При отладке прошивки, хранящейся в ROM, при каждом ее изменении приходится постоянно перекомпилировать весь проект, чтобы новая прошивка оказалась в SOF файле.

 

Естественно, это долго и бестолково, поэтому увидел функцию Processing -> Update Memory Initialization File и обрадовался. К сожалению, при запуске этой функции вроде появляется правильное сообщение, что нужный файл вроде обновлен, но в SOF все та же старая прошивка.

 

Я неправильно понял назначение этой функции, или просто нужно еще что-то сделать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я неправильно понял назначение этой функции, или просто нужно еще что-то сделать ?

Если я ничего не путаю, нужно запускать не всё компилирование, а только ассемблер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал - действительно, если сначала выбрать Update Memory Initialization File, а потом запустить ассемблер, то все работает, спасибо !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот как сделать, чтобы не нужно было вручную запускать еще и ассемблер - а просто нажал что-то, он сразу обе вещи и сделало (update memory и assembler) ?

Вроде должно быть просто, но что-то сам не смог разобраться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, это просто. Напишите батник примерно такой:

quartus_cdb --update_mif box1
quartus_asm box1
quartus_cpf -o "d2d.opt" -c -d "EPCS16" -s "EP3C55" "box1.sof" "box4.jic"
quartus_pgm -m JTAG -o pvbi;"box4.jic"
pause

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, это просто. Напишите батник примерно такой:

Спасибо за ответ, но я, честно говоря, представлял себе более элегантное решение - прямо средствами самого Quartus'а, без необходимости изменять под конкретный проект.

 

Казалось, что Flow для этого подходит, но настроить там так и не смог...

 

P.S. Кстати, батник прямо из Quartus'а запускать можно ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Кстати, батник прямо из Quartus'а запускать можно ?

Нет.Тикль вам в руки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин, вроде и не совсем уж тупой, а тут просто как заклинило - не знаю, с какой стороны подступиться... Посмотрел на мануал по TCL - 600 страниц смутило...

 

Может, какая-нибудь добрая душа совсем уж носом по шагам ткнет - ну как сделать, чтобы прямо из проекта в Quartus'е на что-то кликнуть, и после этого чтобы запустилось сначала обновление памяти, потом ассемблер, а потом (в идеале) еще и программатор сразу же прошил FPGA...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин, вроде и не совсем уж тупой, а тут просто как заклинило - не знаю, с какой стороны подступиться... Посмотрел на мануал по TCL - 600 страниц смутило...

Для того, чтобы написать нужный вам Tcl-файл, из этого мануала нужно будет прочитать 50-100 страниц, да и то, думаю, не сразу все для первого запуска. Ну и еще раздел Quartus Handbook'а по Tcl-командам. А дальше самому понравится. Автоматизация, однако :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для того, чтобы написать нужный вам Tcl-файл, из этого мануала нужно будет прочитать 50-100 страниц,

Это Вы серьезно ??? Чтобы понять, как запустить простейший скрипт, нужно 100 страниц изучить ??? Не удивительно, что у меня в голове это не укладывается - хватило пары десятков страниц, чтобы на VHDL начать программировать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принимайте мудрость народную в батч-режиме :) : все познается в сравнении, дорогу осилит идущий, дорога в тысячу ли начинается с одного шага и т.п. :)

 

Для того, чтобы ЗАПУСТИТЬ простейший скрипт, можно вообще ничего не читать. Для того, чтобы НАПИСАТЬ простейший Tcl-скрипт, достаточно прочитать вводную главу из страниц ~10. Чтобы написать что-то чуть более нужное и осмысленное, нужно еще пару-тройку глав осилить (страниц ~50). Пока мы тут общаемся, уже это можно было бы сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал я батник, который вроде бы должен производить нужные мне действия. Так как вроде батник невозможно запустить из Quartus'а, то сделал простейший tcl файл из одной команды - "exec mybat.bat"

Когда запускаю этот скрипт через Tools\TCL scripts\Run, то все работает. Но так все равно не очень удобно - много мышкой кликать.

 

Сделал Flow, в котором один единственный пункт - запуск моего скрипта (который потом уже батник запускает). Запускаю flow, он вызывает скрипт, скрипт запускает батник, и тут сразу же облом при запуске quartus_cdb:

 

Error:Error (132003): Run Analysis and Synthesis (quartus_map) with top-level entity name "Project1" before running the current Quartus Prime software

 

Причем повторный запуск через Tools\TCL scripts\Run отрабатывает нормально...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...