马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
图1是参照图2写的Verilog综合后的RTL级,但是写了个TB,仿真结果不对,输出的时钟一直保持为0;
- module clk_switch(input CLK_A,
- input CLK_B,
- input SEL,
- output CLK
- );
- wire c1,c2,c3,c4;
- reg r_a;
- reg r_b;
- and and1(c1,SEL,r_b);
- not not1(c2,SEL);
- and and2(c3,c2,r_a);
- always@(posedge CLK_A)
- r_a <= c1;
- always@(posedge CLK_B)
- r_b <= c3;
- wire c5,c6;
- and and3(c5,r_a,CLK_A);
- and and4(c6,r_b,CLK_B);
- or or1(CLK,c5,c6);
- initial
- //$monitor ("CLK=%b,c5=%b,c6=%b",CLK,c5,c6);
- //$monitor ("r_a=%b,r_b=%b",r_a,r_b);
- $monitor ("r_a=%b,r_b=%b,c1=%b,c3=%b",r_a,r_b,c1,c3);
- endmodule
复制代码 代码这样写可以吗? |