2014-01-09 102 views
0

請誰能幫我寫兩個條件語句,例如 兩者應該給予相同的輸出...例如:Verilog的條件表達式

如果我寫了下面這是給輸出,但 與所提到的方法大量延遲

if(count==3'd2 || i<=16'd8192) begin 
    count = 3'd1; 
    AL1 = x[i]+x[i+1]; 
    DL1 = x[i]-x[i+1]; 
    i  = i+2; 
end 
else begin 
    count = count+1'd1; 
    i  = 16'd0; 
end 

我得到錯誤,如果這樣寫代碼...

if (i<=16'd8192) begin 
    if (count==3'd2) begin 
    count = 3'd1; 
    AL1 = x[i]+x[i+1]; 
    DL1 = x[i]-x[i+1]; 
    i  = i+2; 
    end 
    else begin 
    count = count+1'd1; 
    end 
else begin 
    i  = 16'd0; 
end 

請幫我這個

回答

1

問題代碼在功能上是不一樣的還是語法錯誤?

這兩個代碼示例都有一個尾隨end,我在格式化問題中的代碼時已將其刪除。

Verilogs開始結束語法的if語句是:

if (condition a) begin 
    // a true 
end 
else begin 
    // a false 
end 

隨着次級嵌入式有條件的將是:

if (condition a) begin 
    if (condition b) begin 
    // a & b true 
    end 
    else begin 
    // a true b false 
    end 
end 
else begin 
    // a false 
end 

如果這是採用更嚴格的縮進風格編碼便會在問題有助於發現這些錯誤。

+0

我試着用第二種方法運行代碼......但最初我面臨一些錯誤......現在我得到了輸出......謝謝你摩根.. – user3178637

+0

@ user3178637優秀。 – Morgan