设计初步新模版31716

上传人:牛*** 文档编号:84836968 上传时间:2022-05-04 格式:PPTX 页数:139 大小:1.24MB
收藏 版权申诉 举报 下载
设计初步新模版31716_第1页
第1页 / 共139页
设计初步新模版31716_第2页
第2页 / 共139页
设计初步新模版31716_第3页
第3页 / 共139页
资源描述:

《设计初步新模版31716》由会员分享,可在线阅读,更多相关《设计初步新模版31716(139页珍藏版)》请在装配图网上搜索。

1、会计学1设计初步新模版设计初步新模版31716VHDLVHSIC Hardware Description Language HDL 的出现是为了适应电子系统设计的日益复杂的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比:性。若以计算机软件的设计与电路设计做个类比: 机器码机器码好比好比晶体管晶体管/MOS管管; 汇编语言汇编语言好比好比电路网表电路网表; HDL语言语言就如同就如同高级语言高级语言。第2页/共139页几种常用的几种常用的HDL语言:语言: 功能强,规范性好功能强,规范性好; 功能强、灵活功能强、灵活性高;性高; 属于较低级的硬件描属于较低级的硬

2、件描述语言;述语言; Altera公司开发,语公司开发,语法简单,但不通用。法简单,但不通用。 VHDLVHSIC Hardware Description Language第3页/共139页 VHDL在语法和风格上类似与现代高级编程在语法和风格上类似与现代高级编程语言。但要注意,语言。但要注意,VHDL毕竟描述的是硬件,它毕竟描述的是硬件,它包含许多硬件特有的结构。包含许多硬件特有的结构。描述特点是描述特点是 :描述的特点是:描述的特点是:VHDLVHSIC Hardware Description Language第4页/共139页VHDL与计算机语言的区别与计算机语言的区别l 计算机语言

