2014-01-19 35 views
0

所以值分配給輸出數組,我有一個LED [7:0],和我有一個循環,循環7次,所以我嘗試做這個作業如何用Verilog

for(i=0;i<=7;i++) 
    LED[i] = (some logics) 

這只是給我的錯誤:在分配必須有一個變量的數據類型「的左側對象

,但如果我這樣編寫的:?

LED[0] = ... 
LED[1] = ... 
    . 
    . 
    . 

它的工作原理,我使用的石英II的Verilog,所以,這一直在困擾我整整一天...謝謝大家這麼多

+3

請出示真正的代碼。我認爲你有什麼可以工作,但需要看看你的領導聲明和圍繞這個循環的是什麼。 – Tim

+0

使用'for'循環看起來像是矯枉過正。爲什麼不LED =(某些邏輯)? – toolic

+0

不知道爲什麼這是downvoted。 wire/reg的東西是完全不合邏輯的,它引起混淆並不奇怪。 – EML

回答

1

對於邏輯,你可能想使用用於生成循環:

generate 
    for (i=0; i<8; i=i+1) begin : led_loop 
     assign LED[i] = (some logic); 
    end 
endgenerate 
+1

對於always塊內部的循環,如果它們可以靜態展開,則它們是可合成的,看起來像錯誤指向右側的某些東西。 – Morgan

+0

@Morgan:我認爲LED被定義爲導線,而它應該是reg。 – Qiu

+1

當然,但他所要做的就是將其聲明爲reg。一個生成對此是矯枉過正的。哦 - 將i ++修復爲i = i + 1,假設這實際上是Verilog。 – EML