[問題]combinational output作為sequential觸發

看板Electronics作者 (daughtry)時間10年前 (2015/05/22 02:20), 10年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
各位大大好 今天在寫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

05/22 15:31, , 1F
去用Xilinx ISE跑跑看 ncverilog有很多bug...
05/22 15:31, 1F

05/22 23:04, , 2F
別用combination觸發 容易有glitch很危險
05/22 23:04, 2F

05/26 22:04, , 3F
可以加電路排除glitch
05/26 22:04, 3F
文章代碼(AID): #1LNY7c6P (Electronics)