数字逻辑设计—— 文档标准加译码器
- 格式:ppt
- 大小:1.22 MB
- 文档页数:87
译码器、数据选择实现组合逻辑电路的设计(完整电子教案)7.1 利用译码器实现输出控制【项目任务】市电互补控制器中共有4种工作模式,编号0为停机、1为太阳工作、2为市电互补、3为市电模式。
当停机模式时,市电和光伏电不导入;当太阳工作模式,市电不导入,光伏电导入;当市电互补模式,市电和光伏电都导入;当市电模式,市电导入,光伏发电部导入。
利用译码器实现上述组合逻辑电路功能。
图7.1译码器实现输出控制【信息单】一、编码器在数字系统中,把二进制码按一定的规律编排,使每组代码具有特定的含义,称为编码。
具有编码功能的逻辑电路称为编码器。
编码器是一个多输入多输出的组合逻辑电路。
按照编码方式不同,编码器可分为普通编码器和优先编码器;按照输出代码种类的不同,可分为二进制编码器和非二进制编码器。
1.普通编码器普通编码器分二进制编码器和非二进制编码器。
若输入信号的个数N与输出变量的位数n满足N=2n,此电路称为二进制编码器;若输入信号的个数N与输出变量的位数n不满足N=2n,此电路称为非二进制编码器。
普通编码器任何时刻只能对其中一个输入信息进行编码,即输入的N个信号是互相排斥的。
若编码器输入为4个信号,输出为两位代码,则称为4线-2线编码器(或4/2线编码器)。
2.优先编码器优先编码器是当多个输入端同时有信号时,电路只对其中优先级别最高的信号进行编码的编码器。
3.集成编码器10线-4线集成优先编码器常见型号为54/74147、54/74LS147,8线-3线常见型号为54/74148、54/74LS148。
4.编码器举例(1)键控8421BCD 码编码器10个按键S 0~S 9代表输入的10个十进制数0~9,输入为低电平有效,即某一按键按下,对应的输入信号为0,输出对应的8421码,输出为4位码,所以有4个输出端A 、B 、C 、D 。
真值表见表7.1,由真值表写出各输出的逻辑表达式为 9898S S S S =+=A76547654S S S S S S S S =+++=B 76327632S S S S S S S S =+++=C 9753197531S S S S S S S S S S =++++=D表7.1键控8421BCD 码编码器真值表(2)二进制编码器用n 位二进制代码对2n 个信号进行编码的电路称为二进制编码器。
1引言随着社会的发展,科学技术也在不断的进步。
计算机从先前的采用半导体技术实现的计算器到现在广泛应用的采用高集成度芯片实现的多功能计算器。
计算机电路[1]是计算机的重要组成部分,了解计算机电路的知识是促进计算机的发展的先决条件。
而编码器和译码器是计算机电路中的基本器件,对它们的了解可以为以后的进一步深化研究打下一个良好的基础。
在硬件电子电路设计领域中,VHDL语言[2]则是EDA的关键技术之一。
VHDL语言具有强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成。
近十几年来,EDA技术获得飞速发展。
它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编辑、化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作。
在本设计主要介绍的是一个基于超高速硬件描述语言VHDL对计算机电路中编码器和译码器进行编程实现。
本设计主要介绍的是一个基于超高速硬件描述语言VHDL对计算机电路中编码器和译码器进行编程实现。
1.1 课程设计的目的本次设计的目的就是通过实践掌握计算机组成原理的分析方法和设计方法,了解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。
以计算机组成原理为指导,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。
通过对基于VHDL的编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
1.2 课程设计的基本内容根据计算机组成原理[3]中组合逻辑电路设计的原理,利用VHDL设计计算机电路中编码器和译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。
(1)熟悉编码器、译码器的工作原理,合理利用各种软硬件资源。
本设计编码器由八-三优先编码器作为实例代表,而译码器则包含三-八译码器和二-四译码器两个实例模块组成。
目录1 绪论 (1)1.1设计背景 (1)2 电路分析 (2)2.1 2-4功能分析 (2)2.2 2-4译码器逻辑图 (3)3 系统建模与仿真 (4)3.1 建模 (4)3.2 仿真波形 (5)4 仿真结果分析 (7)5 小结与体会 (8)参考文献 (9)1 绪论1.1设计背景在数字系统中,经常需要将一中代码转换为另一种代码,以满足特定的需求,完成这种功能的电路称为码转化电路。
译码器就属于其中一种。
而译码就是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的有效输出信号,具有译码功能的的逻辑电路称为译码器。
而2-4译码器是唯一地址译码器,是将一系列的代码转换成与之一一对应有效的信号。
常用于计算机中对存储单元地址的译码,因此,设计2-4译码器具有很强的现实意义。
1.2 matlab简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
它主要由MATLAB和Simulink两大部分组成。
本设计主要采用simulink进行设计与仿真。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
译码器设计组合逻辑电路案例分析【信息单】一、编码器在数字系统中,把二进制码按一定的规律编排,使每组代码具有特定的含义,称为编码。
具有编码功能的逻辑电路称为编码器。
编码器是一个多输入多输出的组合逻辑电路。
按照编码方式不同,编码器可分为普通编码器和优先编码器;按照输出代码种类的不同,可分为二进制编码器和非二进制编码器。
1.普通编码器普通编码器分二进制编码器和非二进制编码器。
若输入信号的个数N 与输出变量的位数n 满足N =2n ,此电路称为二进制编码器;若输入信号的个数N 与输出变量的位数n 不满足N =2n ,此电路称为非二进制编码器。
普通编码器任何时刻只能对其中一个输入信息进行编码,即输入的N 个信号是互相排斥的。
若编码器输入为4个信号,输出为两位代码,则称为4线-2线编码器(或4/2线编码器)。
2.优先编码器优先编码器是当多个输入端同时有信号时,电路只对其中优先级别最高的信号进行编码的编码器。
3.集成编码器10线-4线集成优先编码器常见型号为54/74147、54/74LS147,8线-3线常见型号为54/74148、54/74LS148。
4.编码器举例(1)键控8421BCD 码编码器10个按键S 0~S 9代表输入的10个十进制数0~9,输入为低电平有效,即某一按键按下,对应的输入信号为0,输出对应的8421码,输出为4位码,所以有4个输出端A 、B 、C 、D 。
真值表见表7.1,由真值表写出各输出的逻辑表达式为 9898S S S S =+=A76547654S S S S S S S S =+++=B 76327632S S S S S S S S =+++=C 9753197531S S S S S S S S S S =++++=D表7.1键控8421BCD 码编码器真值表(2)二进制编码器用n 位二进制代码对2n 个信号进行编码的电路称为二进制编码器。
3位二进制编码器有 8个输入端3个输出端,所以常称为8线—3线编码器,其功能真值表见表7.2,输入为高电平有效。
直接说正题,帮助一下刚刚入门的朋友们,也算是学习IC设计的一个总结吧。
一、首先要知道自己在干什么?数字电路(fpga/asic)设计就是逻辑电路的实现,这样子说太窄了,因为asic还有不少是模拟的,呵呵。
我们这里只讨论数字电路设计。
实际上就是如何把我们从课堂上学到的逻辑电路使用原理图(很少有人用这个拉),或者硬件描述语言(Verilog/VHDL)来实现,或许你觉得这太简单了,其实再复杂的设计也就是用逻辑门电路搭起来的。
你学习逻辑电路的时候或许会为卡拉图,触发器状态推倒公式而感到迷惑,但是其实有一点可以放心的是,实际设计中只要求你懂得接口时序和功能就可以了,用不着那么复杂得推倒公式,只要你能够用语言把逻辑关系表述清楚就可以了,具体这个逻辑关系采用什么门电路搭的,可以不关心,综合工具(synthesis tool)可以帮你处理。
当然你要知道基本门电路的功能,比如D触发器,与门,非门,或门等的功能(不说多的,两输入的还是比较简单的)。
---一句话,采用verilog或者VHDL描述设计对象的逻辑功能,这就是数字电路设计的任务!说到这里入门必须要两个基本功:逻辑电路基础,硬件描述语言。
有了这两个基本功,就算你其他都不会也能找到工作,呵呵,或许你会说,现在面试要问fpga,要问时序分析,有那么简单么?其实这些东西在你有了这两个基本功之后,其他的都可以慢慢学习。
注意硬件描述语言和逻辑电路的学习可以同步学习,而且要牢记,学习硬件描述语言进步取决于你对电路的理解和你对仿真器的使用。
为什么这样子说呢?因为硬件描述语言RTL(寄存器传输级)主要是用来给综合工具综合成电路的,所以要满足特定的coding style,这些coding style 将对应这特定的逻辑,比如时序电路应该怎么写,组合电路怎么写,这是有一定约束的,为此若你对逻辑电路比较熟悉,你就知道自己写代码大体综合后会采用什么门电路来组成;另外,写代码就要仿真,这是不可以避免的---不仿真,你怎么知道自己写的代码符合设计的要求呢?能够熟练使用仿真器,你就有了调试代码的基本能力,否则,写再多的代码也没有用。