第1章 硬件描述语言VHDLWord文件下载.docx

上传人:b****6 文档编号:15730028 上传时间:2022-11-15 格式:DOCX 页数:71 大小:39.30KB
下载 相关 举报
第1章 硬件描述语言VHDLWord文件下载.docx_第1页
第1页 / 共71页
第1章 硬件描述语言VHDLWord文件下载.docx_第2页
第2页 / 共71页
第1章 硬件描述语言VHDLWord文件下载.docx_第3页
第3页 / 共71页
第1章 硬件描述语言VHDLWord文件下载.docx_第4页
第4页 / 共71页
第1章 硬件描述语言VHDLWord文件下载.docx_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

第1章 硬件描述语言VHDLWord文件下载.docx

《第1章 硬件描述语言VHDLWord文件下载.docx》由会员分享,可在线阅读,更多相关《第1章 硬件描述语言VHDLWord文件下载.docx(71页珍藏版)》请在冰豆网上搜索。

第1章 硬件描述语言VHDLWord文件下载.docx

(2)采用大量的ASIC芯片

(3)早期仿真以确定系统的可行性

(4)使设计更容易

只需写出系统的HDL源程序文件,其它由计算机去做

(5)全部设计文件就是HDL源程序文件

1.3VHTL硬件设计语言

当前ASIC制造商都自己开发了HDL语言,但是都不通用,只有美国国防部开发的VHDL语言成为了IEEE.STD_1076标准,并在全世界得到了承认。

该语言集成了各种HDL语言的优点,使数字系统设计更加简单和容易。

VHDL语言是一个规模庞大的语言,在使用它之前完全学会它是很难的,本书介绍的只是VHDL语言的一部分。

1.4VHDL语言的基本结构

VHDL语言通常包含实体(Entity),构造体(Architecture),配置(Configuration),包集合(Package),和库(Library)五部分.其中实体用于描述所设计的系统的外部接口信号;

构造体用于描述系统内部的结构和行为;

建立输入和输出之间的关系;

配置语句安装具体元件到实体—结构体对,可以被看作是设计的零件清单;

包集合存放各个设计模块共享的数据类型、常数和子程序等;

库是专门存放预编译程序包的地方。

如下详细介绍。

1.4.1基本设计单元

VHDL的基本设计单元就是实体,无论数字电路复杂还是简单,都是由实体和构造体组成。

(1)实体说明

实体说明有如下结构:

ENTITY实体名IS

[端口说明]

END实体名;

(VHDL语言中不分大小写字母)

其中:

端口说明是对设计实体中输入和输出借口进行描述,格式如下:

PORT(端口名(,端口名):

方向数据类型名;

端口名(,端口名):

方向数据类型名);

端口名是赋予每个系统引脚的名称,一般用几个英文字母组成。

端口方向是定义引脚是输入还是输出,见下表:

方向

说明

IN

输入到实体

OUT

从实体输出输出

INOUT

双向

BUFFER

输出(但可以反馈到实体内部)

LINKAGE

不指定方向

常用的端口数据类型有两种:

BIT和BIT_VECTOR,当端口被说明为BIT时,只能取值“1”或“0”,

当端口被说明为BIT_VECTOR时,它可能是一组二进制数。

例:

PORT(n0,n1,select:

INBIT;

q:

OUTBIT;

bus:

OUTBIT_VECTOR(7DOWNTO0));

本例中,n0,n1,select是输入引脚,属于BIT型,q是输出引脚,BIT型,bus是一组8位二进制总线,属于BIT_VECTOR,

LIBRARYIEEE;

USEIEEE.STD_LOGIC.1164.ALL;

ENTITYmmIS

PORT(n0,n1,select:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC;

Bus:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDmm;

在此例中端口数据类型取自IEEE标准库(该库中有数据类型和函数的说明),其中STD_LOGIC取值为“0”,“1”,“X”和“Z”。

因为使用了库所以在实体说明前要增加库说明语句。

(2)构造体

构造体是实体的一个重要部分,每一个实体都有一个或一个以上的构造体。

1)一般说明

构造体格式如下:

ARCHITECTURE构造体名OF实体名IS

[定义语句]内部信号,常数,数据类型,函数等的定义

BEGIN

[并行处理语句]

END构造体名;

ENTITYnaxIS

PORT(a0,a1:

Sel:

Sh:

OUTBIT);

ENDnax;

ARCHITECTUREdataflowOFnaxIS

BEGIN

sh<

=(a0ANDsel)OR(NOTselANDa1);

ENDdataflow;

构造体描述设计实体的具体行为,它包含两类语句:

●并行语句并行语句总是在进程语句(PROCESS)的外部,该语句的执行与书写顺序无关,总是同时被执行

●顺序语句顺序语句总是在进程语句(PROCESS)的内部,从仿真的角度,该语句是顺序执行的

一个构造体包含几个类型的子结构描述,这些描述是:

*BLOCK描述(块描述)

*PROCESS描述(进程描述)

*SUNPROGRAMS描述(子程序描述)

2)BLOCK语句描述

使用BLOCK语句描述的格式如下:

块标号:

BLOCK

ENDBLOCK块标号:

例:

二选一电路

ENTITYmuxIS

PORT(d0,d1,sel:

ENDmux;

ARCHITECTUREconnectOFmuxIS

SIGNALtmp1,tmp2,tmp3:

BIT;

cale:

BLOCK

tmp1<

=d0ANDsel;

tmp2<

=d1AND(NOTsel);

tmp3<

=tmp1ORtmp2;

q<

=tmp3;

ENDBLOCKcale;

ENDconnect;

在对程序进行仿真时,BLOCK中的语句是并行执行的,与书写顺序无关,这一点和构造体中直接写的语句是一样的。

3)进程(PROCESS)描述

进程描述的格式如下:

[进程名]:

PROCESS(信号1,信号2,。

ENDPROCESS进程名;

*一般用于组合电路进程模式:

__进程标记:

PROCESS(__信号名,__信号名,__信号名)

VARIABLE__变量名:

STD_LOGIC;

--指定信号

--指定变量

--过程调用

--如果语句

--CASE语句

--循环语句

ENDPROCESS__进程标记;

*用于时序电路进程模式:

WAITUNTIL__时钟信号='

1'

;

ENTITYmux1IS

q:

ENDmux1;

ARCHITECTUREconnectOFmux1IS

BEGIN

cale:

PROCESS(d0,d1,sel)

VARIABLEtmp1,tmp2,tmp3:

--在进程中定义的变量

tmp1:

--输入端口向变量赋值

tmp2:

tmp3:

ENDPROCESScale;

在PROCESS中的语句是顺序执行的,这一点和BLOCK中的语句是不一样的。

当PROCESS所带的信号量发生变化时,PROCESS中的语句就会执行一遍。

4)子程序描述

子程序的概念和其它高级程序中子程序的概念相同,在VHDL中有两种类型:

●过程(Procedure)

●函数(Function)

1.过程的格式:

PROCEDURE过程名(参数1,参数2。

)IS

[定义变量语句]

[顺序处理语句]

END过程名;

PROCEDUREvector_to_int

(z:

INSTD_LOGIC_VECTOR;

x_flag:

OUTBOOLEAN;

ININTEGER)IS

=0;

x_flag:

=FALSE;

FORiINzRANGELOOP

=q*2;

IF(z(i)=1)THEN

=q+1;

ELSEIF(z(i)/=10)THEN

=TRUE;

ENDIF;

ENDLOOP;

ENDvector_to_int;

在过程中,语句是顺序执行的。

2.函数

函数的格式:

FUNCTION函数名(参数1,参数2。

)RETURN数据类型名IS

RETURN[返回变量名];

END函数名;

在VHDL语言中函数的参数都是输入信号,

FUNCTIONmin(x,y:

INTEGER)RETURNINTEGERIS

IFX<

YTHEN

RETURN(x);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1