版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、硬件描述语言硬件描述语言VHDL 2主主 要要 内内 容容1. VHDL语言程序的基本结构语言程序的基本结构 2. VHDL语言要素语言要素 3. VHDL语句及基本描述方法语句及基本描述方法 4. 常用电路描述常用电路描述5. 有限状态机有限状态机31.VHDL语言程序的基本结构语言程序的基本结构41.VHDL语言程序的基本结构语言程序的基本结构 实例:具有具有异步清零、进位输入输出异步清零、进位输入输出的的四位计四位计数器:数器: (蓝体为关键字,编译时不分大小写蓝体为关键字,编译时不分大小写) -库、程序包调用库、程序包调用-实体实体-此处无此处无“;”号号51.VHDL语言程序的基本结
2、构语言程序的基本结构-构造体构造体-进程(敏感表)进程(敏感表)61.VHDL语言程序的基本结构语言程序的基本结构类属参数说明类属参数说明端口说明端口说明端口定义:端口定义:PORT(端口名端口名1:端口模式:端口模式 数据类型;数据类型; 端口名端口名n1 ,端口名,端口名N :端口模式端口模式 数据类型)数据类型);1.1 实体(实体(Entity)71.VHDL语言程序的基本结构语言程序的基本结构1.2 构造体构造体(Architecture) v功能:指明该设计单元的行为、元件及内部的连功能:指明该设计单元的行为、元件及内部的连接关系,定义设计单元的具体功能。接关系,定义设计单元的具体
3、功能。v描述方式:行为描述(基本设计单元的数据模型描述方式:行为描述(基本设计单元的数据模型描述);寄存器描述(数据流描述);结构描述描述);寄存器描述(数据流描述);结构描述(逻辑元件连接描述)。(逻辑元件连接描述)。81.VHDL语言程序的基本结构语言程序的基本结构v结构:结构: 结构体(ARCHITECTURE) 并发语句 块语句(BLOCK) :一系列并发语句构成。 进程语句(PROCESS) :内部为顺序语句。用以将外部获得的信号值或内部的运算数据向其他的信号进行赋值。 信号赋值(SIGNAL Assignments) :计算结果,并赋值给信号。 子程序(过程(PROCEDURE)和
4、函数(FUNCTION)调用:内部为顺序语句。用以调用过程和函数,并将获得的结果赋于信号。 元件例化(COMPONENT Instantiations) :及元件调用。用以调用另一个实体所描述的电路。 申明区(Declarations) :申明该结构体中用到的信号、数据类型、常数、元件、子程序等。 91.VHDL语言程序的基本结构语言程序的基本结构v构造体的一般格式:构造体的一般格式: 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义; 1.VHDL语言程序的基本结构语言程序的基本结构1.3 库(库(Library) 用于存放预先编译好的程序包用于存放预先编译好的
5、程序包(package)(package)和数据集合和数据集合体,存放包定义、实体定义、构造定义和配置定义。可以体,存放包定义、实体定义、构造定义和配置定义。可以用用USEUSE语句调用库中的不同程序包,以便不同的语句调用库中的不同程序包,以便不同的VHDLVHDL设计设计调用。调用。112. VHDL语言要素语言要素2.1 标识符标识符 标识符标识符(identifiers)由英文字母、数字及下划线组由英文字母、数字及下划线组成。使用时应注意以下几点:成。使用时应注意以下几点: VHDL不区分大小写:不区分大小写: 标识符一定要以字母开头;标识符一定要以字母开头; 下划线不能放在结尾;下划线
6、不能放在结尾; 下划线不能连用。下划线不能连用。 最长为最长为32个字符;个字符; 不能与不能与VHDL保留字相同;保留字相同; 以以“-”为开始的语句为解释语句,不参与编为开始的语句为解释语句,不参与编译。译。122. VHDL语言要素语言要素VHDL的常用保留字:的常用保留字:132. VHDL语言要素语言要素2.2 VHDL语言操作符语言操作符 l 逻辑运算符逻辑运算符 NOT:取反;取反;AND:与;与;OR:或;或;NAND:与非;与非;NOR:或非;或非;XOR:异或;异或;XNOR:同或同或 可以对可以对STD_LOGIC和和BIT等逻辑型数据、等逻辑型数据、STD_LOGIC_
7、VECTOR等逻辑型数组及布尔数据操作。等逻辑型数组及布尔数据操作。左右无优先级之分。全为左右无优先级之分。全为“AND”“OR”“XOR”时可以不时可以不要括号。要括号。 例:例:A=B AND C AND D; A=(B NAND C) NAND D) NAND E;142. VHDL语言要素语言要素l 关系运算符关系运算符1、6种关系运算符种关系运算符 (等于);(等于);/=(不等于);(不等于);(小于);(小于);(大于);(大于);=(大于等于);(大于等于);2、适用范围、适用范围 (等于)、(等于)、/=(不等于):适用于所有类型的数据;(不等于):适用于所有类型的数据; 其
8、他可用于整数、实数、位和位矢量等类型。其他可用于整数、实数、位和位矢量等类型。3、注意事项、注意事项 进行关系运算时,左右两边的数据类型必须相同,但位长进行关系运算时,左右两边的数据类型必须相同,但位长度不一定相等度不一定相等152. VHDL语言要素语言要素l 连接运算符连接运算符 ”&”:用于位的连接。:用于位的连接。 例:例:Signal a,b,c,d: STD_LOGIC; Signal e:STD_LOGIC_VECTOR(3 DOWNTO 0); e=a & b & c & d; 例:例:SIGNAL A:STD_LOGIC_VECTOR(3 DO
9、WNTO 0); SIGNAL B:STD_LOGIC_VECTOR(0 TO 3); SIGNAL C:STD_LOGIC_VECTOR(0 TO 1); SIGNAL D:STD_LOGIC_VECTOR(1 DOWNTO 0); C=A(2 DOWNTO 1); BC(0);A(1)-C(1); A(3)-B(0);D(1)-B(1);D(0)-B(2);1-B(3) 162. VHDL语言要素语言要素l 算术运算符算术运算符慎重,会大大慎重,会大大增加逻辑门数增加逻辑门数注意:注意:Std_logic类型数据不能进行算术运算类型数据不能进行算术运算 Std_logic_vector可以
10、可以172. VHDL语言要素语言要素2.3 数据对象数据对象 在逻辑综合中,在逻辑综合中,VHDL语言常用的数据对象为:语言常用的数据对象为: 信号信号 变量变量 常量常量 182. VHDL语言要素语言要素(1)常量)常量(CONSTANT) 常量是全局量。常量是全局量。 常量的定义和设置是为了设计更容易阅读和常量的定义和设置是为了设计更容易阅读和修改。如利用它可设计不同模值的计数器,模值修改。如利用它可设计不同模值的计数器,模值存于一常量中,对不同的设计,改变模值仅需改存于一常量中,对不同的设计,改变模值仅需改变此常量值即可。变此常量值即可。 CONSTANT Zero_4:STD_LO
11、GIC_VECTOR(3 DOWNTO 0):=“0000”; 192. VHDL语言要素语言要素(2)变量)变量(VARIABLE) 变量是局部量,只能在变量是局部量,只能在进程进程和和子程序子程序中中定义定义和和使用使用; 变量的赋值符号为变量的赋值符号为“:=”; 变量定义格式如下:变量定义格式如下: 202. VHDL语言要素语言要素(3)信号)信号(SIGNAL) 信号定义格式:信号定义格式:212. VHDL语言要素语言要素(3)信号)信号(SIGNAL) 信号是全局量。用于进程间通信,或用于并行模块信号是全局量。用于进程间通信,或用于并行模块间的信息交流。间的信息交流。 信号用于
12、声明内部信号,而非外部信号信号用于声明内部信号,而非外部信号( (外部信号对外部信号对应为应为ININ,OUTOUT,INOUTINOUT,BUFFER)BUFFER),其在元件之间起互联作用,其在元件之间起互联作用(类似于连线)(类似于连线); ;可以赋值给外部信号。可以赋值给外部信号。 信号的赋值符号为信号的赋值符号为“=”; 信号使用和定义的范围只能是实体、结构体和程序信号使用和定义的范围只能是实体、结构体和程序包,在进程和子程序中不允许定义信号,但可以使用信号。包,在进程和子程序中不允许定义信号,但可以使用信号。 同一个信号只能在一个进程中被赋值,不能在多个进同一个信号只能在一个进程中
13、被赋值,不能在多个进程被赋值,但同一个信号可以在多个进程中使用。程被赋值,但同一个信号可以在多个进程中使用。 222. VHDL语言要素语言要素v例例2-1:常量、变量、信号的定义及使用:常量、变量、信号的定义及使用: BCD码的加法器码的加法器23定义一信号,保存两定义一信号,保存两个二进制数的和。个二进制数的和。信号赋值信号赋值定义一变量,并赋初值定义一变量,并赋初值0变量赋值,立即起作用变量赋值,立即起作用定义一常量,整数型,定义一常量,整数型,值为值为6242. VHDL语言要素语言要素(4)信号与变量的比较)信号与变量的比较 信号可以促发进程,同一个信号可以在多个进程信号可以促发进程
14、,同一个信号可以在多个进程中使用;中使用; 信号与变量声明的形式与位置不同:信号与变量声明的形式与位置不同: 信号声明为信号声明为SIGNALSIGNAL,变量声明为,变量声明为VARIABLEVARIABLE 信号声明在子程序、进程等外部,而变量声明在子程序、信号声明在子程序、进程等外部,而变量声明在子程序、进程等内部。进程等内部。 信号与变量的赋值不同:信号与变量的赋值不同: 在进程中,信号赋值在进程结束时起作用,而变量赋值在进程中,信号赋值在进程结束时起作用,而变量赋值立即起作用。立即起作用。252. VHDL语言要素语言要素注意:注意: 如果在一个进程中多次为一个信号赋值时,如果在一个
15、进程中多次为一个信号赋值时,只有最后一个值会起作用;只有最后一个值会起作用; 为变量赋值时,变量值的改变立即发生。为变量赋值时,变量值的改变立即发生。262. VHDL语言要素语言要素2.4 数据类型数据类型(1)最常见的标准定义数据类型)最常见的标准定义数据类型 VHDL最常用的数据类型包括以下几种:最常用的数据类型包括以下几种: INTEGER:可用作循环的指针或常数,通常不用于:可用作循环的指针或常数,通常不用于I/O信号;信号; Signal typei: INTEGER range 0 to 15; BIT:可取值:可取值0或或1; BIT_VECTOR:用双引号括起来的一组位数据,
16、如:用双引号括起来的一组位数据,如“010101”; STD_LOGIC:工业标准的逻辑类型,可取值:工业标准的逻辑类型,可取值0,1,Z等;等; STD_LOGIC_VECTOR:std_logic的组合,工业标准的组合,工业标准的逻辑类型。的逻辑类型。 272. VHDL语言要素语言要素 BOOLEAN:只有:只有“真真”和和“假假”2个状态,个状态,可以进行关系运算;可以进行关系运算; CHARACTER:通常用单引号括起来,对大通常用单引号括起来,对大小写敏感;小写敏感; STRING:字符串是双引号括起来的一串字:字符串是双引号括起来的一串字符;符; REAL :-1.0E381.0
17、E38,书写时一定要有,书写时一定要有小数;综合器不支持。小数;综合器不支持。 TIME:完整的时间类型包括整数和物理量:完整的时间类型包括整数和物理量单位两部分,整数和单位之间至少留一个空格。单位两部分,整数和单位之间至少留一个空格。 282. VHDL语言要素语言要素(2)用户自定义数据类型)用户自定义数据类型v TYPE用法用法 定义新的定义新的数据类型数据类型 语法:语法:TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 OF基本数据类型基本数据类型292. VHDL语言要素语言要素n 定义新的数组类型定义新的数组类型 语法:语法:1:Type 数组类型名数组类型名 IS
18、 Array(数组下标(数组下标范围)范围) OF 数据类型;数据类型; Type Byte IS Array(7 Downto 0) OF Bit; Signal Data:Byte; Signal R:Bit; R=Data(4); 2: TYPE 数组类型名数组类型名 IS Array(数组下标名数组下标名 RANGE) OF 数据类型;数据类型; Type real_natrix IS Array(positive range) OF real; VARIABLE Va:real_natrix (1 to 8);302. VHDL语言要素语言要素n 定义枚举类型定义枚举类型 语法:语法
19、:Type 类型名称类型名称 Is(元素(元素1,元素,元素2,);); 例:例:type state is (s0,s1,s2,s3); signal s:state;vSUBTYPE 用法用法 语法:语法:SUBTYPE 子类型名子类型名 IS 基本数据类型基本数据类型 RANGE 约束范围约束范围;如:如:SUBTYPE digits IS INTEGER RANGE 0 to 9; 312. VHDL语言要素语言要素(3)说明)说明 VHDL是强类型语言,不允许将一种信号类型赋予是强类型语言,不允许将一种信号类型赋予另一种信号类型。另一种信号类型。 若对不同类型的信号进行赋值需使用类型
20、转换函数。若对不同类型的信号进行赋值需使用类型转换函数。 例:例:SIGNAL a:BIT_VECTOR(11 DOWNTO 0); SIGNAL b:STD_LOGIC_VECTOR(11 DOWNTO 0); a=X”A8”; (right) b=X”A8”;(error) b=TO_STDLOGICVECTOR(X”A8”); (right) 数位字符串,位矢量数位字符串,位矢量322. VHDL语言要素语言要素包集合包集合函数名函数名功能功能STD_LOGIC_1164TO_STDLOGICVECTOR(A)由由BIT_VECTOR转换为转换为STD_LOGIC_VECTORTO_BI
21、TVECTOR(A)由由STD_LOGIC_VECTORR转换为转换为BIT_VECTORTO_STDLOGIC(A)由由BIT转换为转换为STD_LOGICTO_BIT(A)由由STD_LOGIC转换为转换为BITSTD_LOGIC_ARITHCONV_STD_LOGIC_VECTOR(A,位长位长)由由INTEGER、UNSIGNED、SIGNED转转换为换为STD_LOGIC_VECTORCONV_INTEGER(A)由由UNSIGNED、SIGNED转换为转换为INTEGERSTD_LOGIC_UNSIGNEDCONV_INTEGER(A)由由STD_LOGIC_VECTORR转换为转
22、换为INTEGER332. VHDL语言要素语言要素2.5 VHDL属性属性(Attribute) (1)数值类属性)数值类属性 left(左边界左边界), right(右边界右边界), low(下边下边界界), high(上边界上边界), length(数组长度数组长度) sdown :IN std_logic_vector(8 DOWNTO 0); sup :IN std_logic_vector(0 TO 8); 这两个信号的各属性值如下:这两个信号的各属性值如下: sdownleft=8;sdown right =0;sdownlow =0;sdownhigh =8;sdownleng
23、th =9; supleft=0;sup right =8;suplow =0;suphigh =8;suplength =9;342. VHDL语言要素语言要素(2)函数类属性)函数类属性 event ,值为布尔型,如果该属性所附着的,值为布尔型,如果该属性所附着的信号有变化,则其取值为信号有变化,则其取值为True,否则为,否则为False。 353. VHDL语句及基本描述方法语句及基本描述方法3.1 顺序语句顺序语句 3.2 并行语句并行语句 3.3 VHDL基本描述方法基本描述方法363.1 顺序语句顺序语句 六类基本顺序语句:六类基本顺序语句: 赋值语句赋值语句 流程控制语句流程控
24、制语句 等待语句等待语句 子程序调用语句子程序调用语句 返回语句返回语句 空操作语句空操作语句 37赋值语句赋值语句v赋值语句赋值语句 赋值语句包括信号赋值语句和变量赋值语句;赋值语句包括信号赋值语句和变量赋值语句; 赋值源和目标数据类型必须相同;赋值源和目标数据类型必须相同; 在进程中,信号赋值在进程结束时起作用,变量赋在进程中,信号赋值在进程结束时起作用,变量赋值立即起作用;值立即起作用; 信号具有全局特征,变量具有局部特征;信号具有全局特征,变量具有局部特征; 信号赋值语句可以以顺序语句形式出现,此时在进信号赋值语句可以以顺序语句形式出现,此时在进程内使用;信号赋值语句也可以以并行语句形
25、式出现,此程内使用;信号赋值语句也可以以并行语句形式出现,此时在进程外使用。时在进程外使用。变量赋值目标变量赋值目标 := 赋值源;赋值源;信匀赋值目标信匀赋值目标 = 赋值源;赋值源;38流程控制语句流程控制语句vIF_THEN_ ELSE语句语句39流程控制语句流程控制语句-注意,此处是注意,此处是ELSIFELSIF,而,而-不是不是ELSE IF ELSE IF !IF语句只能在进程中使用语句只能在进程中使用40流程控制语句流程控制语句例:设计一个二输入与门例:设计一个二输入与门无无ELSE语句语句,因此综合器综合时默因此综合器综合时默认为:认为:ELSE c=c;ELSE c顺序语句
26、;when 选择值=顺序语句;when 选择值=顺序语句; end case;42流程控制语句流程控制语句例:四选一选择器:例:四选一选择器:“=”相当于相当于THEN的作用;的作用; 条件句的顺序是不重要的;条件句的顺序是不重要的;WHEN OTHERS列出其他可能列出其他可能取值取值;43流程控制语句流程控制语句vLOOP语句语句 常用的是常用的是FOR_LOOP语句,语法格式如下:语句,语法格式如下:临时变量,属临时变量,属LOOP语句的局部变量,不必事先定义。语句的局部变量,不必事先定义。 起始值起始值 Downto 结束值结束值 起始值起始值 To 结束值结束值 44流程控制语句流程
27、控制语句例:奇偶校例:奇偶校 验电路验电路 奇数个奇数个1标志位标志位偶数个偶数个1标志位标志位45vNEXT 语句语句 在在LOOP语句中有条件或无条件跳出循环语句中有条件或无条件跳出循环 格式:格式: NEXT LOOP 标号标号 WHEN 条件表达式条件表达式; LOOP LOOP 标号缺省,则无条件终止当前循环,跳回到本次循环标号缺省,则无条件终止当前循环,跳回到本次循环LOOPLOOP语句开始处,开始下一次循环;否则跳转到指定标号的语句开始处,开始下一次循环;否则跳转到指定标号的LOOPLOOP语句开始处,重新开始执行循环操作。若语句开始处,重新开始执行循环操作。若WHENWHEN子
28、句出现并子句出现并且条件表达式的值为且条件表达式的值为TRUETRUE,则执行,则执行NEXTNEXT语句,进入跳转操作,语句,进入跳转操作,否则继续向下执行。否则继续向下执行。流程控制语句流程控制语句46vEXIT语句语句 格式:格式:EXIT LOOP 标号标号 WHEN 条件表达式条件表达式; EXITEXIT语句与语句与NEXTNEXT语句的格式和操作功能非常相似,惟一语句的格式和操作功能非常相似,惟一的区别是的区别是NEXTNEXT语句是跳向语句是跳向LOOPLOOP语句的起始点,而语句的起始点,而EXITEXIT语句则语句则是跳向是跳向LOOPLOOP语句的终点。语句的终点。 流程
29、控制语句流程控制语句47例:两元素位矢量值比较程序例:两元素位矢量值比较程序SIGNAL ASIGNAL A,B B:STD_LOGIC_VECTOR(1 DOWNTO 0)STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL A_LESS_THEN_BSIGNAL A_LESS_THEN_B:BOOLEANBOOLEAN;A_LESS_THEN_B=FLASEA_LESS_THEN_B=FLASE; -设初始值设初始值FOR I IN 1 DOWNTO 0 LOOPFOR I IN 1 DOWNTO 0 LOOPIF (A(I)= 1 AND B(I)= 0) THENIF
30、 (A(I)= 1 AND B(I)= 0) THEN A_LESS_THEN_B=FALSE A_LESS_THEN_B=FALSE; EXITEXIT;ELSIF (A(I)= 0 AND B(I)= 1) THENELSIF (A(I)= 0 AND B(I)= 1) THEN A_LESS_THEN_B=TRUE A_LESS_THEN_B=TRUE; -AB-AB EXIT EXIT; ELSEELSE NULLNULL;END IFEND IF;END LOOPEND LOOP; -当当I=1I=1时返回时返回LOOPLOOP语句继续比较语句继续比较 流程控制语句流程控制语句48v
31、等待等待(WAIT)语句语句 语句格式:语句格式: WAIT ON 敏感信号表敏感信号表 UNTIL 条件表达式条件表达式 FOR 时间表时间表达式达式; 注:注:已列出敏感量的进程中不能使用任何形式的已列出敏感量的进程中不能使用任何形式的WAIT语句。语句。等待语句等待语句49敏感信号等待语句:敏感信号等待语句: 格式:格式:WAIT ON WAIT ON 信号信号 ,信号,信号 敏感信号的任何变化敏感信号的任何变化( (如从如从0-10-1或从或从1-01-0的变化的变化) )将再将再次启动进程。次启动进程。 例例: : PROCESSPROCESS BEGIN BEGIN y=a AND
32、 b y=实参表达式实参表达式 ,形参名,形参名=实参表达式实参表达式) ); 例:对一个数组中三个元素从小到大排序程序例:对一个数组中三个元素从小到大排序程序 5152 2函数调用函数调用 函数调用与过程调用是十分相似的,不同之处是,调用函函数调用与过程调用是十分相似的,不同之处是,调用函数将返还一个指定数据类型的值,函数的参量只能是输入值。数将返还一个指定数据类型的值,函数的参量只能是输入值。子程序调用语句子程序调用语句53 返回语句只能用于子程序体中,用来结束当前子程序体的返回语句只能用于子程序体中,用来结束当前子程序体的执行。执行。 语句格式:语句格式:RETURN RETURN 表达
33、式表达式 ; 当表达式缺省时,只能用于过程,用于结束过程;当有表当表达式缺省时,只能用于过程,用于结束过程;当有表达式时,只能用于函数,并且必须返回一个值。每一函数必须达式时,只能用于函数,并且必须返回一个值。每一函数必须至少包含一个返回语句,并可以拥有多个返回语句,但是在函至少包含一个返回语句,并可以拥有多个返回语句,但是在函数调用时,只有其中一个返回语句可以将值带出。数调用时,只有其中一个返回语句可以将值带出。 返回语句返回语句54NULL语句语句 例:四选一例:四选一 选择器选择器553.2 并行语句并行语句 VHDL的几种主要并行语句:的几种主要并行语句:进程语句进程语句 PROCES
34、S语句语句 块语句块语句 BLOCK语句语句并行信号赋值语句并行信号赋值语句元件例化语句元件例化语句生成语句生成语句 GENERATE语句语句 563.2 并行语句并行语句v进程语句进程语句(PROCESS) 进程语句是个复合语句,由一段程序构成。进程语句是个复合语句,由一段程序构成。 各个进程是并发执行的,但进程内部的所有语句却都各个进程是并发执行的,但进程内部的所有语句却都是顺序执行的。是顺序执行的。 一个构造体可以包括多个进程语句,多进程间的通信一个构造体可以包括多个进程语句,多进程间的通信依靠信号依靠信号(SIGNAL)来传递。来传递。 573.2 并行语句并行语句进程语句的语法描述:
35、进程语句的语法描述:583.2 并行语句并行语句例计数器进程部分:例计数器进程部分: -进程(敏感表)进程(敏感表) -顺序语句,异步清零顺序语句,异步清零 593.2 并行语句并行语句若改为同步清零,则进程如下:若改为同步清零,则进程如下: -同步清零同步清零 603.2 并行语句并行语句若没有敏感表,利用若没有敏感表,利用WAIT UNTIL语句语句,进程如下:进程如下:613.2 并行语句并行语句v块语句(块语句(BLOCK) 块语句块语句是将结构体中的并行语句组合在一起,其主要是将结构体中的并行语句组合在一起,其主要目的是改善并行语句及其结构的可读性,一般用于较复杂目的是改善并行语句及
36、其结构的可读性,一般用于较复杂的的VHDL程序中。程序中。 只是形式上的划分,而非功能上的改变。只是形式上的划分,而非功能上的改变。 块语句的语法描述:块语句的语法描述: -块名必须有。块名必须有。 623.2 并行语句并行语句例:比较器例:比较器 633.2 并行语句并行语句v并行信号赋值语句并行信号赋值语句 并行信号赋值语句实际上是一个进程的缩写。如并行信号赋值语句实际上是一个进程的缩写。如下面两个构造体是等效的:下面两个构造体是等效的:64并行信号赋值语句有三种形式:并行信号赋值语句有三种形式: 简单信号赋值语句简单信号赋值语句 条件信号赋值语句条件信号赋值语句 选择信号赋值语句选择信号
37、赋值语句3.2 并行语句并行语句65简单信号赋值语句简单信号赋值语句例:例:66条件信号赋值语句条件信号赋值语句WHEN_ELSE语句描述的四选一选择器:语句描述的四选一选择器: 67选择信号赋值语句选择信号赋值语句WITH_SELECT语句描述的四选一选择器:语句描述的四选一选择器: 683.2 并行语句并行语句v元件例化语句元件例化语句 -注意注意:没有没有IS -同该元件定义时的同该元件定义时的PORT部分部分例化名:实体名(即元件名)例化名:实体名(即元件名)PORT MAP(端口名连接关系);(端口名连接关系);例:一个模为例:一个模为10的计数器和一个七段译码器的连接。的计数器和一
38、个七段译码器的连接。69模模10计计数数器器的的VHDL描描述述 70BCD码到七段的码到七段的VHDL描述描述71利用元件例化构成本例(利用元件例化构成本例(cntvh10):):723.2 并行语句并行语句几点说明几点说明 元件例化时的端口列表可采用位置关联方法,如元件例化时的端口列表可采用位置关联方法,如u1u1; 元件例化时的端口列表也可采用名称关联方法映射实元件例化时的端口列表也可采用名称关联方法映射实参和形参,如参和形参,如u2u2;格式为;格式为( (形参形参1=1=实参实参1, 1, 形参形参2=2=实参实参2,2,) )733.2 并行语句并行语句 元件声明时,一定要用原元件
39、定义时的端口名,不能元件声明时,一定要用原元件定义时的端口名,不能变动。若用到库中的元件,如变动。若用到库中的元件,如OR2OR2,在不知原端口名称的,在不知原端口名称的情况下,建议重编写情况下,建议重编写OR2_NEWOR2_NEW。但必须另起文件名。但必须另起文件名。743.2 并行语句并行语句v生成语句(生成语句(GENERATE)格式:格式:753.2 并行语句并行语句例:利用例:利用GENERATE语句产生语句产生4个个D触发器触发器763.3 VHDL基本描述方法基本描述方法v 结构描述(结构描述(Structural):也称为:也称为网表(网表(Netlist )描述。它反映了一
40、个设计中硬件方面特征,表达描述。它反映了一个设计中硬件方面特征,表达了内部元件间连接关系。使用元件例化来描述。了内部元件间连接关系。使用元件例化来描述。v 数据流描述(数据流描述(Dataflow):也称为:也称为方程方程(Equation )描述。它反映了一个设计中输入到描述。它反映了一个设计中输入到输出的流向。使用并发语句来描述。输出的流向。使用并发语句来描述。v 行为描述(行为描述(Bhavior):):它反映了一个设计中的它反映了一个设计中的功能算法。一般使用进程功能算法。一般使用进程PROCESS,用顺序语,用顺序语句来描述。句来描述。773.3 VHDL基本描述方法基本描述方法例:
41、两位相等比较器。例:两位相等比较器。逻辑表达式:逻辑表达式:) 11()00(babaequ783.3 VHDL基本描述方法基本描述方法构造体一:用元件例化来实现,即结构描述:构造体一:用元件例化来实现,即结构描述:) 11()00(babaequ79构造体二:用布尔方程来实现,即数据流描述:构造体二:用布尔方程来实现,即数据流描述:构造体三:用行为描述来实现,采用并行语句构造体三:用行为描述来实现,采用并行语句 :3.3 VHDL基本描述方法基本描述方法) 11()00(babaequ803.3 VHDL基本描述方法基本描述方法构造体四:用行为描述来实现,采用顺序语句:构造体四:用行为描述来实现,采用顺序语句: 813.3 VHDL基本描述方法基本描述方法 实体实体comp2拥有拥有4个构造体:个构造体:netlist、equation、con_behave和和seq_behave; 例化相等比较器例化相等比较器aequb,实体究竟对应哪个,实体究竟对应哪个构造体由配置语句构造体由配置语句CONFIGURATION决定。如决定。如选用构造体选用构造体equation:824 常用电路描述常用电路描述v基本门电路基本门电路 v组合逻辑电路组合逻辑电路 v时钟边沿描述时钟边沿描述 v基本触发器电路基本触发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平顶山市湛河区林业系统人员招聘考试模拟试题及答案解析
- 人口与家园的基石-重识人口的分布(高中地理必修二教学设计)
- 河流侵蚀地貌的发微与重塑-河谷的演变(第1课时)优师教案
- 工业区位探秘:从成本逻辑到智慧布局-高中地理必修二核心素养教学设计
- 青春旅程·心灵护航-初中心理健康教育青春期主题班会教学设计
- 积极心态·沉着应考-高一下学期期末主题班会教案
- 二年级劳动《团花剪纸》教案-大单元视域下传统工艺的守正创新
- 2026年聚合工艺复审题库及试题答案解析
- 科学课程五年级教学目标与方法
- 商住楼工程施工总体规划方案
- 2026年高考作文备考之《给阿嬷的情书》素材
- 2026石家庄新天智慧能源有限公司招聘44人备考题库附答案详解(黄金题型)
- 统编版历史七年级下册第19课《清朝君主专制的强化》-教学课件
- 凝心聚力、共赴高考-2026届高三高考动员主题班会
- 2026年南宁铁路局招聘80人(本科及以上学历)考试备考试题及答案解析
- 某机械厂安全生产管理准则
- 护理伦理学:患者权利与护士义务
- 2026年湖南省长沙市初二地理生物会考真题试卷(+答案)
- 2026年演出经纪人考试模拟试卷含完整答案详解【夺冠系列】
- 博物馆展陈工程监理实施细则
- Unit7ADaytoRememberSectionB(1a-2b)课件人教版七年级英语下册
评论
0/150
提交评论