




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL历史历史(lsh)回顾回顾 VHDL 语言是美国国防部语言是美国国防部(DOD)在在 20 世纪世纪 80 年代初为实现年代初为实现其高速集成电路其高速集成电路(jchng-dinl)计划计划(VHSICVery High Speed Integrated Circuit)而提出的一种硬件描述语言而提出的一种硬件描述语言(HDLHardware Description Language),以作为各合同商之间提交,以作为各合同商之间提交复杂电路设计文档的一种标准方案,复杂电路设计文档的一种标准方案,VHDL的含义为超高速的含义为超高速集成电路集成电路(jchng-dinl)硬件描述语言。
2、硬件描述语言。 1987年被采纳为年被采纳为IEEE 1076标准(标准(VHDL87)。)。 1993年被更新为年被更新为IEEE 1164标准(标准(VHDL93)。)。第1页/共139页第一页,共139页。VHDLVHSIC Hardware Description Language HDL 的出现是为了的出现是为了(wi le)适应电子系统设计的日益复杂适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比:性。若以计算机软件的设计与电路设计做个类比: 机器码好比机器码好比(hob)晶体管晶体管/MOS管管; 汇编语言汇编语言(hu bin y yn)好比好比电路网表;电
3、路网表; HDL语言语言就如同就如同高级语言高级语言。第2页/共139页第二页,共139页。几种常用的几种常用的HDL语言:语言: (1)VHDL硬件描述语言:功能强,规范性好;硬件描述语言:功能强,规范性好; (2)VerilogHDL硬件描述语言:功能强、灵活性高;硬件描述语言:功能强、灵活性高; (3)ABEL硬件描述语言:属于硬件描述语言:属于(shy)较低级的硬较低级的硬件描述语言;件描述语言; (4)AHDL硬件描述语言:硬件描述语言:Altera公司开发,语法公司开发,语法简单,但不通用。简单,但不通用。 其中:其中:VHDL和和VerilogHDL已成为已成为IEEE标准。标准
4、。VHDLVHSIC Hardware Description Language第3页/共139页第三页,共139页。 VHDL在语法和风格上类似与现代高级编程语在语法和风格上类似与现代高级编程语言。但要注意,言。但要注意,VHDL毕竟描述毕竟描述(mio sh)的是硬的是硬件,它包含许多硬件特有的结构。件,它包含许多硬件特有的结构。 HDL是用文字化方法描述是用文字化方法描述(mio sh)电子电路电子电路与系统。与系统。VHDLVHSIC Hardware Description Language第4页/共139页第四页,共139页。VHDL与计算机语言与计算机语言(yyn)的的区别区别V
5、HDL要实现严格的时序逻辑关系要实现严格的时序逻辑关系第5页/共139页第五页,共139页。数字电路与系统数字电路与系统(xtng)设计回顾设计回顾组合组合(zh)逻辑逻辑电路电路时序时序(sh x)逻辑电逻辑电路路分析分析设计设计真值表真值表分析分析设计设计输入输入/输出输出抽象抽象(实体)(实体)电路功能电路功能实现实现(结构体)(结构体)EntityArchitecture与、或、非与、或、非与非、或非与非、或非异或、同或异或、同或RS触发器触发器D触发器触发器T触发器触发器JK触发器触发器第6页/共139页第六页,共139页。主要内容主要内容(nirng)安排安排1 多路选择器的多路选
6、择器的VHDL描述描述(mio sh)2 时序电路的时序电路的VHDL描述描述(mio sh)3 更复杂电路的更复杂电路的VHDL描述描述4 习题习题第7页/共139页第七页,共139页。1 多路选择器的多路选择器的VHDL描述描述(mio sh)例例1.1 2选选1多路选择器的多路选择器的VHDL描述描述(mio sh) 2选选1输入输入/输出输出(shch)端口端口(实体(实体Entity) abymux21s电路功能电路功能实现实现(结构体(结构体Architecture)?第8页/共139页第八页,共139页。例例1.1 2选选1多路选择器的实体多路选择器的实体(sht)描描述述1 多
7、路选择器的多路选择器的VHDL描述描述(mio sh)abymux21sENTITY IS PORT (a, b : IN BIT ; S : IN BIT ; y : OUT BIT ) ; END ENTITY ; 第9页/共139页第九页,共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.1 2
8、选选1多路选择器的结构体描述多路选择器的结构体描述(mio sh)1 (行行为描述为描述(mio sh)abymux21sS=0S=1abyS1 多路选择器的多路选择器的VHDL描述描述(mio sh)第10页/共139页第十页,共139页。例例1.1 2选选1多路选择器的结构多路选择器的结构(jigu)体描述体描述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 ARCHITECT
9、URE one ; abymux21s1 多路选择器的多路选择器的VHDL描述描述(mio sh)第11页/共139页第十一页,共139页。例例1.1 2选选1多路选择器的结构多路选择器的结构(jigu)体描述体描述3 (布尔方程描述布尔方程描述)1 多路选择器的多路选择器的VHDL描述描述(mio sh)y = (a AND (NOT s) OR ( b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave;y = as+bsabymux21s说明:以上说明:以上三种结构体三种结构体描述描述(mio sh)都是并都是并行语句行语句第1
10、2页/共139页第十二页,共139页。例例1.1 2选选1多路选择器的结构体描述多路选择器的结构体描述(mio sh)4 (进程描述进程描述(mio sh)1 多路选择器的多路选择器的VHDL描述描述(mio sh)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 为敏感信号表为敏感信号表第13页/共139页第十三页,共139页。2选选1多路选择器功能时序多路选择器功能时序(s
11、h x)波形波形 例例1.1 2选选1多路选择器的多路选择器的EDA软件软件(run jin)仿仿真结果真结果1 多路选择器的多路选择器的VHDL描述描述(mio sh)第14页/共139页第十四页,共139页。1.1 实体实体(sht)表达(表达(ENTITY) 1 多路选择器的多路选择器的VHDL描述描述(mio sh)例例1.1VHDL描述中出现的相关语句描述中出现的相关语句(yj)结构和语法说结构和语法说明明ENTITY 实体名实体名 IS GENERIC (类属表);(类属表); PORT (端口表);(端口表);END ENTITY 实体名;实体名; 实体在电路中主要是说明该电路的
12、输入、输出实体在电路中主要是说明该电路的输入、输出关系,更具体地说就是用来定义实体与外部的连接关系,更具体地说就是用来定义实体与外部的连接关系以及需传送给实体的参数。关系以及需传送给实体的参数。第15页/共139页第十五页,共139页。ENTITY 实体实体(sht)名名 IS GENERIC (类属表);(类属表); PORT (端口表);(端口表);END ENTITY 实体实体(sht)名;名;(1)类属表:用以将信息参数传递到实体。)类属表:用以将信息参数传递到实体。(2)端口表:指明实体的输入)端口表:指明实体的输入(shr)、输出信号及其模式、输出信号及其模式、数据类型。数据类型。
13、PORT (端口名:端口模式(msh) 数据类型; 端口名:端口模式(msh) 数据类型 );英文字母+ +数字数据流动方向主要有“位”和“位矢量”两类设计者自己命名的名称(文件名)第16页/共139页第十六页,共139页。 注意注意 简单地说简单地说 In 不可以不可以(ky)出现在出现在= 或或 : = 的左边的左边 out不可以不可以(ky)出现在出现在= 或或 : = 的右边的右边 buffer可以可以(ky)出现在出现在= 或或 : = 的两边的两边方向定义含义IN输入,定义的通道为单向只读模式 OUT输出,定义的通道为单向输出模式 INOUT双向,定义的通道确定为输入输出双向端口
14、BUFFER缓冲端口,其功能与INOUT类似 常用端口模式:常用端口模式:第17页/共139页第十七页,共139页。例:例:ENTITY IS PORT (a, b, : IN ; S : IN ; y : OUT ) ; END ENTITY ; VHDL中任何一种数据对象(信号、变量、常数)必中任何一种数据对象(信号、变量、常数)必须严格限定其取值范围。须严格限定其取值范围。 VHDL 中一个中一个(y )对象只能有一种类型,施加于该对象只能有一种类型,施加于该对象的操作必须与该类型相匹配。对象的操作必须与该类型相匹配。 常用数据类型有:常用数据类型有:BIT,BIT_VECTOR,STD
15、_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等等第18页/共139页第十八页,共139页。1.2 结构结构(jigu)体表达(体表达(ARCHITECTURE) 1 多路选择器的多路选择器的VHDL描述描述(mio sh)ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数内部信号,常数(chngsh),数据类型,函数等定义;,数据类型,函数等定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;第19页/共139页第十九页,共139页。ARCHITECTURE 结构
16、体名结构体名 OF 实体实体(sht)名名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;第20页/共139页第二十页,共139页。ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句(yj) 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句(yj);END ARCHITECTURE 结构体名;结构体名;cont:STD_LOGIC_VECTOR
17、(3DOWNTO0);co_1:STD_LOGIC;m:TIME:=2ns;(INIT,DAD,ADC,SRF,FRF); 第21页/共139页第二十一页,共139页。ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句 内部信号内部信号(xnho),常数,数据类型,函数等的定义;,常数,数据类型,函数等的定义;BEGIN 功能描述语句功能描述语句;END ARCHITECTURE 结构体名;结构体名;第22页/共139页第二十二页,共139页。看例题看例题(lt)!半加器半加器abcsabcs0000000011111110第23页/共139页第二十三页,共
18、139页。半加器真值表半加器真值表:abcs0000000011111110半加器半加器abcs (ENTITY部分部分(b fen)省略)省略) 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 PROCESS END alg_ha; 高层次的功能描述,高层次的功能描述,不必考虑在电路中不必考虑在电路中到底到底(do d)是怎是怎样
19、实现的。样实现的。第24页/共139页第二十四页,共139页。练习:练习: 试用上面的两种方法试用上面的两种方法(fngf)描述半加器的功能。描述半加器的功能。半加器半加器abcs第25页/共139页第二十五页,共139页。结构体中三种描述结构体中三种描述(mio sh)方方式的比较式的比较布尔函数布尔函数(hnsh)定义明定义明白白连接连接(linji)关系关系清晰,电路模块清晰,电路模块化清晰化清晰 优 点小门数设计小门数设计不易描述复杂电路,不易描述复杂电路,修改不易修改不易数据流描述数据流描述电路层次化设计电路层次化设计电路不易理解、繁琐、电路不易理解、繁琐、复杂复杂结构化描述结构化描
20、述 适用场合 缺 点描述方式电路特性清楚明电路特性清楚明了了大型复杂的电路模块大型复杂的电路模块设计设计进行综合效率相对较低进行综合效率相对较低行为描述行为描述第26页/共139页第二十六页,共139页。 信号信号(xnho)赋值符赋值符 “=” 表式中的等号表式中的等号“=”没有赋没有赋值的含义,只是一种数据值的含义,只是一种数据(shj)比较符号。比较符号。 1.3 赋值符号赋值符号(fho)和数据比较符号和数据比较符号(fho) 1 多路选择器的多路选择器的VHDL描述描述例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明 ARCHITECTURE o
21、ne 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页第二十七页,共139页。1.4 逻辑逻辑(lu j)操作符操作符 1 多路选择器的多路选择器的VHDL描述描述(mio sh)例例1.1VHDL描述描述(mio sh)中出现的相关语句结构和中出现的相关语句结构和语法说明语法说明y = (a ( s) (b s) ; ARCHITECTURE behave OF mux21 ISBEGINEND be
22、have; VHDL共有共有7种基本逻辑操作符:种基本逻辑操作符: 要求数据类型:要求数据类型: BIT BOOLEAN STD_LOGIC第28页/共139页第二十八页,共139页。ARCHITECTURE one OF mux21 IS BEGIN y = a s = 0 b ;END ARCHITECTURE one ; 1.5 WHEN_ELSE条件条件(tiojin)信号赋值语句信号赋值语句 1 多路选择器的多路选择器的VHDL描述描述(mio sh)例例1.1VHDL描述中出现的相关描述中出现的相关(xinggun)语句结构和语句结构和语法说明语法说明赋值目标 = 表达式 WHEN
23、 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE 表达式 ; 第29页/共139页第二十九页,共139页。在在 V H D L 中 , 所 有中 , 所 有 ( s u y u ) 的 顺 序 语 句 , 如的 顺 序 语 句 , 如“ I F _ T H E N _ E L S E _ E N D I F ” , 都 必 须 放 在 由, 都 必 须 放 在 由“PROCESSEND PROCESS”引导的进程结构中。引导的进程结构中。 在一个结构体(在一个结构体(ARCHITECTURE)中可以包含任意个进程)中可以包含任意个进程语句,所有语句,所有(suyu)的进程语句都是并行
24、语句,而进程的进程语句都是并行语句,而进程PROCESS引导的内部语句结构属于顺序语句。引导的内部语句结构属于顺序语句。1.4 进程语句进程语句(yj)和顺序语句和顺序语句(yj) 1 多路选择器的多路选择器的VHDL描述描述(mio sh)例例1.1VHDL描述中出现的相关语句结构和语法说明描述中出现的相关语句结构和语法说明第30页/共139页第三十页,共139页。1 小结小结(xioji)在在2选选1的的VHDL描述描述(mio sh)中出现的语言现象归纳:中出现的语言现象归纳:实体实体(sht): Entity结构体:结构体:Architecture端口定义:端口定义: Port( )端
25、口模式:端口模式:In/Out/Inout数据类型:数据类型:Bit、Std_Logic信号赋值符:信号赋值符:=条件比较符:条件比较符:=逻辑操作符:逻辑操作符:ANDIF条件语句:条件语句:IFEND IF并行条件语句:并行条件语句:WHENELSE进程语句:进程语句:ProcessEnd Process顺序语句:顺序语句:由进程语句引导由进程语句引导并行语句:并行语句:第31页/共139页第三十一页,共139页。2 时序电路的时序电路的VHDL描述描述(mio sh)例例2.1 D触发器的触发器的VHDL描述描述(mio sh) 最简单、最具有代表性的时序电路是最简单、最具有代表性的时序
26、电路是D触发器。对触发器。对D触发触发器的描述包含了器的描述包含了VHDL对时序电路的最基本和典型的表达方式,对时序电路的最基本和典型的表达方式,也包含了也包含了VHDL中许多最具特色的语言中许多最具特色的语言(yyn)现象。现象。(实体(实体Entity) 电路功能描述电路功能描述(结构体(结构体Architecture)?DCLKQDFF1第32页/共139页第三十二页,共139页。例例2.1 D触发器的触发器的VHDL描述描述(mio sh) VHDL电路描述与设计电路描述与设计平台和硬件平台和硬件(yn jin)实现实现对象对象 (组合或时序逻辑组合或时序逻辑) 无无关。关。DCLKQ
27、DFF1第33页/共139页第三十三页,共139页。例例2.1中中D触发器的触发器的VHDL描述描述(mio sh)的语言现的语言现象说明象说明 2.1 完整完整VHDL程序基本程序基本(jbn)构成构成VHDL设计设计VHDL文件文件库和程序包库和程序包 声明在设计或实体中将用到的常数,数据类型,声明在设计或实体中将用到的常数,数据类型,元件及子程序等元件及子程序等实体(实体(Entities) 声明到其实体及其声明到其实体及其设计的接口,即定义本设计的接口,即定义本设计的输入设计的输入/出端口出端口结构体结构体(Architectures) 定义了实体的实现。定义了实体的实现。即电路功能的
28、具体描述即电路功能的具体描述第34页/共139页第三十四页,共139页。 程序包:定义了一组数据类型说明、常量说明、元件说明和程序包:定义了一组数据类型说明、常量说明、元件说明和子程序说明。以供其它子程序说明。以供其它(qt)多个设计实体引用。多个设计实体引用。 库:是专门存放预先编译好的程序包的地方,这样它们就库:是专门存放预先编译好的程序包的地方,这样它们就可以可以(ky)在其它设计中被调用。在其它设计中被调用。 库库/程序包就是为了使一组类型说明,常量说明和程序包就是为了使一组类型说明,常量说明和子程序说明对多个子程序说明对多个(du )设计实体都成为可见的而提设计实体都成为可见的而提供
29、的一种结构。它们如同供的一种结构。它们如同C语言中的语言中的*.h文件,定义了文件,定义了一些类型说明,函数一样。一些类型说明,函数一样。第35页/共139页第三十五页,共139页。 例如:例如: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; IEEE是是IEEE标准库的标志名,两个标准库的标志名,两个USE语句使得语句使得(sh de)以下设计可使用程序包以下设计可使用程序包std_logic_1164, std_logic_unsigned中所有预定义的内容,如中所有预定义的内容,如s
30、td_logic,in,out的定义等。的定义等。格式格式(g shi): LIBRARY ; USE .ALL;第36页/共139页第三十六页,共139页。第37页/共139页第三十七页,共139页。2.2 标准标准(biozhn)逻辑位数据类型逻辑位数据类型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页第三十八页,共139页。2.3 信号信号(xnh
31、o)定义和数据对象定义和数据对象 信号的使用和定义范围是实体信号的使用和定义范围是实体(sht)、结构体和程序包,在、结构体和程序包,在进程和子程序的顺序语句中不允许定义信号。(只有信号才能进程和子程序的顺序语句中不允许定义信号。(只有信号才能把进程外的信息带入进程内部,或将进程内的信息带出进程)把进程外的信息带入进程内部,或将进程内的信息带出进程)第39页/共139页第三十九页,共139页。2.3 信号定义信号定义(dngy)和数据对象和数据对象 在在VHDL中,变量是一个局部量,作为临时的数据存储单元,中,变量是一个局部量,作为临时的数据存储单元,只只能在进程和子程序的顺序语句中使用能在进
32、程和子程序的顺序语句中使用。变量定义中的初始值仅对。变量定义中的初始值仅对仿真有效,实际的综合器并不支持设置初始值。仿真有效,实际的综合器并不支持设置初始值。第40页/共139页第四十页,共139页。2.3 信号信号(xnho)定义和数据对象定义和数据对象 常量的定义主要是为了程序更容易阅读和修改。在所有的常量的定义主要是为了程序更容易阅读和修改。在所有的VHDL结构中都可以定义常量,如实体、结构体、程序包、进程和结构中都可以定义常量,如实体、结构体、程序包、进程和子程序等。常量是一个恒定不变的值。子程序等。常量是一个恒定不变的值。第41页/共139页第四十一页,共139页。2.4 上升上升(
33、shngshng)沿检测表式和信号属性沿检测表式和信号属性函数函数EVENT PROCESS (CLK) - 进程进程(jnchng) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;边沿检测语句边沿检测语句第42页/共139页第四十二页,共139页。2.5 不完整条件不完整条件(tiojin)语句与时序电路语句与时序电路 CLKEVENT AND CLK = 1YesNoQ1 = D ; ?第43页/共139页第四十三页,共139页。 ARCHITECTURE one OF mux21 ISBEGIN PROC
34、ESS (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页第四十六页,共139页。2.6 实现时序电路的实现时序电路的VHDL不同不同(b tn)表述
35、表述 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页第四十七页,共139页。.PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) AND (C
36、LKLAST_VALUE=0) THEN Q = D ; -确保确保CLK的变化是一次上升的变化是一次上升(shngshng)沿的跳变沿的跳变 END IF; END PROCESS ; .PROCESS (CLK)BEGIN - 同上同上 IF THEN Q = D ; END IF; END PROCESS ; 2.6 实现实现(shxin)时序电路的时序电路的VHDL不同表述不同表述 0。第48页/共139页第四十八页,共139页。LIBRARY IEEE ; ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC )
37、; END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ; 第49页/共139页第四十九页,共139页。.PROCESS BEGIN CLK = 1 ; Q = D ;END PROCESS; 2.6 实现时序电路的实现时序电路的VHDL不同不同(b tn)表表述述 第50页/共139页第五十页,共139页。.PROCESS ()BEGIN IF THEN Q = D ; END
38、 IF; END PROCESS ; 上升上升(shngshng)沿触发沿触发DFF的仿真波形:的仿真波形:2.6 实现实现(shxin)时序电路的时序电路的VHDL不同表述不同表述 第51页/共139页第五十一页,共139页。.PROCESS (, ) BEGIN IF THEN Q = D ; END IF; END PROCESS ; 电平触发电平触发DFF的仿真的仿真(fn zhn)波形:波形:2.6 实现实现(shxin)时序电路的时序电路的VHDL不同表述不同表述 第52页/共139页第五十二页,共139页。2 小结小结(xioji)第53页/共139页第五十三页,共139页。3
39、更复杂电路更复杂电路(dinl)的的VHDL描描述述CLKQn 时序电路中,一般计数器的输入时序电路中,一般计数器的输入/输出输出(shch)信号包信号包括:括:?EntityArchitecture电路设计电路设计3.1 计数器的计数器的VHDL描述描述(mio sh)第54页/共139页第五十四页,共139页。ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN END IF; END
40、PROCESS ;END bhv; 【例【例1】: 4位二进制加法位二进制加法(jif)计数器计数器CLKQn第55页/共139页第五十五页,共139页。ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER range 15 downto 0 ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; -如何如何(rh)理解?理解? END IF; END PROCE
41、SS ;END ARCHITECTURE bhv; 【例【例1】: 4位二进制加法位二进制加法(jif)计计数器数器第56页/共139页第五十六页,共139页。1 十进制整数十进制整数35 十进制整数十进制整数10E3 十进制整数十进制整数16#D9# 十六进制整数十六进制整数8#562# 八进制整数八进制整数2#11001001# 二进制整数二进制整数整数的表达不加引整数的表达不加引号,而逻辑位的数号,而逻辑位的数据据(shj)必须加引必须加引号,如号,如1、0、“101”。整数整数(zhngsh)(Integer)类型)类型VHDL中整数常量的书写方式:中整数常量的书写方式:第57页/共1
42、39页第五十七页,共139页。3.2 计数器设计的其他表述计数器设计的其他表述(bio sh)方法方法LIBRARY IEEE ; ; - 运算符重载运算符重载(zhn zi)ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND
43、CLK = 1 THEN Q1 = Q1 + 1 ; -“+” 运算符重载运算符重载(zhn zi) END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; 第58页/共139页第五十八页,共139页。3.2 计数器设计的其他表述计数器设计的其他表述(bio sh)方法方法LIBRARY IEEE ; ; - 运算符重载运算符重载(zhn zi)ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; A
44、RCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+” 运算符重载运算符重载(zhn zi) END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; EDA软件综合结果软件综合结果组合电路加组合电路加1逻辑逻辑4位二进制位二进制锁存器锁存器输出反输出反馈馈锁存时锁存时钟钟第59页/共139页第五十九页,共139页。3.2
45、计数器设计的其他计数器设计的其他(qt)表述方法表述方法LIBRARY IEEE ; ; - 运算符重载运算符重载(zhn zi)ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 +
46、1 ; -“+” 运算符重载运算符重载(zhn zi) END IF; END PROCESS ; Q 0); -计数器复位计数器复位(f wi)(高(高有效)有效) 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 c
47、o = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE co =0; END IF; qcnt 0); -计数器复位(高有效)计数器复位(高有效) ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en=1) THEN -检测是否检测是否(sh fu)允许计数(不完全条件语允许计数(不完全条件语句)句) IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数状态计数状态=9,下一状态清零,下一状态清零 END IF; END IF; END IF; IF cqi = 9
48、 THEN co = 1; -计数状态计数状态=9,输出进位信号,输出进位信号 ELSE co =0; END IF; qcnt = cqi; -将计数值输出到端口将计数值输出到端口 END PROCESS;END behave;10进制计数器时序波形仿真结果进制计数器时序波形仿真结果第63页/共139页第六十三页,共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); .
49、d1 0); a1 := (OTHERS=0) ; 第64页/共139页第六十四页,共139页。3.3 不同工作不同工作(gngzu)方式的时序电路设计方式的时序电路设计 library ieee;use ieee.std_logic_1164.all;ENTITY shifter IS-实体实体(sht)声明声明 PORT( clk, load : IN std_logic; din : IN std_logic_vector(7 downto 0); qb : OUT std_logic);END ENTITY shifter;第65页/共139页第六十五页,共139页。ARCHITECT
50、URE behave OF shifter IS -结构体描述结构体描述BEGIN PROCESS (clk,load) VARIABLE reg8 : std_logic_vector(7 downto 0); BEGIN IF clkEVENT AND clk = 1 THEN IF load=1 THEN reg8 :=din; -由(由(LOAD=1)装载新数据)装载新数据(shj) ELSE - load=0, 移位操作移位操作 reg8(6 downto 0) :=reg8 (7 downto 1); END IF; END IF; qb = reg8(0) ; - 串行输出最低位
51、串行输出最低位 END PROCESS; END ARCHITECTURE behave;移位寄存器时序波形仿真结果移位寄存器时序波形仿真结果第66页/共139页第六十六页,共139页。3.4 1位二进制全加器的位二进制全加器的VHDL描述描述(mio sh) 1位二进制全加器引脚图位二进制全加器引脚图1位二进制全加器实现位二进制全加器实现(shxin)原理图原理图1位二进制位二进制半加器半加器第67页/共139页第六十七页,共139页。半加器的半加器的VHDL描述描述(mio sh) 1001010110001100cosoba半加器其真值表半加器其真值表 coasobnotxnor2and
52、2半加器电路图半加器电路图3.4 1位二进制全加器的位二进制全加器的VHDL描述描述(mio sh) so=?co=?第68页/共139页第六十八页,共139页。-半加器描述半加器描述(1):布尔方程描述方法:布尔方程描述方法(fngf)LIBRARY IEEE; USE ; ENTITY h_adder IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT (a XOR (NOT b)
53、; co = a AND b ; END ARCHITECTURE fh1; 半加器的半加器的VHDL描述描述(mio sh) 第69页/共139页第六十九页,共139页。-半加器描述半加器描述(2):真值表描述方法:真值表描述方法(fngf)(1) -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN abc so=0; co so=1; co so=1; co so=0; co NULL ; END CASE; END PROCESS
54、; END ARCHITECTURE fh1 ; 第70页/共139页第七十页,共139页。VHDL描述中的基本结构描述中的基本结构(jigu)与语法:与语法:VHDL运算符运算符 &:连接运算符:连接运算符 &连接,将两个对象或矢量连接成维数更大连接,将两个对象或矢量连接成维数更大的矢量的矢量, 它可给代码书写带来方便。它可给代码书写带来方便。 例如例如(lr),为表达,为表达a=1 and b=0 and c=1概念,可定义一个变量:概念,可定义一个变量: vabc=a & b & c;则可;则可用用 vabc=“101”表达上述内容。表达上述内容。第71页
55、/共139页第七十一页,共139页。-半加器描述半加器描述(3):真值表描述方法(:真值表描述方法(2) -这里这里(zhl)省略库和实体声明部分省略库和实体声明部分ARCHITECTURE fh1 OF h_adder IS SIGNAL abc, cso : std_logic_vector(1 downto 0) ;BEGIN abc = a & b; co = cso(1) ; so cso cso cso cso null ; -或或“00” END CASE; END PROCESS;END fh1;第72页/共139页第七十二页,共139页。-“或门或门”逻辑描述逻辑描述
56、(mio sh)LIBRARY IEEE ; 库、函数包调用库、函数包调用ENTITY or2a IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a IS -结构体描述结构体描述(mio sh) BEGIN c = a OR b ;END ARCHITECTURE one ; 或门或门”逻辑逻辑(lu j)的的VHDL描述描述 第73页/共139页第七十三页,共139页。位二进制全加器的位二进制全加器的VHDL描述描述(mio sh) LIBRA
57、RY IEEE;USE;ENTITY f_adder IS -实体实体f_adder描述描述 PORT (ain,bin,cin: IN STD_LOGIC; cout,sum:OUT STD_LOGIC); END f_adder;ARCHITECTURE fd1 OF f_adder IS -结构体描述结构体描述 COMPONENT h_adder -半加器元件半加器元件(yunjin)调用调用声明声明 PORT (a,b: IN STD_LOGIC; co,so: OUT_LOGIC); END COMPONENT;第74页/共139页第七十四页,共139页。第75页/共139页第七十五
58、页,共139页。VHDL描述描述(mio sh)中的基本结构与中的基本结构与语法:语法:第76页/共139页第七十六页,共139页。STD_LOGIC_VECTOR STD_LOGIC 在使用在使用STD_LOGIC_VECTOR中,必须中,必须(bx)注明其数组宽度,即位宽,注明其数组宽度,即位宽,如:如: B : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ; SIGNAL A :STD_LOGIC_VECTOR (1 TO 4) ; B = 01100011 ; - B(7)为为 0 B(4 DOWNTO 1) = “0001 ; - B(4)为为 0 B(7 D
59、OWNTO 4) = A ; - B(6)等于等于(dngy) A(2) 第77页/共139页第七十七页,共139页。SIGNAL 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页第七十九页,共139页。1、状态机分类、状态机分类(fn li):按输出按输出(shch)方式方式分分Mealy型型Moore型型输出输出(shch)仅仅为当前状
60、态的函为当前状态的函数数输出是当前状态和输出是当前状态和输入的函数输入的函数按结按结构分构分单单 进进 程程多多 进进 程程主进程和辅进程主进程和辅进程合一合一分时序、组合主进分时序、组合主进程,辅助进程程,辅助进程4 有限状态机设计有限状态机设计4.1 一般有限状态机的设计一般有限状态机的设计第80页/共139页第八十页,共139页。按状态按状态(zhungti)表表达分达分符号符号(fho)状态状态机机确定确定(qudng)编编码状态机码状态机S0,S1,S2,000,001,010, 按编码按编码方式分方式分顺序编码顺序编码一位热码一位热码二进制顺序编码等二进制顺序编码等00001,00010,00100, 其它编码其它编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国金属家具行业市场全景分析及投资前景展望报告
- 心灵培训分享课件
- 谢彬培训课件
- 接待专员培训课件
- 社会热点事件在初中历史教学中的应用策略与实践研究
- 海洋调查设备项目风险评估报告
- 中国集成显卡行业市场深度分析及发展趋势预测报告
- 2025年 沧州市人民医院招聘考试笔试试题附答案
- 2025年中国全铜红冲三角阀行业市场发展前景及发展趋势与投资战略研究报告
- 2022-2027年中国瓜子行业市场供需现状及投资战略研究报告
- 医疗保险基本政策培训PPT
- 连云港师范高等专科学校辅导员考试题库
- 2023年湖北黄冈市检察机关招聘雇员制检察辅助人员50人高频考点题库(共500题含答案解析)模拟练习试卷
- 05G525-吊车轨道联结及车挡(适用于钢吊车梁)课件
- TQGCML 757-2023 硫酸钙晶须规程
- 计数型MSA分析表
- 军校招生政治考核表格式-双面打印
- 急救-毒蛇咬伤
- YY 0334-2002硅橡胶外科植入物通用要求
- GB/T 41261-2022过程工业报警系统管理
- (完整版)杭州电子科技大学数字电路期末考试试卷及答案
评论
0/150
提交评论