标签:
1. 问题的提出
工程a是一个soft core,用VHDL写的,综合的时候去掉了"Add I/O buffers" ,并将-iob(Pack I/O Registers into IOBs)置为否。综合最后生成了a.ngc文件供其他工程使用。在生成完ngc后,还可以在 "Design Utilities" -> "View HDL Instantiation Template" 中生成相应的调用文件。
工程b调用的a.ngc,但是工程b使用verilog写的,在调用的时候出现了找不到a模块的错误。
2. 问题的解决方法a
使用netgen命令将该ngc转换成vhdl或者verilog文件,然后在调用转换后的文件
linux下
netgen -ofmt verilog filename.ngc
netgen -ofmt vhdlfilename.ngc
windows 下
netgen.exe -ofmt verilog filename.ngc
netgen.exe -ofmt vhdlfilename.ngc
3. 问题的解决办法b
上述的办法只是一种取巧的办法,更好地办法是通过使用wrapper文件来实现。
假定原来的ngc文件为abc.ngc, 则其wrapper文件名为abc.v 或者 abc.vhd. 这个wrapper文件只申明abc模块的输入输出端口,不包含其他信息。
一种简单的生成wrapper文件的办法就是利用解决办法a中提到的netgen工具,利用netgen生成的verilog文件或者vhdl文件,将其他语句删除,仅保留其申明部分。
然后在工程中同时添加该wrapper文件和ngc文件即可。
标签:
原文地址:http://www.cnblogs.com/worthy/p/5389189.html