微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 关于cadence 的混合信号仿真中的一个问题

关于cadence 的混合信号仿真中的一个问题

时间:10-02 整理:3721RD 点击:
我的verilog 文件如下:
module A ();
....
endmodule
module B ();
....
endmodule
module C ();
A A1();
B B1()
endmodule
也就是说,我在同一个verilog 文件中定义了 A 和 B 两个子模块,又在C中实例化了这两个模块
但是,candence的编译器竟然说不支持这样做(在modelsim里仿的没问题),
各位可有遇到这种情况,有什么解决办法没?

首先我不能确定是否可以在同一个文件中调用,这个可以查说明文档,好像是可以的。
个人觉得问题出在你调用的方式。上网搜下看看吧

试试做一个顶层文件调用AB吧!

不懂。

不懂。

顶层文件怎么写呀,可以给一个示例吗?

Thanks for ur sharing idea , pls more discuss about cadence ic6.Thans again

我碰到和你一样的问题,说端口需要连接
似乎cadence不能这样调用

在C中只能对A、B进行实例化,不能再有其它的非结构级的代码
以下是我的一个设计的顶层模块代码,只有结构级代码:
// Created by ihdl
module AFCFast(sband, AFCdone, AFCnomatch, Fref, Fcmp, AFCstart, Ncmp);
output [3:0] sband;
outputAFCdone, AFCnomatch;
inputFref, Fcmp, AFCstart;
input [10:0] Ncmp;

wire [11:0] Ncount;// Fcmp counter's output
wire [10:0] Ncmp_eff;// NcmpLoader's output

and (Fcmp_gated, Fcmp, CMPen_n);
and (Fref_gated, Fref, C64_n);

CountFcmpFast CountFcmpInst(.data(Ncount),
.clk(Fcmp_gated), .rst_n(Rst));

CountFrefFast CountFrefInst(.C64(C64), .C64_n(C64_n), .CMPen(CMPen), .CMPen_n(CMPen_n),
.clk(Fref_gated), .rst_n(Rst));

CompareFast CompareInst(.up(up), .proper(proper), .down(down), .noproper_n(noproper_n),
.Ncount(Ncount), .Ncmp(Ncmp_eff), .CMPen(CMPen));

NcmpLoaderFast NcmpLoadInst(.Ncmp_out(Ncmp_eff),
.Fref(Fref), .CMPen(CMPen), .Load_n(Rst), .Ncmp_in(Ncmp));

DFFFast DFFup_Inst(.Qout(up_d1),
.clk(CMPen_d1), .rst_n(AFCstart), .Din(up));

DFFFast DFFproper_Inst(.Qout(proper_d1),
.clk(CMPen_d1), .rst_n(AFCstart), .Din(proper));

DFFFast DFFdown_Inst(.Qout(down_d1),
.clk(CMPen_d1), .rst_n(AFCstart), .Din(down));

DFFFast DFF_C64_Inst(.Qout(C64_d1),
.clk(CMPen_d1), .rst_n(AFCstart), .Din(C64));

DFFFast DFF_CMPen_d1_Inst(.Qout(CMPen_d1),
.clk(Fref), .rst_n(AFCstart), .Din(CMPen));

DFFFast DFF_FSMclk_Inst(.Qout(FSMclk),
.clk(Fref), .rst_n(AFCstart), .Din(CMPen_d1));

FSMFast FSM_Inst(.sband(sband),
.next(gonextband), .done(AFCdone), .nomatch(AFCnomatch),
.clk(FSMclk), .rst_n(AFCstart),
.up(up_d1), .proper(proper_d1), .down(down_d1), .C64(C64_d1));
// generate Rst for counters
and(Rst0, noproper_n, gonextband);
DFFFast DFF_Rst1_Inst(.Qout(Rst1),
.clk(Fref), .rst_n(AFCstart), .Din(Rst0));
DFFFast DFF_Rst2_Inst(.Qout(Rst),
.clk(Fref), .rst_n(AFCstart), .Din(Rst1));

endmodule
1# 211lili

结合你这个帖子,大概明白什么意思了,就是在调用module进行实例化的时候,不能再有其他的行为级操作,比如赋值什么的。
只能有一些rtl级或者实例化的操作。
不知是否正确理解你的意思

老版本的cadence是不能实例化调用的,你只能在schematic中连接各module的symbol,以实现调用。


10# starriness

最新版本的AMS不再存在这个问题了

学习了,有收获,不过要试试看!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top