試用 verilog hdl 語言中的 case 語句描述 F=AB+AC+BC
- 教育綜合
- 2024-08-26 07:57:31
求助!懂verilog HDL語言的來
(1) 模塊名稱“38”錯誤,Verilog中標識符是一組數(shù)字、字母、下劃線、$的組合,但開頭必須是字母。(2) always@(B) 中敏感變量列表里改成A
(3) 端口聲明時用的是大寫字母A,程序case語句里用的是小寫a,Verilog區(qū)分大小寫,所以提示變量未定義。應該前后統(tǒng)一。
(4) 建議用case語句時加上default,雖然程序中A的取值不可能超過你所列的值。
verilog HDL 編程、用case語句做。
看下代碼有沒有問題,若有請留言,沒有請給份!module select
(
clk,rst,
a,s,
y
);
input [3:1]a;
input [1:0]s;
output outy;
reg y;
always @( posedge clk or negedge rst )
if( !rst )
y <= 1'bz;
else
case( s )
2'b00:
y <= a[1];
2'b01:
y <= a[2];
2'b10:
y <= a[1];
2'b11:
y <= a[3];
endcase
assign outy = y;
endmodule
在 verilog HDL 語言里面 case 語句分支 表示一個范圍,如3~80 該怎么寫。
可以在一個always @語句中定義一個狀態(tài)變量state,比如在3——80時是state=1,當然也可以用邏輯語句。然后再在主狀態(tài)機里進行對于state的判斷。verilog hdl 中case() casez() casex()有什么區(qū)別呢?
verilog HDL針對電路的特性提供了case語句的其他兩種形式,即casez和casex,這可以用來處理比較過程中不必考慮是情況。其中casez語句用來處理不必考慮高阻z的比較過程,casex語句則將高阻值和不定值都視為不必關心的情況。所謂不必關心的情況,就是在表達式進行比較時,不將該位的狀態(tài)考慮在內。還不明白的話,看一下他們的真值表就清楚了verilog HDL中casex 語句的行為描述
坦白說 我覺得這個程序不是太嚴格 當出現(xiàn)11111時怎么辦……展開全文閱讀
下一篇
返回列表