Verilog-HDL常用组合电路设计指导_第1页
Verilog-HDL常用组合电路设计指导_第2页
Verilog-HDL常用组合电路设计指导_第3页
Verilog-HDL常用组合电路设计指导_第4页
Verilog-HDL常用组合电路设计指导_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常用组合电路设计指导温国忠

主要内容

MUX设计加法器电路译码器设计7段显示译码器设计编码器设计组合逻辑电路定义组合逻辑含义:电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。组合电路就是由门电路组合而成,电路中没有记忆单元,没有反响通路。组合逻辑建模方法建模思路:用语言表述出来:针对输入,总有确定的输出,输入一变化,输出就随之变化建模标准:1.过程〔进程〕之外,本来就是并行,直接建模2.过程〔进程〕之内:a.所有输入变化立刻变化。b.针对输入,输出有确定值

Verilog过程及译码电路always过程语句always定义的过程块是一个电路,电路从上电开始就会一直执行;〔从代码一开始就执行,执行完了再回到过程块的最初来执行,周而复始,不会停止,直到代码执行完毕〕多路选择器(MUX)用case语句实现多路选择器,一般要求选择信号之间是关联的;Case的多路选择器一般是并行的操作。/******************************************\mux4_1.v参考设计(1)\******************************************/modulemux4_1〔a,b,c,d,sel,dout);inputa,b,c,d;input[1:0]sel;outputdout;regdout;always@(aorborcordorsel)begin case(sel) 2’b00:dout=a;2’b01:dout=b; 2’b10:dout=c; 2’b11:dout=d; endcaseendendmodule

/******************************************\mux4_1.v参考设计(2)\******************************************/modulemux4_1〔a,b,c,d,sel,dout);inputa,b,c,d;input[1:0]sel;outputdout;regdout;always@(aorborcordorsel)begin if(sel==2’b00) dout=a;elseif(sel==2’b01) dout=b; elseif(sel==2’b10) dout=c; else dout=d;endendmodule

/******************************************\mux4_1.v参考设计(3)\******************************************/modulemux4_1〔a,b,c,d,sel,dout);inputa,b,c,d;input[1:0]sel;outputdout;wiredout;assigndout=(sel==2’b00)?a:(sel==2’b01)?b: (sel==2’b10)?c:d;endmodule

半加器电路真值表a1a2bc0000011010101101半加器能对两个一位二进制数相加,求得其和值及进位的逻辑电路称为半加器。半加器的特点是:只考虑两个一位二进制数的相加,而不考虑来自低位进位的运算电路,称为半加器。任务7中设计的一位加法器级为半加器。加法器电路根据上述的真值关系,可以得到两个布尔代数表达式如下:根据上述表达式,按照原理图的方法设计加法器,原理图如图1所示。图1一位加法器原理图半加器电路原理图根据上述的真值关系,可以得到两个布尔代数表达式如下:根据上述表达式,按照原理图的方法设计加法器,原理图如图1所示。图1一位加法器原理图/******************************************\adder.v参考设计〔1〕\******************************************/moduleadder(a1,a2,b,c);inputa1,a2;outputb;outputc;wireb,c;assignb=a1^a2;assignc=a&b;endmodule/******************************************\adder.v参考设计〔2〕\******************************************/moduleadder(a1,a2,b,c);inputa1,a2;outputb;outputc;wireb,c;assign{c,b}=a1+a2;endmodule全加器一位二进制数相加不仅要考虑本位的加数与被加数,还要考虑低位的进位信号,而输出包括本位和以及向高位的进位信号,这就是通常所说的全加器。一位全加器是构成多位加法器的根底,应用非常广泛。一位全加器有三个输入端〔两个加数Ai和Bi,以及低位的进位Ci-1〕,输出有两个〔加法和Si、加法向高位的进位Ci〕,全加器电路框图如图2所示,真值表如表2所示。全加器图2全加器框图表2全加器真值表全加器

一位全加器/*****************************************\一位全加器的数据流建模〔1〕:\*****************************************/modulefa_adder(a,b,cin,sum,count)inputa,b,cin;outputsum,count;regsum,count;regt1,t2,t3;always@(aorborcin)beginsum=(a^b)^cin;t1=a&cin;t2=b&cin;t3=a&b;count=(t1|t2)|t3;endendmoduleAlways块内赋值必须定义为regBegin和end之间语句是顺序执行/*****************************************\一位全加器的行为建模〔2〕:\****************************************/modulefa_behav1(a,b,cin,sum,count)inputa,b,cin;outputsum,count;regsum,count;

always@(aorborcin)begin{count,sum}=a+b+cin;endendmodule直接采用“+”来描述,低位放在sum变量中,进位放在count中两位全加器设计译码器(decode)译码器是组合逻辑电路的一个重要器件,一般分为变量译码和显示译码两类。变量译码通常是一种较少输入、较多输出的器件,分为2n译码和8421BCD码译码两类。

因为译码相信号之间是关联的,因此译码器一般用case语句实现;3-8译码器3-8译码器是一种2n译码器,其功能是把二进制编码的3位数经过译码变为8路输出,一次只有一个输出为选通有效。表13-8译码器器真值表输入输出A1A2A3S1S2S3S4S5S6S7S70001000000000101000000010001000000110001000010000001000101000001001100000001011100000001/******************************************\dec3_8.v参考设计\******************************************/moduledec3_8〔ain,dout);input[2:0]ain;output[7:0]dout;reg[7:0]dout;always@(ain)begin case(ain) 3’b000:dout=8’b0000_0001;3’b001:dout=8’b0000_0010; 3’b010:dout=8’b0000_0100;3’b011:dout=8’b0000_1000;3’b100:dout=8’b0001_0000;3’b101:dout=8’b0010_0000;3’b110:dout=8’b0100_0000;3’b111:dout=8’b1000_0000;default:dout=8’b0000_0000; endcaseendendmodule

七段显示译码器设计一、目的(1)设计一个BCD码-7段线译码器;(2)学习用VerilogHDL进行逻辑描述;(3)熟悉case语句的用法。

二.设计要求七段显示译码器可直接驱动七段数码管,七段数码管结构如以下图所示:考虑设计一个7段译码器,用于驱动共阴极接地的七段数码管,并规定用1表示数码管中线段的点亮状态,0表示线段的熄灭状态LED数码管结构图

参考设计modulebin27seg(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) 4'b0001:data_out=7'b0000110; 4'b0010:data_out=7'b1011011; 4'b0011:data_out=7'b1001111; 4'b0100:data_out=7'b1100110; 4'b0101:data_out=7'b1101101; 4'b0110:data_out=7'b1111101; 4'b0111:data_out=7'b0000111; 4'b1000:data_out=7'b1111111; 4'b1001:data_out=7'b1101111; 4'b1010:data_out=7'b1110111; 4'b1011:data_out=7'b1111100; 4'b1100:data_out=7'b0111001; 4'b1101:data_out=7'b1011110; 4'b1110:data_out=7'b1111001; 4'b1111:data_out=7'b1110001; default:data_out=7'b0111111;endcaseendendmodule编码器〔encode〕考虑设计一个8位输入、3位输出的优先级编码器,如下图,为了使用上的方便,还要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论