VHDL的编码器和译码器的设计(2)

2019-03-10 16:32

基于VHDL的编码器和译码器的设计 第3页 共20页

2 MAX+plusII及VHDL简介

2.1 MAX+plusII 基本介绍

2.1.1 MAX+plusII的概念

ALTERA公司的MAX+plusII是其中较常被使用的EDA开发环境,它操作方便、功能强大,提供了原理图输入和VHDL语言输入功能,在环境中可以完成编译、查错、设计驱动信号、逻辑功能模拟、时序功能模拟、对FPGA/CPLD芯片编程等功能[4]。

MAX+plusII支持下列FPGA/CPLD器件的编程: FPGA器件包括ACEX1K系列、FLEX系列[5]; CPLD器件MAX系列。

2.1.2 使用MAX+plusII设计的特点

采用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库(LibraLy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。并且可减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机自动设计、仿真和调试。

2.2 硬件描述语言——VHDL

2.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软件都兼容了这种标准。VHDL的英文全写是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电

基于VHDL的编码器和译码器的设计 第4页 共20页

路的设计中。

2.2.2 VHDL语言的特点

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

1. 作为HDL的第一个国际标准,VHDL具有很强的可移植性。

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

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

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

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

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

7. 设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。 2.2.3 VHDL的设计流程 它主要包括以下几个步骤: 1.文本编辑:

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

基于VHDL的编码器和译码器的设计 第5页 共20页

3.功能仿真:

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

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

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

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

基于VHDL的编码器和译码器的设计 第6页 共20页

3 设计实现

3.1编码器

3.1.1 8线-3线优先编码器的工作原理

在8线-3线优先编码器(priority encoder)电路中,允许同时输入两个以上的编码信号。不过在设计优先编码器时已经将所有的输入信号按优先顺序排了对,当几个输入信号同时出现时,只对其中优先权最高的一个进行编码。

令8线-3线优先编码器输入信号为i0,i1,i2,i3,i4,i5,i6和i7,输出信号为a2、a1、a0。输入信号中i0的优先级别最低,依次类推,i7的优先级别最高。也就是说若i7输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若i7输入为0(即为低电平)则看优先级仅次于i7的i6状态决定,依次类推。因为i0到i7共8中状态,可以用3位二进制编码来表示。例如:i7为1对应输出的二进制编码111。8线-3线优先编码器功能表如表3-1所示,其实现电路图如图3-1所示:

表3-1 8线-3线优先编码器的功能表 输 入 i0 X X X X X X X 1 i1 X X X X X X 1 0 i2 X X X X X 1 0 0 i3 X X X X 1 0 0 0 i4 X X X 1 0 0 0 0 i5 X X 1 0 0 0 0 0 i6 X 1 0 0 0 0 0 0 i7 1 0 0 0 0 0 0 0 a2 1 1 1 1 0 0 0 0 输 出 a1 1 1 0 0 1 1 0 0 a0 1 0 1 0 1 0 1 0

基于VHDL的编码器和译码器的设计 第7页 共20页

图3.1 8线-3线优先编码器

3.1.2 8线-3线优先编码器的设计

课程设计各个部分由VHDL实现后,利用EDA工具对各部分进行了时序仿真(Timing Simulation),其目的是通过时序可以更清楚的了解程序的工作过程。

整个8线-3线优先编码器的工作框图如图3.2所示。

图3.2 8线-3线优先编码器的工作框图

8线-3线优先编码器由VHDL程序来实现,下面是其中一段VHDL关键代码: process(i) begin

gs<='1'; a<=\ if i(7)='1'then


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

下一篇:生活中的数学校本课程备课样版

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

马上注册会员

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