GHDL, Прекомпиляция примитивов поставщиков и Cocotb - PullRequest
2 голосов
/ 02 июля 2019

У меня есть проект, в котором я использую модуль IP, сгенерированный Lattice Diamond. Это использует библиотеку Macxo3l, которая поставляется с бриллиантом в качестве библиотеки поставщика.

Используя GHDL, я могу скомпилировать проект, включая эту библиотеку, используя инструкции из https://ghdl.readthedocs.io/en/latest/building/PrecompileVendorPrimitives.html, а затем команды.

ghdl -i --ieee=synopsys -P=lattice/ --workdir=work cores/*.vhd
ghdl -i --workdir=work src/*.vhd

Однако мне не удалось собрать этот файл с помощью cocotb. Ниже мой make файл. Где я использую команду VHDL_SOURCES_Lib, на которую я нашел ссылку в https://cocotb.readthedocs.io/en/latest/building.html

TOPLEVEL_LANG ?= vhdl

PWD=$(shell pwd)

ifeq ($(OS),Msys)
WPWD=$(shell sh -c 'pwd -W')
PYTHONPATH := $(WPWD)/../model;$(PYTHONPATH)
else
WPWD=$(shell pwd)
PYTHONPATH := $(WPWD)/../model:$(PYTHONPATH)
endif

VHDL_SOURCES_Lib = $(WPWD)/../lattice/
VHDL_SOURCES = $(WPWD)/../cores/Adder.vhd $(WPWD)/../cores/Counter.vhd $(WPWD)/../cores/Multiplyer.vhd $(WPWD)/../cores/SinCos.vhd  $(WPWD)/../src/top.vhd



TOPLEVEL := top
MODULE   := test_of_top

include $(shell cocotb-config --makefiles)/Makefile.inc
include $(shell cocotb-config --makefiles)/Makefile.sim

Компиляция этого, однако, дает мне ошибку:

make results.xml
make[1]: Entering directory '/HDL/cocotbTest'
make[1]: *** No rule to make target '/HDL/cocotbTest/../cores/Adder.vhd', needed by 'analyse'.  Stop.
make[1]: Leaving directory '/HDL/cocotbTest'
/home/anaconda3/lib/python3.6/site-packages/cocotb/share/makefiles/Makefile.sim:84: recipe for target 'sim' failed
make: *** [sim] Error 2

Я могу запустить примеры cocotb, используя GHDL. Как мне указать cocotb включать файлы Vendor Primitive.

Спасибо за любую помощь, которую вы можете оказать.

1 Ответ

0 голосов
/ 03 июля 2019

Я думаю, что вы должны добавить точные имена файлов в VHDL_SOURCES_Lib, как сказано в документации:

VHDL_SOURCES_lib

A список исходных файлов VHDL для включения в библиотеку библиотеки VHDL (в настоящее время только GHDL).

Но чтобы добавить предварительно скомпилированную библиотеку, как вы показываете, вы должны передать опцию компиляции в ghdl: -P = lattice /

Используйте COMPILE_ARGS, чтобы добавить его:

COMPILE_ARGS=-P=lattice/
...