《vhdl设计初步(新模版)(ppt.ppt》由会员分享,可在线阅读,更多相关《vhdl设计初步(新模版)(ppt.ppt(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VHDL设计初步(新模版)(PPT)Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字电路与系统设计数字电路与系统设计EDA实验实验内容安排:内容安排:电子工程学院必修课(电子工程学院必修课(电子工程学院必修课(电子工程学院必修课()u硬件描述语言硬件描述语言(VHDL or VerilogHDL)(10学
2、时学时)电子工程学院必修课及限选、校任选课(电子工程学院必修课及限选、校任选课(电子工程学院必修课及限选、校任选课(电子工程学院必修课及限选、校任选课()uEDA设计工具软件及实验设计工具软件及实验 (10学时学时)uSOPC及及Nios II嵌入式系统设计嵌入式系统设计 (10学时学时)u综合设计实验综合设计实验 (10学时学时)西安电子科技大学国家电工电子教学基地西安电子科技大学国家电工电子教学基地西电西电Altera EDA/SOPC联合实验室及培训中心(联合实验室及培训中心(E楼楼II-401)西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计第第1部分部
3、分 VHDL设计初步设计初步数字电路与系统设计数字电路与系统设计EDA实验实验西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VHDL历史回顾历史回顾VHDL 语言是美国国防部语言是美国国防部(DOD)在在 20 世纪世纪 80 年代初为实现其年代初为实现其高速集成电路计划高速集成电路计划(VHSICVery High Speed Integrated Circuit)而提出的一种而提出的一种硬件描述语言硬件描述语言硬件描述语言硬件描述语言(HDLHardware Description Language),以作为各合同商之间提交复杂电路,以作为各合同商之间提交
4、复杂电路设计文档的一种标准方案,设计文档的一种标准方案,VHDL的含义为的含义为超高速集成电路超高速集成电路超高速集成电路超高速集成电路硬件描述语言硬件描述语言硬件描述语言硬件描述语言。1987年被采纳为年被采纳为IEEE 1076标准(标准(VHDL87)。)。1993年被更新为年被更新为IEEE 1164标准(标准(VHDL93)。)。西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VHDLVHSIC Hardware Description Language HDL 的出现是为了适应电子系统设计的日益复杂的出现是为了适应电子系统设计的日益复杂性。若以计算机
5、软件的设计与电路设计做个类比:性。若以计算机软件的设计与电路设计做个类比:机器码机器码好比好比晶体管晶体管/MOS管管;汇编语言汇编语言好比好比电路网表电路网表;HDL语言语言就如同就如同高级语言高级语言。西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计几种常用的几种常用的HDL语言:语言:(1 1)VHDLVHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:功能强,规范性好;功能强,规范性好;(2 2)VerilogHDLVerilogHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:功能强、灵活性功能强、灵活性高;高;(3 3)ABE
6、LABEL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:属于较低级的硬件描述属于较低级的硬件描述语言;语言;(4 4)AHDLAHDL硬件描述语言:硬件描述语言:硬件描述语言:硬件描述语言:Altera公司开发,语法公司开发,语法简单,但不通用。简单,但不通用。其中:其中:其中:其中:VHDLVHDL和和和和VerilogHDLVerilogHDL已成为已成为已成为已成为IEEEIEEE标准。标准。标准。标准。VHDLVHSIC Hardware Description Language西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 VHDL在语法和
7、风格上类似于现代高级编程在语法和风格上类似于现代高级编程语言。但要注意,语言。但要注意,VHDL毕竟描述的是毕竟描述的是硬件硬件,它,它包含许多硬件特有的结构。包含许多硬件特有的结构。HDL是用文字化方法描述电子电路与系统。是用文字化方法描述电子电路与系统。计算机语言计算机语言描述特点是描述特点是:顺序性顺序性HDL语言语言描述的特点是:描述的特点是:并行性并行性VHDLVHSIC Hardware Description Language西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VHDL与计算机语言的区别与计算机语言的区别运行的基础运行的基础运行的基础运
8、行的基础l 计算机语言是在计算机语言是在CPURAM构建的平台上运行构建的平台上运行l VHDL设计的结果是由具体的逻辑、触发器组成的数字电路设计的结果是由具体的逻辑、触发器组成的数字电路(使用使用Quartus 软件编程,最终下载入可编程逻辑器件中实现一个数字系统)软件编程,最终下载入可编程逻辑器件中实现一个数字系统)执行方式执行方式执行方式执行方式l计算机语言基本上以计算机语言基本上以串行串行的方式执行的方式执行lVHDL在总体上是以在总体上是以并行并行方式工作方式工作验证方式验证方式验证方式验证方式l计算机语言主要关注于计算机语言主要关注于变量值变量值的变化的变化lVHDL要实现严格的要
9、实现严格的时序逻辑时序逻辑关系关系西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计数字电路与系统设计回顾数字电路与系统设计回顾组合逻辑电路组合逻辑电路时序逻辑电路时序逻辑电路分析分析设计设计真值表真值表分析分析设计设计输入输入/输出输出抽象抽象(实体)(实体)电路功能电路功能实现实现(结构体)(结构体)EntityArchitecture与、或、非与、或、非与非、或非与非、或非异或、同或异或、同或RS触发器触发器D触发器触发器T触发器触发器JK触发器触发器西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计主要内容安排主要内容安排1
10、多路选择器的多路选择器的VHDL描述描述2 时序电路的时序电路的VHDL描述描述3 更复杂电路的更复杂电路的VHDL描述描述5 VHDL设计练习设计练习4 有限状态机(状态转移图)设计有限状态机(状态转移图)设计西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1 多路选择器的多路选择器的VHDL描述描述例例1.1 2选选1多路选择器的多路选择器的VHDL描述描述 2选选1MUX输入输入/输输出端口出端口(实体(实体Entity)abymux21s电路功能电路功能实现实现(结构体(结构体Architecture)?西安电子科技大学国家级精品课程数字电路与系统设计国
11、家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的实体描述实体描述1 多路选择器的多路选择器的VHDL描述描述abymux21sENTITY mux21mux21 IS PORT (a,b :IN BIT;S :IN BIT;y :OUT BIT);END ENTITY mux21mux21;说明:以关键字说明:以关键字ENTITY引导,以引导,以END(ENTITY)xxx结尾的语句部分,称为结尾的语句部分,称为实体实体。描述电路的外部。描述电路的外部情况及接口性质。情况及接口性质。西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ENT
12、ITY mux21 IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21;ARCHITECTURE one OF mux21 IS BEGIN y=a WHEN s=0 ELSE b ;END ARCHITECTURE one;例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述1(行为描述行为描述行为描述行为描述)abymux21sS=0S=1abyS说明:以关键字说明:以关键字ARCHITECTURE引导,以引导,以END(ARCHITECTURE)xxx结尾的语句部分,结尾的语句部分,称为称为结构体结构体。描述电路的
13、内部逻辑功能或电路。描述电路的内部逻辑功能或电路结构。结构。1 多路选择器的多路选择器的VHDL描述描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述2(原理图描述原理图描述原理图描述原理图描述)ARCHITECTURE one OF mux21 IS SIGNAL d,e:BIT;-d,e 为内部信号为内部信号BEGIN d=a AND(NOT S);e=b AND s;y=d OR e ;END ARCHITECTURE one;abymux21s1 多路选择器的多路选择器的VHDL描述描述西
14、安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择器的多路选择器的结构体描述结构体描述3(布尔方程描述布尔方程描述布尔方程描述布尔方程描述)1 多路选择器的多路选择器的VHDL描述描述y=(a AND(NOT s)OR(b AND s);ARCHITECTURE behave OF mux21 ISBEGINEND behave;y=as+bsabymux21s说明:以上说明:以上三种结构体三种结构体描述都是描述都是并并行语句行语句西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计例例1.1 2选选1多路选择
15、器的多路选择器的结构体描述结构体描述4(进程描述进程描述进程描述进程描述)1 多路选择器的多路选择器的VHDL描述描述S=0S=1abySabymux21s ARCHITECTURE one OF mux21 ISBEGIN PROCESSPROCESS(a,b,s)BEGINBEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END PROCESS;END ARCHITECTURE one;-a,b,s 为敏感信号表为敏感信号表西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2选选1多路选择器功能时序波形多路选择
16、器功能时序波形 例例1.1 2选选1多路选择器的多路选择器的EDA软件仿真结果软件仿真结果1 多路选择器的多路选择器的VHDL描述描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.1 实体表达(实体表达(ENTITY)1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明ENTITY 实体名实体名 IS GENERIC (类属表);(类属表);PORT (端口表);(端口表);END ENTITY 实体名;实体名;实体在电路中主要是说明该电路的输入、输实体在电路中主要是说明该电路的
17、输入、输出关系,更具体地说就是用来定义实体与外部的出关系,更具体地说就是用来定义实体与外部的连接关系以及需传送给实体的参数。连接关系以及需传送给实体的参数。ENTITY 实体名实体名 IS GENERIC (类属表类属表););PORT (端口表端口表););END ENTITY 实体名;实体名;(1)类属表:用以将信息参数传递到实体。)类属表:用以将信息参数传递到实体。(2)端口表:指明实体的输入、输出信号及其模式、)端口表:指明实体的输入、输出信号及其模式、数据类型。数据类型。PORT (端口名:端口模式端口名:端口模式 数据类型;数据类型;端口名:端口模式端口名:端口模式 数据类型数据类
18、型 );英文字母英文字母+数字数字数据流动方向数据流动方向主要有主要有“位位”和和“位矢量位矢量”两类两类设计者自己命名的名称(文件名)设计者自己命名的名称(文件名)例如:例如:mux21的端口描述的端口描述增加以下语句增加以下语句:generic(m:time:=1ns)类属参数说明语句,它定类属参数说明语句,它定义了延时时间为义了延时时间为1ns注意注意简单地说简单地说 In In 不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号(=(=或或或或:=):=)的左边的左边的左边的左边 out out不可以出现在赋值符号不可以出现在赋值符号不可以出现在赋值符号不
19、可以出现在赋值符号(=(=或或或或:=):=)的右边的右边的右边的右边 buffer buffer可以出现在赋值符号可以出现在赋值符号可以出现在赋值符号可以出现在赋值符号(=(=或或或或:=):=)的两边的两边的两边的两边In In 信号只能被引用信号只能被引用信号只能被引用信号只能被引用,不能被赋值不能被赋值不能被赋值不能被赋值out out 信号只能被赋值信号只能被赋值信号只能被赋值信号只能被赋值,不能被引用不能被引用不能被引用不能被引用buffer buffer 信号可以被引用信号可以被引用信号可以被引用信号可以被引用,也可以被赋值也可以被赋值也可以被赋值也可以被赋值方向定义方向定义含义
20、含义IN输入,定义的通道为单向输入模式输入,定义的通道为单向输入模式 OUT输出,输出,定义的通道为单向输出模式定义的通道为单向输出模式 INOUT双向,定义的通道确定为输入输出双向端口双向,定义的通道确定为输入输出双向端口 BUFFER缓冲端口,其功能与缓冲端口,其功能与INOUT类似类似 常用端口模式:常用端口模式:例:例:ENTITY mux21mux21 IS PORT (a,b,:IN BITBIT;S :IN BITBIT;y :OUT BITBIT);END ENTITY mux21mux21;VHDL中任何一种数据对象(信号、变量、常数)必中任何一种数据对象(信号、变量、常数)
21、必须严格限定其取值范围。须严格限定其取值范围。VHDL 中一个对象只能有一种类型,施加于该对象中一个对象只能有一种类型,施加于该对象的操作必须与该类型相匹配。的操作必须与该类型相匹配。常用数据类型有:常用数据类型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等(参考书上等(参考书上P260表表10.3.1)西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.2 结构体表达(结构体表达(ARCHITECTURE)1 多路选择器的多路选择器的VHDL描述描述ARCHITECTURE 结构体名结构
22、体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等定义;内部信号,常数,数据类型,函数等定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;以关键字以关键字以关键字以关键字ARCHITECTUREARCHITECTURE引导,以引导,以引导,以引导,以END(ARCHITECTURE)END(ARCHITECTURE)xxxxxx结尾的语句部分,称为结尾的语句部分,称为结尾的语句部分,称为结尾的语句部分,称为结构体结构体结构体结构体。描述电路的内部逻辑功能或电。描述电路的内部逻辑功能或电。描述电路的内部逻辑功能或电。
23、描述电路的内部逻辑功能或电路结构。路结构。路结构。路结构。结构体名称的命令:结构体名称的命令:它是该结构体的唯一名它是该结构体的唯一名称。称。“OF”后面紧跟的实体名表明了该结构体所后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用对应的是哪一个实体。用“IS”来结束结构体的来结束结构体的命名。命名。ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE
24、 结构体名;结构体名;定义语句:定义语句:位于位于“ARCHITECTURE”和和“BEGIN”之之间。用于对结构体内部所使用的信号、常数、数据类型间。用于对结构体内部所使用的信号、常数、数据类型和函数等进行定义。如:和函数等进行定义。如:ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;SIGNALSIGNALcont:STD_L
25、OGIC_VECTOR(3DOWNTO0);SIGNALSIGNALco_1:STD_LOGIC;CONSTANTCONSTANTm:TIME:=2 ns;TYPETYPESTATESTATEISIS(INIT,DAD,ADC,SRF,FRF);(枚举类型);(枚举类型)功能描述语句:功能描述语句:处于处于“BEGIN”和和“END”之之间。具体描述了结构体的行为及其连接关系。间。具体描述了结构体的行为及其连接关系。ARCHITECTURE 结构体名结构体名结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据
26、类型,函数等的定义;BEGIN 功能描述语句功能描述语句功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;结构体功能可以用三种方式进行描述,即:结构体功能可以用三种方式进行描述,即:行为描述、数据流描述、结构描述。行为描述、数据流描述、结构描述。u.结构体的行为描述结构体的行为描述(behavioral)结构体的行为描述表示输入与输出间转换的关系,结构体的行为描述表示输入与输出间转换的关系,是对设计实体按算法的路径来进行描述的。行为描述是对设计实体按算法的路径来进行描述的。行为描述在在 EDA 工程中称为高层次描述或高级描述。工程中称为高层次描述或高级描述。看例题
27、!看例题!例:例:如图所示的如图所示的半加器半加器,其功,其功能真值表已经给出,写出它的能真值表已经给出,写出它的行为描述行为描述。半加器半加器abcsabcs0000000011111110半加器真值表半加器真值表:abcs0000000011111110半加器半加器abcs (ENTITY部分省略)部分省略)ARCHITECTURE alg_ha OF half_adder IS BEGIN PROCESS(a,b)BEGIN IF a=0 AND b=0 THEN c=0;s=0 ELSIF a=1 AND b=1 THEN c=1;s=0;ELSE c=0;s=1;END IF;END
28、 PROCESS;END alg_ha;高层次的功能描高层次的功能描述,不必考虑在述,不必考虑在电路中到底是怎电路中到底是怎样实现的。样实现的。u.结构体的数据流描述结构体的数据流描述(dataflow)它反映了从输入数据到输出数据之间所发生的它反映了从输入数据到输出数据之间所发生的逻辑变换,或者说描述了数据流程的运动路径、运动逻辑变换,或者说描述了数据流程的运动路径、运动方向和运动结果。方向和运动结果。u.结构体的结构化描述结构体的结构化描述(structural)结构化描述给出了实体内部结构、所包含的模结构化描述给出了实体内部结构、所包含的模块或元件间互连关系;与实体外部引线的对应关系。块
29、或元件间互连关系;与实体外部引线的对应关系。练习:练习:试用上面的两种方法描述半加器的功能。试用上面的两种方法描述半加器的功能。半加器半加器abcs西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计结构体中三种描述方式的比较结构体中三种描述方式的比较布尔函数定义布尔函数定义明白明白连接关系清晰,连接关系清晰,电路模块化清电路模块化清晰晰 优优 点点小门数设计小门数设计不易描述复杂电路,不易描述复杂电路,修改不易修改不易数据流描述数据流描述电路层次化设计电路层次化设计电路不易理解、繁电路不易理解、繁琐、复杂琐、复杂结构化描述结构化描述 适用场合适用场合 缺缺 点点描
30、述方式描述方式电路特性清楚电路特性清楚明了明了大型复杂的电路模大型复杂的电路模块设计块设计进行综合效率相对进行综合效率相对较低较低行为描述行为描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计 信号赋值符信号赋值符 “=”表达式中的等号表达式中的等号“=”没没有赋值的含义,只是一种有赋值的含义,只是一种数据比较符号。数据比较符号。1.3 赋值符号和数据比较符号赋值符号和数据比较符号 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明 ARCHITECTURE one OF mux2
31、1 ISBEGIN PROCESS(a,b,s)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.4 逻辑操作符逻辑操作符 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明y=(a ANDAND(NOTNOT s)OROR(b ANDAND s);ARCHITECTURE behave OF mux21 ISBEGINEND behave;
32、VHDL共有共有7种基本逻辑操作符:种基本逻辑操作符:AND(AND(与与与与)、OR(OR(或或或或)、NOT(NOT(取反)、取反)、取反)、取反)、NAND(NAND(与非与非与非与非)、NOR(NOR(或非或非或非或非)、XOR(XOR(异或异或异或异或)、XNOR(XNOR(同或同或同或同或)要求数据类型:要求数据类型:BIT BOOLEAN STD_LOGIC西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ARCHITECTURE one OF mux21 IS BEGIN y=a WHENWHEN s=0 ELSEELSE b ;END ARCHI
33、TECTURE one;1.5 WHEN_ELSE条件信号赋值语句条件信号赋值语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式;西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计在在VHDL中中,所所有有的的顺顺顺顺序序序序语语语语句句句句,如如“IF_THEN_ELSE_END IF”,都必须放在由都必须放在由“PROCESSEND PROCE
34、SS”引导的进程结构中。引导的进程结构中。在在一一个个结结构构体体(ARCHITECTURE)中中可可以以包包含含任任意意个个进进程程语语句句,所所有有的的进进程程语语句句都都是是并并并并行行行行语语语语句句句句,而而进进程程PROCESS引引导导的的内内部部语语句句结构属于结构属于顺序语句顺序语句顺序语句顺序语句。1.6 进程语句和顺序语句进程语句和顺序语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.7 IF语句语句IF语
35、句与条件信号赋值语句功能相当,有两种基本语句与条件信号赋值语句功能相当,有两种基本格式:格式:1.1.两分支两分支IFIF语句:语句:IF IF 条件表达式条件表达式 THEN THEN 顺序语句;顺序语句;ELSE ELSE 顺序语句;顺序语句;END IFEND IF;1 多路选择器的多路选择器的VHDL描述描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2.多分支IF语句:IF 条件表达式条件表达式 THEN 顺序语句;顺序语句;ELSIF 条件表达式条件表达式 THEN 顺序语句顺序语句;ELSE 顺序语句;顺序语句;END IF;1 多路选择器的多
36、路选择器的VHDL描述描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1.8 WITH.SELECT 语句用WITH.SELECT语句描述2选1多路选择器ENTITY mux21mux21 IS PORT (a,b :IN STD_LOGIC;S :IN STD_LOGIC;y :OUT STD_LOGIC);END mux21mux21;ARCHITECTURE one OF mux21 ISBEGIN WITH s SELECT y=a WHEN 0;b WHEN OTHERS;END one;西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课
37、程数字电路与系统设计选择信号赋值语句的基本格式为:WITH 条件表达式条件表达式 SELECT目标信号名=表达式 WHEN 条件;表达式 WHEN 条件;表达式 WHEN 条件;选择信号赋值语句属于并行语句。1.8 WITH.SELECT 语句西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计1 小结小结在在2选选1的的VHDL描述中出现的语言现象归纳:描述中出现的语言现象归纳:实体:实体:Entity结构体:结构体:Architecture端口定义:端口定义:Port()端口模式:端口模式:In/Out/Inout数据类型:数据类型:Bit、Std_Logic信
38、号赋值符:信号赋值符:=条件比较符:条件比较符:=逻辑操作符:逻辑操作符:ANDIF条件语句:条件语句:IFEND IF并行条件语句:并行条件语句:WHENELSE进程语句:进程语句:ProcessEnd Process顺序语句:顺序语句:由进程语句引导由进程语句引导并行语句:简单赋值语句并行语句:简单赋值语句 when.else语句语句 with.select语句语句西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计2 时序电路的时序电路的VHDL描述描述例例2.1 D触发器的触发器的VHDL描述描述 最简单、最具有代表性的时序电路是最简单、最具有代表性的时序电
39、路是D触发器。触发器。对对对对D D触发器的描述包含了触发器的描述包含了触发器的描述包含了触发器的描述包含了VHDLVHDL对时序电路的最基本和典型对时序电路的最基本和典型对时序电路的最基本和典型对时序电路的最基本和典型的表达方式,也包含了的表达方式,也包含了的表达方式,也包含了的表达方式,也包含了VHDLVHDL中许多最具特色的语言现中许多最具特色的语言现中许多最具特色的语言现中许多最具特色的语言现象。象。象。象。(实体(实体Entity)电路功能描述电路功能描述(结构体(结构体Architecture)?DCLKQDFF1LIBRARY LIBRARY IEEE;IEEE;USE USE
40、IEEE.STD_LOGIC_1164.ALL;IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS -端口声明端口声明 PORT(CLK,D:IN STD_LOGICSTD_LOGIC;Q:OUT STD_LOGICSTD_LOGIC);END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS -结构体描述结构体描述 SIGNALSIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点类似于在芯片内部定义一个数据的暂存节点BEGIN PROCESS(CLK)-进程进程 BEGIN IF CLKEVENT AND C
41、LK=1CLKEVENT AND CLK=1 THEN Q1=D;END IF;END PROCESS;Q=Q1;-将内部的暂存数据向端口输出(双横线将内部的暂存数据向端口输出(双横线-是注释符号)是注释符号)END ARCHITECTURE bhv;例例2.1 D触发器的触发器的VHDL描述描述 VHDL电路描述与电路描述与设计平台和硬件实现对设计平台和硬件实现对象象(组合或时序逻辑组合或时序逻辑)无无关。关。DCLKQDFF1例例2.1中中D触发器的触发器的VHDL描述的语言现象说明描述的语言现象说明 2.1 完整完整VHDL程序程序基本构成基本构成VHDL设计设计VHDL文件文件库和程序
42、包库和程序包 声声明明在在设设计计或或实实体体中中将将用用到到的的常常数数,数数据据类类型型,元件及子程序等元件及子程序等实体(实体(Entities)声声明明到到其其实实体体及及其其设设计计的的接接口口,即即定定义义本本设计的输入设计的输入/出端口出端口结构体结构体(Architectures)定定义义了了实实体体的的实实现现。即电路功能的具体描述即电路功能的具体描述西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计库库(Library)和程序包和程序包(Package)程程程程序序序序包包包包:定定义义了了一一组组数数据据类类型型说说明明、常常量量说说明明、元
43、元件件说说明明和子程序说明。以供其它多个设计实体引用。和子程序说明。以供其它多个设计实体引用。库:库:库:库:是专门存放预先编译好的程序包的地方,这样它们就可是专门存放预先编译好的程序包的地方,这样它们就可以在其它设计中被调用。以在其它设计中被调用。库库库库/程程程程序序序序包包包包就就是是为为了了使使一一组组类类型型说说明明,常常量量说说明明和和子子程程序序说说明明对对多多个个设设计计实实体体都都成成为为可可见见的的而而提提供供的的一一种种结结构构。它它们们如如同同C语语言言中中的的*.h文文件件,定定义义了了一一些些类类型型说明,函数一样。说明,函数一样。西安电子科技大学国家级精品课程数字
44、电路与系统设计国家级精品课程数字电路与系统设计 例如:例如:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;IEEE是是IEEE标标准准库库的的标标志志名名,两两个个USE语语句句使使得得以以下下设设计计可可使使用用程程序序包包std_logic_1164,std_logic_unsigned中中所所有有预定义的内容,如预定义的内容,如std_logic,in,out的定义等。的定义等。格式:格式:LIBRARY ;USE .ALL;库库(Library)和程序包和程序包(Package)西安电子
45、科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计常用标准库常用标准库常用标准库常用标准库stdstd和和和和ieeeieee库中的程序包库中的程序包库中的程序包库中的程序包库库(Library)和程序包和程序包(Package)西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计BITBIT数据类型定义:数据类型定义:数据类型定义:数据类型定义:TYPE BIT IS(0,1);即即BIT数据类型仅可取值数据类型仅可取值0或或1;STD_LOGICSTD_LOGIC数据类型定义:数据类型定义:数据类型定义:数据类型定义:TYPE STD_LO
46、GIC IS(U,X,0,1,Z,W,L,H,-);工业标准逻辑类型,取值工业标准逻辑类型,取值U,X,0,1,Z,W,L,H和和-U-未初始化的;未初始化的;X-强未知的;强未知的;0,1-强强0,强,强1;Z高阻态;高阻态;W弱未知的;弱未知的;L弱弱0;H弱弱1;-忽略忽略2.2 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC ENTITY DFF1DFF1 IS -端口声明端口声明 PORT(CLK,D:IN STD_LOGICSTD_LOGIC;Q:OUT STD_LOGICSTD_LOGIC);END ENTITY DFF1DFF1;ENTITY mux21mux21 IS
47、 PORT (a,b,:IN BITBIT;S :IN BITBIT;y:OUT BITBIT);END ENTITY mux21mux21;西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 SIGNAL Q1:STD_LOGICSTD_LOGIC;BEGINBEGIN2.3 信号定义和数据对象信号定义和数据对象 信号(信号(信号(信号(SignalSignal):):):):信号的使用和定义范围是实体、结构体和程序包,信号的使用和定义
48、范围是实体、结构体和程序包,在进程在进程和子程序的顺序语句中不允许定义信号。和子程序的顺序语句中不允许定义信号。(只有信号才能把进(只有信号才能把进程外的信息带入进程内部,或将进程内的信息带出进程)程外的信息带入进程内部,或将进程内的信息带出进程)SIGNAL SIGNAL 信号名信号名信号名信号名:数据类型数据类型数据类型数据类型:=:=初始值初始值初始值初始值;信号赋值语句:信号赋值语句:信号赋值语句:信号赋值语句:目标信号名目标信号名目标信号名目标信号名=表达式表达式表达式表达式;西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计VARIABLE VARIA
49、BLE 变量名变量名变量名变量名:数据类型数据类型数据类型数据类型:=:=初始值初始值初始值初始值;变量赋值语句:变量赋值语句:变量赋值语句:变量赋值语句:目标变量名目标变量名目标变量名目标变量名:=:=表达式表达式表达式表达式;ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 SIGNAL Q1:STD_LOGICSTD_LOGIC;BEGINBEGIN2.3 信号定义和数据对象信号定义和数据对象 变量(变量(变量(变量(VariableVariable):):):):在在VHDL中,变量是一个局部量,作为临时的
50、数据存储单中,变量是一个局部量,作为临时的数据存储单元,元,只能在进程和子程序的顺序语句中使用只能在进程和子程序的顺序语句中使用。变量定义中的初。变量定义中的初始值仅对仿真有效,实际的综合器并不支持设置初始值。始值仅对仿真有效,实际的综合器并不支持设置初始值。西安电子科技大学国家级精品课程数字电路与系统设计国家级精品课程数字电路与系统设计CONSTANT CONSTANT 常量名常量名常量名常量名:数据类型数据类型数据类型数据类型:=:=表达式表达式表达式表达式;ARCHITECTURE bhv OF DFF1 ISARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 S