uj5u.com熱心網友回復:
建議換本書,正規都會寫 “程式”uj5u.com熱心網友回復:
寫錯了,都不會寫“程式”,而且這代碼有大的問題
uj5u.com熱心網友回復:
代碼沒錯,允許這么使用。能仿真,能綜合。這實際上是個三態總線的選擇,選不中總線就置高阻,讓別的邏輯去判斷選擇。只要能控制好 ALU,SUM_ALL,LOG,CALL 的值,避免同時選中就沒問題。
實際上看書學習的同時,實際操練一番模擬仿真一下對學習更有幫助。
wire [15:0] res;
wire [15:0] log = 16'haaaa;
wire [15:0] sum = 16'h5555;
wire [15:0] pc = 16'h00ff;
wire ALU;
wire SUM_ALL;
wire LOG;
wire CALL;
reg [3:0] res_cnt_r;
assign res = (ALU&SUM_ALL) ? sum:16'bz;
assign res = (ALU&LOG) ? log:16'bz;
assign res = CALL ? pc:16'bz;
assign ALU = res_cnt_r[0];
assign SUM_ALL = res_cnt_r[1];
assign LOG = res_cnt_r[2];
assign CALL = res_cnt_r[3];
always@(posedge clk)
begin
if(rst_n == 0)
res_cnt_r <= 0;
else
res_cnt_r <= res_cnt_r + 1;
end
看看仿真結果
uj5u.com熱心網友回復:
謝謝呀,我自己練習下試試。
uj5u.com熱心網友回復:
代碼撰寫沒有錯的,可以這樣用;樓上說的對的,避免三個assign陳述句同時占用介面就行的。但是建議設計時候不要這樣寫,最好放到一個assign里面;
verilog軟體測驗時候,這種寫法是會報錯的。
uj5u.com熱心網友回復:
建議去找一些經典的數字設計的書籍,結合邏輯電路學習Verilog。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27349.html
標籤:硬件設計
上一篇:求教,這是我用ADS1115采集到的ADC值與輸入的模擬電壓的函式圖,錯誤出在哪里
下一篇:用Verilog HDL設計一個閏年計算器,計算的時間范圍是1900年-2100年,年份的輸入用開關采用BCD碼的方式,輸出為一個發光二極管,發光二極管亮為閏年
