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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1499|回复: 1

[求助] 时序电路仿真结果不定状态

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

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

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

x
我是小白自学Verilog一周,写了一个时序逻辑电路(电路图贴出来了)代码如下:
module D_latch_posedge(q,q_bar,data,clk);
  output  q,q_bar;
  input   data,clk;
  reg     q;
  assign  q_bar = ~q;

  always @(posedge clk)
    begin
    q <= data;
    end
endmodule

module BCD_tran_E3C(b_out,b_in,clk);
  output  b_out;
  input   b_in,clk;
  wire    q0,q1,q2,q0_bar,q1_bar,q2_bar;
  wire    D2;
  assign  D2 = ((q1_bar & q0_bar & b_in)|(q2_bar & q0 & ~b_in)|(q2 & q1 & q0));

  D_latch_posedge M1(q0,q0_bar,q1_bar,clk);
  D_latch_posedge M2(q1,q1_bar,q0,clk);
  D_latch_posedge M3(q2,q2_bar,D2,clk);

  assign  b_out = ((q2_bar & ~b_in)|(q2_bar & b_in));
endmodule


检测上面那个D锁存器是没有问题的,问题应该在下面(BCD转余三码的电路)
测试代码如下:
module t_BCD_tran_E3C();
  reg  clk=0,b_in;
  wire b_out;
  BCD_tran_E3C  M1(b_out,b_in,clk);

  initial begin
  #40 $finish;
  end

  parameter cnt = 10;

  initial begin:inputclk
  forever
  begin
   # (cnt/2) clk = 1;
   # (cnt/2) clk = 0;
  end
  end

  initial begin:inputdata
  b_in = 0;
  #20 b_in = 1;
  #10 b_in = 0;
  end  
endmodule


modelsim里面测试结果总是不定状态,调了一天也想不明白问题在哪,求助大家!(图片是电路图和希望的仿真结果)
BCD.jpg
发表于 2023-1-17 14:48:38 | 显示全部楼层
dff reset 一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 23:28 , Processed in 0.015026 second(s), 7 queries , Gzip On, Redis On.

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