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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 352|回复: 4

[解决] Cadence virtuoso AMS 数模混合仿真 跑ADE时报错 错误全都和verilog文件有关

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lovol 于 2025-5-6 21:18 编辑


//------------------------------------------------------------------------------------------------------------------------------20250430
初学Cadence数模混合仿真,按照网上的教程操作(如:https://zhuanlan.zhihu.com/p/8280687951
进行到最后一步ADE netlist and run时报错数千条,全都是关于verilog文件的,以此帖求助并作为记录。

看了以后发现可以归纳为几类错误:
【1】Unexpected quote character "`". 和 Expression is missing a terminating quote character.
对应代码使用“·define”定义参数的部分
【2】Unexpected end of line.
对应模块端口部分的代码:
module xxx (
input a,
input b,
......
【3】`input' is a no independent source value specified. Set to zero.  和 `o' (first char of `output') is not a valid SPICE element type.
分别对应模块端口定义部分的多位输入和输出代码:
module xxx (
input [3:0] a,
output b,
......
【4】Not enough nodes - require an even number.
对应网线变量同时定义奇数个变量的情况:
wire a, b, c;
【5】Expected 2 controlling nodes, but found 1.
对应网线变量同时定义多个变量且换行的情况:
wire a, b, c, d,
       e, f, g, h;
或者always块里的if语句的else行:
else a <= b;
【6】`a' (first char of `assign') is not a valid SPICE element type.
对应连续赋值语句:
assign a = b;
咦,难道我建立cellview的时候就设置错了?
【7】Unexpected character `;' in netlist. 和 Expression is missing a terminating quote character.
对应连续赋值中的多重条件判断语句:
assign a = (b)? c : (d)? e : f ;
或者always块里对一个变量赋多bit的常数:
a <= 4'b0000;
【8】.clk_sample is not recognised as a valid SPICE control card.
对应子模块调用的代码:
moduleA u_module(
.clk_sample(clk_sample),
.b(b),
......
【9】Illegal node name: [reg_clk_sam[1:0]
对应always块里的拼接赋值语句:
always@(posedge clk)begin
a <= {reg_clk_sam[1:0], b};
......
【10】`if' is a no independent source value specified. Set to zero.
对应always块里的if语句:
always@(posedge clk)begin
if(a)
......
【11】Expected 1 controlling voltage sources, but found 0.
对应always块里的赋值语句:
a <= 0;
我感觉自己应该犯了一个很蠢的错误,但是菜鸟实在不知道是什么,求大佬解惑。
另外求系统学习AMS仿真的教学资源,拜托了。

//------------------------------------------------------------------------------------------------------------------------------20250506
根据贴友们的帮助排除了一些原因以后,实在无法自己解决,遂求助了chatGPT
根据chatGPT的回复:“你现在的问题本质上是 Verilog 文件没有在 AMS flow 中作为“digital module”来使用,而被错误地当作 SPICE netlist 来解析了。”
chatGPT给出的解决步骤:

                               
登录/注册后可看大图
以上步骤请勿模仿,因为根本没有digital这个type。

总之,虽然chatGPT提供的解决方案没有用,但是他帮我搜索到了Cadence混合仿真的用户手册(Virtuoso AMS Designer Environment Tutorials,  May 2012, Version 6.1.5)。根据手册里的示例步骤对照以后,找到了华点:

                               
登录/注册后可看大图
才知道view list具有优先级,于是把Hierarchy Editor里面的view list设置为“verilog schematic”,运行不再出现以上问题。

Virtuoso AMS Designer Environment Tutorials.pdf

3.81 MB, 下载次数: 0 , 下载积分: 资产 -2 信元, 下载支出 2 信元

Virtuoso AMS使用指南

发表于 6 天前 | 显示全部楼层
一般最初的几条ERROR信息比较关键,可以看看它提示说了什么
发表于 5 天前 | 显示全部楼层
第一条就是选择的verilog的标准问题,从代码上看起码是verilog 2001或者systemverilog,不是verilog 1995。
因为verilog 1995,端口的方向是不能写在port list里,需要单独写的。
 楼主| 发表于 昨天 20:40 | 显示全部楼层


zixin1hao 发表于 2025-5-1 23:56
一般最初的几条ERROR信息比较关键,可以看看它提示说了什么


感谢回复!
在irun.log文件里报错的前几行是:
irun: *E,SPCERR: The program encountered one or more errors while processing the input SPICE file(s) in the AMSD flow. For details, see the following messages.
......Unexpected quote character "`".
......Expression is missing a terminating quote character.
......
第一行后就基本上是1楼提过的那些错误。
根据这些错误,我觉得仿真器可能将verilog代码识别成了别的语法文件,修改了config文件的设置,解决了该问题(详见更新内容)。
 楼主| 发表于 昨天 20:43 | 显示全部楼层


kk2009 发表于 2025-5-2 08:55
第一条就是选择的verilog的标准问题,从代码上看起码是verilog 2001或者systemverilog,不是verilog 1995。 ...


感谢回复!

我根据这个方向写了个简单的verilog测试文件,但是运行的时候还是报错,所以排除了这个原因。

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

本版积分规则

关闭

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

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

GMT+8, 2025-5-7 07:32 , Processed in 0.037598 second(s), 9 queries , Gzip On, MemCached On.

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