1、3-8 译码器的设计1 设计目的与要求 随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。由此,计算机对我们的社会对我们每个人都是很重要的。所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。1.1 设计的目的
2、本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握 EDA 技术的基本原理已经设计方法,并掌握 VHDL 硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。通过对编码器和译码器的设计,巩固和综合运用所学知识,提高 IC 设计能力,提高分析、解决计算机技术实际问题的独立工作能力。也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。1.2 设计要求根据计算机组成原理中组合逻辑电路设计的原理,利用 VHDL
3、 设计计算机电路中译码器的各个模块,并使用 EDA 工具对各模块进行仿真验证和分析。译码器由三-八译码器为实例代表。关键词:输入、输出、译码2 VHDL 的简单介绍2.1 VHDL 的简介VHDL 语言是一种用于电路设计的高级语言。它在 80 年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。 VHDL 翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在我过的应用多数是用在 FPGA/CPLD/EPLD 的设计中。当然在一些实力较为雄厚的单位,它也被用来设计 ASIC。VHDL主要用于描述数字系统的
4、结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分) ,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。2.2 VHDL 的特点1, 功能强大,设计灵活:VHDL 具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控
5、制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL 支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL 还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 2,,支持广泛,易于修改:由于 VHDL 已经成为 IEEE 标准所规范的硬件描述语言,目前大多数 EDA 工具几乎都支持 VHDL,这为 VHDL 的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用 VHDL编写的源代码,因为 VHDL 易读和结构化,所以易于修改设计。 3,强大的硬件系统描述能力:VHDL
6、具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL 支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL 支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 4,独立于器件的设计,与工艺无关:设计人员用 VHDL 进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。 5.,很强的移植能力:VHDL 是一种标准化的硬件描述语言,同一个设计描述
7、可以被不同的工具所支持,使得设计描述的移植成为可能。 6,易于共享和复用:VHDL 采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。2.3 VHDL 的设计步骤1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。通常 VHDL 文件保存为.vhd 文件,Verilog 文件保存为.v 文件。2.使用编译工具编译源文件。3.功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否
8、正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)4.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf 或.edif 的 EDA 工业标准文件。5.布局布线:将.edf 文件调入 PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放 PLD/FPGA 内。6.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在 PLD/FPGA 厂家提供的开发工具。7.烧写器件3 译码器的原理二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应的高、低电平信号
9、。对于三-八译码器来说,3 位二进制共有 8 种状态,所以对应的输出有 8 种状态。例如:对于二进制代码111 来说,输出为 10000000。对于二-四译码器来说,2 位二进制共有 4 种状态,所以对应的输出有 4 种状态。例如:对于二进制代码11 来说,输出为 1000。4 三-八译码器的设计关于三-八译码器的工作框图如图所示INP2.0 OUTP7.0CS1YIMA_138译码器内部电路:3-8 译码器引脚排列图:3-8 译码器的功能表:输 入 输 出S1 +23A2 A1 A0 Y123Y456Y71 0 0 0 0 0 1 1 1 1 1 1 11 0 0 0 1 1 0 1 1 1
10、 1 1 11 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 1 1 1 1 1 1 1 00 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1无论从逻辑图还是功能表我们都可以看到 3-8 译码器的八个输出管脚,任何时刻要么全为高电平 1芯片处于不工作状态,要么只有一个为低电平 0,其余 7 个输出管脚全为高电平 1。如果出现两个输出管脚在同一个时间为 0 的
11、情况,说明该芯片已经损坏。当附加控制门的输出为高电平(S1)时,可由逻辑图写出由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。3-8 译码器有三个附加的控制端、和。当、时,输出为高电平(S1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平,如表 1 所示。这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。带控制输入端的译码器又是一个完整的数据分配器。电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。这就不难理解为
12、什么把叫做地址输入了。例如当101 时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。三-八译码器由 VHDL 程序来实现,下面是其中一段 VHDL 关键代码使用 WHEN-ELSE 语句5 三-八译码器仿真三-八译码器由 VHDL 程序:使用 WHEN-ELSE 语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yangdan_DECODER ISPORT(INP:IN STD_LOGIC_VECTOR(2 DOWN
13、TO 0);OUTP:OUT BIT_VECTOR (7 DOWNTO 0);END yangdan_DECODER;ARCHITECTURE ART3 OF yangdan_DECODER ISBEGINOUTP(0)=1 WHEN INP=“000“ ELSE 0;OUTP(1)=1 WHEN INP=“001“ ELSE 0;OUTP(2)=1 WHEN INP=“010“ ELSE 0;OUTP(3)=1 WHEN INP=“011“ ELSE 0;OUTP(4)=1 WHEN INP=“100“ ELSE 0;OUTP(5)=1 WHEN INP=“101“ ELSE 0;OUTP(
14、6)=1 WHEN INP=“110“ ELSE 0;OUTP(7)=1 WHEN INP=“111“ ELSE 0;END ART3;其仿真图如图所示:三-八译码器功能时序仿真图6 结果分析对其仿真图进行仿真分析:OUTP 译码输出标志,INP 为输入信号组,它由 INP2-INP0三个二进制代码输入信号组成。OUTP 为输出信号组, 它由 OUTP7-OUTP0八个输出信号组成。OUTP 为 1时候表示输出。当输入为:111 时,译码后为指定的状态,即输出10000000,紧接着依次类推,当输入为:110 时,输出输出01000000,当输入为 101 时,输出 00100000,当输入为 100 时,输出 00010000,输入 011 时,输出为 00001000,输入为 010 时,输出00000100,输入为 001 时,输出 00000010,输入为 000 时,输出为00000001。7 心得体会我所选择的题目是译码器的设计,这些题目在以前基础强化训练的时候做过类似的题目,所以心里至少还是有点思路,不过本次