关于高云云源软件出现ERROR (PA2050) : Module 'xx' is instantiated but n...的测试
[复制链接]
因为参加GW1N这个FPGA的评测,当时的计划是使用GW1N采集LTC2380-24这颗24位ADC数据然后进行分析,但是LTC2380-24这个板子不知道放哪找不到了。正好手里还有一个ADS8958H这个18位500KSPS 8通道的ADC板子,因为之前用LTC2325-16那个16位4通道5MSPS的板子实现了我想要的功能,就没再用ADS8958H这个板子做相关测试。这个板子支持+-10V的输入电压和1M的输入阻抗,前段时间出现电容拉低电源电压的问题,当时就想要是这个板子能直接用就好了。所以这次就准备用GW1N驱一下。今天把板子的连线焊好,接上GW1N的板子后开始写程序。因为我是FPGA新手,怕代码写多了太多错误不好检查就先写点“编译”一下。
开始的时候我只是简单写了一些端口,一个初始化和always块,然后在top里做了例化。
“编译”时提示“ERROR (PA2050) : Module 'ads8598h' is instantiated but not defined”错误,没有具体的位置,也找不到具体原因。
于是我就一一对照各端口的拼写和符号是否为中文字符,再一行代码一行代码的去注释掉,花了很长时间最后发现例化时把下边这几行去掉就可以正常"编译”
再仔细分析发现这些必需注释掉才能正常编译的端口都是output类型,因为我是新手,这方面我有点懵,开始怀疑我的这种写法是否有问题,包括下边这种直接初始化。
最后发现如果ps_serial为网线类型,然后通过assign给它赋值而不是直接写output reg ps_serial=1'b1时就会正常。
是我的代码写错了吗?
为了验证我的想法,我使用vivado粘贴了类似的代码测试,开始的时候ads8598h没写初始化和always,其它还有top内容完全相同。
编译时提示:
[DRC INBB-3] Black Box Instances: Cell 'ads8598h_ins' of type 'ads8598h' has undefined contents and is considered a black box. The contents of this cell must be defined for opt_design to complete successfully.
然后我把初始化和always的注释去掉,这时和高云云源软件里出问题的代码一样,再编译竟然可以正常通过。
所以现在是高云云源软件有问题吗?还是我写的代码不规范,只不过vivado忽视了我的错误?
|