3、是在计算机语言是在CPURAM构建的平台上运行构建的平台上运行l VHDL设计的结果是由具体的逻辑、触发器组成的数字电设计的结果是由具体的逻辑、触发器组成的数字电路路l计算机语言基本上以串行的方式执行计算机语言基本上以串行的方式执行lVHDL在总体上是以并行方式工作在总体上是以并行方式工作l计算机语言主要关注于变量值的变化计算机语言主要关注于变量值的变化lVHDL要实现严格的时序逻辑关系要实现严格的时序逻辑关系第5页/共139页数字电路与系统设计数字电路与系统设计回顾回顾组合逻辑电路组合逻辑电路时序逻辑电路时序逻辑电路分析分析设计设计真值表真值表分析分析设计设计输入输入/输出输出抽象抽象(实体

4、)(实体)电路功能电路功能实现实现(结构体)(结构体)EntityArchitecture与、或、非与、或、非与非、或非与非、或非异或、同或异或、同或RS触发器触发器D触发器触发器T触发器触发器JK触发器触发器第6页/共139页主要内容安排主要内容安排1 多路选择器的多路选择器的VHDL描述描述2 时序电路的时序电路的VHDL描述描述3 更复杂电路的更复杂电路的VHDL描述描述4 习题习题第7页/共139页例例1.1 2选选1多路选择器的多路选择器的VHDL描述描述 2选选1输入输入/输出端口输出端口(实体(实体Entity) abymux21s电路功能电路功能实现实现(结构体(结构体Arch

5、itecture)?第8页/共139页例例1.1 2选选1多路选择器的多路选择器的abymux21sENTITY IS PORT (a, b : IN BIT ; S : IN BIT ; y : OUT BIT ) ; END ENTITY ; 第9页/共139页ENTITY 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

6、.1 2选选1多路选择器的多路选择器的abymux21sS=0S=1abyS第10页/共139页例例1.1 2选选1多路选择器的多路选择器的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 ; abymux21s第11页/共139页例例1.1 2选选1多路选择器的多路选择器的1 多路选择器的多路选择器的VHDL描述描述y = (a AND (NOT s) OR ( b AND

7、s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave;y = as+bsabymux21s说明:以说明:以上三种结上三种结构体描述构体描述都是都是第12页/共139页例例1.1 2选选1多路选择器的多路选择器的1 多路选择器的多路选择器的VHDL描述描述S=0S=1abySabymux21s ARCHITECTURE one OF mux21 ISBEGIN (a,b,s) IF s = 0 THEN y = a ; ELSE y = b ; END IF; END ARCHITECTURE one ; -a,b,s 为敏感信号表为敏感信号表第

8、13页/共139页2选选1多路选择器功能时序波形多路选择器功能时序波形 例例1.1 2选选1多路选择器的多路选择器的1 多路选择器的多路选择器的VHDL描述描述第14页/共139页1.1 实体表达(实体表达(ENTITY) 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明ENTITY 实体名实体名 IS GENERIC (类属表);(类属表); PORT (端口表);(端口表);END ENTITY 实体名;实体名; 实体在电路中主要是说明该电路的输入、输实体在电路中主要是说明该电路的输入、输出关系,更具体地说就

9、是用来定义实体与外部的出关系,更具体地说就是用来定义实体与外部的连接关系以及需传送给实体的参数。连接关系以及需传送给实体的参数。第15页/共139页ENTITY 实体名实体名 IS GENERIC (类属表类属表);); PORT (端口表端口表););END ENTITY 实体名;实体名;(1)类属表:用以将信息参数传递到实体。)类属表:用以将信息参数传递到实体。(2)端口表:指明实体的输入、输出信号及其模式、)端口表:指明实体的输入、输出信号及其模式、数据类型。数据类型。PORT (端口名:端口模式端口名:端口模式 数据类型;数据类型; 端口名:端口模式端口名:端口模式 数据类型数据类型

10、);英文字母英文字母+ +数字数字数据流动方向数据流动方向主要有主要有“位位”和和“位矢量位矢量”两类两类设计者自己命名的名称(文件名设计者自己命名的名称(文件名)第16页/共139页注意注意简单地说简单地说方向定义方向定义含义含义IN输入,定义的通道为单向只读模式输入,定义的通道为单向只读模式 OUT输出,输出,定义的通道为单向输出模式定义的通道为单向输出模式 INOUT双向,定义的通道确定为输入输出双向端口双向,定义的通道确定为输入输出双向端口 BUFFER缓冲端口,其功能与缓冲端口,其功能与INOUT类似类似 常用端口模式:常用端口模式:第17页/共139页例例:ENTITY IS PO

11、RT (a, b, : IN ; S : IN ; y : OUT ) ; END ENTITY ; VHDL中任何一种数据对象(信号、变量、常数)中任何一种数据对象(信号、变量、常数)必须严格限定其取值范围。必须严格限定其取值范围。 VHDL 中一个对象只能有一种类型,施加于该对象中一个对象只能有一种类型,施加于该对象的操作必须与该类型相匹配。的操作必须与该类型相匹配。 常用数据类型有:常用数据类型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等等第18页/共139页1.2 结构体表达(结构体表达(ARCHITECTUR

12、E) 1 多路选择器的多路选择器的VHDL描述描述ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等定义;内部信号,常数,数据类型,函数等定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;第19页/共139页它是该结构体的唯一名它是该结构体的唯一名称。称。“OF”后面紧跟的实体名表明了该结构体所后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用对应的是哪一个实体。用 “IS”来结束结构体的来结束结构体的命名。命名。ARCHITECTURE OF 实体名实体名 IS 内部信号

13、,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN ;END ARCHITECTURE 结构体名;结构体名;第20页/共139页位于位于“ARCHITECTURE”和和“BEGIN”之间。用于对结构体内部所使用的信号常数之间。用于对结构体内部所使用的信号常数、数据类型和函数等进行定义。如:、数据类型和函数等进行定义。如:ARCHITECTURE OF 实体名实体名 IS 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN ;END ARCHITECTURE 结构体名;结构体名;cont:STD_LOGIC_VECTOR(3

14、DOWNTO0);co_1:STD_LOGIC;m:TIME:=2ns;(INIT,DAD,ADC,SRF,FRF); 第21页/共139页处于处于“BEGIN”和和“END”之间。具体描述了结构体的行为及其连接关系。之间。具体描述了结构体的行为及其连接关系。ARCHITECTURE OF 实体名实体名 IS 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN ;END ARCHITECTURE 结构体名;结构体名;第22页/共139页(behavioral) 结构体的行为描述表示输入与输出间转换的关系结构体的行为描述表示输入与输出间转换的关系,是对设计

15、实体按算法的路径来描述。行为描述在,是对设计实体按算法的路径来描述。行为描述在 EDA 工程中称为高层次描述或高级描述。工程中称为高层次描述或高级描述。看例题看例题!如图所示的如图所示的半加器半加器,其功,其功能真值表已经给出,写出它的能真值表已经给出,写出它的行为描述行为描述。半加器半加器abcsabcs0000000011111110第23页/共139页半加器真值表半加器真值表:abcs0000000011111110半加器半加器abcs (ENTITY部分省略)部分省略) ARCHITECTURE alg_ha OF half_adder IS BEGIN PROCESS (a , b)

16、 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 PROCESS END alg_ha; 高层次的功能高层次的功能描述,不必考描述,不必考虑在电路中到虑在电路中到底是怎样实现底是怎样实现的。的。第24页/共139页(dataflow) 它反映了从输入数据到输出数据之间所发生的它反映了从输入数据到输出数据之间所发生的逻辑变换,或者说描述了数据流程的运动路径、运逻辑变换,或者说描述了数据流程的运动路径、运动方向和运动结果。动方向和运动结果。(struc

17、tural) 结构化描述给出了实体内部结构、所包含的模结构化描述给出了实体内部结构、所包含的模块或元件间互连关系;与实体外部引线的对应关系块或元件间互连关系;与实体外部引线的对应关系。练习:练习: 试用上面的两种方法描述半加器的功能。试用上面的两种方法描述半加器的功能。半加器半加器abcs第25页/共139页结构体中三种描述方式的比较结构体中三种描述方式的比较布尔函数定义布尔函数定义明白明白连接关系清晰连接关系清晰,电路模块化,电路模块化清晰清晰 优优 点点小门数设计小门数设计不易描述复杂电路不易描述复杂电路,修改不易,修改不易数据流描述数据流描述电路层次化设计电路层次化设计电路不易理解、繁电

18、路不易理解、繁琐、复杂琐、复杂结构化描述结构化描述 适用场合适用场合 缺缺 点点描述方式描述方式电路特性清楚电路特性清楚明了明了大型复杂的电路大型复杂的电路模块设计模块设计进行综合效率相对进行综合效率相对较低较低行为描述行为描述第26页/共139页 信号赋值符信号赋值符 “=” 表式中的等号表式中的等号“=”没有没有赋值的含义,只是一种赋值的含义,只是一种数据比较符号。数据比较符号。 1.3 赋值符号和数据比较符号赋值符号和数据比较符号 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明 ARCHITECTURE

19、one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s 0 THEN y a ; ELSE y b ; END IF; END PROCESS;END ARCHITECTURE one ; 第27页/共139页1.4 逻辑操作符逻辑操作符 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明y = (a ( s) (b s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave; VHDL共有共有7种基本逻辑操作符:种基本逻辑操作符:

20、 要求数据类型:要求数据类型: BIT BOOLEAN STD_LOGIC第28页/共139页ARCHITECTURE one OF mux21 IS BEGIN y = a s = 0 b ;END ARCHITECTURE one ; 1.5 WHEN_ELSE条件信号赋值语句条件信号赋值语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明赋值目标赋值目标 = 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 ; 第29页/共139页在在V

21、HDL中,所有的中,所有的,如,如“IF_THEN_ELSE_END IF”,都必须放在由,都必须放在由“PROCESSEND PROCESS”引导的进程引导的进程结构中。结构中。 在一个结构体(在一个结构体(ARCHITECTURE)中可以包含任意个进)中可以包含任意个进程语句,所有的进程语句都是程语句,所有的进程语句都是,而进程,而进程PROCESS引导引导的内部语句结构属于的内部语句结构属于。1.4 进程语句和顺序语句进程语句和顺序语句 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明第30页/共139页1

22、 小结小结在在2选选1的的VHDL描述中出现的语言现象归纳:描述中出现的语言现象归纳:实体:实体: Entity结构体:结构体:Architecture端口定义:端口定义: Port( )端口模式:端口模式:In/Out/Inout数据类型:数据类型:Bit、Std_Logic信号赋值符:信号赋值符:=条件比较符:条件比较符:=逻辑操作符:逻辑操作符:ANDIF条件语句:条件语句:IFEND IF并行条件语句:并行条件语句:WHENELSE进程语句:进程语句:ProcessEnd Process顺序语句:顺序语句:由进程语句引导由进程语句引导并行语句:并行语句:第31页/共139页2 时序电路

23、的时序电路的VHDL描述描述例例2.1 D触发器的触发器的VHDL描述描述 最简单、最具有代表性的时序电路是最简单、最具有代表性的时序电路是D触发器。触发器。(实体(实体Entity) 电路功能描述电路功能描述(结构体(结构体Architecture)?DCLKQDFF1第32页/共139页ENTITY DFF1 IS - 端口声明端口声明 PORT (CLK, D : IN ; Q : OUT );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS -结构体描述结构体描述 Q1 : STD_LOGIC ; -类似于在芯片内部定义一个数据的暂存节点类似于在芯

24、片内部定义一个数据的暂存节点BEGIN PROCESS (CLK) - 进程进程 BEGIN IF THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; -将内部的暂存数据向端口输出(双横线将内部的暂存数据向端口输出(双横线-是注释符号)是注释符号)END ARCHITECTURE bhv; 例例2.1 D触发器的触发器的VHDL描述描述 VHDL电路描述与电路描述与设计平台和硬件实现对设计平台和硬件实现对象象 (组合或时序逻辑组合或时序逻辑) 无无关。关。DCLKQDFF1第33页/共139页例例2.1中中D触发器的触发器的VHDL描述的语言现象说明描述的

25、语言现象说明 2.1 完整完整VHDL程序程序基本构成基本构成VHDL设计设计VHDL文件文件库和程序包库和程序包 声明在设计或实体中将用到的常数,数据类型声明在设计或实体中将用到的常数,数据类型,元件及子程序等,元件及子程序等实体(实体(Entities) 声明到其实体及其声明到其实体及其设计的接口,即定义设计的接口,即定义本设计的输入本设计的输入/出端口出端口结构体结构体(Architectures) 定义了实体的实现。定义了实体的实现。即电路功能的具体描述即电路功能的具体描述第34页/共139页 定义了一组数据类型说明、常量说明、元件说明定义了一组数据类型说明、常量说明、元件说明和子程序

26、说明。以供其它多个设计实体引用。和子程序说明。以供其它多个设计实体引用。 是专门存放预先编译好的程序包的地方,这样它们就是专门存放预先编译好的程序包的地方,这样它们就可以在其它设计中被调用。可以在其它设计中被调用。 就是为了使一组类型说明,常量说明和就是为了使一组类型说明,常量说明和子程序说明对多个设计实体都成为可见的而提供的一子程序说明对多个设计实体都成为可见的而提供的一种结构。它们如同种结构。它们如同C语言中的语言中的*.h文件,定义了一些类文件,定义了一些类型说明,函数一样。型说明,函数一样。第35页/共139页 例如:例如: LIBRARY IEEE; USE IEEE.std_log

27、ic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; IEEE是是IEEE标准库的标志名,两个标准库的标志名,两个USE语句使得以语句使得以下设计可使用程序包下设计可使用程序包std_logic_1164, std_logic_unsigned中中所有预定义的内容,如所有预定义的内容,如std_logic,in,out的定义等。的定义等。格式:格式: LIBRARY ; USE .ALL;第36页/共139页第37页/共139页 TYPE BIT IS(0,1); 即即BIT数据类型仅可取值数据类型仅可取值0或或1; TYPE STD_LOGIC IS (

28、U,X,0,1,Z,W,L,H,-); 工业标准逻辑类型,取值工业标准逻辑类型,取值U,X,0,1,Z, W, L, H和和- 2.2 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC ENTITY IS - 端口声明端口声明 PORT (CLK, D : IN ; Q : OUT );END ENTITY ;ENTITY IS PORT (a, b, : IN ; S : IN ; y : OUT ); END ENTITY ; 第38页/共139页2.3 信号定义和数据对象信号定义和数据对象 信号的使用和定义范围是实体、结构体和程序包,信号的使用和定义范围是实体、结构体和程序包,在进

29、程在进程和子程序的顺序语句中不允许定义信号。和子程序的顺序语句中不允许定义信号。(只有信号才能把进(只有信号才能把进程外的信息带入进程内部,或将进程内的信息带出进程)程外的信息带入进程内部,或将进程内的信息带出进程)第39页/共139页2.3 信号定义和数据对象信号定义和数据对象 在在VHDL中,变量是一个局部量,作为临时的数据存储单中,变量是一个局部量,作为临时的数据存储单元,元,只能在进程和子程序的顺序语句中使用只能在进程和子程序的顺序语句中使用。变量定义中的初。变量定义中的初始值仅对仿真有效,实际的综合器并不支持设置初始值。始值仅对仿真有效,实际的综合器并不支持设置初始值。第40页/共1

30、39页2.3 信号定义和数据对象信号定义和数据对象 常量的定义主要是为了程序更容易阅读和修改。在所有常量的定义主要是为了程序更容易阅读和修改。在所有的的VHDL结构中都可以定义常量,如实体、结构体、程序包、结构中都可以定义常量,如实体、结构体、程序包、进程和子程序等。常量是一个恒定不变的值。进程和子程序等。常量是一个恒定不变的值。第41页/共139页2.4 上升沿检测表式和信号属性函数上升沿检测表式和信号属性函数EVENT PROCESS (CLK) - 进程进程 BEGIN IF THEN Q1 = D ; END IF; END PROCESS ;边沿检测语句边沿检测语句第42页/共139

31、页2.5 不完整条件语句与时序电路不完整条件语句与时序电路 ENTITY DFF1 IS - DFF 端口声明端口声明 PORT (CLK, D : IN ; Q : OUT );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS Q1 : STD_LOGIC ; BEGIN PROCESS (CLK) - 进程进程 BEGIN IF THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ARCHITECTURE bhv; CLKEVENT AND CLK = 1YesNoQ1 = D ; ?第43页/共139页

32、ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; -a,b,s 为敏感信号表为敏感信号表S=0YesNoy = a;y b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END PROCESS ;END ;例例b:EDA软件综合结果软件综合结果第46页/共139页2.6 实现时序

33、电路的实现时序电路的VHDL不同表述不同表述 ENTITY DFF1 IS - DFF 端口声明端口声明 PORT (CLK, D : IN ; Q : OUT );END ENTITY DFF1;ARCHITECTURE bhv OF DFF1 IS Q1 : STD_LOGIC ; BEGIN PROCESS (CLK) - 进程进程 BEGIN IF THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ARCHITECTURE bhv; 第47页/共139页.PROCESS (CLK) BEGIN IF THEN Q = D ; -确保确保C

34、LK的变化是一次上升沿的跳变的变化是一次上升沿的跳变 END IF; END PROCESS ; .PROCESS (CLK)BEGIN - 同上同上 IF THEN Q = D ; END IF; END PROCESS ; 2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 第48页/共139页LIBRARY IEEE ; ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN P

35、ROCESS (CLK) BEGIN IF THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ; 第49页/共139页.PROCESS BEGIN CLK = 1 ; Q = D ;END PROCESS; 2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 第50页/共139页.PROCESS ()BEGIN IF THEN Q = D ; END IF; END PROCESS ; 上升沿触发上升沿触发DFF的仿真波形:的仿真波形:2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 第51页/共139页.PROCESS (

36、, ) BEGIN IF THEN Q 0); -计数器复位(高有效)计数器复位(高有效) ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en=1) THEN -检测是否允许计数(不完全条件语检测是否允许计数(不完全条件语句)句) IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数状态计数状态=9,下一状态清零,下一状态清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE

37、co =0; END IF; qcnt 0); -计数器复位(高有效)计数器复位(高有效) ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en=1) THEN -检测是否允许计数(不完全条件语检测是否允许计数(不完全条件语句)句) IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数状态计数状态=9,下一状态清零,下一状态清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE

38、co =0; END IF; qcnt = cqi; -将计数值输出到端口将计数值输出到端口 END PROCESS;END behave;10进制计数器时序波形仿真结果进制计数器时序波形仿真结果第63页/共139页VARIABLE cqi : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; 第64页/共139页3.3 不同工作方式的时序电路设计不同工作

39、方式的时序电路设计 library ieee;use ieee.std_logic_1164.all;ENTITY shifter IS- PORT( clk, load : IN std_logic; din : IN std_logic_vector(7 downto 0); qb : OUT std_logic);END ENTITY shifter;第65页/共139页ARCHITECTURE behave OF shifter IS -BEGIN PROCESS (clk,load) VARIABLE reg8 : std_logic_vector(7 downto 0); BEGI

40、N IF clkEVENT AND clk = 1 THEN IF load=1 THEN reg8 :=din; -由(由(LOAD=1)装载新)装载新数据数据 ELSE reg8(6 downto 0) :=reg8 (7 downto 1); END IF; END IF; qb = reg8(0) ; - 串行输出最低位串行输出最低位 END PROCESS; END ARCHITECTURE behave;移位寄存器时序波形仿真结果移位寄存器时序波形仿真结果第66页/共139页3.4 1位二进制全加器的位二进制全加器的VHDL描述描述 1位二进制全加器引脚图位二进制全加器引脚图1位二

41、进制全加器实现原理图位二进制全加器实现原理图1位二进制位二进制半加器半加器第67页/共139页半加器的半加器的VHDL描述描述 1001010110001100cosoba半加器其真值表半加器其真值表 coasobnotxnor2and2半加器电路图半加器电路图3.4 1位二进制全加器的位二进制全加器的VHDL描述描述 so=?co=?第68页/共139页-半加器描述半加器描述(1):布尔方程描述方法:布尔方程描述方法LIBRARY IEEE; USE ; ENTITY h_adder IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; co, so : OUT S

42、TD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT (a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1; 半加器的半加器的VHDL描述描述 第69页/共139页-半加器描述半加器描述(2):真值表描述方法(:真值表描述方法(1) -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder is abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN PROCESS

43、(abc) BEGIN CASE abc IS - WHEN 00 so=0; co=0 ; WHEN 01 so=1; co=0 ; WHEN 10 so=1; co=0 ; WHEN 11 so=0; co=1 ; WHEN OTHERS NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; 第70页/共139页VHDL描述中的描述中的基本结构与语法基本结构与语法:VHDL运算符运算符 &:连接运算符:连接运算符 &连接,将两个对象或矢量连接成维数连接,将两个对象或矢量连接成维数更大的矢量更大的矢量, 它可给代码书写带来方便。它可给代码书

44、写带来方便。 例如,为表达例如,为表达a=1 and b=0 and c=1概念,可定义一个变量:概念,可定义一个变量: vabc=a & b & c;则可用则可用 vabc=“101”表达上述内容。表达上述内容。第71页/共139页-半加器描述半加器描述(3):真值表描述方法(:真值表描述方法(2) -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder IS BEGIN abc cso cso cso cso null ; -或或“00” END CASE; END PROCESS;END fh1;第72页/共139页-“或门或门”逻辑描述

45、逻辑描述LIBRARY IEEE ; 库、函数包调用库、函数包调用ENTITY or2a IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a IS -结构体描述结构体描述 BEGIN END ARCHITECTURE one ; 或门或门”逻辑的逻辑的VHDL描述描述 第73页/共139页位二进制全加器的位二进制全加器的VHDL描述描述 LIBRARY IEEE;USE;ENTITY f_adder IS -实体实体f_adder描述描述 POR

46、T (ain,bin,cin: IN STD_LOGIC; cout,sum:OUT STD_LOGIC); END f_adder;ARCHITECTURE fd1 OF f_adder IS -结构体描述结构体描述第74页/共139页 SIGNAL d,e,f: STD_LOGIC; BEGIN U1:h_adder PORT MAP(a=ain, b=bin, co=d, so=e); U2:h_adder PORT MAP(a=e, b=cin, co=f, so=sum); U3:or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd

47、1;第75页/共139页VHDL描述中的描述中的基本结构与语法基本结构与语法:第76页/共139页STD_LOGIC_VECTOR STD_LOGIC 在使用在使用STD_LOGIC_VECTOR中,必须注明其数中,必须注明其数组宽度,即位宽,如:组宽度,即位宽,如: B : OUT STD_LOGIC_VECTOR ; SIGNAL A :STD_LOGIC_VECTOR ; B = 01100011 ; - B(7)为为 0 B(4 DOWNTO 1) = “0001 ; - B(4)为为 0 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) 第77页/共139页SI

48、GNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;. a 连接端口名,连接端口名,.); U1:h_adder PORT MAP(a=ain, b=bin, co=d, so=e);第79页/共139页1、状态机分类:、状态机分类:按输按输出方出方式分式分Mealy型型Moore型型输出仅为当前状输出仅为当前状态的函数态的函数输出是当前状态输出是当前状态和输入的函数和输入的函数按按结结构构分分单单 进进 程程多多 进进 程程主进程和辅进程主进程和辅进程合一合一分时序、组合主分时序、

49、组合主进程,辅助进程进程,辅助进程4 有限状态机设计有限状态机设计4.1 一般有限状态机的设计一般有限状态机的设计第80页/共139页按状按状态表态表达分达分符号状态机符号状态机确定编码状态机确定编码状态机S0,S1,S2,000,001,010, 按编按编码方码方式分式分顺序编码顺序编码一位热码一位热码二进制顺序编码等二进制顺序编码等00001,00010,00100, 其它编码其它编码格雷码,循环码,等格雷码,循环码,等4 有限状态机设计有限状态机设计第81页/共139页2、用户自定义数据类型、用户自定义数据类型4 有限状态机设计有限状态机设计4.1 一般有限状态机的设计一般有限状态机的设

50、计TYPE 数据类型名数据类型名 IS 数据类型定义;数据类型定义;例如例如:TYPE m_state IS (st0,st1,st2,st3,st4,st5);SIGNAL present_state,next_state : m_state;第82页/共139页3、一般状态机的设计、一般状态机的设计a、说明部分、说明部分例如:例如: SIGNAL current_state,next_state : m_state; ARCHITECTURE beh IS TYPE m_state IS (st0,st1,st2,st3,st4,st5);4 有限状态机设计有限状态机设计4.1 一般有限状

51、态机的设计一般有限状态机的设计第83页/共139页b、主控时序进程、主控时序进程 该部分是在该部分是在CLK控制下,进行状态转换控制下,进行状态转换: current_state = next_state ;c、主控组合进程、主控组合进程 该部分是确定该部分是确定current_state,next_state的取的取值,为时序进程提供参数;进行状态转换条件的值,为时序进程提供参数;进行状态转换条件的判定;进行输出判定。判定;进行输出判定。d、辅助进程、辅助进程 该部分是配合主控时序进程或主控组合进程该部分是配合主控时序进程或主控组合进程,完成某种,完成某种算法算法、输出输出数据锁存数据锁存等

52、。等。第84页/共139页RSTS0/5S2/12S3/14S1/80000elseelseelse1111else State_inputsState/outputclkresetState inputs24Comb_outputs状态机4 有限状态机设计有限状态机设计4.2 双进程双进程Moore型有限状态机的设计型有限状态机的设计第85页/共139页Library ieee; Use ieee.std_logic_1164.all;Entity s_machine is Port ( clk, reset : in std_logic; State_inputs : in std_log

53、ic_vector(0 to 1); comb_outputs : out integer range 0 to 15); End s_machine; Architecture behv of s_machine is clkresetState inputs24Comb_outputs状态机第86页/共139页Beginreg: process (reset, clk)begin if reset =1 then current_state = s0;elsif clk =1 and clkevent then current_state comb_outputs = 5; if stat

54、e_inputs =“00” then next_state = s0; else next_state comb_outputs = 8; if state_inputs =“00” then next_state = s1;else next_state comb_outputs = 12; if state_inputs =“11” then next_state = s0;else next_state comb_outputs = 14; if state_inputs =“11” then next_state = s3;else next_state = s0; end if;e

55、nd process;end behv;RSTS0/5S2/12S3/14S1/80000elseelseelse1111else第88页/共139页Mealy型型输出是当前状态和输入的函数输出是当前状态和输入的函数例:例: “1110”序序列检测器设计列检测器设计0/11/01/0sa1/00/00/00/0sbscsdx/z1/04 有限状态机设计有限状态机设计4.3 Mealy型有限状态机的设计型有限状态机的设计第89页/共139页LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY statem IS PORT ( clk : IN std_l

56、ogic; x,reset : IN std_logic; z: out std_logic );END statem;0/11/01/0sa1/00/00/00/0sbscsdx/z1/0例:例: “1110”序列检测器设计序列检测器设计第90页/共139页ARCHITECTURE behave OF statem ISTYPE STATE_TYPE IS (sa, sb, sc,sd);SIGNAL state: STATE_TYPE;BEGIN PROCESS (clk,reset) BEGIN IF reset = 1 THEN state IF x=1 THEN state = sb

57、; ELSE state IF x=1 THEN state = sc; ELSE state IF x=1 THEN state=sd; ELSE state IF x=1 THEN state = sd; ELSE state=sa; END IF;END CASE; END IF; -reset END PROCESS; z=1 when state=sd and x=0 else 0; END ARCHITECTURE behave;0/11/01/0sa1/00/00/00/0sbscsdx/z1/0第92页/共139页ENTITY buf3s IS - 实体实体1: 三态缓冲器三态

58、缓冲器 PORT (input : IN STD_LOGIC ; - 输入端输入端 enable : IN STD_LOGIC ; - 使能端使能端 output : OUT STD_LOGIC ) ; - 输出端输出端END buf3x ;ENTITY mux21 IS -实体实体2: 2选选1多路选择器多路选择器 PORT (in0, in1, sel : IN STD_LOGIC; output : OUT STD_LOGIC); END ENTITY mux21;第93页/共139页图中所示的是图中所示的是4选选1多 路 选 择 器 , 试 分 别 用多 路 选 择 器 , 试 分 别

59、 用IF_THEN语句和语句和CASE语句的语句的表达方式写出此电路的表达方式写出此电路的VHDL程序。程序。 选择控制的信号选择控制的信号s1和和s0为为STD_LOGIC_VECTOR类型;类型; 当当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和和s1=1,s0=1分别执行分别执行y=a、y=b、y=c、y=d。 第94页/共139页图中所示的是双图中所示的是双2选选1多路选择器构成的电路多路选择器构成的电路MUXK,对于其中,对于其中MUX21A,当,当s=0和和1时,分别有时,分别有y=a和和y=b。试在一个结构体中用两个进程来表达此电路,每个进程中用。试在一个结构体中

60、用两个进程来表达此电路,每个进程中用CASE语句描述一个语句描述一个2选选1多路选择器多路选择器MUX21A。 第95页/共139页图中是一个含有上升沿触发的图中是一个含有上升沿触发的D触发器的时触发器的时序电路,试写出此电路的序电路,试写出此电路的VHDL设计文件。设计文件。 第96页/共139页给出给出1位全减器的位全减器的VHDL描述。要求:描述。要求: (1)首先设计)首先设计1位半减器,然后用例化语句将它们连接起位半减器,然后用例化语句将它们连接起来,图中来,图中h_suber是半减器,是半减器,diff是输出差,是输出差,s_out是借位输出是借位输出,sub_in是借位输入。是借

61、位输入。 (2)以)以1位全减器为基本硬件,构成串行借位的位全减器为基本硬件,构成串行借位的8位减法位减法器,要求用例化语句来完成此项设计器,要求用例化语句来完成此项设计(减法运算是减法运算是 x y - sun_in = diffr)。 第97页/共139页根据下图,写出顶层文件根据下图,写出顶层文件MX3256.VHD的的VHDL设计设计文件。文件。 设计含有异步清零和计数使能的设计含有异步清零和计数使能的16位二进制加减可位二进制加减可控计数器。控计数器。 第98页/共139页数字信号的发送和接收电路数字信号的发送和接收电路序列产生器序列产生器数字锁数字锁汽车尾灯控制电路汽车尾灯控制电路

62、交通灯控制器交通灯控制器三层电梯控制器三层电梯控制器竞赛抢答计时器竞赛抢答计时器EDA实验题目实验题目出租车计费器出租车计费器秒表秒表智能数字钟智能数字钟电子琴电子琴乐曲演奏自动演奏器乐曲演奏自动演奏器流水灯流水灯自动售票机自动售票机第99页/共139页第100页/共139页1.1.新建工程新建工程第101页/共139页第102页/共139页第103页/共139页第104页/共139页第105页/共139页第106页/共139页选择编辑文件选择编辑文件第107页/共139页画图画图/键入源程序并存盘键入源程序并存盘第108页/共139页编译前设置编译前设置第109页/共139页选择配置器件和编

63、程方式选择配置器件和编程方式编译前设置编译前设置第110页/共139页4.4.编译、检查编译、检查第111页/共139页全程编译后出现报错信息全程编译后出现报错信息第112页/共139页第113页/共139页第114页/共139页第115页/共139页第116页/共139页5.5.仿真设计文件仿真设计文件第117页/共139页5.5.仿真设计文件仿真设计文件第118页/共139页5.5.仿真设计文件仿真设计文件向波形编辑器拖入信号节点向波形编辑器拖入信号节点 第119页/共139页5.5.仿真设计文件仿真设计文件第120页/共139页Count Value对话框的Counting页Count

64、Value对话框的Timing页5.5.仿真设计文件仿真设计文件第121页/共139页设置仿真时间长度设置仿真时间长度第122页/共139页设置时钟设置时钟CLKCLK的周期的周期 第123页/共139页设置好的激励波形图设置好的激励波形图 5 5时序仿真时序仿真第124页/共139页.vwf.vwf激励波形文件存盘激励波形文件存盘第125页/共139页选择总线数据格式选择总线数据格式 5 5时序仿真时序仿真第126页/共139页选择仿真控制选择仿真控制 5 5时序仿真时序仿真第127页/共139页仿真波形输出仿真波形输出 5 5时序仿真时序仿真第128页/共139页5.5.仿真设计文件仿真设

65、计文件第129页/共139页5.5.仿真设计文件仿真设计文件第130页/共139页Assignment Editor编辑器编辑器 6.6.锁定引脚(未用引脚设置为三态)锁定引脚(未用引脚设置为三态)第131页/共139页表格方式引脚锁定对话框图表格方式引脚锁定对话框图 第132页/共139页图形方式引脚锁定对话框图形方式引脚锁定对话框 第133页/共139页7.7.下载设计文件下载设计文件第134页/共139页第135页/共139页编程下载对话框 第136页/共139页双击选中的编程方式名双击选中的编程方式名 第137页/共139页真的要退出吗真的要退出吗?是是Y否否N第138页/共139页感谢您的观看!感谢您的观看!第139页/共139页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!