收藏 分享(赏)

数字电路设计课件第三讲.ppt

上传人:dzzj200808 文档编号:4386073 上传时间:2018-12-26 格式:PPT 页数:48 大小:394KB
下载 相关 举报
数字电路设计课件第三讲.ppt_第1页
第1页 / 共48页
数字电路设计课件第三讲.ppt_第2页
第2页 / 共48页
数字电路设计课件第三讲.ppt_第3页
第3页 / 共48页
数字电路设计课件第三讲.ppt_第4页
第4页 / 共48页
数字电路设计课件第三讲.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、EDA技术实用教程,第三讲,VHDL设计初步,是什么是VHDL?,Very high speed integrated Hardware Description Language (VHDL) 是IEEE、工业标准硬件描述语言 用语言的方式而非图形等方式描述硬件电路 容易修改 容易保存 特别适合于设计的电路有: 复杂组合逻辑电路,如: 译码器、编码器、加减法器、多路选择器、地址译码器. 状态机 等等,一、VHDL入门,VHDL历史,1982年, 诞生于美国国防部赞助的VHSIC项目 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 ,即IEEE-1076(简称87版) 199

2、3年,IEEE对VHDL进行了修订,公布了新版本的VHDL,即IEEE标准的1076-1993(1164)版本 1996年,IEEE-1076.3成为VHDL综合标准,VHDL特点,与其他的硬件描述语言相比,VHDL具有更强的行为描述能力 VHDL丰富的仿真语句和库函数,使得在设计的早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟 VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表 VHDL对设计的描述具有相对独立性,设计者可以不

3、懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计,VHDL语言的基本结构,VHDL 语言的基本结构:库说明包集合实体构造体(配置)库:用来存放已经编译的实体、构造体、包集合和配置。库一般可由用户产生或者由ASIC芯片制造商提供。 包集合:存放各设计模块都能共享的数据类型、常数和子程序。 实体:系统的外部接口关系。 构造体:描述系统内部的结构和行为。 配置:用于从库中选取所需的单元,来组成系统设计的不同版本。,VHDL设计举例,系统说明:设计一个4位二进制数比较器,设计描述:,设计输入为2个4位二进制数,当 两个二进制数相等时,输出为1,当两个二进制数不相等时,输出为零,e

4、qcomp4,A30,B30,equal,Library IEEE; use IEEE.std_logic_1164.all;entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0);equal :out std_logic); end eqcomp4;architecture dataflow of eqcomp4 is beginequal = 1 when a=b else 0; End dataflow;,VHDL 大小写不敏感,eqcomp4.vhd,包,实体,构造体,文件名和实体名一致,每行;结尾,关键字begin,关键

5、字end后跟实体名,关键字end后跟构造体名,库,VHDL库,库的种类,1. IEEE库,2. STD库,3. WORK库,VHDL库的用法,USE语句的使用有两种常用格式: USE 库名.程序包名.项目名 ; USE 库名.程序包名.ALL ;,LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.STD_ULOGIC ;USE IEEE.STD_LOGIC_1164.RISING_EDGE ;,VHDL程序包,程序包,常数说明,VHDL数据类型说明,元件定义,子程序,常用的预定义的程序包,STD_LOGIC_1164程序包,STD_LOGIC_ARITH程序包,STD

6、_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包,STANDARD和TEXTIO程序包,实体(Entity),描述此设计功能输入输出端口(Port) 在层次化设计时,Port为模块之间的接口 在芯片级,则代表具体芯片的管脚,实体说明单元的一般语句结构: ENTITY 实体名 ISGENERIC ( 类属表 );PORT ( 端口表 );END ENTITY 实体名;,PORT(端口)说明,PORT ( 端口名 : 端口模式 数据类型 ; 端口名 : 端口模式 数据类型 ) ;,其中的端口名是设计者为实体的每一个对外通道所取的名字,端口模式是指这些通道上的数据流动方式。数据

7、类型是指端口上流动的数据的表达格式或取值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互作用。,由于PORT说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明,其中包括对每一接口的输入输出模式和数据类型的定义。其格式如下:,IN,OUT,INOUT,BUFFER,端口模式,eqcomp4,a30,b30,equal,Entity eqcomp4 is port(a, b: in std_logic_vector(3 downto 0);equal:out std_logic); end eqcomp4;,结 构 体,构造体和原理图类似 用来描述实体的内部结构和

8、逻辑功能 必须和实体(ENTITY)相联系 一个实体(ENTITY)可以有多个构造体 构造体的运行是并发的 构造体类型包括: 行为描述 数据流描述 结构化描述,构造体基本结构,ARCHITECTURE OF IS 说明语句 BEGIN 并行语句 END ; (1076-1987 version) END ARCHITECTURE; (1076-1993 version),实体和构造体之间的关系,Input 1,Input n,Output 1,Output n,实体,A B C D Sel,MUX_Out,2,结构体有三种描述方式 行为描述(behavioral) 数据流描述(dataflow

9、) 结构化描述(structural),结构体行为描述,Architecture behavioral of eqcomp4 is begin comp: process (a,b)beginif a=b thenequal = 1; elseequal =0;end if;end process comp; end behavioral ;,高层次的功能描述,不必考虑在电路中到底是怎样实现的。,结构体数据流描述 描述输入信号经过怎样的变换得到输出信号,Architecture dataflow2 of eqcomp4 is begin equal = not(a(0) xor b(0)and

10、 not(a(1) xor b(1)and not(a(2) xor b(2)and not(a(3) xor b(3); end dataflow2;,当a和b的宽度发生变化时,需要修改设计,当宽度过大时,设计非常繁琐,结构体结构化描述,architecture struct of eqcomp4 is beginU0:xnor2 port map(a(0),b(0),x(0); U1:xnor2 port map(a(1),b(1),x(1);U2:xnor2 port map(a(2),b(2),x(2);U3:xnor2 port map(a(3),b(3),x(3);U4:and4

11、port map(x(0),x(1),x(2),x(3),equal); end struct;,类似于电路的网络表,将各个器件通过语言的形式进行连接,与电路有一一对应的关系。 一般用于大规模电路的层次化设计时。,二、VHDL的数据类型、数据对象、运算操作符,VHDL的基本数据类型,预定义数据类型自定义数据类型,预定义数据类型(一),BIT :位类型,其值只能为 0或 1 例:Signal a: BIT;( a = 1 ) BIT_VECTOR :位矢量类型,包含一组位类型 例:Signal a: BIT_VECTOR (7 DOWNTO 0)( a = “00000001” 、 a = a

12、+ 1) BOOLEAN:布尔类型,其值可为 TRUE或FALSE,INTEGER:整型,范围为-214783647到214783647(232),综合时,要对范围加以限制。常用于循环语句的循环次数、常量、数学函数或模式仿真例:Signal a: INTEGER RANGE 0 TO 15 (综合器根据限定的范围来确定信号的二进制位数)Natural:自然数类型,整型的子类型,含零和正整数,预定义数据类型(一),预定义数据类型(一),Positive:正整数类型,整型的子类型,含非零和非负整数REAL:浮点类型,范围为:-1.0E38到1.0E38很多综合器不支持该类型,预定义数据类型(二),

13、标准逻辑位(Std_Logic)数据类型标准逻辑矢量(Std_Logic_Vector)数据类型,Std_Logic数据类型,IEEE 1164中定义的一种位数据类型,它包含9种取值分别为: U 未初始化 用于仿真 X 强未知(浮接不定) 用于仿真 0 强0 用于综合与仿真 1 强1 用于综合与仿真 Z 高阻 用于综合与仿真 W 弱未知(弱浮接) 用于仿真 L 弱0 用于综合与仿真 H 弱1 用于综合与仿真 _ 忽略 用于综合与仿真,Std_Logic数据类型,它是数字电路设计的工业标准逻辑类型 它增加了VHDL语言编程、综合和仿真的灵活性 在多值逻辑系统中STD_LOGIC和 STD_LOG

14、IC_VECTOR 用于取代 BIT 和 BIT_VECTOR 若电路中有三态逻辑(Z) 必须用STD_LOGIC 和 STD_LOGIC _VECTOR 要使用这种类型代码中必须申明库和程序包说明语句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;,自定义数据类型,枚举类型:用户定义的数据类型,在状态机设计中,为提高程序的可读性,将每个二进制状态编码用字符表示。定义语法:(在结构体的说明语句位置),TYPE 标识符 IS (状态1, 状态2,状态3, ),自定义数据类型,数组类型:用户定义的数据类型,常用来组合同样数据类型的元素。例如ROM、RAM等。有限定

15、性和非限定性数组定义语法1:(限定性数组),TYPE 标识符 IS Array(数组范围)Of 数据类型,VHDL的数据对象,常数 信号 变量,数据对象常数,指在设计中不会变的值 改善代码可读性,便于代码修改 必须在程序包、实体、构造体或进程的说明区域加以说明,常数具有区域性 一般要赋一初始值 保留字CONSTANT 例:CONSTANT Width : Integer : = 8 ;,例:定义一个4位长常数零和一个8位长常数零,Constant Zero_4: Std_Logic_Vector(3 Downto 0): = “0000”Constant Zero_8: Std_Logic_V

16、ector(7 Downto 0): = “00000000”,数据对象信号,可代表电路内部连线或端口,有传输延迟 用“=”来给信号赋值 保留字 SIGNAL SIGNAL Count: Bit_Vector(3 downto 0);IF Rising_Edge(clk) THEN Count = Count + 1; END IF; 信号在Package、Entity、Architecture 中声明,数据对象信号,信号举例,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY simp IS PORT(a, b, c, d : IN Std_L

17、ogic;g : OUT Std_Logic); END simp; ARCHITECTURE logic OF simp IS SIGNAL e,f : Std_Logic; BEGINe = a or b;f = not(c or d);g = e and f; END logic;,信号赋值,SIGNAL temp : Std_Logic_Vector (7 downto 0); 整体赋值: temp = “10101010”; temp = x”AA” ; 逐位赋值: temp(7) = 1; 多位赋值: temp (7 downto 4) = “1010”;,数据对象变量,仅用于进程

18、和子程序 必须在进程和子程序的说明性区域说明 和信号不同,不能表达连线和存储元件 保留字VARIABLE VARIABLE tmp : Bit ; tmp := 1 ;,变量赋值,整体赋值 temp := “10101010”; temp := x”AA” ; 逐位赋值 temp(7) := 1; 多位赋值 temp (7 downto 4) := “1010”;,信号和变量的作用范围,ARCHITECTURE,信号和变量的区别,VHDL的基本操作符,逻辑操作符 关系操作符 算术操作符,算术运算符,关系运算符,逻辑运算符,其他运算符,使用操作符需要注意,基本操作符之间的操作数必须是相同数据类型 操作数的数据类型必须与操作符所要求 的数据类型一致,运算重载,若两信号类型不同,不能将一个信号的值赋给另一信号 数据转换必须要用运算重载 VHDL允许用户对原有基本操作符重新定义,建立新的操作符-重载操作符 用重载函数定义重载操作符,运算重载,一般可用IEEE .1164中的标准重载函数实现 LIBRARY IEEE; USE IEEE_Std_Logic_1164.all; USE IEEE_Std_Logic_Arith.all; USE IEEE_Std_Logic_unsigned.all USE IEEE_Std_Logic_signed.all,

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

当前位置:首页 > 通信信息 > 电子设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报