【2017年整理】四Verilog_HDL常用组合电路设计

上传人:豆浆 文档编号:46087955 上传时间:2018-06-22 格式:PPT 页数:34 大小:519KB
返回 下载 相关 举报
【2017年整理】四Verilog_HDL常用组合电路设计_第1页
第1页 / 共34页
【2017年整理】四Verilog_HDL常用组合电路设计_第2页
第2页 / 共34页
【2017年整理】四Verilog_HDL常用组合电路设计_第3页
第3页 / 共34页
【2017年整理】四Verilog_HDL常用组合电路设计_第4页
第4页 / 共34页
【2017年整理】四Verilog_HDL常用组合电路设计_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《【2017年整理】四Verilog_HDL常用组合电路设计》由会员分享,可在线阅读,更多相关《【2017年整理】四Verilog_HDL常用组合电路设计(34页珍藏版)》请在金锄头文库上搜索。

1、 常用组合电路设计指导主要内容 uMUX设计 u加法器电路 u译码器设计 u7段显示译码器设计 u编码器设计组合逻辑电路定义n组合逻辑含义:电路任一时刻的输出状态只决定 于该时刻各输入状态的组合,而与电路 的原状态无关。组合电路就是由门电路 组合而成,电路中没有记忆单元,没有 反馈通路。组合逻辑建模方法n建模思路:用语言表述出来:针对输入,总有确定的输出,输入一变化,输出就随 之变化n建模规范:1.过程(进程)之外,本来就是并行,直 接建模2.过程(进程)之内:a.所有输入变化立 刻变化。b.针对输入,输出有确定值Verilog 过程及译码电路nalways 过程语句nalways定义的过程块

2、是一个电路,电路 从上电开始就会一直执行;n (从代码一开始就执行,执行完了再 回到过程块的最初来执行,周而复始, 不会停止,直到代码执行完毕) 多路选择器(MUX)u用case语句实现多路选择器,一 般要求选择信号之间是关联的;uCase的多路选择器一般是并行的 操作。/*mux4_1.v参考设计(1) */ module mux4_1(a,b,c,d,sel,dout);input a,b,c,d;input 1:0 sel; output dout;reg dout; always(a or b or c or d or sel)begin case(sel) 2b00:dout=a;2

3、b01:dout=b; 2b10:dout=c; 2b11:dout=d; endcaseend endmodule/*mux4_1.v参考设计(2) */ module mux4_1(a,b,c,d,sel,dout);input a,b,c,d;input 1:0 sel; output dout;reg dout; always(a or b or c or d or sel)begin if(sel=2b00) dout=a;else if(sel=2b01) dout=b; else if(sel=2b10) dout=c; elsedout=d;end endmodule/*mux

4、4_1.v参考设计(3) */ module mux4_1(a,b,c,d,sel,dout);input a,b,c,d;input 1:0 sel; output dout;wire dout; assign dout=(sel=2b00)?a:(sel=2b01)?b:(sel=2b10)?c:d; endmodule半加器电路n真值表a1a2bc 0000 0110 1010 1101半加器n能对两个一位二进制数相加,求得其和 值及进位的逻辑电路称为半加器。半加 器的特点是:只考虑两个一位二进制数 的相加,而不考虑来自低位进位的运算 电路,称为半加器。任务7中设计的一位 加法器级为半加

5、器。加法器电路n根据上述的真值关系,可以得到两个布 尔代数表达式如下:n根据上述表达式,按照原理图的方法设 计加法器,原理图如图1所示。n图1 一位加法器原理图半加器电路原理图根据上述的真值关系,可以得到两个布尔代数表达式如下:根据上述表达式,按照原理图的方法设计 加法器, 原理图如图1所示。图图1 一位加法器原理图图/*adder.v参考设计(1) */ module adder( a1, a2, b, c ); input a1,a2; output b; output c; wire b,c; assign b=a1a2; assign c=a endmodule /*adder.v参考

6、设计(2) */ module adder( a1, a2, b, c ); input a1,a2; output b; output c; wire b,c; assign c,b=a1+a2; endmodule 全加器n一位二进制数相加不仅要考虑本位的加数与被 加数,还要考虑低位的进位信号,而输出包括 本位和以及向高位的进位信号,这就是通常所 说的全加器。一位全加器是构成多位加法器的 基础,应用非常广泛。n一位全加器有三个输入端(两个加数Ai和Bi, 以及低位的进位Ci-1),输出有两个(加法和 Si、加法向高位的进位Ci),全加器电路框图 如图2所示,真值表如表2所示。全加器图图2

