在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2754|回复: 7

[求助] ams混合仿真verilog中带generate语句的代码认不出来

[复制链接]
发表于 2023-6-15 17:40:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
各位大神,我现在进行AMS混合仿真时碰上一个问题,在建立config view时,如果verilog代码中用generate语句进行例化下一层的模块时,下一层的模块就无法出现在config中用functional表示出来,如果不是generate调用,而是直接调用时,就没有这个问题。该怎么办?
用的数字仿真器是cadence自带的xcelium,是不是数字仿真器的问题,cadence自带还有其他数字仿真器吗?谢谢

发表于 2023-10-8 16:20:52 | 显示全部楼层
朋友,这个问题后来解决了吗?我也遇到了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-13 17:07:01 | 显示全部楼层
解决了,generate语句中如果有用for循环来例化模块,就会出现不了下层模块,这是xcelium仿真器的问题,后来把for循环去掉了,就直接一个一个的写的模块例化语句,就可以出现下层模块了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-23 10:25:30 | 显示全部楼层
现在还是有问题,xcelium混合仿真时,如果verilog代码中有generate语句内部带例化语句的话,config view就无法识别被例化的module,这个可以通过自己在verilog代码中添加一个冗余的在generate语句外的例化语句来解决,但是generate语句内部有for循环的化,上面的方法就无效了,就必须自己把for循环内部的例化语句一个一个的写出来,如果for循环数量较大,或者带嵌套的for循环的化,例化语句的数量是呈平方关系增长的,那工作量太大了,需要有其他的方法来解决。请问各位大神有解决方法吗?多谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-23 14:16:07 | 显示全部楼层
后来调试发现,for循环中 如果在begin后面给for循环命名了一个名字,然后再例化,每次编译时,例化的module名字前面都会出现for循环的名字带一个点,这样子就无法编译认出例化的Module了,这是问题所在,不能给for循环命名,但是有时候是需要的,这就是问题所在。不管是不是generate语句内部都会出现这个问题
回复 支持 反对

使用道具 举报

发表于 2024-5-7 14:36:26 | 显示全部楼层


   
alex_fd12 发表于 2023-10-23 10:25
现在还是有问题,xcelium混合仿真时,如果verilog代码中有generate语句内部带例化语句的话,config view就 ...


最近也遇到了这个问题,有很多module里有generate语句,一个一个拆出来例化很不现实,请问有解决方案吗?
回复 支持 反对

使用道具 举报

发表于 2025-7-30 22:37:51 | 显示全部楼层


   
alex_fd12 发表于 2023-10-23 14:16
后来调试发现,for循环中 如果在begin后面给for循环命名了一个名字,然后再例化,每次编译时,例化的module ...


在generate语句的报错里,形如"top<module>.genblk1[0].*"这样的子模块是不能正常实例化的,应该就算层主说的问题
至于怎么展开generate语句,这就是一个存粹的文本处理任务了,交给大模型吧
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
本帖最后由 fatcat1205 于 2025-8-3 07:43 编辑

config是通过文本CellView中的pc.db文件来获得该文本文件中定义的module所包含的例化器件。
而pc.db则是在Virtuoso Text Editor中编译该文本文件中产生的。我忘了Virtuoso文本编译器是怎么处理generate中利用For语句来例化的器件。

我的做法是直接不在Config中做相应设置。直接将对用的Verilog模块绑定成Symbol。然后将该verilog模块和generate中例化器件的源代码作为xrun的参数,它们会被编译到worklib中。这样Elaboration过程中就能找到了。

P.S,规范的操作是将verilog模块绑定成“Mark as External HDL Text(AMS UNL Only)”。但是我忘了这个是选择是在哪个版本中给出的。所以上面说绑定成Symbol,结果是一样的。就是在生成的网表中只有该Verilog模块的例化。因此它和子器件的源代码需要额外给出。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-9 13:33 , Processed in 0.016344 second(s), 3 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表