试用 verilog hdl 语言中的 case 语句描述 F=AB+AC+BC
- 教育综合
- 2024-08-26 07:57:31
求助!懂verilog HDL语言的来
(1) 模块名称“38”错误,Verilog中标识符是一组数字、字母、下划线、$的组合,但开头必须是字母。(2) always@(B) 中敏感变量列表里改成A
(3) 端口声明时用的是大写字母A,程序case语句里用的是小写a,Verilog区分大小写,所以提示变量未定义。应该前后统一。
(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 @语句中定义一个状态变量state,比如在3——80时是state=1,当然也可以用逻辑语句。然后再在主状态机里进行对于state的判断。verilog hdl 中case() casez() casex()有什么区别呢?
verilog HDL针对电路的特性提供了case语句的其他两种形式,即casez和casex,这可以用来处理比较过程中不必考虑是情况。其中casez语句用来处理不必考虑高阻z的比较过程,casex语句则将高阻值和不定值都视为不必关心的情况。所谓不必关心的情况,就是在表达式进行比较时,不将该位的状态考虑在内。还不明白的话,看一下他们的真值表就清楚了verilog HDL中casex 语句的行为描述
坦白说 我觉得这个程序不是太严格 当出现11111时怎么办……展开全文阅读
下一篇
返回列表