05-29-2021 09:16 AM
I want to simulate a design that includes an IP core (Multiplier).
The netlist generated by another IP(Block Memory Generator) through the command "write_verilog" can be used.
However the netlist of Multiplier report an error. (Icarus Verilog only shows 'syntax error. I give up.')
How can I simulate the design that includes the Multiplier with the third simulator?
05-29-2021 09:30 AM
Icarus Verilog is a simulator
were the cores generated with the Xilinx software ?
If so I bet they contain entities that are included in the xilinx Unisim library
your going to have to include that into your simulator
Any reason your not using the xilinx simulator that s built into the tools,
Which xilinx tools are you using and what device you targeting ?
05-29-2021 09:55 AM
Yes,I generated the cores with the Vivado,and I have already included the Xilinx library.
I need to use the cocotb to test my project,so I can't using the xilinx simulator that s built into the tools.
My project is implemented on U200.
I also use the post-synthesis to generate the netlist,but still have errors.
05-29-2021 11:28 AM
sorry, dont know your simulator
but its def saying its missing some entities,
Suggest you contact your simulators support site.
BTW: What is cocotb
if its a test bench, then can you not add that to the vivado simulator ?
You might get clues here
This is about how to use modlesim with the xilinx entities, and how to comile the xilinx librares for modelsim,
Im expecting you will have to compile the xilinx libs into your simulator, something similar,
05-29-2021 09:05 PM
Thank you! And I want to confirm a question.
Generally,the VHDL IP can also be used for simulators that only support verilog through netlist . Is this correct?
I need to use the cocotb for writing the test bench in Python(such as generating packet),but the cocotb doesn't support Vivado.
I really appreciate your help .
05-30-2021 12:14 AM
@drjohnsmith cocotb is a python based verification framework for hdls . https://github.com/cocotb/cocotb. I assume it doesn't work with vivado because of the poor vhdl 2008 support and maybe lack of vpi vhpi support? I don't see it get so many mentions in the vhdl world behind the"big 3" ( osvvm, uvvm and vunit)
@dys__8686 it definitely looks like missing libraries. Are you sure you have included unisim properly?
05-30-2021 05:15 AM
"Generally,the VHDL IP can also be used for simulators that only support verilog through netlist"
Normally , simulators are sold per language,
If the "netlist" is in a language that your simulator supports then all is ok,
Unisim and the other xilinx libs will be needed for the xilinx code to work in any simulator,
you "just" need to "compile" the xilinx libs for your simulator,
sorry, have chat to your simulator support forum,
I've certainly not seen it on the forums before, though a search shows a few posts.
05-30-2021 07:41 PM
05-31-2021 01:31 AM
sounds like you will have to ask icarus how to include packages into there sinulator,
when you get answer, please get back to us.
06-03-2021 09:43 AM
I got the answer to solve the firse error.
" If it is using any SystemVerilog features, add the -g2012 option to the iverilog command line. "
However, it report a syntax error on line 186 of IP/mult_gen_1.v.
Could you give me a few pointers with this problem? Thank you.
06-03-2021 07:45 PM
It looks to have trouble with IP encrypted file.
To encrypt IP such that it can be read by a IEEE-1735-2014 V2 compliant third-party tool, you must obtain the public encryption key directly from the third-party tool provider. The third-party key definition must be in the pre-defined format and must be placed within a separate begin_toolblock/end_toolblock pair. During encryption, the Vivado tools use both public keys.
As iverilog is not compatible 3rd party tool with Vivado, I'm afraid it will not work with most IPs.