1.35k likes | 1.58k Views
《 电å设计自动化 》. EDA. 主讲人:熊娟 黄淮å¦é™¢ç”µå科å¦ä¸Žå·¥ç¨‹ç³». 6. 2. 3. 5. 4. 1. å¯ç¼–程器件开å‘系统. Protel 99se/DXP 的使用. Multisim 的使用. 硬件æè¿°è¯è¨€. å¯ç¼–程逻辑器件. EDA 技术基础. 本å¦æœŸä¸»è¦å†…容. æ•™å¦ç›®çš„:认识 EDA 技术,掌æ¡å¸¸ç”¨ EDA 工具的使用方法 (Protel 99se MultisimQuartus2 ) ,掌æ¡ä¸€ç§è®¾è®¡è¯è¨€ (VHDL) 。 å¦æ—¶æ•°ï¼š 72 å¦æ—¶ï¼ˆè¯¾å ‚æ•™å¦ 36 å¦æ—¶ï¼Œä¸Šæœºå®žéªŒ 36 å¦æ—¶ ).
E N D
《电子设计自动化》 EDA 主讲人:熊娟 黄淮学院电子科学与工程系
6 2 3 5 4 1 可编程器件开发系统 Protel 99se/DXP的使用 Multisim的使用 硬件描述语言 可编程逻辑器件 EDA技术基础 本学期主要内容 Company Logo
教学目的:认识EDA技术,掌握常用EDA工具的使用方法(Protel 99se\ Multisim\Quartus2),掌握一种设计语言(VHDL)。 • 学时数:72学时(课堂教学36学时,上机实验36学时) Company Logo
《EDA技术入门与提高》,王行、熊寿葵、李衍主编,西安电子科技大学出版社 ; 《电子设计自动化技术及应用》,李方明主编,清华大学出版社 ; 《VHDL程序设计教程》,邢建平 曾繁泰主编,清华大学出版社 ; 《Protel 99SE电路设计技术入门与应用》,李东生主编,电子工业出版社 ; 《电路设计与制板——Protel DXP入门与提高》,老虎工作室主编,人民邮电出版社 ; 《Multisim 10电路设计及应用》,王冠华 主编,国防工业出版社 ; 《电子设计自动化》 张永生主编 中国电力出版社 推荐教材及参考书 Company Logo
5.1 5.3 5.4 5.5 5.6 VHDL概述 VHDL基本描述语句 常见逻辑单元的VHDL描述 5.2 第五章 硬件描述语言(VHDL) VHDL基本结构 VHDL基本元素 VHDL仿真与综合 Company Logo
5.1 VHDL概述 黄淮学院 第五章 硬件描述语言(VHDL) 1. VHDL的涵义及其发展 (1)涵义 HDL----Hardware Description Language(硬件描述语言) 一种用于描述数字电路的功能或行为的语言。常用的HDL是VHDL、Verilog HDL和ABEL。 Text Txt VHDL:(全称是“超高速集成电路硬件描述语言”) VHSIC (Very High Speed Integrated Circuit) Hardware Description Language VHDL主要用于描述数字系统的结构、行 为、功能和接口。 VHDL将一个设计(元件、电路、系统)分为:外部(可视部分、端口)和 内部(不可视部分、内部功能、算法)。 Text Company Logo
5.1 VHDL概述 黄淮学院 第五章 硬件描述语言(VHDL) 1. VHDL的涵义及其发展 (2)发展 20世纪80年代初由美国国防部在实施超高速集成电路(VHSIC)项目时开发的。 1987年由 IEEE 协会批准为 IEEE 工业标准,称为 IEEE1076-1987。各EDA公司相继推出支持VHDL的设计环境。 1993年被更新为 93 标准,即IEEE1076-1993。进一步提高抽象描述层次,扩展了系统描述能力。 1995年,我国国家技术监督局推荐VHDL做为电子设计自动化硬件描述语言的国家标准。 Text Txt Text EDA工具及 HDL的流行,使电子系统向集成化、大规模和高速度等方向发展。 美国硅谷约有80%的ASIC和FPGA/CPLD 已采用 HDL进行设计。 Company Logo
用VHDL描述的可置数16位计数器 16位计数器电路原理图 5.1 VHDL概述 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的特点 Text (1)VHDL具有强大的语言结构,系统硬件描述能力强、设计效率高;具有较高的抽象描述能力。(如:一个可置数的16位计数器) (2)VHDL语言可读性强,易于修改和发现错误。 (3)VHDL具有丰富的仿真语句和库函数,可对VHDL源代码进行早期功能仿真,有利于大系统的设计与验证。 (4)VHDL设计不依赖于器件,与工艺无关 。 (5)移植性好。 (6)VHDL体系符合TOP-DOWN和CE(并行工程)设计思想。 (7)VHDL设计效率高,产品上市时间快,成本低。 Txt Text Company Logo
补充知识 黄淮学院 第五章 硬件描述语言(VHDL) VHDL与C、C++的区别: C、C++ 代替汇编等语言 VHDL 代替原理图、逻辑状态图等 VHDL与电原理图描述的区别: VHDL具有较强的抽象描述能力,可进行系统行为级别的描述。描述简洁,效率高。 VHDL描述与实现工艺无关。 电原理图描述需给出完整、具体的电路结构图,不能进行抽象描述。描述繁杂,效率低。电原理图描述与实现工艺有关。 VHDL与常规计算机程序的区别: VHDL从根本上是并发执行的,通常称之为代码。 VHDL中只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。 Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 一个完整的VHDL语言程序通常包含5部分: ◆实体(Entity):描述所设计的系统的外部接口信号,定义电路设计中所有的输入和 输出端口; ◆结构体 (Architecture):描述系统内部的具体结构和操作(行为); ◆包集合 (Package):存放各设计模块能共享的数据类型、常数和子程序等; ◆配置 (Configuration):指定实体所对应的结构体; ◆库 (Library):存放已经编译的实体、结构体、包集合和配置。 Text Txt 不管是简单的数字电路(可以是一个与门),还是复杂的数字电路(可以是一个微处理器或一个系统),其基本构成是一致的。它们主要是由实体说明(Entity Declaration)和结构体(Architecture Body)两部分构成。 Text Company Logo
实体说明是一个器件的外部视图,即外部引脚输入输出情况的定义实体说明是一个器件的外部视图,即外部引脚输入输出情况的定义 结构体描述了一个器件逻辑功能的实现 a a c c b b 黄淮学院 第五章 硬件描述语言(VHDL) 库 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY test IS PORT ( a,b: IN STD_LOGIC ; c: OUT STD_LOGIC); END test; ARCHITECTURE behav of test IS BEGIN c<=a AND b; END behav; 包 实体 说明 结构体 Company Logo
5.2 VHDL基本结构 STD库:包集合“Standard”和“Textio” WORK库:当前工作库 黄淮学院 第五章 硬件描述语言(VHDL) 库 设计库(隐含打开)(不需定义 1.库分类 IEEE库:标准包集合STD_LOGIC_1164 资源库(用LIBRARY) 用户自定义库: 2. 库说明——放在设计单元的最前面 LIBRARYieee; USE ieee. Std_logic_1164.all; LIBRARY库名; USE 库名. 程序包名.项目名; ALL Company Logo
常用库 Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 包集合 1. 是库结构中的一个层次 2. 单纯地罗列设计中经常用到的信号定义、数据类型、元件语句、函数定义、过程定义等 3. 用于封装属于多个设计单元分享的信息 STD_LOGIC_1164程序包(std-logic类型以及相关函数) STD_LOGIC_ARITH程序包(算术函数) 常用的预定义的程序包 STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包(符合算术函数和无符合算术函数) STANDARD和TEXTIO程序包(标准和文件输入/输出程序包) Company Logo
5.2 VHDL基本结构 实体 结构体1 结构体N 黄淮学院 第五章 硬件描述语言(VHDL) 配置 配置可以把特定的结构体 关联到(指定给)一个确定的实体。 Configuration配置名 of实体名 is For 选配结构体名 End For; End 配置名; Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 配置 Configuration pg1 of decode is For struc1 End For; End pg1; 例:2-4 译码器设计 方案1:反相器+3输入与门 方案2:单一逻辑门与非门 Entity decode is Port( …); End decode; Architecture struc1 of decode is Begin …. End struc1; Architecture struc2 of decode is Begin …. End struc2; Configuration pg2 of decode is For struc2 End For; End pg2; 译码器实体 译码器 结构体2 译码器 结构体1 Company Logo
a c 5.2 VHDL基本结构 test b 黄淮学院 第五章 硬件描述语言(VHDL) 实体 用来表示被设计电路芯片的名称。由英文字母和数字组合而成,不允许有中文字符,第一个字符必须是英文字母。必须与VHDL程序的文件名称相同。 library ieee; use ieee.std_logic_1164.all; entity test is port ( a,b: in std_logic; c: out std_logic); end test; architecture behav of test is begin c<=a and b; end behav; 实体的一般格式为: ENTITY实体名 IS [ GENERIC(常数名:数据类型:设定值)] PORT ( 端口名1:端口方向 端口类型; …… 端口名n:端口方向 端口类型); END[实体名]; 要点: 以 entity 实体名 is开始;以 end 实体名;结束 实体的主要内容为端口(port) 说明,其中主要包括:信号名、信号模式、信号类型 Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 由英文字母和数字组合而成,第一个字符必须是英文字母 实体 1. 类属(Generic)说明 类属为设计实体与外界通信的静态信息提供通道,用来规定端口的大小、实体中子元件的数目和实体的定时特性等。类属说明是可选部分。如果需要,可使用以“GENERIC”语句来指定该设计单元的类属参数(如延时、功耗等)。 格式: GENERIC(常数名:数据类型:设定值; ∶ 常数名:数据类型:设定值); VHDL综合器仅支持数据类型为整数的类属值。 例如: GENERIC(wide:integer:=32); --说明宽度为32 GENERIC(tmp:integer:=1ns); --说明延时1 ns Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 实体 1. 类属(Generic)说明 例如:加入类属说明的2输入的与门的实体说明 ENTITY and2 IS GENERIC ( risew: TIME :=1ns; fallw: TIME :=1ns ); PORT( A: IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC ); END and2; --定义risew为上升沿 --定义fallw为下降沿 --定义A、B和Y为逻辑位 同类型的参数名可放在同一个说明语句中。 GENERIC (rise,fall:time); Company Logo
5.2 VHDL基本结构 端口命名:英文字母/英文字母加数字 实 体 x y output input sum 黄淮学院 第五章 硬件描述语言(VHDL) 实体 2. 端口(port)说明 端口说明的一般格式为: port (端口名{,端口名} :信号方向 数据类型;); port (x,y: IN Bit; sum: OUT Bit; input: IN Bit_Vector(1 TO n); Output: OUT Bit); VHDL:不区分大小写! Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 同方向、同类型的端口可放在同一个说明语句中。 实体 2. 端口(port)说明 信号流动的方向(端口模式),端口模式用来说明数据传输通过该端口的方向。端口模式有以下几类: IN(输入):仅允许数据流进入端口。主要用于时钟输入、控制输入、单向数据输入。 OUT(输出):仅允许数据流由实体内部流出端口。该模式通常用于终端计数一类的输出,不能用于反馈。 INOUT(双向):可以允许数据流入或流出该实体。该模式也允许用于内部反馈。 BUFFER(输出/内部反馈):该模式允许数据流出该实体和作为内部反馈时用,但不允许作为双向端口使用。该端口只能在实体内赋值,不能外部驱动。 Company Logo
5.2 VHDL基本结构 test x y 黄淮学院 第五章 硬件描述语言(VHDL) 实体 2. 端口(port)说明 • 数据类型:用来指定每个端口信号的取值类型,原则上可以是任何标准的数据类型和用户自定义类型。VHDL提供了10种数据类型。 • IEEE1706-93标准规定的数据类型包括: Boolen(布尔型)、 bit(位型)、 bit_vector(位矢量型)、integer integer (整数型)等。 • 当用户使用了IEEE库中的程序包后,可以使用预先定义的std_Logic(标准逻辑位)数据类型和std_Logic_vector(标准逻辑矢量)数据类型等。 注意:位型数据规定的取值范围是逻辑位“1”和“0”。在VHDL中,表示逻辑位“0”和“1”的表达必须加单引号,否则VHDL综合器会将未加单引号的0和1解释为整数数据类型。 port (x: IN Bit; y: IN Bit; Output: OUT Bit); output Company Logo
实体举例 mux A B F S 黄淮学院 第五章 硬件描述语言(VHDL) 二选一电路的实体说明: entity mux is port ( a: in std_logic; b: in std_logic; s: in std_logic; f: out std_logic ); end mux; Company Logo
5.2 VHDL基本结构 黄淮学院 第五章 硬件描述语言(VHDL) 可任意取, 但一般用描述方式定义 behav(行为级); dataflow(数据流级); struc(门级) 结构体 结构体定义了设计单元具体的功能,描述了该基本设计单元的行为、元件和内部的连接关系。 结构体的一般格式如下: ARCHITECTURE结构体名 OF实体名IS [声明语句] BEGIN 功能描述语句 END [结构体名]; 是指对结构体需要使用的信号、常数、数据类型和函数进行定义和说明。 具体描述结构体的功能和行为。以各种不同的描述风格表达:信号赋值语句;元件例化语句;进程语句等,这些语句都是并发(同时)执行的,与排列顺序无关。 • 一个实体可对应多个结构体,每个结构体代表该实体功能的不同实现方案或不同实现方式。同一时刻只有一个结构体起作用,通过CONFIGURATION决定用哪个结构体进行仿真或综合。 • 在结构体描述中,具体给出了输入、输出信号之间的逻辑关系。即它定义了设计单元的具体功能。 Company Logo
结构体举例 功能描述语句 顺序语句 进程 黄淮学院 第五章 硬件描述语言(VHDL) 二选一电路的结构体描述2: architecture rtl of mux is begin mux_p: process (a,b,s) beginif ( s=‘1’ ) then f <= a; else f <= b;end if; end process mux_p; end rtl; 二选一电路的结构体描述1: architecture first_rtl of mux is begin mux_p: process (a,b,s) begin f <= (a and s) or (b and not s);end process mux_p; end first_rtl; -- 结构体定义 Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (1)注释 由两个短线“--”开始的一行文字,如: -- this is a counter Text (2)数字 十进制整数表示法:如: 5E2(=500),51e0(=51),12_345(=12345), 012(=12) 实数(带小数的十进制数):必需带小数点。如:23.34,0.0,44.99E-2(=0.4499) 以数制基数表示: 2#1111_1110#(=254), 10#170#(=170) , 16#2E#(=46) Txt 格式: 基数#数字文字#E指数 Text (3)字符和字符串 字符:用单引号引起来的ASCII字符,可以是数字,也可以是符号或字母。区分大小写.如:‘*’,‘Z’ 字符串:用双引号引起来一维的字符数组。区分大小写.如:“FALSE”, O“34” Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (4)标识符 定义常数、变量、信号、端口、子程序或参数的名字。 ◆基本标识符的要求(短标识符)(87标准): • 以英文字母开头; • 不连续使用下划线“_”; • 不以下划线“_”结尾; • 由26个大小写英文字母、数字0-9及下划线“_”组成的字符串。 •基本标识符中的英文字母不分大小写; • VHDL的保留字(关键字)不能作为标识符使用。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (4)标识符 Text 不合法标识符 合法标识符 _Decoder_1、 2FFT、 Sig_#N、 Not-Ack、 ALL_RST_、 AB AC、 loop、 A--C my_counter、 Decoder_1、 FFT、 Sig_N、 Not_Ack、 State0、 entity1 Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (4)标识符 定义常数、变量、信号、端口、子程序或参数的名字。 ◆扩展标识符的要求(93标准): •两端以反斜杠来界定; •可以以数字或“_”打头; •允许包含图形符号; •允许使用VHDL保留字。 •扩展标识符中的英文字母区分字母大小写; 如: \74LS163\、\Sig_#N\、 \entity\、\ENTITY\等都是合法的扩展标识符。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (5)下标名及下标段名 下标名:用于指示数组型变量或信号的某一个元素。 格式: 下标段名:用于指示数组型变量或信号的某一段元素。 格式: Text 标识符(表达式) Txt 标识符(表达式 to/downto 表达式) Text 如:a : std_logic_vector(7 downto 0) a(7), a(6)… a(0) a(7downto0), a(7 downto 4), a(5 downto 3)… Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 1. 词法规则 (6)保留字(关键字) 是VHDL中具有特别含义的单词,只能做为固定的用途,用户不能用其做为标识符。 如:if else elsif end wait when case entity architecture package component xnor xor Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 三种对象:常量(Constant) 变量(Variable) 信号(Signal) 三种对象的物理含义: •常量代表数字电路中的电源、地、恒定逻辑值等常数 •变量代表暂存某些值的载体,常用于描述算法; •信号代表物理设计中的某一条硬件连接线,包括输入、输出端口 Text Txt 三种对象的特点及说明场合: 信号:全局量, 用于architecture、 package、entitiy。 变量:局部量,用于process、function、 procedure。 常量:全局量,可用于上面两种场合。其作用范围取决于常量被定义的位置。 Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 1、常量说明 常量说明:对某一个常量名赋予一个固定的值。 格式: 例: Constant Vcc:real:=5.0; --定义Vcc的数据类型是实数,赋值为5.0V Constant bus_width: integer :=8; --定义总线宽度为常数8 常量数据类型必须与表达式的数据类型一致。常量是一个恒定不变的量,一旦被赋值就不能再改变。 Text constant 常数名:数据类型:= 表达式; Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 2、变量说明 变量只能在进程语句、函数语句和过程语句结构中使用。变量的赋值是直接的,非预设的,分配给变量的值立即成为当前值,变量不能表达“连线”或存储元件,不能设置传输延迟量。 变量定义语句格式: 例: Variable count: integer 0 to 255:=20; -- 定义count整数变量,变化 范围0~255,初始值为20。 变量的初值可用于仿真,但综合时被忽略。 Text Txt variable 变量名:数据类型 :=初始值; Text 变量赋值语句: 目标变量名 := 表达式; x:=10.0; -- 实数变量赋值为10.0 Y:=1.5+x; -- 运算表达式赋值,注意表达式必须与目标变量的数据类型相同 Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 3、信号说明 信号表示逻辑门的输入或输出,类似于连接线,也可以表达存储元件的状态。信号通常在构造体、程序包和实体中说明。信号定义语句格式: Text signal 信号名:数据类型:=初始值; Txt 例如: Signal clock:bit :=‘0’; --定义时钟信号类型,初始值为0 Signal count:BIT_VECTOR(3 DOWNTO 0); --定义count为4位位矢量 Text 信号赋值语句: 目标信号名 <= 表达式; x<=9; Z<=x after 5 ns; -- 在5ns后将x的值赋予z 注:①. 综合时初值被忽略。 ②. 在进程和子程序中只能使用信号,不能说明信号。 Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 信号与变量的区别 例:进程中信号与变量的使用 entity ex is port(…..); end ex; architecture arch_ex of ex is signal a, b :std_logic; begin process(a, b) variable c, d : std_logic; begin c:= a + b; d:= a - b; …… end process; end arch_ex; 4、信号与变量的区别 ①信号除当前值外有许多相关信息,如历史信息;而变量只有当前值。②进程对信号敏感而不对变量敏感。③信号可以是多个进程的全局信号。 例:进程中信号与变量的使用 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 2. VHDL的数据对象 5、信号与端口的区别: 除没有方向说明外,信号与 实体的“端口(PORT)” 概念相似。端口是一种隐形的信号。 entity exam is port([signal] a, b: in std_logic; [signal] c: out std_logic); end exam; 端口是一种有方向的信号。即输出端口不能读出数据,只能写入数据;输入端口不能写入数据,只能读出数据。 信号本身无方向,可读可写。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 VHDL是一种强数据类型语言。 要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,并且相同数据类型的量才能互相传递和作用。 VHDL数据类型分为: •标准数据类型 • 用户自定义数据类型 •IEEE 预定义标准 (1)标准数据类型(10种) ●整数:(Integer) integer 表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为: -( -1) ~( -1)。 VHDL综合器要求对具体的整数作出范围限定, 否则无法综合成硬件电路。 如:signal s : integer range 0 to 15; 信号 s 的取值范围是0-15,可用4位二进制数表示,因此 s 将被综合成由四条信号线构成的信号。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (1)标准数据类型(10种) ●自然数(natural)和正整数(positive) natural是integer的子类型,表示非负整数。positive是integer的子类型,表示正整数。 ●实数(REAL)或称浮点数, 取值范围:-1.0E38 - +1.0E38。实数类型仅能用于VHDL仿真器,一般综合器不支持。 1.0 --十进制浮点数 8#43.6#e+4 --八进制浮点数 43.6E-4 --十进制浮点数 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (1)标准数据类型(10种) ●位(bit) bit 表示一位的信号值。取值为0和1,用于逻辑运算,放在单引号中,如 ‘0’ 或 ‘1’。 ●位矢量 (bit_vector) 位矢量使用双引号括起来的一组位数据,如“1011”。使用位矢量时必须注明位宽,即数组中元素个数和排列,如:SIGNAL S1:BIT_VECTOR(15 DOWNTO 0); ●布尔量(boolean) 布尔量具有两种状态:false 和 true常用于逻辑函数,取值为FALSE和TRUE,不是数值,不能运算,一般用于关系运算符。如相等(=)、比较(<)等中作逻辑比较。 如,bit 值转化成boolean 值: boolean_var := (bit_var = ‘1’); ●字符(CHARACTER) ●字符串 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (1)标准数据类型(10种) ●时间:(Time) 物理量数据,完整的包括整数和单位两个部分,用至少一个空格隔开,仅用于仿真不可综合;如:55 ms,20 ns ●错误等级(Severity Level) : 表示系统状态,仅用于仿真不可综合;仿真中用来指示系统的工作状态,共有四种: NOTE(注意)、 WARNING(警告)、 ERROR(出错)、 FAILURE(失败) Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (2)用户自定义数据类型 可以由用户定义的数据类型有:枚举类型、整数类型、数组类型、存取类型、文件类型、时间类型、实数类型。 用户用TYPE语句和子类型定义语句SUBTYPE实现用户自定义数据类型。TYPE语句的格式为: TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 或 TYPE 数据类型名 IS 数据类型定义 例如: 数组:type value_type is array (127 downto 0) of integer; type matrix_type is array (0 to 15, 0 to 31) of std_logic; 枚举:type states is (idle,decision,read,write); type boolean is (false,true); type bit is (‘0’,‘1’); Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (2)用户自定义数据类型 SUBTYPE语句的格式为: SUBTYPE 子类型名 IS 基本数据类型定义 RANGE 约束范围 如:subtype digits is integer range 0 to 9; 由subtype 语句定义的数据类型称为子类型。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (3) IEEE 预定义标准 标准逻辑位(Std_Logic): ‘U’, --初始值;‘X’, --不定; ‘0’, --0; ‘1’, --1 ‘Z’, --高阻;‘W’, --弱信号不定 ‘L’, --弱信号0;‘H’, --弱信号1 ‘-’ --不可能情况 Text Txt 标准逻辑位矢量( Std_Logic_vector):基于Std_Logic类型的数组; 使用Std_Logic和 Std_Logic_Vector要调用IEEE库中的Std_Logic_1164 程序包;就综合而言,能够在数字器件中实现的是“-、0、1、Z”四种状态。 在条件语句中,必须要全面考虑Std_Logic的所有可能取值情况,否则综合器可能会插入不希望的锁存器。 Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 3. VHDL的数据类型 (4) 数据类型转换 VHDL为强定义类型语言,不同类型的数据不能进行运算和直接赋值。不同类型的数据 对象必须经过类型转换,才能相互操作。 Text 1)直接类型转换方式 对相互间非常关联的数据类型(如整型、浮点型),可进行直接类型转换。格式: 数据类型标识符(表达式) 如:variable a, b : real; variable c, d : integer; …… a:= real(c); d:= integer(b); 2)类型转换函数方式 通过调用类型转换函数,使相互操作的数据对象的类型一致,从而完成相互操作。 Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 数据类型转换 在“STD_LOGIC_1164”、“STD_LOGIC_ARITH”和 “STD_LOGIC_UNSIGNED”的程序包中提供的数据类型变换函数。 Text Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 4. VHDL的运算操作符 Text • (1)运算符 • ●算术运算符:+, -, *, / , MOD, REM ,SLL ,SRL ,SLA, SRA ,ROL ,ROR ,**,ABS • 关系运算符:=, /=,<, > , <=, >= • 赋值运算符:<=,:= • 逻辑运算符:AND,OR,NAND,NOR,XNOR,NOT,XOR • 关联运算符:=> • 其他运算符:+, -,&(加操作符“+”、减操作符“-”、 串联(并置)操作符“&”) Txt Text Company Logo
5.3 VHDL基本元素 黄淮学院 第五章 硬件描述语言(VHDL) 4. VHDL的运算操作符 (2)运算符优先级别 Text 逻辑、算术运算符( NOT, **,ABS) 乘法运算符(/ , MOD, REM, * ) 正负运算符:+, -, Txt 加减、并置运算符:+, -, & 关系运算符:=, /=,<, > , <=, >= 逻辑运算符:AND,OR,NAND,NOR,XNOR,NOT,XOR Text 取余运算(a REM b)的符号与a相同,其绝对值小于b的绝对值。 例如:(-5)REM 2=(-1) 5 REM 2=(1) 取模运算(a MOD b)的符号与b相同,其绝对值小于b的绝对值。 例如:(-5)MOD 2=1 5 MOD (- 2)=(-1) Company Logo
5.4 VHDL语言的基本描述语句 Entity(实体) block(块结构) subprograms(子程序) procedure(过程) function(函数) process(进程结构) Architecture 1(构造体) Architecture N 黄淮学院 第五章 硬件描述语言 如何使用VHDL描述硬件实体 Text Txt Text Company Logo
5.4 VHDL语言的基本描述语句 黄淮学院 第五章 硬件描述语言 又称寄存器(RTL)级描述,即采用进程语句顺序描述数据流在控制流作用下被加工、处理和存储的全过程。此描述方式与采用原理图输入方式进行电路设计处于同一个层次。 又称算法级描述,即采用进程语句顺序描述设计实体的行为,这是最高层次的描述方法。 又称门级描述,即采用并行处理语句,使用最基本的逻辑门单元描述设计实体内的结构组织和元件互联关系 1.结构体的描述方法 (1)行为描述法:( behavioral description)这是以元器件或电路模块为基础的描述方法,描述元器件或电路模块之间输入、输出的逻辑关系,是对它们性能或行为的描述。在VHDL语言中对这一类的描述称作行为描述。 (2)数据流描述法:数据流描述(dataflow description)法主要反映数据经过一定的逻辑运算后在输入和输出之间的传送过程。这种描述方法以表示数据在设计实体中从输入到输出的传输或流向为目的。使用并发语句(concurrent procedure call也叫并发过程调用语句)描述。 (3)结构描述法:(structural description),它以描述元部件(component)为基础,通过描述模块与模块之间的连接关系来表示被设计实体的构成和性能。这种描述方法适用于多层次设计,把一个复杂的系统分解成多个子系统,将每一个子系统设计成一个模块,再用结构描述法将各模块之间的连接关系写出来形成一个整体。 Text Txt Text Company Logo