7、全加器框图图表2 全加器真值值表全加器一位全加器/*一位全加器的数据流建模(1): */ module fa_adder(a,b,cin,sum,count) input a,b,cin; output sum,count; reg sum,count;reg t1,t2,t3; always(a or b or cin) beginsum =(ab)cin;t1= a t2= b t3= a count=(t1|t2)|t3; end endmoduleAlways块内赋值 必须定义为regBegin和end之间 语句是顺序执行/*一位全加器的行为建模(2): */ module fa_be

8、hav1(a,b,cin,sum,count) input a,b,cin; output sum,count; reg sum,count;always(a or b or cin) begincount,sum=a + b + cin; end endmodule直接采用“”来 描述,低位放在 sum变量中,进位 放在count中两位全加器设计译码器(decode)u译码器是组合逻辑电路的一个重要 器件,一般分为变量译码和显示译码 两类。变量译码通常是一种较少输入 、较多输出的器件,分为2n译码和 8421BCD码译码两类。 u因为译码相信号之间是关联的,因 此译码器一般用case语句实现

9、;3-8译码器u3-8译码器是一种2n译码器,其功能是把 二进制编码的3位数经过译码变为8路输出 ,一次只有一个输出为选通有效。表1 3-8译码译码 器器真值值表输输入输输出A1A2A3S1S2S3S4S5S6S7S700010000000 00101000000 01000100000 01100010000 10000001000 10100000100 11000000010 11100000001/*dec3_8.v参考设计 */ module dec3_8(ain, dout);input 2:0 ain; output 7:0 dout;reg 7:0 dout; always(a

10、in )begin case(ain)3b000:dout=8b0000_0001;3b001:dout=8b0000_0010;3b010:dout=8b0000_0100; 3b011:dout=8b0000_1000; 3b100:dout=8b0001_0000;3b101:dout=8b0010_0000; 3b110:dout=8b0100_0000; 3b111:dout=8b1000_0000;default:dout=8b0000_0000; endcaseend endmodule七段显示译码器设计一、目的 (1) 设计一个BCD码-7段线译码器; (2) 学习用Veril

11、og HDL进行逻辑描述; (3) 熟悉case语句的用法。二.设计要求七段显示译码器可直接驱动七段数码 管,七段数码管结构如下图所示:考 虑设计一个7段译码器,用于驱动共 阴极接地的七段数码管,并规定用1 表示数码管中线段的点亮状态,0表 示线段的熄灭状态LED数码管结构图参考设计module bin27seg (data_in ,data_out ); input 3:0 data_in ; output 6:0 data_out ; reg 6:0 data_out ; always (data_in ) begin case (data_in ) 4b0001: data_out =

12、7b0000110; 4b0010: data_out = 7b1011011; 4b0011: data_out = 7b1001111; 4b0100: data_out = 7b1100110; 4b0101: data_out = 7b1101101; 4b0110: data_out = 7b1111101; 4b0111: data_out = 7b0000111; 4b1000: data_out = 7b1111111; 4b1001: data_out = 7b1101111; 4b1010: data_out = 7b1110111; 4b1011: data_out =

13、7b1111100; 4b1100: data_out = 7b0111001; 4b1101: data_out = 7b1011110; 4b1110: data_out = 7b1111001; 4b1111: data_out = 7b1110001; default: data_out = 7b0111111; endcase end endmodule 编码器(encode)考虑设计一个8位输入、3位输出的优先级编 码器,如图所示,为了使用上的方便,还要 考虑到如果输入是无效的,则输出为高阻态 。其中D0D7表示编码器8位输出的高低电 平,A2A0表示3位二进制代码,并规定用X 表示输入为任意状态,用Z表示输出为高阻态 。优先级编码器框图Ver

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 经济/贸易/财会 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号