github-actions[bot] on nightly
elab-vhdl_objtypes: replace Is_… synth-vhdl_oper: add an hook fo… synth-vhdl_stmts: rework synth_… and 9 more (compare)
tgingold on master
elab-vhdl_objtypes: replace Is_… synth-vhdl_oper: add an hook fo… synth-vhdl_stmts: rework synth_… and 9 more (compare)
github-actions[bot] on nightly
synth/elab-vhdl_values: use a p… vhdl-canon: remove unused canon… synth-vhdl_expr: avoid a memocy… and 6 more (compare)
tgingold on master
synth/elab-vhdl_values: use a p… vhdl-canon: remove unused canon… synth-vhdl_expr: avoid a memocy… and 6 more (compare)
Repost from @LarsAsplund
Let's see if we can have a LinkedIn survey with any statistical significance https://www.linkedin.com/posts/plc2-gmbh_vhdl-osvvm-fpga-ugcPost-6817744189200076800-OUeX
icestorm
and prjtrellis
provide icepll
and ecppll
, respectively.https://twitter.com/unaimarcor/status/1415928619659145216
Open Source VHDL Design Explorer (OSVDE) is a PoC for showcasing the capabilities of the abstract language model provided by pyVHDLModel and pyGHDL. It's a tkinter GUI for exploring VHDL repos/projects.
Kudos to @Paebbels and Tristan Gingold! :heart_eyes:
See https://umarcor.github.io/osvb/apis/project.html#open-source-vhdl-design-explorer-osvde
ghdl-dom pretty -f FILENAME.vhd
on all the sources of GHDL, OSVVM, UVVM, VUnit, PoC, microwatt and NEORV32. In the "Captured stdout call" you can see the identifiers that were properly parsed and printed.
Hi everyone, sorry for the long post but I am trying to give as much info as I can.
I am trying to run a Testbench with GHDL but I am having some problems with a Xilinx component.
I am using the versions:
FYI my testbench runs fine with Modelsim PE 2020.1.
I compiled the Xilinx libraries using GHDL with the following command:
$(GHDL_PATH)/lib/ghdl/vendors/compile-xilinx-vivado.sh --all --vhdl2008 --source $(VIVADO_PATH)/data/vhdl/src --output $(VENDOR_LIB_RELDIR)/ghdl
So when I run my TB with GHDL I get these errors that the BITSLICE_CONTROL and RX_BITSLICE (xilinx) components are not bound.
The following errors are shown during execution of simulation:
(..)\selectio_sliceA\selectio_sliceA_sim_netlist.vhdl:471:1:warning: instance "\BITSLICE_CTRL[0].bs_ctrl_inst\" of component "bitslice_control" is not bound [-Wbinding]
\BITSLICE_CTRL[0].bs_ctrl_inst\: unisim.vcomponents.BITSLICE_CONTROL
(...)
(...)\selectio_sliceA\selectio_sliceA_sim_netlist.vhdl:1466:1:warning: instance "\RX_BS[0].rx_bitslice_if_bs\" of component "rx_bitslice" is not bound [-Wbinding]
\RX_BS[0].rx_bitslice_if_bs\: unisim.vcomponents.RX_BITSLICE
This means the component is not being bound correctly, i.e. not found in the unisim
library.
I checked Modelsim compilation log (.cxl.vhdl.unisim.unisim.nt64.log) and we can see the component RX_BITSLICE is being compiled into the unisim
library.
Model Technology ModelSim PE vcom 2020.1 Compiler 2020.01 Jan 28 2020
Start time: 12:59:30 on Jul 21,2021
vcom -source -93 -64 -work unisim -f D:\_build\utec_002\fw\sim\sim_lib\modelsim/unisim/.cxl.vhdl.unisim.unisim.nt64.cmf -f D:\_build\utec_002\fw\sim\sim_lib\modelsim/unisim/.cxl.vhdl.secureip_vhdl_unisim.unisim.nt64.cmf
-- Loading package STANDARD
(...)
-- Compiling entity RXTX_BITSLICE
-- Compiling architecture RXTX_BITSLICE_V of RXTX_BITSLICE
-- Compiling entity RX_BITSLICE
-- Compiling architecture RX_BITSLICE_V of RX_BITSLICE
(...)
Interesting in the GHDL compiled libraries, the unisim
folder contain several object (*.o) files but no RX_BITSLICE is present there:
xxx@yyy MINGW64 (...)/sim/sim_lib/ghdl/unisim/v08
$ ls -l | grep 'RX_BITSLICE'
`
However, if I check the secureip
folder, then I can find the RX_BITSLICE component:
xxx@yyy MINGW64 (...)/sim/sim_lib/ghdl/secureip/v08
$ ls -l | grep 'RX_BITSLICE'
-rw-r--r-- 1 xxx 1049089 226109 Jul 22 09:41 RX_BITSLICE.o
Seems to me that GHDL is compiling the RX_BITSLICE into the wrong library, in this case into the secureip
instead of unisim
.
In my run.py
, I am mapping the libraries as follow:
# Add vendor libraries
if args.simulator == 'modelsim' :
vu.add_external_library("unisim", join(args.vendor_lib, "./modelsim/unisim"))
vu.add_external_library("secureip", join(args.vendor_lib, "./modelsim/secureip"))
else:
vu.add_external_library("unisim", join(args.vendor_lib, "./ghdl/unisim/v08"))
vu.add_external_library("secureip", join(args.vendor_lib, "./ghdl/secureip/v08"))
Does someone has any idea how can I fix this? Thanks in advance.