Electronics 板


LINE

各位先進好 我在寫verilog想在always裡給值遇到了問題 例如 reg [3:0] x [3:0]; reg [1:0] cnt; integer i; always@(posedge clk, negedge rst) begin if (!rst) cnt <= 0; else cnt <= cnt+1; end always@(posedge clk, negedge rst) begin if (rst) begin for (i=0;i<4;i=i+1) x[i] <= 0; end else begin x[cnt] <= 1; for (i=0;i<cnt;i=i+1) x[i] <= x[i]; for (i=cnt+1;i<4;i=i+1) x[i] <= x[i]; end end 但是雖然rtl可過 dc出現error:for迴圈變數初始值不能為變數 請問這種根據cnt而選擇哪個x 但是又必須給予其他x不變的資訊 要如何做到呢 謝謝~ --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.77.123
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1541125656.A.535.html
1F:推 hank821017: 把x[cnt]後面的for全刪掉就行了 11/02 10:49
2F:→ gapuu: 請問這樣不會產生latch嗎 11/02 12:05
3F:推 hsucheng: for的意義是複製電路,迴圈請改用fsm 11/02 12:21
4F:→ hsucheng: 別把verilog當c寫 11/02 12:22
5F:→ hank821017: 印象中sequential這樣沒事 comb的才會出現latch 11/02 12:59
6F:→ gapuu: fsm還在熟悉中 比較習慣一個階段完成後再給另一個階段啟動 11/02 13:15
7F:→ gapuu: 號 感謝兩位的回答~ 11/02 13:16
8F:→ hsucheng: 一個階段完成之後做下一個,不就是fsm? 11/02 13:50
9F:→ hsucheng: 你的always 都是同時執行,這樣寫又何來另外啟動? 11/02 13:50
10F:→ hsucheng: verilog不能用你”習慣”的c語言寫 這是硬體 11/02 13:53
11F:推 st955272: !rst 11/02 18:36
12F:推 htps0763: 你可以試試再for迴圈裡寫if else,就會變成數個多工器, 11/03 11:14
13F:→ htps0763: for迴圈只能用來複製電路所以執行次數不能是動態的 11/03 11:14
14F:→ htps0763: 不過你這是循序,所以沒寫就會變成維持,組合電路就不 11/03 11:16
15F:→ htps0763: 行了 11/03 11:16
16F:推 bakerly: 針對你對合成latch的疑問,verilig always block 裡的訊 11/03 12:23
17F:→ bakerly: 號不寫預設就是維持,所以如果寫齊只是為了寫出自已給自 11/03 12:24
18F:→ bakerly: 己,那和預設是一樣的,不會影響到會不會合出latch. 11/03 12:24
19F:推 rbufghj9713: 負緣出發reset好像一定要if(!rst),原因我不太清楚 11/03 14:19
20F:推 bakerly: 因為負緣觸發,當負緣發生後進這個always執行,此時rst一 11/03 14:55
21F:→ bakerly: 定為0,你寫if(rst)永遠不會成立等於沒寫,所以一定會寫i 11/03 14:55
22F:→ bakerly: f(!rst)。話說原po這裡寫錯了,會沒有reset值。 11/03 14:55
23F:→ gapuu: 啊真的 謝謝提醒 11/03 17:41
※ 編輯: gapuu (223.140.80.59), 11/03/2018 17:42:15
24F:→ gapuu: 修正:rst -> !rst 11/03 17:43
25F:推 mmonkeyboyy: for loop不能用來動態增加元件 11/03 22:51
26F:→ mmonkeyboyy: 最多只能用來叫出已有元件 11/03 22:51
27F:→ mmonkeyboyy: 你每一行code 如果是可以被synthesize 都是有對應元 11/03 22:53
28F:→ mmonkeyboyy: 件 所以一般我都建議沒事不要用for 11/03 22:54
29F:推 mmonkeyboyy: incomplete assignment 在combinational才有latch 11/03 23:02
30F:→ mmonkeyboyy: 遇到可以用開頭default避掉(但也不建議) 11/03 23:03
31F:→ mmonkeyboyy: 一般都寧願多寫點廢code少出錯 11/03 23:03
32F:→ mmonkeyboyy: 在sequential裡 因為你本來就reg在維持了 所以可以 11/03 23:04
33F:→ mmonkeyboyy: 不用管 另一個小技是在sequential logic裡 11/03 23:05
34F:→ mmonkeyboyy: 一般 通常情況下 你只要寫你想變化的就好 11/03 23:05
35F:→ mmonkeyboyy: 雖然大家現在都用SV啦 但有些語法其實不太適合硬體 11/03 23:07
36F:→ mmonkeyboyy: 還是要有些區別 那些比較專屬verification用 11/03 23:07
37F:→ gapuu: 學長說sv大部份都是驗證在用.. 所以其實變主流了嗎 11/03 23:26
38F:推 mmonkeyboyy: 是subset superset的問題了 11/03 23:34
39F:→ hsucheng: 套有一位版友說的,用for不是高手就是新手 11/04 00:11
40F:推 mmonkeyboyy: 也沒這麼難懂 概念是需要把多行並一行的在用for 11/04 08:14
41F:推 star99: 你!reset 那裡少了一個end 那樣會有些合成問題 11/19 02:04







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP