[問題] verilog合成有latch...

看板Electronics作者 (名器)時間13年前 (2012/08/07 20:33), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
想請問板上高手們 有沒有其他的問題會導致latch的阿????? 因為我很確定我 if ,else if,else 或是 case,default,endcase都有寫 可是合成完卻跟我說我有latch.... if(seq_numb==1 && shift==0 && count==1) begin X2=X1; Y2=Y1; Z2=Z1; end else if(seq_numb==2 && shift==0 && count==1) begin sum=((X2-X1)*(X2-X1))+((Y2-Y1)*(Y2-Y1))+((Z2-Z1)*(Z2-Z1)); seq_numb=1; end else sum=1'bx; 這是部分的程式碼(syn.log說X2,Y2,Z2有latch 這是我唯一X2,Y2,Z2有變化的地方).. 想請問這邊有問題嗎? 還是我條件寫太多???? 還是我if和else if裡面寫錯? 這是我第二次寫verilog而已...只有c語言的概念這樣.. 如果這邊沒有錯的話 我會再附上別的地方的code 有請高手幫忙一下 感激不盡m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.228.138

08/07 20:46, , 1F
X2在else if及else的地方沒說的的值為何 就會產生latch來存
08/07 20:46, 1F

08/07 20:46, , 2F
住之前的值 其他的變數也同理
08/07 20:46, 2F

08/07 20:47, , 3F
夭壽...沒想到真的是因為這樣...
08/07 20:47, 3F

08/07 20:48, , 4F
那我整個code都要改了...崩潰
08/07 20:48, 4F

08/07 20:48, , 5F
謝謝lovepy大大
08/07 20:48, 5F

08/08 13:58, , 6F
重點是每個變數要存在於if ...else if裡 主角是變數
08/08 13:58, 6F

08/11 14:23, , 7F
1你這寫法是要合出combination logic?別用寫C的想法去寫
08/11 14:23, 7F

08/11 14:28, , 8F
不然不好預期合成出來的電路喔
08/11 14:28, 8F

10/01 07:14, , 9F
if,else if和else裡面都要assign值給X2,Y2,Z2,sum
10/01 07:14, 9F

10/01 07:14, , 10F
和seq_numb才不會出現latch...
10/01 07:14, 10F
文章代碼(AID): #1G8GiQcH (Electronics)