|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟最近在用cadence做数模混合,前面是模拟部分,输出为DN[7:0],UP[7:0],后面接了一个简单的数字模块demux.目的是比较DN[7:0],UP[7:0]中1的个数,分别输出高低电平.demux的代码如下:module demux(UP,DN,up_out,dn_out);
input [7:0]UP,DN;
output up_out,dn_out;
reg [2:0]iup,idn;
reg up_out,dn_out;
integer i;
always @(UP or DN)
begin
iup=3'b0;
idn=3'b0;
for(i=0;i<8;i=i+1) begin
if(UP==1'b1) begin iup=iup+1'b1; end
else if(DN==1'b1) begin idn=idn+1'b1; end
else begin iup=iup; idn=idn; end
end
if(iup>=idn+3'b010) begin up_out=1'b1; dn_out=1'b0; end
else if(idn>=iup+3'b010) begin up_out=1'b0; dn_out=1'b1; end
else begin up_out=1'b0; dn_out=1'b0; end
end
endmodule
模拟端口输出的结果如图:
,由于模拟输出最高电平1.8V,最低电平1.2V,所以我的cadence设置如下图所示:
对于cadence的设置如图:
,但仿出来的数字端口dn_out,up_out结果却全为0;理论结果应该是UP_OUT,跟DN_out都要有高电平输出的.请问我的问题出在哪儿呢?请给位大神指点一下小弟,多谢了.... |
|