常见的模块介绍:选择器;译码器;解码器;比较器。这里我们主要从常见的verilog描述的层面去介绍,而不着重考虑电路。将会提到的verilog语句有 条件选择语句,case语句,if-else。
选择器:电路示意图如下。根据sel信号,选择将d0还是d1,或者d3传递给d_o。即根据sel信号选择,将某一个输入信号传递给d_o。
对于只有两个输入信号的选择器,我们可以用单层条件选择语句描述。例如输入只有d0,d1两个。那么sel只要为单bit即可实现选择。sel为0时,选择将d0传递给d_o;sel为1时,选择将d1传递给d_o;
assign d_o = (sel) ? d1:d0;注意:条件选择语句功能: 当 ( ) 里面的 expression0 的条件为真时,则选择第一个表达式expression1里面的结果,否则选择 :后面expression2的结果。结构如下:
assign out = (expression0) ? expression1 : expression2有多个输入信号时。例如:有3个输入,d0,d1,d2; 因为2的2次方等于4,故sel最小的位宽应该为2。若要实现如下选择功能。
对应可以使用 case 语句描述:
reg[7:0] 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: ... 项,使得信号完整。如此综合出来的电路才不会出现锁存器。
3-8译码器,功能如下真值表:
对应的可以用case语句去描述它的功能:
reg[7:0] d_o;*always @(*) begin*case(d_in[2:0])*3b000: d_o = 8b1111_1110;*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描述:
reg en;*always @( * )*if( a>b )*en = 1;*else*en = 0;*当然也可以用条件选择语句:
wire en;*assign en = (a>b) ?1b1 : 1b0;*本文重在通过逻辑实例帮助大家理解常见的verilog逻辑描述语言。大家在知道自己要实现的功能的情况下,去选择合适的描述方式。
业界首部5G使能千行百业的系统性专著——《5GtoB如何使能千行百业》预发布会
基于高压同步整流架构的AP8505/AP8507
物联网智能家居是不是就是物联网了?
节电器有用吗_节电器真的能省电吗
英特尔积极拥抱ARM 能否打通物联网变革之路?
常见的Verilog行为级描述语法
浅谈VHDL/Verilog的可综合性以及对初学者的一些建议
雨量实时监测系统的应用领域都有哪些
无人机测绘是现在无人机在工程领域的研究重心所在
浅析IGBT中的MOS结构—Rds(on)
你试过吗?电子工程师硬件设计版本这样管控最高效
魏少军教授:IC市场获利空间大,但企业仍面临几大问题
区块链驱动电网如何去升级
光控、单按键开关壁座电路图
lcd与lcm的区别是什么?
罗马仕2W毫安sense6评测 一个顶两甚至顶仨还能带上飞机
基于FPGA器件FLEX10k30A实现成形滤波器的设计
科学家研发新型散热石墨膜,可完美解决手机发热问题
为数字经济强“芯” | 加速科技亮剑2021中国国际数字经济博览会
4-20mA电压转光纤模拟量光端机PLC电流量光纤采集模块