第四讲VHDL语言基础知识
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键词 VHDL 实体 逻辑功能
此两处必须同名
逻辑行为描述
1、实体
格式
ENTITY 实体名 IS [GENERIC ( 类属表 );] [PORT ( 端口表 );] END 实体名;
说明
实体说明所设计的逻辑电路的输入、输 出信号及其特性(输入(in)输出(out)、双向 (inout)、buffer)
•文件(FILES)是传输大量数据的客体,包含一些专门数据 类型的数值。
对象说明的一般格式是: <对象类型> < 标识符表>:<子类型说明> <信号种类>: =<表达式>; 说明 标识符 <子类型说明>是类型名或类型名加限制条件 <信号种类>为BUS或REGISTER,该项为任选项 :=<表达式>为对象赋初值
IS
一个包集合由包集合标题和包集合体两 大部分组成。 包集合体是一个可选项。
5、库
格式
LIBRARY 库名; USE 库名. 程序包名. All;
USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;
VHDL库的种类
• IEEE库:IEEE标准库, 是按IEEE组织制定的 工业标准进行编写的, 是内容丰富的资源库 使用需声明 • •STD_LOGIC_1164 程序包 •STD_LOGIC_ARITH 程序包 •STD_LOGIC_UNSIGNED 程序包
STD库:VHDL标准库,STANDARD和 TEXTIO程序包即收入在STD库中 使用无需声明
VHDL库的种类
• • •
ASIC库:EDA厂商提供库 使用需声明 WORK库:现行作业库,当前工作目录的所有设计 使用无需声明 USER库:用户自定义库 使用需声明
库说明的作用范围
从一个实体说明开始到其所属的结构体、配置为止, 当一个源程序中出现两个以上的实体时,必须重复说明。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY example1 IS (……) END LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY example2 IS (……) END
2选1多路选择器的VHDL结构体描述 ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END one ;
结构体 (数据 流描述 方式)
2选1多路选择器的VHDL描述
ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END mux21a ; ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END one ;
端口定义部分
Must be the same as the save TEST.VHD file
ENTITY test IS PORT ( input_pin_name : IN bit; output_pin_name : OUT bit); END test; ARCHITECTURE test_body OF test IS BEGIN output_pin_name <= input_pin_name; END test_body;
1 2
3 4
VHDL概述 VHDL语言基础知识
VHDL的基本语句 VHDL的子程序
一、VHDL语言及产生背景 二、VHDL的特点
一、VHDL语言及产生背景 VHDL(Very High Speed Integrated Circuit Hardware Description Language)即 超高速集成电路硬件描述语言。 美国国防部在20世纪80年代初为其超高 速集成电路VHSIC计划提出的硬件描述语言, 它是硬件设计者和EDA工具之间的界面。设 计者使用HDL来描述自己的设计,并把这个 描述告诉EDA工具,最后在EDA工具的帮助下 进行详细地设计及验证。
1)保留标识符
保留标识符是VHDL的关键字或保留字,如:
ENTITY ARCHITECTURE BEGIN FOR THEN AND NAND IF IN OR XNOR ELSE OUT NOT „ ELSIF XOR
END CASE NOR
BUFFER INOUT
2)短标识符
VHDL的短标识符是遵守以下规则的字符序列: •有效字符:英文字符(‘a’--’z’,’A’--’Z’), 数字(‘0’--‘9’)和下划线(‘_’) •必须以英文字母打头 •下划线(‘_’)的前后都必须有英文字母或数 字 •EDA工具综合、仿真时,短标识符不区分大小写
二、VHDL的特点 • 功能强大,描述力强。可以用 于系统级、电路级和门级描述、 仿真和设计。 • 可移植性好。 • 研制周期短,成本低。 • 可以延长设计的生命周期。 • 具有向ASIC移植的能力。
一、VHDL的程序结构
二、VHDL的语言元素
一、VHDL的程序结构
实体(Entity)
五
个 部 分
d
e
y~0 y
并行语句是同时执行,与语句的先后次序没有关系
ENTITY mux21 IS PORT(a,b,s:IN BIT; y:OUT BIT); END; ARCHITECTURE behav OF mux21 IS BEGIN PROCESS(a,b,s) BEGIN IF s='0' THEN y<=a; ELSE y<=b; END IF; END PROCESS; END;
ENTITY mux21 IS PORT(a,b,s:IN BIT; y:OUT BIT); END; ARCHITECTURE behav OF mux21 IS SIGNAL d,e:BIT; BEGIN d<=a AND (NOT s); s e<=b AND s; a y<=d OR e; END; b
VHDL源文件基本格式
LIBRARY 库名; USE 库名.程序包名.; ENTITY 实体名 IS PORT(……); END 实体名; --库(声明库) --程序包(引用库) --实体
ARCHITECTURE 结构体名 OF 实体名--结构体 (………) END 结构体名;
VHDL源程序基本格式举例:
二、VHDL的语言元素
一) VHDL文字规则 1 数字型文字 整数文字:5、678、156E2(=15600)、1_2_3(=123) 实数文字:1.23、3.14_159(=3.14159)、3E-2(=0.03)
二、VHDL的语言元素
一) VHDL文字规则 2 字符串型文字 1)文字型字符串:字符型用单引号,字符串型用双引 号
产生背景:
美国国防部电子系统项目有着众多的承包商, 他们各自建立和使用自己的电路硬件描述语 言, 这就使得各公司之间的设计不能被重复利用,造 成了信息交换和维护方面的困难。 为解决此问题, 20 世纪 80 年代初美国国防部 制定了VHDL,以作为各承包商之间提交复杂电路 设计文档的一种标准方案。 1987 年 12 月, VHDL 被正式接受为国际标准, 编 号 为 IEEE Std1076-1987, 即 VHDL’87 。 1993 年 被更新为IEEE Std1164-1993,即VHDL’93。
3、配置
格式
CONFIGURATION END 配置名;
配置名 OF 实体名 [说明语句];
IS
说明
这种配置用于选择不包含块(BLOCK)和元 件(COMPONENTS)的构造体。在配置语句中只包 含有实体所选配的构造体名,其他什么也没有。
4、包集合
格式
PACKAGE
说明
包集合名 IS [说明语句]; END 包集合名; PACKAGE BODY 包集合名 [说明语句]; END BODY;
3)扩展标识符
扩展标识符有以下特征: •用反斜杠来定义 •允许包含图形符号,允许包含空格符 •2个反斜杠之间的字可以用数字打头,和保留字相同 •扩展标识符中允许多个下划线相邻
•扩展标识符区分大小写
•扩展标识符的名字中如有1个反斜杠,则用相邻的两 个反斜杠来代表它
二)对象是用来保存数据的客体单元
VHDL有四类对象:
architecture a of test1 is begin b <= not(a); c <= b;--Error end a;
2、结构体描述设计实体的内部结构和外部设 计实体端口间的逻辑关系 ARCHITECTURE 结构体名 OF 实体名 IS 格式 [说明语句] BEGIN [功能描述语句] END 结构体名;
功能
• •
对数据类型、常数、信号、子程序和元件 等元素的说明 描述实体逻辑行为
2、结构体
结构体的描述方法有行为描述、数据流描述和结构描述三种。
1)行为描述(数学模型描述):对设计实体按算法的路径描述, 描述设计单元的功能,主要使用函数、过程和进程语句,以算法 形式描述数据的变换和传递。 2)数据流描述:类似于寄存器传输级(RTL)的描述方法,描 述数据流的运动路径、方向和结果。采用并发信号赋值语句,如 case-when、with-select-when语句等。 3)结构化描述(逻辑元件连接描述):描述设计单元的硬件结 构,主要使用元件例化语句及配置语句来描述元件的类型及元件 之间的互连关系。
端口模式
IN OUT INOUT BUFFER 输入,信号只能自端口到实体 输出,信号只能自实体到端口 双向,信号既可输入又可输出 缓冲,信号自实体输出,又有 内部反馈
Entity
Out与Buffer的区别
Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; Entity test2 is port(a: in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b <= not(a); c <= b; end a;
PORT说明语句是对一个设计实体界面的说明及对设 计实体与外部电路的接口通道的说明,其中包括对每一 接口的输入输出模式和数据类型的定义。
格式
PORT ( 端口名 : 端口模式 数据类型 ; { 端口名 : 端口模式 数据类型} ) ; 说明 端口名是设计者为实体的每一个对外通道所取的名字 端口模式是指这些通道上的数据流动方式 数据类型是指端口上流动的数据的表达格式或取值类 型,VHDL要求只有相同数据类型的端口信号和操作数才 能相互作用。
二、VHDL的语言元素
一) VHDL文字规则 2)数位字符串也称为位矢量,是预定义的数据类型 bit的一位数组,与文字字符串相似,但代表的是二进 制、八进制或十六进制的数组
3 标识符设计者在VHDL程序中自定义的用于标识不同 名称的词 VHDL中的标识符有: •保留标识符--即关键字或保留字 •短标识符--由用户创建的符合VHDL’87规定的标识 符 •扩展标识符--VHDL’93规定的标识符
结构体(Architecture) 配置(Configuration) 程序包(Package) 库(Library)
可 选
实体和结构体是VHDL设计文件的两个基 本组成部分。实体描述设计系统的外部接口 信号;结构体用于描述系统的行为、系统数 据的流程或者系统组织结构形式(即系统的 内部电路)。 配置用于从库中选取所需元件安装到设 计单元的实体中。 包集合存放各设计模块能共享的数据类 型、常数、子程序等。 库用于存放已编译的实体、结构体、包 集合和配置。
• 常量 (CONSTANT)是一个在仿真和综合过程中固定不变 的值,使程序容易阅读和修改,可通过其标识符来引用。
•信号(SIGNAL)代表电路内部各元件之间的连接线,是 实体间动态交换数据的手段,硬件特征明显,具有全局性特 征。除了没有方向说明以外,信号与实体的端口概念一致。 •变量(VARIABLE)暂存数据的量,是局部量,只在进程和 子程序中用。