查看完整版本: Verilog程式與語法問題
頁: [1]

mitchlin02 發表於 2013-9-8 02:21 PM

Verilog程式與語法問題

最近我設計一組程式 但其中我有寫一個解碼器 但我發現 當輸入S0這次跟上次一樣時 他就不會有輸出呢
我有想過有 i f 跟 case 結合 但我不是很懂這2個語法要怎麼結合 有人可以跟我說嗎  新手不好意思 ><

下面我寫的解碼器


module Decoder(S0,CLK,D1,D2,D3,D4);
input S0;
input CLK;
output D1,D2,D3,D4;
reg D1,D2,D3,D4;

always @ (posedge CLK)
begin
                case ({S0})
                        4'd0:begin D1=0;D2=0;D3=0;D4=0; end
                        4'd1:begin D1=1;D2=0;D3=0;D4=0; end
                        4'd2:begin D1=0;D2=1;D3=0;D4=0; end
                        4'd3:begin D1=1;D2=1;D3=0;D4=0; end
                        4'd4:begin D1=0;D2=0;D3=1;D4=0; end
                        4'd5:begin D1=1;D2=0;D3=1;D4=0; end
                        4'd6:begin D1=0;D2=1;D3=1;D4=0; end
                        4'd7:begin D1=1;D2=1;D3=1;D4=0; end
                        4'd8:begin D1=0;D2=0;D3=0;D4=1; end
                        4'd9:begin D1=1;D2=0;D3=0;D4=1; end
                        4'd10:begin D1=0;D2=1;D3=0;D4=1; end
                        4'd11:begin D1=1;D2=1;D3=0;D4=1; end
                        4'd12:begin D1=0;D2=0;D3=1;D4=1; end
                        4'd13:begin D1=1;D2=0;D3=1;D4=1; end
                        4'd14:begin D1=0;D2=1;D3=1;D4=1; end
                        4'd15:begin D1=1;D2=1;D3=1;D4=1; end

                endcase
end
endmodule


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

i100179398 發表於 2013-9-9 11:26 PM

"當輸入S0這次跟上次一樣時 他就不會有輸出呢"

不太懂你這句話的意思  是指輸出沒變?

還有一個問題 原code可以直接寫成

always @ (posedge CLK)
begin
   {D4,D3,D2,D1} <=  S0;
end

如果我沒看錯的話@@
太久沒寫XDD

mitchlin02 發表於 2013-9-15 09:51 AM

i100179398 發表於 2013-9-9 11:26 PM static/image/common/back.gif
"當輸入S0這次跟上次一樣時 他就不會有輸出呢"

不太懂你這句話的意思  是指輸出沒變?


以經解決了  但還是謝謝你喔  {:31:}

chenwutai 發表於 2024-5-10 08:33 AM

有點奇怪, 你這個寫法似乎是blocking , 如果要用clock 敲過, 是否改用non-blocking 較好?
頁: [1]