Объединить программу C и битовый поток VHDL с помощью make (т. Е. С помощью Makefile)

Я пытаюсь протестировать программный процессор VHDL AVR8, найденный на Gadget Factory, на плате разработки Digilent Nexys II (Spartan 3E). Проект включает Makefile для компиляции программы на языке C (или другой) и ее объединения с потоком битов FPGA, поэтому нет необходимости повторно синтезировать HDL при каждой итерации программного обеспечения.

Когда я выполняю make, я получаю следующую ошибку, связанную с data2mem:

Merging Verilog Mem file with Xilinx bitstream: main.bit
data2mem -bm bin/top_avr_core_v8_bd.bmm -bt bin/top_avr_core_v8.bit -bd main.mem -o b main.bit
process_begin: CreateProcess(NULL, data2mem -bm bin/top_avr_core_v8_bd.bmm -bt bin/top_avr_core_v8.bit -bd main.mem -o b main.bit, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [main.bit] Error 2

Я выполняю make в том же каталоге, где находятся файлы проекта VHDL, и у меня даже есть пустой файл main.bit в этом каталоге.

Есть ли у кого-нибудь идеи о том, что здесь происходит? Мой пустой файл main.bit нужно отформатировать определенным образом или поместить в другое место?

Ниже приводится ссылка на мой Makefile:

Makefile

Другая информация на заметку: я новичок в использовании Makefiles в целом, не говоря уже о конкретной цели слияния программного обеспечения с файлом битового потока FPGA. Кроме того, я пытаюсь сделать это на компьютере с Windows 7 в командной строке.

Заранее спасибо.

Изменить: вот ссылка на программный процессор AVR8 на Gadget Factory, а вот AVR8 источник.


person user_007    schedule 10.02.2014    source источник
comment
Также предоставьте ссылку на проект на Gadget Factory, если вы хотите, чтобы мы увидели, могли ли они предоставить что-нибудь еще связанное с этим.   -  person Ben Voigt    schedule 10.02.2014


Ответы (2)


Навскидку я бы сказал, что make не может вызвать программу data2mem. В вашей системе есть такая программа? Находится ли каталог, в котором он находится, в вашей переменной PATH? Он работает правильно? Например, можете ли вы сами ввести эту командную строку в командной строке, и она будет работать правильно?

person MadScientist    schedule 10.02.2014
comment
Привет, MadScientist, спасибо за комментарий. data2mem действительно существует в моей системе. Я добавил его каталог в свою переменную PATH, но он не запускается, когда я сам набираю команду в командной строке. Есть мысли, что делать сейчас? - person user_007; 10.02.2014
comment
Вы должны выяснить, как заставить его работать за вас, прежде чем он запустится для make. Вероятно, первый хороший шаг для вас - обновить свой вопрос результатами запуска командной строки вручную: не запускается - не очень полезное описание проблемы. - person MadScientist; 10.02.2014

Когда вы говорите «пустой» main.bit, я предполагаю, что вы имеете в виду «полностью заполнен, за исключением памяти, в которую я хочу поместить программу» main.bit ... в противном случае ничего не сработает!

Похоже, у вас нет data2mem на вашем пути - вы уверены, что запускаете свой make-файл из командного окна / оболочки, который включает пути xilinx?

В Windows для этого есть специальный значок. В качестве альтернативы вы можете открыть любую старую командную строку и запустить файл settings32.bat (или settings64.bat) из установочной папки Xilinx для настройки. Или в Linux вы можете source соответствующий _3 _ / _ 4_ файл в своей оболочке.

person Martin Thompson    schedule 10.02.2014
comment
Спасибо за ответ, Мартин. У меня уже был сгенерирован отдельный файл .bit для дизайна, но согласно настройкам в моем make-файле data2mem выводит файл .bit с именем main.bit. Оказывается, data2mem в конце концов не был на моем пути. - person user_007; 11.02.2014