作者daughtry (daughtry)
看板Electronics
标题[问题]combinational output作为sequential触发
时间Fri May 22 02:20:19 2015
各位大大好
今天在写verilog时遇到一个问题
使用的是ncverilog未使用simulation model
电路图:
http://i.imgur.com/HojuKrZ.jpg
波形:
http://i.imgur.com/JfUA7WM.jpg
波形内容:
D_clk为B与clk做XOR
D_clk正缘触发时D=B
问题:
在红圈处D却在非正缘的时候改变
想请问:
1.combinational circuit 处理时有cell delay 如果来不及传给下一级我可以理解,
为何在没有使用simulation model的情况下是属於理想状态就不会有这个问题吧?
但是连我使用modelsim时也是一样的结果.
2.combinational circuit 似乎有一段转换的时间output会为乱数才是正确的结果.
是因为这个关系才导致他没有办法判断触发条件吗?
但是除了红圈处其他地方都有正确判断,让我实在很困惑.
请问使用combinational circuit output 当作触发这种用法难道是不行的吗?
麻烦各位大大了
谢谢耐心看完
附上verilog code:
module test(clk,reset,out);
input clk,reset;
output out;
reg A;
reg B;
reg D;
wire D_clk;
assign out=~D;
assign D_clk=clk^B;
always @(posedge clk or negedge reset)
begin
if(!reset)
begin
A<=1'b0;
B<=1'b0;
end
else
begin
A<=~D;
B<=A;
end
end
always@(posedge D_clk or negedge reset)
begin
if(!reset)
begin
D<=1'b0;
end
else
begin
D<=B;
end
end
endmodule
test档仅input clk and reset
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.8.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1432232422.A.199.html
※ 编辑: daughtry (111.248.8.242), 05/22/2015 02:54:50
※ 编辑: daughtry (111.248.8.242), 05/22/2015 03:11:15
1F:→ hsnuyi: 去用Xilinx ISE跑跑看 ncverilog有很多bug... 05/22 15:31
2F:推 yac6503: 别用combination触发 容易有glitch很危险 05/22 23:04
3F:→ hsnuyi: 可以加电路排除glitch 05/26 22:04