欢迎来到天天文库
浏览记录
ID:27881006
大小:29.00 KB
页数:4页
时间:2018-12-06
《常见的Verilog行为级描述语法.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、常见的Verilog行为级描述语法 常见的模块介绍:选择器;译码器;解码器;比较器。这里我们主要从常见的Verilog描述的层面去介绍,而不着重考虑电路。将会提到的Verilog语句有条件选择语句,case语句,if-else。 选择器:电路示意图如下。根据SEL信号,选择将D0还是D1,或者D3传递给D_O。即根据SEL信号选择,将某一个输入信号传递给D_O。 对于只有两个输入信号的选择器,我们可以用单层条件选择语句描述。例如输入只有D0,D1两个。那么SEL只要为单bit即可实现选择。SEL为0时,选择将D0传递给D_O;SE
2、L为1时,选择将D1传递给D_O; assignD_O=(SEL)?D1:D0; 注意:条件选择语句功能:当()里面的expression0的条件为真时,则选择第一个表达式expression1里面的结果,否则选择:后面expression2的结果。结构如下: assignout=(expression0)?expression1:expression2 有多个输入信号时。例如:有3个输入,D0,D1,D2;因为2的2次方等于4,故SEL最小的位宽应该为2。若要实现如下选择功能。 对应可以使用case语句描述: reg[7:0]
3、D_O; always@(*)begin case(SEL[1:0]) 2b00:D_O=D0; 2b01:D_O=D1; 2b10:D_O=D2; default:D_O=h0; endcase end 注意:case语句,如果SEL的所有组合没有列全,最好在最后要加上default:...项,使得信号完整。如此综合出来的电路才不会出现锁存器。 对应的可以用case语句去描述它的功能: reg[7:0]D_O; always@(*)begin case(D_IN[2:0]) 3b000:D_O=8b1111_1
4、110; 3b001:D_O=8b1111_1101; 3b010:D_O=8b1111_1011; 3b011:D_O=8b1111_0111; 3b100:D_O=8b1110_1111; 3b101:D_O=8b1101_1111; 3b110:D_O=8b1011_1111; 3b111:D_O=8b0111_1111; endcase end 同样对于8-3解码器,大家可以自行去练手。 比较器,或者说判断器。比如比较两个数的大小,当a>b是,输出信号en为高,否则为低。 if-else描述: regen;
5、 always@(*) if(a>b) en=1; else en=0; 当然也可以用条件选择语句: wireen; assignen=(a>b)?1b1:1b0; 本文重在通过逻辑实例帮助大家理解常见的Verilog逻辑描述语言。大家在知道自己要实现的功能的情况下,去选择合适的描述方式。
此文档下载收益归作者所有