83优先编码器课程设计(2)

2018-12-19 23:05

东北石油大学本科生硬件课程设计 第2章 硬件描述语言——VHDL

2.1VHDL的简介

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。[5]

2.2 VHDL语言的特点

VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。当一个设计项目定义了外部界面(端口),在其内部设计完成后,其他的设计就可以利用外部端口直接调用这个项目。VHDL的主要特点如下:

1. 作为HDL的第一个国际标准,VHDL具有很强的可移植性。 2. 具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。

3. VHDL有良好的可读性,接近高级语言,容易理解。

4. 系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。

5. 支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。

6. 对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。

4

东北石油大学本科生硬件课程设计 7. 设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。[6]

2.3 VHDL的设计流程

它主要包括以下几个步骤:

1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件。

2.使用编译工具编译源文件。

3.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)

4.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。

5.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。

6.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA厂家提供的开发工具。

7.烧写器件

5

东北石油大学本科生硬件课程设计 第3章 8-3优先编码器的设计

3.1 编码器的工作原理

八-三优先编码器输入信号为din0,din1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。因为din0到din7共8中状态,可以用3位二进制编码来表示。8-3优先编码器真值表如下表所示。

表3-1 8-3优先编码器真值表

输 入 din0 1 0 0 0 0 0 0 0

din1 x 1 0 0 0 0 0 0 din2 x x 1 0 0 0 0 0 din3 x x x 1 0 0 0 0 din4 x x x x 1 0 0 0 din5 x x x x x 1 0 0 din6 x x x x x x 1 0 din7 x x x x x x x 1 输 出 out0 0 1 0 1 0 1 0 0 out1 0 0 1 1 0 0 1 1 out2 0 0 0 0 1 1 1 1 3.2 8-3优先编码器的设计

8-3译码器由VHDL程序来实现,VHDL语言描述如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS

PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic ); END coder;

ARCHITECTURE behav OF coder IS

SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN

PROCESS (din)

6

东北石油大学本科生硬件课程设计 BEGIN

IF (EANABLE='0') THEN

IF (din(0)='1') THEN output <= \ ELSIF (din(1)='1') THEN output <= \ ELSIF (din(2)='1') THEN output <= \ ELSIF (din(3)='1') THEN output <= \ ELSIF (din(4)='1') THEN output <= \ ELSIF (din(5)='1') THEN output <= \ ELSIF (din(6)='1') THEN output <= \ ELSE output <= \ END IF ;

ELSE output <=\ END IF; END PROCESS ; END behav;

3.3 8-3优先编码器仿真及分析

八-三优先编码器由VHDL程序实现后,其仿真图如图2-1所示。

图3-1 8-3优先编码器功能仿真图

对其仿真图进行仿真分析:din为输入信号组,它由din7-din0八个输入信号组成。output为输出信号组, 它由output2-output0三个二进制代码输出信号组成。enable为使能端,当enable为0时编码器工作,当使能端为1时输出高阻状态。当din0为1时,即输入为:1*******时,输出111,当din0为0时,输出由优先级仅次于din0的din1决定,即输入为:01******时,输出110,紧接着依次类推,分别得出输入为:001*****时,输出101,输入为:0001****时,输出100,输入为00001***时,输出为011。到此为止由于使能段变为高电平,输出信号为高阻状态,但可以推断出当输入为000001**时,输出010,输入为

7

东北石油大学本科生硬件课程设计 0000001*时,输出001,输入为00000001时,输出为000。

3.4 在实验箱上实现8-3优先编码器

首先设置八-三优先编码器器下载板芯片引脚,如下图所示

图3-2引脚设置示意图

试验箱各部分导线链接完毕后开始向实验箱烧录程序,如下图所示

图3-3程序烧录示意图

如上图所示程序已经成功烧录进芯片中,下面开始在实验箱上实现8-3编码

器的功能。

下图为实验箱的具体连线图

8


83优先编码器课程设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国家发展改革委关于生物质发电项目建设管理的通知2010(1803)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: