您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 硬件描述语言VHDL介绍(一)
工程学院自动化及测控系硬件描述语言VHDL介绍刘兰军工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/232HDL语言的种类HDL语言有上百种:各高等学校、科研院所、EDA公司均有各自的HDL语言VHDL:VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成电路硬件描述语言,IBM公司、TI公司等合作开发,IEEE标准VerilogHDL:GDA公司开发,Candence公司将其推成IEEE标准,具有C语言的风格AHDL:ALTERA公司开发,具有C语言的风格工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/233VHDL语言的程序结构ENTITY实体名ISENDENTITY实体名;GENERIC();类属1;类属2;类属nPORT();端口1;端口2;端口n实体库声明LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ARCHITECTURE结构体名OF实体名IS说明语句:信号、变量、常数、数据类型、元件、过程、函数等的说明BEGIN功能描述语句:并行语句和顺序语句ENDARCHITECTURE结构体名;结构体实体名要与程序文件名一致工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/234VHDL语言的程序结构LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYs_dffISPORT(din,clk:INSTD_LOGIC;qout:OUTSTD_LOGIC);ENDENTITYs_dff;ARCHITECTUREs_dff_behaveOFs_dffISSIGNALqout_buf:STD_LOGIC;BEGINqout=qout_buf;aa:PROCESS(clk)BEGINIFclk’eventandclk=‘1’THENqout_buf=din;ENDIF;ENDPROCESSaa;ENDARCHITECTUREs_dff_behave;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/235VHDL语言的程序结构LIBRARY库IEEE库:包含IEEE标准程序包和一些工业标准的程序包,IEEE库中程序包并不全符合VHDL标准,需要使用USE语句声明用户自定义库:用户自定义设计的库,用于源码继承,需要USE语句声明STD库:包含STANDARD和textio两个标准程序包,STD库符合VHDL标准,不必声明WORK库:用户的VHDL设计的当前工作库,不必声明VITAL库:VHDL仿真器使用,平常很少使用该库工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/236VHDL语言的程序结构LIBRARY库调用库的语句格式:USE库名.程序包名.项目名;LIBRARY库名;库名.程序包名.ALL;USELIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/237VHDL语言的程序结构GENERIC类属说明语句类属:不同于常数,常数只能在设计实体内部赋值,类属的值可以由设计实体外部提供。通过类属参量轻松改变设计实体的内部电路结构和规模。GENERIC();常数名:数据类型[:设定值];常数名:数据类型[:设定值]综合器支持的数据类型为整型INTEGER工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/238VHDL语言的程序结构PORT端口说明语句PORT端口:是对一个设计实体界面的说明,即实体的I/O接口,定义了接口的I/O模式和数据类型。VHDL语言中只有数据类型相同的端口信号才能相互作用BITBIT_VECTORSTD_LOGICSTD_LOGIC_VECTORPORT();端口名:端口模式数据类型;端口名:端口模式数据类型IN、OUT、BUFFER、INOUT工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/239VHDL语言的语言要素VHDL的文字规则:数字型文字、字符串、标识符、下标名、段名数据对象:信号、变量、常量数据类型:布尔数据类型、位数据类型、位矢量数据类型、字符数据类型、整数数据类型、自然数和正整数数据类型、实数数据类型、字符串数据类型、时间数据类型、错误等级数据类型标准逻辑数据类型、标准逻辑矢量数据类型操作符:逻辑操作符、关系操作符、符号操作符、算术操作符工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2310VHDL语言的语言要素SIGNAL信号名:数据类型:=初始值;信号:SIGNAL1)信号的赋值是有延迟的,信号用于不同进程之间信息的传递,类似于电路连接的导线;2)信号具有全局特性,在实体中定义的信号,对应的结构体均可见,在进程和子程序中不能定义信号。3)信号的初始值仅在VHDL的行为仿真中有效。目标信号名=表达式;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2311VHDL语言的语言要素变量:VARIABLE1)变量的赋值是没有延迟的;2)变量是局部的,可以在结构体、进程、子程序中定义,但只能在进程和子程序中使用。3)变量的初始值在综合过程中会忽略。VARIABLE变量名:数据类型:=初始值;目标变量名:=表达式;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2312VHDL语言的语言要素常量(常数):CONSTANT1)常量的值在程序中不可修改;2)常量可以在实体、结构体、程序包、块、进程、子程序中定义。3)常量的可视性取决于其定义的位置。CONSTANT常量名:数据类型:=表达式;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2313VHDL语言的语句顺序语句:顺序语句用于进程和子程序中,仿真执行:顺序语句的执行是顺序的综合后:顺序语句的执行是并行的,与书写顺序无关并行语句:并行语句用于结构体中,并行语句的执行是同步的、并行执行的,与书写顺序无关工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2314VHDL语言的语句顺序语句:赋值语句IF语句CASE语句LOOP语句NEXT语句EXIT语句WAIT语句(WAITUNTIL)子程序调用语句工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2315VHDL语言的语句赋值语句信号赋值:信号赋值有延迟,发生在进程结束时;信号具有全局性变量赋值:变量赋值无延迟,是一种延迟为零的赋值行为,变量具有局部性同一进程中,同一信号有多个赋值源时,信号获得最后一个赋值源的值;同一信号不允许在多个进程中赋值。工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2316VHDL语言的语句IF条件句THENIFEND顺序语句;IF条件句THENIFEND顺序语句;顺序语句ELSEIF语句IF条件句THENIFEND顺序语句;顺序语句ELSIF条件句THEN顺序语句ELSE工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2317VHDL语言的语句CASE语句CASE表达式ISCASEEND顺序语句;顺序语句WHEN选择值;=WHENOTHERS=;顺序语句WHEN选择值;=工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2318VHDL语言的语句WAITUNTIL语句WAITUNTIL信号=value;WAITUNTIL信号ˊEVENTAND信号=value;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2319VHDL语言的语句子程序调用语句过程:PROCEDURE,通过参数返回值,返回语句不带表达式函数:FUNCTION,参量只能是输入,返回一个指定数据类型的值,返回语句带表达式工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2320VHDL语言的语句PROCEDURE过程名(参数1;参数2;…;参数n)IS变量定义语句BEGIN顺序处理语句END过程名;;;PROCEDUREFUNCTION函数名(参数1;参数2;…)IS变量定义语句BEGIN顺序处理语句(RETURN)END;;;RETURN数据类型函数名FUNCTION工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2321VHDL语言的语句子程序调用语句过程名()形参名=实参表达式形参名=实参表达式;,函数名()形参名=实参表达式形参名=实参表达式;,名字关联法位置关联法工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2322VHDL语言的语句并行语句:信号赋值语句过程调用语句并行信号赋值语句进程语句块语句元件例化语句生成语句工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2323VHDL语言的语句目标信号=表达式1WHEN条件1ELSE表达式2WHEN条件2ELSE表达式nWHEN条件nELSE表达式n+1;并行信号赋值语句条件型并行信号赋值语句选择型并行信号赋值语句目标信号=表达式1WHEN条件1表达式2WHEN条件2表达式nWHEN条件n;WITH条件表达式SELECT工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2324VHDL语言的语句进程语句进程语句是VHDL中使用最频繁的语句;具有并行执行和顺序执行的双重性;进程语句的工作方式可以是组合逻辑,也可以是时序逻辑;工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2325VHDL语言的语句进程语句进程标号:PROCESS敏感信号参数表)IS(进程说明部分;BEGIN顺序描述语句;ENDPROCESS进程标号;定义局部量:数据类型、常量、变量、属性、子程序不能定义信号、共享变量赋值语句、进程启动语句、子程序调用语句、IF语句、CASE语句敏感信号为输入信号敏感信号发生变化时“启动”或“激活”进程工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2326VHDL语言的语句块语句块语句是一种将并行语句进行组合的方法,目的是改善语句的可读性和结构性,对电路功能无影响。块标号:BLOCK块保护表达式)(类属说明;BEGIN并行语句;ENDBLOCK块标号;接口说明;结构体中说明部分可说明的对象都可在BLOCK的说明部分进行说明BLOCK中定义的数据类型、数据对象、子程序等都是局部的,只适用于当前BLOCK工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2327VHDL语言的语句元件例化语句元件例化是VHDL设计实体实现自上而下层次设计的途径;元件例化:1)将底层的设计实体定义为一个元件;2)利用元件例化语句将定义的元件与当前设计实体中的指定端口连接:为当前设计实体引入一个低一级的设计层次。工程学院自动化及测控系OCEANUNIVERSITYOFCHINA2020/2/2
本文标题:硬件描述语言VHDL介绍(一)
链接地址:https://www.777doc.com/doc-3903338 .html