ch3_VHDL设计初步.ppt
《ch3_VHDL设计初步.ppt》由会员分享,可在线阅读,更多相关《ch3_VHDL设计初步.ppt(81页珍藏版)》请在一课资料网上搜索。
1、第3章VHDL设计初步 在VHDL中 一个相对完整的VHDL程序称为设计实体 设计实体是VHDL程序的基本单元 它可以是一个复杂的系统 如cpu系统 也可以是一个芯片 逻辑器件或者一个最简单的门电路 一般来说 一个VHDL程序结构如下图 3 1VHDL程序入门 打开元件库打开库中的程序包 定义电路实体的外观 I O接口 描述电路内部的功能 决定哪个结构体被使用 如果只有结构体 可不用 3 1组合电路的VHDL设计描述 2选1多路选择器的VHDL设计 图3 12选1数据选择器mux21a实体 问 多路选择器的功能与逻辑表达式 其逻辑功能可表述为 若s 0 则y输出a的信号 若s 1 则y输出b的
2、信号 例3 1 这是一个完整的2选1多路选择器的VHDL程序 要注意 1 VHDL不分大小写 但为了使程序阅读清楚 对保留字采用大写 自己定义的标识符用小写 2 注释 增加程序可读性 如c中 3 文件的存盘 必须用实体名 1 库说明 打开IEEE库为了提高工作效率 把一些公有信息 如预先定义好的数据类型 或是各种预先设计好的设计实体 程序包 集中在一起 这样 使用者只要打开这个库就可以调用其中的东西 IEEE库是VHDL中最常用的库 它包含有IEEE标准的程序包和支持工业标准的程序包 只要是CPLDFPGA等芯片公司 他们都会提供标准的定义库 使用时 用Library打开 USE 打开IEEE
3、库中的STD LOGIC 1164 ALL中的程序包 使程序包中的内容可以被访问或调用 2 实体说明实体说明定义了硬件的输入输出端口 它是一个独立的语言模块 它描述了器件的接口信息 芯片俯视图是一个黑盒子 黑盒子上带有输入 出的端口说明 如用port定义a b s为输入in脚 y为输出out脚 std logic是预先定义的一种数据类型 1 表示高电平 0 表示低电平 规定了八种 标准逻辑位数据类型STD LOGIC BIT数据类型定义 TYPEBITIS 0 1 只有两种取值 STD LOGIC数据类型定义 TYPESTD LOGICIS U X 0 1 Z W L H 3 结构体说明结构体
4、说明具体指明了该设计实体的行为 描述了设计实体的功能 在电路上相当于器件内部的电路结构 表示信号赋值符号 用类似于C语言的表达方式描述了它的逻辑行为 对外而言 它是内部的 描述功能可以用几种方法实现 如行为描述法 按算法路径 数据流描述法 数据流程运动路径 方向结果 结构描述法 块方式 例3 2 例3 3 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21aISPORT a b s INSTD LOGIC y OUTSTD LOGIC ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINPROCESS a
5、 b s BEGINIFs 0 THENy a ELSEy b ENDIF ENDPROCESS ENDARCHITECTUREone 图3 3mux21a功能时序波形 3 2基本时序电路的VHDL设计 一 D触发器的VHDL描述 图3 6D触发器 问 D触发器的功能与特性方程 例3 8 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF1ISPORT CLK INSTD LOGIC D INSTD LOGIC Q OUTSTD LOGIC ENDDFF1 ARCHITECTUREbhvOFDFF1ISSIGNALQ1 STD LOGIC 类似于在
6、芯片内部定义一个数据的暂存节点BEGINPROCESS CLK Q1 BEGINIFCLK EVENTANDCLK 1 THENQ1 D ENDIF Q Q1 将内部的暂存数据向端口输出 双横线 是注释符号 ENDPROCESS ENDbhv 1 信号定义和数据对象 CLK EVENTANDCLK 1 SIGNALQ1 STD LOGIC 2 上升沿检测表式和信号属性函数EVENT EVENT 使用不同语句的D触发器VHDL程序 LIBRARYIEEE USEIEEE std logic 1164 all Entitytest1isport clk d inbit q outbit endte
7、st1 architecturebodyoftest1issignalq1 bit beginprocess clk beginifclk 1 ANDclk last value 0 thenq1 d endif q q1 endprocess endbody LIBRARYIEEE USEIEEE std logic 1164 all Entitytest1isport clk d inbit q outbit endtest1 architecturebodyoftest1isbeginprocess clk d beginifrising edge clk thenq d endif e
8、ndprocess endbody LIBRARYIEEE USEIEEE std logic 1164 all Entitytest1isport clk inbit d inbit q outbit endtest1 architecturebodyoftest1issignalq1 bit beginprocess clk d beginif clk 1 thenq1 d endif q q1 endprocess endbody LIBRARYIEEE USEIEEE std logic 1164 all Entitytest1isport clk inbit d inbit q ou
9、tbit endtest1 architecturebodyoftest1issignalq1 bit beginprocess clk beginif clk 1 thenq1 d endif q q1 endprocess endbody 例3 11 PROCESS CLK BEGINIFCLK 1 ANDCLK LAST VALUE 0 同例4 9THENQ D ENDIF ENDPROCESS 二 实现时序电路的VHDL不同表述 例3 14 PROCESSBEGINwaituntilCLK 1 利用wait语句Q D ENDPROCESS 例3 15 PROCESS CLK BEGIN
10、IFCLK 1 THENQ D 利用进程的启动特性产生对CLK的边沿检测ENDIF ENDPROCESS 图3 9例3 15的时序波形 例3 16 PROCESS CLK D BEGINIFCLK 1 电平触发型寄存器THENQ D ENDIF ENDPROCESS 图3 10例3 16的时序波形 3 3配置 CONFIGURATION 配置是VHDL设计实体中的一个基本单元 在综合或仿真中 可以利用配置语句为实体指定或配属一个结构体 如可以利用配置使仿真器为同一实体配置不同的结构体以使设计者比较不同结构体的仿真差别 或者为例化的各元件实体配置指定的结构体 从而形成一个例化元件层次构成的设计实
11、体 VHDL综合器允许将配置规定为一个设计实体中的最高层次单元 但只支持对最顶层的实体进行配置 通常情况下 配置主要用在VHDL的行为仿真中 LIBRARYIEEE USEIEEE std logic 1164 all Entitytest1isport clk d inbit q outbit endtest1 architecturebody1oftest1issignalq1 bit beginprocess clk beginifclk 1 ANDclk last value 0 thenq1 d endif q q1 endprocess endbody1 architectureb
12、ody2oftest1isbeginprocess clk d beginifrising edge clk thenq d endif endprocess endbody2 architecturebody3oftest1issignalq1 bit beginprocess clk beginif clk 1 thenq1 d endif q q1 endprocess endbody3 architecturebody4oftest1issignalq1 bit beginprocess clk d beginif clk 1 thenq1 d endif q q1 endproces
13、s endbody4 CONFIGURATIONoneOFtest1ISFORbody2ENDFOR ENDone CONFIGURATION配置名OF实体名ISFOR选配结构体名ENDFOR END配置名 3 4 1实体 ENTITY 3 4 2结构体 ARCHITECTURE 3 4 4库 LIBRARY 3 4 5程序包 PACKAGE 3 4 3进程 PROCESS 3 4VHDL程序结构 VHDL程序设计基本结构 库 LIBRARY 存放已经编译的包集合 实体 结构体和配置等 其好处在于使设计者可共享已经编译过的设计结果 程序包 PACKAGE 声明在实体中将用到的信号定义 常数定义
14、 数据类型 元件语句 函数定义和过程定义 在VHDL程序中 实体 ENTITY 和结构体 ARCHITECTURE 是必需的两个基本结构 它们可以构成最简单的VHDL程序 通常 在最简单的VHDL程序中 还应包括库 LIBRARY 和程序包 PACKAGE 一个完整的设计实体的最低要求应该能为VHDL综合器所接受 并能作为一个独立设计单元 即以元件的形式存在的VHDL程序 实体 ENTITY 对设计实体输入 输出的定义和说明 是可视部分 结构体 ARCHITECTURE 描述电路内部的结构和行为 建立输入和输出之间的关系 是不可视部分 在一个实体中 可以含有一个或一个以上的结构体 而在每一个结
15、构体中又可以含有一个或多个进程以及其他的语句 根据需要 实体还可以有配置说明语句 一个实体可以对应多个结构体 但在同一时间 只有一个结构体被使用 配置 CONFIGURATION 主要用于以层次化的方式对特定的设计实体进行元件例化 或是为实体选定某个特定的结构体 以决定哪一个结构体被使用 3 4 1实体 ENTITY 实体 ENTITY 是一个设计实体的表层设计单元 其功能是对这个设计实体与外部电路进行接口描述 它规定了设计单元的输入输出接口信号或引脚 是设计实体经封装后对外的一个通信界面 一 实体语句结构实体说明单元的常用语句结构如下 ENTITY实体名IS GENERIC 类属表 PORT
16、 端口表 ENDENTITY实体名 实体说明单元必须以语句 ENTITY实体名IS 开始 以语句 ENDENTITY实体名 结束 其中的实体名是设计者自己给设计实体的命名 可作为其他设计实体对该设计实体进行调用时用 中间在方括号内的语句描述 在特定的情况下并非是必需的 一个设计实体无论多大和多复杂 在实体中定义的实体名即为这个设计实体的名称 一般以所描述系统或电路的具体名称命名 在例化中 可以用此名对相应的设计实体进行调用 在层次化系统设计中 实体说明是整个模块或系统的输入输出 I O 接口 在一个器件级的设计中 实体说明是一个芯片的输入输出 I O 例 四位加法器实体说明程序ENTITYad
17、d4ISPORT a b INSTD LOGIC VECTOR 3downto0 Ci INSTD LOGIC Sum OUTSTD LOGIC VECTOR 3downto0 Co OUTSTD LOGIC ENDENTITYadd4 由实体说明画出四位加法器add4的电路图如下所示 二 类属 GENERIC 说明语句类属说明是实体说明中的可选项 必须放在端口说明之前 类属为所说明的环境提供了一种静态信息通道 类属的值可以由设计实体外部提供 这与常数不同 常数只能从设计实体的内部得到赋值 且不能再改变 因此 设计者可以从外面通过类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结
18、构和规模 类属说明的一般书写格式如下 GENERIC 常数名 数据类型 设定值 常数名 数据类型 设定值 类属参量以关键词GENERIC引导一个类属参量表 在表中提供时间参数或总线宽度等静态信息 类属表说明用于确定设计实体和其外部环境通信的参数 传递静态的信息 其中的常数名是由设计者确定的类属常数名 数据类型通常取INTEGER或TIME等类型 设定值即为常数名所代表的数值 注意 VHDL综合器仅支持数据类型为整数的类属值 对于同一个实体 可以通过GENERIC参数类属的说明 为它创建多个行为不同的逻辑结构 比较常见的情况是选用类属来动态规定一个实体端口的大小 或设计实体的物理特性 或结构体中
19、的总线宽度 或设计实体中 底层中同种元件的例化数量等 一般在结构体中 类属的应用与常数是一样的 例9 1 与门的设计LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYandnISGENERIC n INTEGER 定义类属参量及其数据类型PORT a INSTD LOGIC VECTOR n 1DOWNTO0 用类属参量限制矢量长度c OUTSTD LOGIC ENDandn ARCHITECTUREbehavOFandnISBEGINPROCESS a VARIABLEint STD LOGIC BEGINint 1 FORiINa LENGTH 1D
20、OWNTO0LOOP 循环语句IFa i 0 THENint 0 ENDIF ENDLOOP c int ENDPROCESS ENDbehav 例9 2 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYexnISPORT d1 d2 d3 d4 d5 d6 d7 INSTD LOGIC q1 q2 OUTSTD LOGIC ENDexn ARCHITECTUREexn behavOFexnISCOMPONENTandn 调用例9 1的元件调用声明GENERIC n INTEGER PORT a INSTD LOGIC VECTOR n 1DOWNTO
21、0 C OUTSTD LOGIC ENDCOMPONENT BEGINu1 andnGENERICMAP n 2 参数传递映射语句 定义类属变量 n赋值为2PORTMAP a 0 d1 a 1 d2 c q1 u2 andnGENERICMAP n 5 定义类属变量 n赋值为5PORTMAP a 0 d3 a 1 d4 a 2 d5 a 3 d6 a 4 d7 c q2 ENDexn behav 例9 3 未定义位宽的加法器LIBRARYIEEE 待例化元件USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC arith ALL USEIEEE STD LO
22、GIC unsigned ALL ENTITYaddernISPORT a b INSTD LOGIC VECTOR result outSTD LOGIC VECTOR ENDaddern ARCHITECTUREbehaveOFaddernISBEGINresult a b END 例9 4 LIBRARYIEEE 顶层设计USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC arith ALL USEIEEE STD LOGIC unsigned ALL ENTITYaddersISGENERIC msb operand INTEGER 15 msb
23、sum INTEGER 15 PORT b INSTD LOGIC VECTOR msb operandDOWNTO0 result OUTSTD LOGIC VECTOR msb sumDOWNTO0 ENDadders ARCHITECTUREbehaveOFaddersISCOMPONENTaddernPORT a b INSTD LOGIC VECTOR result OUTSTD LOGIC VECTOR ENDCOMPONENT SIGNALa STD LOGIC VECTOR msb sum 2DOWNTO0 SIGNALtwoa STD LOGIC VECTOR msb ope
24、randDOWNTO0 BEGINtwoatwoa b b result result U2 addernPORTMAP a b msb operanddowntomsb operand 2 1 b b msb operand 2downto0 result a ENDbehave 图9 1例9 4的RTL电路图 三 端口 PORT 说明语句PORT说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明 其中包括对每一接口的输入输出模式和数据类型的定义 其格式如下 端口说明的一般书写格式如下 PORT 端口名 端口模式数据类型 端口名 端口模式数据类型 PORT 端口名 端口
25、模式数据类型 端口名 端口模式数据类型 1 端口名 是设计者为实体的每一个对外通道 系统引脚 所取的名字 一般用几个英文字母组成 2 端口模式 端口方向 是指这些通道上的数据流动方式 即定义引脚是输入还是输出 图3 20端口模式符号图 IEEE1076标准包中定义了4种常用的端口模式 各端口模式的功能及符号分别见表3 1和图3 20 表3 1端口模式说明 端口模式及数据类型定义举例 PORT n0 n1 select INBIT q OUTBIT bus OUTBIT VECTOR 7DOWNTO0 本例中 n0 n1 select是输入引脚 属于BIT型 q是输出引脚 BIT型 bus是一组



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch3_VHDL 设计 初步
