作者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://www.ptt.cc/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
→ hsnuyi: 去用Xilinx ISE跑跑看 ncverilog有很多bug... 05/22 15:31
推 yac6503: 別用combination觸發 容易有glitch很危險 05/22 23:04
→ hsnuyi: 可以加電路排除glitch 05/26 22:04