版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章
基本逻辑电路设计
第七章基本逻辑电路设计主要内容组合逻辑电路和时序逻辑的概念;组合逻辑电路设计实例;时序逻辑电路设计实例。主要内容组合逻辑电路和时序逻辑的概念;基本概念数字逻辑电路主要分为组合逻辑电路与时序逻辑电路两类;两者都拥有一个或者多个输入信号和输出信号,但是组合逻辑电路的输出只与当前的输入相关,而时序逻辑电路的输出不仅与现在的输入信号相关,而且与过去的输入信号相关;两种逻辑电路都是数字电路系统的重要基本组成部分,是数字系统电路的基本元素。基本概念数字逻辑电路主要分为组合逻辑电路与时序逻辑电路两类7.1组合逻辑电路设计7.7.1、译码器
译码器通常用来产生存储器或者外设的片选信号,也就是说将二进制地址码作为输入,并产生多个选择信号输出。典型的译码器有3-8译码器和4-16译码器。
3-8译码器的核心代码如下:
ENTITYdecoderIS
PORT(A,B,C,Enable:IN
STD_LOGIC;Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecoder;ARCHITECTUREfunOFdecoderIS
SIGNALinput:STD_LOGIC_VECTOR(2DOWNTO0);BEGIN input<=C&B&A;
PROCESS(input,Enable)
BEGIN
IF(Enable='1')THEN--使能输入高电平有效
7.1组合逻辑电路设计7.7.1、译码器7.7.1译码器(续1)3-8译码器的核心代码:CASEinputIS
WHEN"000"=>Y<="11111110";
WHEN"001"=>Y<="11111101";
WHEN"010"=>Y<="11111011"; WHEN"011"=>Y<="11110111"; WHEN"100"=>Y<="11101111"; WHEN"101"=>Y<="11011111"; WHEN"110"=>Y<="10111111"; WHEN"111"=>Y<="01111111";
WHENOTHERS=>NULL;
ENDCASE; ELSE y<="11111111";
ENDIF;
ENDPROCESS;ENDfun;7.7.1译码器(续1)3-8译码器的核心代码:7.7.1译码器(续2)3-8译码器的时序仿真波形如下:7.7.1译码器(续2)3-8译码器的时序仿真波形如下:7.1.2编码器编码器的逻辑功能是将输入信号的高、低电平信号编成一个对应的二进制码。在目前经常使用的编码器有普通编码器和优先编码器两种。在普通编码器中,任何时候只允许一个编码信号出现,否则将出现混乱。但在优先编码器中,允许同时输入两个以上编码信号。在设计优先编码器电路时,需要先将所有的输入信号按优先顺序排好对,当几个输入信号同时出现时,只对优先权最高的一个信号进行编码。7.1.2编码器编码器的逻辑功能是将输入信号的高、低电平7.1.2编码器(续1)8-3线优先编码器的核心代码如下:ENTITYencoderIS
PORT(I:INSTD_LOGIC_VECTOR(7DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(2DOWNTO0);Enable:INSTD_LOGIC);ENDencoder;ARCHITECTUREfunOFencoderISBEGIN
PROCESS(I,Enable)
BEGINIFEnable='1'THEN
IFI(7)='1'THENY<="111";
ELSIFI(6)='1'THENY<="110";ELSIFI(5)='1'THENY<="101";ELSIFI(4)='1'THENY<="100";
ELSIFI(3)='1'THENY<="011";
ELSIFI(2)='1'THENY<="010";
ELSIFI(1)='1'THENY<="001";
ELSIFI(0)='1'THENY<="000";
ELSEY<="111";
ENDIF;
ELSEY<="111";
ENDIF;
ENDPROCESS;ENDfun;7.1.2编码器(续1)8-3线优先编码器的核心代码如下7.1.2编码器(续2)8-3线优先编码器时序仿真波形图如下:7.1.2编码器(续2)8-3线优先编码器时序仿真波形图7.1.3数据选择器
在数字信号的传输中,有时候需要从一组数据中选出某一个数据来,这就需要用数据选择器。常用的数据选择器有4选1、8选1、16选1等类型。
8选1数据选择器的核心代码如下:
ENTITYmux4_1IS
PORT(A,B,C,D,E,F,G,H:INSTD_LOGIC_VECTOR(3DOWNTO0);s:INSTD_LOGIC_VECTOR(2DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDmux8_1;ARCHITECTUREfunOFmux8_1ISBEGINY<=AWHENs="000"ELSEBWHENs="001"ELSECWHENs="010"ELSE
DWHENs="011"ELSEEWHENs="100"ELSEFWHENs="101"ELSEGWHENs="110"ELSEH;ENDfun;7.1.3数据选择器在数字信号的传输中,有时7.1.3数据选择器(续)8选1数据选择器的时序仿真波形图如下:7.1.3数据选择器(续)8选1数据选择器的时序仿真波形7.1.4数值比较器
在一些数字系统中,经常需要比较两个数字的大小,为完成这一功能所设计的各种逻辑电路统称为数值比较器。数值比较器根据比较数据的位数不同,可以分为一位数值比较器和多位数值比较器。通用多位数值比较器的核心代码如下:ENTITYcompIS
GENERIC(X:INTEGER:=4);
PORT(A,B:INSTD_LOGIC_VECTOR(X-1DOWNTO0);Y1,Y2,Y3:OUTSTD_LOGIC);ENDcomp;ARCHITECTUREfunOFcompISBEGINPROCESS(A,B)
BEGIN
IFA>BTHENY1<='1';
ELSEY1<='0';
ENDIF;IFA<BTHENY2<='1';
ELSEY2<='0';
ENDIF;
IFA=BTHEN
Y3<='1';
ELSEY3<='0';
ENDIF;
ENDPROCESS;ENDfun;7.1.4数值比较器在一些数字系统中,经常需要比7.1.4数值比较器(续)4位数值比较器的时序仿真波形图
7.1.4数值比较器(续)4位数值比较器的时序仿真波形图7.1.5奇偶校验器
奇偶校验器经常用在数字电路的检测中,用来检测一个二进制数据中的0或1的个数为奇数还是偶数,然后输出检测结果。8位奇偶校验器的核心代码如下:ENTITYcheck_NISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);Y:OUTSTD_LOGIC);ENDcheck_N;ARCHITECTUREfunOFcheck_NISBEGINPROCESS(A)
VARIABLEtemp:STD_LOGIC;BEGINtemp:='1';
FORnIN0TO7LOOP
temp:=tempxorA(n);
ENDLOOP;Y<=temp;
ENDPROCESS;ENDfun;
8位奇偶校验器的时序仿真波形图如下:7.1.5奇偶校验器奇偶校验器经常用在数字7.2时序逻辑电路设计7.2.1触发器触发器是能够存储二值信号的基本单元电路。触发器的种类有很多,根据不同的功能可以分为D触发器、T触发器、JK触发器已经RS触发器等。JK触发器的核心代码如下ENTITYjk_triggerIS
PORT(J,K,CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDjk_trigger;ARCHITECTUREfunOFjk_triggerISSIGNALtemp:STD_LOGIC;BEGINPROCESS(J,K,CLK)
BEGINIF(CLK'EVENTANDCLK='1')THENtemp<=(JANDNOT(temp))OR((NOTK)ANDtemp);
ENDIF;ENDPROCESS;Q<=temp;ENDfun;7.2时序逻辑电路设计7.2.1触发器ENTITY7.2.1触发器(续)同步JK触发器的时序仿真波形图如下:
7.2.1触发器(续)同步JK触发器的时序仿真波形图如下7.2.2寄存器寄存器用来存储二进制数值,其种类有很多中,常用的锁存器和移位寄存器等。本文中以一个通用寄存器来介绍寄存器的设计,包括清零、所存、左移和右移功能。通用寄存器的核心代码如下:ENTITYregIS
GENERIC(n:Positive:=8);--寄存器宽度
PORT(CLK,shift_l,shift_r:INSTD_LOGIC;--时钟信号和左移、右移输入数值
mode:INSTD_LOGIC_VECTOR(1DOWNT0);--寄存器模式
datain:INSTD_LOGIC_VECTOR((n-1)DOWNTO0);--并行输入
dataout:OUT
STD_LOGIC_VECTOR((n-1)DOWNTO0));--并行输出ENDreg;ARCHITECTUREfunOFregISSIGNALtemp_reg:STD_LOGIC_VECTOR((n-1)DOWNTO0);--定义临时变量BEGIN7.2.2寄存器寄存器用来存储二进制数值,7.2.2寄存器(续)PROCESSBEGIN
IF(CLK'EVENTANDCLK='1')THEN
CASEmodeIS
WHEN"00"=>int_reg<=(OTHERS=>'0');--寄存器清零
WHEN"01"=>int_reg<=datain;--锁存器
WHEN"10"=>int_reg<=int_reg((n-2)DOWNTO0)&shift_l;--左移
WHEN"11"=>int_reg<=shift_r&int_reg((n-1)DOWNTO1);--右移
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;dataout<=int_reg;ENDfun;通用寄存器的时序仿真波形图如下:7.2.2寄存器(续)PROCESS7.2.3分频器分频电路是非常有用的一种电路,在具体的电路设计中可能需要不同的时钟频率,但在实际的电路中往往只有一种单一的外部时钟输入,这是可以采用分频器对时钟脉冲进行分频。1、二分频电路核心代码如下:ENTITYfenp_2IS
PORT(CLK_IN:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDfenp_2;ARCHITECTUREfunOFfenp_2IS
SIGNALtemp:STD_LOGIC:='0';
BEGIN
PROCESS(CLK_IN,temp)
BEGIN
IF(CLK_IN'EVENTANDCLK_IN='1')THENtemp<=nottemp;
ENDIF;CLK_OUT<=temp;ENDPROCESS;ENDfun;7.2.3分频器分频电路是非常有用的一种电7.2.3分频器(续1)2、五分频电路的核心代码如下:ENTITYfenp_5IS
PORT(CLK_IN:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDfenp_5;ARCHITECTUREfunOFfenp_5IS
SIGNALtemp_A,temp_B:INTEGERRANGE0TO7;BEGIN
PROCESS(CLK_IN,temp_A,temp_B)
BEGIN
IF(CLK_IN'EVENTANDCLK_IN='1')THEN
IFtemp_A=4THENtemp_A<=0;
ELSEtemp_A<=temp_A+1;--对上升沿计数
ENDIF;
ENDIF;7.2.3分频器(续1)2、五分频电路的核心代码如下:E7.2.3分频器(续2)二分频电路的时序仿真波形图如下五分频电路的时序仿真波形图如下:7.2.3分频器(续2)7.2.4计数器计数器是数字电路中使用的最多的时序电路,它不仅能用于对时钟脉冲的计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。BCD码60进制计数器的核心代码如下:ENTITYcounterIS
PORT(CLK,Enable,clr:INSTD_LOGIC;--时钟信号、计数使能、清零信号
Cout:OUTSTD_LOGIC;--进位信号
q0,q1:BUFFER
STD_LOGIC_VECTOR(3DOWNTO0));--计数输出ENDcounter;7.2.4计数器计数器是数字电路中使用的最7.2.4计数器(续1)
BCD码60进制计数器的核心代码:ARCHITECTUREfunOFCOUNTERISSIGNALtemp:STD_LOGIC;--临时变量,表示个位数p0的进位
BEGIN
PROCESS(CLK,Enable,clr,q0)--此进程描述个位计数器
BEGIN
IFclr='1'THEN
q0<="0000";--个位清零
ELSE
IF(CLK'EVENTANDCLK='1')THEN--对时钟脉冲进行计数
IFEnable='1'THEN--使能信号搞电平有效
IFq0="1001"THENq0<="0000";temp<='1';--计数到9置0,输出进位
ELSEq0<=q0+1;temp<='0';
ENDIF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广州番禺职业技术学院单招职业适应性考试题库带答案详解(达标题)
- 2026年山西省阳泉市单招职业倾向性考试题库带答案详解(新)
- 2026年广西体育高等专科学校单招职业适应性测试题库及答案详解(夺冠系列)
- 2026年广州科技贸易职业学院单招职业技能测试题库含答案详解(综合题)
- 2026年山西运城农业职业技术学院单招职业适应性测试题库含答案详解(能力提升)
- 简约法律知识普及讲堂-冷色光-商业摄影风格
- 2026年嵩山少林武术职业学院单招职业技能考试题库含答案详解(培优b卷)
- 2026年广西制造工程职业技术学院单招职业倾向性考试题库及答案详解(考点梳理)
- 2026年广东省深圳市单招职业适应性考试题库含答案详解(预热题)
- 2026年广东省清远市单招职业倾向性测试题库附参考答案详解(完整版)
- 场地合作协议合同范本
- 装修现场监理管理制度
- 京教版小学四年级下册心理健康教育教案
- 会计事务代理课件 项目一 会计事务代理概述
- 14消渴小便不利淋病脉证并治第十三12
- 工厂区机械化清扫保洁措施
- 立案报告书范文
- 生地会考动员班会
- 中国共产主义青年团团员教育管理工作条例(试行)团课学习课件
- 《装配式建筑施工技术》课件-第二章
- JBT 11808-2014 热处理用真空清洗机技术要求
评论
0/150
提交评论