[問題] 為何if條件沒寫滿就是一個latch?

看板Electronics作者 (文子水交)時間13年前 (2013/01/06 11:37), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
不好意思有點小小的疑問想請問一下 在寫verilog時 總是被說希望合成出來的是flip-flop而不是latch 而最平常在說的就是if有寫就要寫else 像是如果 always @ (posedge clk) begin if(reset) a<=0; end 這樣寫電路合成就會是latch不是flipflop(應該是吧?) 我記得我之前看過latch是說在clk=1的時候都會給值這樣 然後flipflop是只有在edge的時候才會給值 這樣來看這個always block不是也只有在rising edge才進入這個判斷式的話 為何大家還是會說這樣寫會有產生latch的風險呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.65.154

01/06 12:39, , 1F
如果是"只有"這樣寫的話 只會有DFF 拿去合成一下就知道了
01/06 12:39, 1F

01/06 12:41, , 2F
但你用時應該還會有更多東東 沒看到完整不敢肯定會不會
01/06 12:41, 2F

01/06 12:43, , 3F
只能說 code沒寫清楚話 軟體自己去解釋他 可能跟你意思不同
01/06 12:43, 3F
文章代碼(AID): #1GwF5zqz (Electronics)