编码器和译码器的设计.doc

上传人:星星 文档编号:1038240 上传时间:2024-03-28 格式:DOC 页数:15 大小:128.11KB
下载 相关 举报
编码器和译码器的设计.doc_第1页
第1页 / 共15页
编码器和译码器的设计.doc_第2页
第2页 / 共15页
编码器和译码器的设计.doc_第3页
第3页 / 共15页
编码器和译码器的设计.doc_第4页
第4页 / 共15页
编码器和译码器的设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、编码器和译码器的设计 学生姓名: 指导老师:摘 要 编码器与译码器是计算机电路中基本的器件,本课程设计采用EDA技术设计编码和译码器。编码器由八-三优先编码器作为实例代表,而译码器则包含三-八译码器和二-四译码器两个实例模块组成。课程设计采用硬件描述语言VHDL把电路按模块化方式进行设计,然后进行编程、时序仿真和分析等。课程设计结构简单,使用方便,具有一定的应用价值。关键字 计算机电路;EDA;编码器;译码器目录1引 言11.1 设计的目的11.2 设计的基本内容12 EDA、VHDL简介12.1 EDA技术12.1.1 EDA技术的概念12.1.2 EDA技术的特点22.2 硬件描述语言VH

2、DL22.2.1 VHDL的简介22.2.2 VHDL语言的特点22.2.3 VHDL的设计流程33 设计规划过程43.1编码器的工作原理43.2译码器的工作原理43.3课程设计中各部分的设计43.3.1八-三优先编码器的设计43.3.2三-八译码器的设计53.3.3二-四译码器的设计64 系统仿真74.1八-三优先编码器仿真及分析74.2三-八译码器仿真及分析84.3二-四译码器仿真及分析8结束语10致谢11参考文献12附录13 编码器和译码器的设计 第13页 共16页1引 言 随着社会的发展,科学技术也在不断的进步。计算机从先前的采用半导体技术实现的计算器到现在广泛应用的采用高集成度芯片实

3、现的多功能计算器。计算机电路是计算机的重要组成部分,了解计算机电路的知识是促进计算机的发展的先决条件。而编码器和译码器是计算机电路中的基本器件,对它们的了解可以为以后的进一步深化研究打下一个良好的基础。本设计主要介绍的是一个基于超高速硬件描述语言VHDL对计算机电路中编码器和译码器进行编程实现。1.1 设计的目的本次设计的目的就是通过实践掌握计算机组成原理的分析方法和设计方法,了解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对编码器和译码器的设计,巩固

4、和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。1.2 设计的基本内容根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中编码器和译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。编码器由八-三优先编码器作为实例代表,而译码器则包含三-八译码器和二-四译码器两个实例模块组成。2 EDA、VHDL简介2.1 EDA技术2.1.1 EDA技术的概念EDA是电子设计自动化(E1echonicsDes5pAMtoM60n)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异。从EDA技术的几个主要方面的内容来看,

5、可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。2.1.2 EDA技术的特点采用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库(LibraLy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。并且可减少芯片的数量,缩小

6、系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机自动设计、仿真和调试。2.2 硬件描述语言VHDL2.2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这

7、种标准。VHDL的英文全写是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。2.2.2 VHDL语言的特点VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑

8、关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。当一个设计项目定义了外部界面(端口),在其内部设计完成后,其他的设计就可以利用外部端口直接调用这个项目。VHDL的主要特点如下:1. 作为HDL的第一个国际标准,VHDL具有很强的可移植性。2. 具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。3. VHDL有良好的可读性,接近高级语言,容易理解。4. 系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。5. 支持模块化

9、设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。6. 对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。7. 设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。2.2.3 VHDL的设计流程它主要包括以下几个步骤:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件。2.使用编译工具编译源文件。3.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫

10、前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)4.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。5.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。6.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA厂家提供的开发工具。7.烧写器件3 设计规划过程3.1编码器的工作原理八-三优先编码器输入信号为i0,i1,i2,i3,i4,i5,i6和i7,输出信号为a2

11、、a1、a0。输入信号中i0的优先级别最低,依次类推,i7的优先级别最高。也就是说若i7输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若i7输入为0(即为低电平)则看优先级仅次于i7的i6状态决定,依次类推。因为i0到i7共8中状态,可以用3位二进制编码来表示。例如:i7为1对应输出的二进制编码111。3.2译码器的工作原理二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应的高、低电平信号。对于三-八译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。例如:对于二进制代码111来说,输出为10000000。对于二-四译码器来说,2位二进制共有4

12、种状态,所以对应的输出有4种状态。例如:对于二进制代码11来说,输出为1000。3.3课程设计中各部分的设计课程设计各个部分由VHDL实现后,利用EDA工具对各部分进行了时序仿真(Timing Simulation),其目的是通过时序可以更清楚的了解程序的工作过程。3.3.1八-三优先编码器的设计整个八-三优先编码器的工作框图如图3.1所示。I7.0 A2.0 GSPRIORITY1 图3.1 八-三优先编码器的工作框图八-三优先编码器由VHDL程序来实现,下面是其中一段VHDL关键代码: process(i) begin gs=1; a=100; if i(7)=1then a=111; e

