4694|12

9713

帖子

24

TA的资源

版主

楼主
 

关于高云云源软件出现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忽视了我的错误?

 

 

最新回复

应该是这么回事,也就是不同厂家的IDE环境、不同的编译器,有可能对这种处理的方式不同。其实只要是正常功能模块的话,肯定会有输出,也会有适当的操作,里面不会是空的。   详情 回复 发表于 2022-1-13 00:55
点赞 关注
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

664

帖子

108

TA的资源

纯净的硅(中级)

沙发
 

我是用VHDL的,Verilog略有了解。

所谓wire,就是指一条线直接连,只不过用了不同的网标,不占用宏单元;

reg就是寄存器,是实实在在要生成触发器或锁存器的,是要占用宏单元的。

不同的综合器,也许会有不同的优化。如果定义了reg,有可能综合器发现实际只用作wire,可能会自动优化成wire,看一下RTL图是什么样的。

点评

现在的情况是只要有一个output就会报错,无论它是wire还是reg。 [attachimg]583057[/attachimg] 而无论多少条output,只要有一个output使用assign赋值,无论它是哪个错误就会消失。 [attachimg]583060[/att  详情 回复 发表于 2022-1-11 23:13
 
 
 

回复

9713

帖子

24

TA的资源

版主

板凳
 
gs001588 发表于 2022-1-11 22:43 我是用VHDL的,Verilog略有了解。 所谓wire,就是指一条线直接连,只不过用了不同的网标,不占用宏单元 ...

现在的情况是只要有一个output就会报错,无论它是wire还是reg。

而无论多少条output,只要有一个output使用assign赋值,无论它是哪个错误就会消失。

 

  

或者任意一条output通过always赋值,而不是initial,这个错误也会消失。 

这种情况像是这个module里不允许所有output都“悬空”,必需保证至少有一条不是“悬空”的。 

但是不清楚为什么initial或output reg rst = 1‘b1,这样的方式不行,也许是被优化掉了?或者不符合某些规则?

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

1204

帖子

1

TA的资源

纯净的硅(初级)

4
 

写得不规范,begin end里面空了,其次,initial这种语法少写一点,很看编译软件

点评

我试了一下,看是不是always为空的原因。后来发现写一个cnt不做任何处理报错也会消失。 [attachimg]583124[/attachimg]    详情 回复 发表于 2022-1-12 11:20
 
 
 

回复

9713

帖子

24

TA的资源

版主

5
 
不足论 发表于 2022-1-12 09:35 写得不规范,begin end里面空了,其次,initial这种语法少写一点,很看编译软件

我试了一下,看是不是always为空的原因。后来发现写一个cnt不做任何处理报错也会消失。

 

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

6
 

会不会跟版本有关系呢,我用的1.9.8.01,试了没发现有问题呀

test_verilog.rar (12.22 KB, 下载次数: 2)


 

 

 

 

 

点评

不对,咱俩的版本好像是一样的。  详情 回复 发表于 2022-1-12 18:08
感谢帮忙测试,我下载你的工程直接编译也有错误。看样是版本的问题,一会下一个最新版本试试。 [attachimg]583228[/attachimg]    详情 回复 发表于 2022-1-12 18:05
 
 
 

回复

9713

帖子

24

TA的资源

版主

7
 
gs001588 发表于 2022-1-12 17:31 会不会跟版本有关系呢,我用的1.9.8.01,试了没发现有问题呀     &n ...

感谢帮忙测试,我下载你的工程直接编译也有错误。看样是版本的问题,一会下一个最新版本试试。

 

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

9713

帖子

24

TA的资源

版主

8
 
gs001588 发表于 2022-1-12 17:31 会不会跟版本有关系呢,我用的1.9.8.01,试了没发现有问题呀     &n ...

不对,咱俩的版本好像是一样的。

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

9713

帖子

24

TA的资源

版主

9
 

 

重装了一下,还是这个问题,奇怪了。

 

 

     

点评

明白你的意思了。 是在布局布线时出的问题,不是综合的问题。在模块里面不写点啥,相当于只有个框框没内容,把编译器都整得不会了,没想到会有这种用法。 只要里面随便写点,有意义的,就可以过了,加个reg、w  详情 回复 发表于 2022-1-12 20:06
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

10
 
本帖最后由 gs001588 于 2022-1-12 20:08 编辑
littleshrimp 发表于 2022-1-12 18:16   重装了一下,还是这个问题,奇怪了。          

明白你的意思了。

是在布局布线时出的问题,不是综合的问题。在模块里面不写点啥,相当于只有个框框没内容,猝不及防把编译器都整得不会了,没想到会有这种用法。

只要里面随便写点有意义的,就可以过了,加个reg、wire都可以。这也就是verilog比较灵活,只要加点东西从语法上该的有都有了,要是VHDL的话可能综合都不给你过。

点评

对,应该就是你说的问题。 比较奇怪的是如果只有input没有output,没有内容也不报错。 如果有output,always里只判断某个input比如我之前的rst_n,会报错。 像你说的那样,如果有output,不需要对这些驱动  详情 回复 发表于 2022-1-12 20:45
 
 
 

回复

9713

帖子

24

TA的资源

版主

11
 
gs001588 发表于 2022-1-12 20:06 littleshrimp 发表于 2022-1-12 18:16   重装了一下,还是这个问题,奇怪了。       ...

对,应该就是你说的问题。

比较奇怪的是如果只有input没有output,没有内容也不报错。

如果有output,always里只判断某个input比如我之前的rst_n,会报错。

像你说的那样,如果有output,不需要对这些驱动这些信号,只需要操作一个内部寄存器也可以正常。

大概的意思就是如果有output,模块里就应该有“写”的动作,哪怕不是写对应的output信号。

点评

应该是这么回事,也就是不同厂家的IDE环境、不同的编译器,有可能对这种处理的方式不同。其实只要是正常功能模块的话,肯定会有输出,也会有适当的操作,里面不会是空的。  详情 回复 发表于 2022-1-13 00:55
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

12
 
littleshrimp 发表于 2022-1-12 20:45 对,应该就是你说的问题。 比较奇怪的是如果只有input没有output,没有内容也不报错。 如果有outpu ...

应该是这么回事,也就是不同厂家的IDE环境、不同的编译器,有可能对这种处理的方式不同。其实只要是正常功能模块的话,肯定会有输出,也会有适当的操作,里面不会是空的。

点评

对,像是IDE把这部分他认为没有实质内容的模块给优化掉了,也许可以通过设置解决。文档里我没检索到,白天我再找找设置。不过写代码难免会有错误,尤其是新手,出错时能有一个比较清晰的提示会有利于快速定位问题。  详情 回复 发表于 2022-1-13 05:00
 
 
 

回复

9713

帖子

24

TA的资源

版主

13
 
gs001588 发表于 2022-1-13 00:55 应该是这么回事,也就是不同厂家的IDE环境、不同的编译器,有可能对这种处理的方式不同。其实只要是正常 ...

对,像是IDE把这部分他认为没有实质内容的模块给优化掉了,也许可以通过设置解决。文档里我没检索到,白天我再找找设置。不过写代码难免会有错误,尤其是新手,出错时能有一个比较清晰的提示会有利于快速定位问题。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
【赛题大汇总】选录09及往年各省、地区竞赛题目

【赛题大汇总】选录09及往年各省地区竞赛题目,各位有兴趣可以拿来练习预热哦~~ 2008年广西省大学生电子设计竞赛试题 A题:宽带 ...

ZT:电子毕业生如何规划你的人生

一、 怎样规划你的毕业后的人生     我今年39岁了, 25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些 ...

ADC10实验例程(含C#上位机)

C#上位机学习资料 https://bbs.eeworld.com.cn/viewthread.php?tid=308129&page=1#pid1198878上周逛论坛看到上面的C#串口教程 ...

添加并美化SEED-EXP430F5529 LCD背光(TPS75105DSKR正常工作!)

在Ti申请的TPS75105DSKR器件今天到了! 花了点时间其焊接上了! 112980 为了测试TPS75105DSKR器件是否正常工作! 我自己添 ...

【晒方案】纯手工仅100克的四轴飞行器“她”仍在努力飞行中

本帖最后由 paulhyde 于 2014-9-15 03:20 编辑 我们组在2013年全国电子设计大赛中选择的题目是自主四轴飞行器,为什么要选择这 ...

工程人员安全黑匣子之ESP8266连接OneNet云平台的方法

本帖最后由 sipower 于 2020-5-28 23:05 编辑 前面几个帖子分享了我的准备工作和系统框图,这次我分享点跟传感器关系不大,但 ...

刚装的AD17,Keep-OutLayer设置不了

刚装的AD17,Keep-OutLayer设置不了,不能批量和单个修改成机械层或其他层,有没有知道在哪里设置的,十万火急,谢谢!

电力电子变换器:PWM 策略与电流控制技术

《电力电子变换器:PWM 策略与电流控制技术》系统地介绍了现代电力电子变换装置及其PWM控制策略,具有内容系统全面、范例丰富详 ...

《控制之美(卷2)》--最优控制、线性二次规划与模型预测控制

本帖最后由 dirty 于 2024-2-25 18:00 编辑 本篇讲述第三至五章节 最优控制的基本概念,动态规划与线性二次型调节器 和模型预 ...

#AI挑战营第一站#PC上完成手写数字模型训练

model.py import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): class Net(nn.Module ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表