13、lsif i(6)=1then a=110; elsif i(5)=1then a=101; elsif i(4)=1then a=100; elsif i(3)=1then a=011; elsif i(2)=1then a=010; elsif i(1)=1then a=001; elsif i(0)=1then a=000; else gsdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutooooo=XXXX; end case;end process;4 系统仿真4.1八-三优先编码器仿真及分析八-三优先编码器

14、由VHDL程序实现后,其仿真图如图4.1所示。图4.1 八-三优先编码器功能时序仿真图对其仿真图进行仿真分析:gs为编码输出标志,i为输入信号组,它由i7-i0八个输入信号组成。a为输出信号组, 它由a2-a0三个二进制代码输出信号组成。gs为1时候表示输出。当i7为1时,即输入为:1*时,输出111,当i7为0时,输出由优先级仅次于i7的i6决定,即输入为:01*时,输出110,紧接着依次类推,分别得出输入为:001*时,输出101,输入为:0001*时,输出100,输入为00001*时,输出为011,输入为000001*时,输出010,输入为0000001*时,输出001,输入为00000

15、001时,输出为000。八-三优先编码器的引脚分配如表4.1表4.1八-三优先编码器器下载板芯片引脚对照表gsi0i1i2i3i4i5i6i7EPF8282P72P01P02P03P04P06P07P08P09EPF10K10P73P03P05P06P07P08P09P10P11a0a1a2EPF8282P55P56P57EPF10K10P53P54P584.2三-八译码器仿真及分析三-八译码器由VHDL程序实现后,其仿真图如图4.2所示: 图4.2三-八译码器功能时序仿真图对其仿真图进行仿真分析:cs译码输出标志,datain为输入信号组,它由datain2-datain0三个二进制代码输入

16、信号组成。Dataout为输出信号组, 它由dataout7-dataout0八个输出信号组成。cs为1时候表示输出。当输入为:111时,译码后为指定的状态,即输出10000000,紧接着依次类推,当输入为:110时,输出输出01000000,当输入为101时,输出00100000,当输入为100时,输出00010000,输入011时,输出为00001000,输入为010时,输出00000100,输入为001时,输出00000010,输入为000时,输出为00000001。4.3二-四译码器仿真及分析二-四译码器由VHDL程序实现后,其仿真图如图4.3所示:图4.3二-四译码器功能时序仿真图对

17、其仿真图进行仿真分析: i为输入信号组,它由i1-i0两个二进制代码输入信号组成。o为输出信号组, 它由o3-o0四个输出信号组成。当输入为:11时,译码后为指定的状态,即输出1000,紧接着依次类推,当输入为:10时,输出输出0100,当输入为01时,输出0010,当输入为00时,输出0001。二-四译码器的引脚分配如表4.2所示:表4.2二-四译码器下载板芯片引脚对照表i0i1o0o1o2o3EPF8282P01P02P55P56P57P58EPF10K10P03P05P53P54P58P59心得体会通过两星期的紧张工作,最后完成了我的设计任务基于VHDL编码器和译码器的设计。通过本次课程

18、设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其

19、在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。参考文献1 杨刚,龙海燕.现代电子技术-VHDL与数据系统设计.北京:电子工业出版社,20042黄仁欣.EDA技术实用教程.北京:清华大学出版社,20063潘松.VHDL实用教程M.成都:电子科技大学出版社,2000 附录1.八-三优先编码器的VHDL程序代码:-程序名:priority.vhdlibrary ieee;use ieee.std_logic_1164.a

20、ll;entity priority is port(i:in bit_vector(7 downto 0); a:out bit_vector(2 downto 0); gs:out bit);-编码输出标志end priority;architecture a of priority isbegin process(i) begin gs=1; a=100; if i(7)=1then a=111; elsif i(6)=1then a=110; elsif i(5)=1then a=101; elsif i(4)=1then a=100; elsif i(3)=1then a=011;

21、elsif i(2)=1then a=010; elsif i(1)=1then a=001; elsif i(0)=1then a=000; else gs=0; end if; end process; end a;2.三-八译码器的VHDL程序代码:-fuction:以拨盘开关作为数据输入端,用发光二极管表示译码后的信息;- datain(0)-datain(2) 分别为cba对应拨盘开关上的1-3号键;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSI

22、GNED.ALL;entity yima_138 is Port (datain : in std_logic_vector(2 downto 0); cs : out std_logic; dataout: out std_logic_vector(7 downto 0);end yima_138;architecture Behavioral of yima_138 isbegincsdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutdataoutooooo=XXXX; end case;end process;end a;13

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

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922