版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安电子科技大学EDA实验实验VHDL设计初步设计初步主讲:徐少莹主讲:徐少莹电子工程学院电子工程学院:西安电子科技大学EDA实验实验西安电子科技大学国家电工电子教学基地西安电子科技大学国家电工电子教学基地西安电子科技大学第第1部分部分 VHDL设计初步设计初步EDA实验实验西安电子科技大学VHDL历史回想历史回想 VHDL 言语是美国国防部言语是美国国防部(DOD)在在 20 世纪世纪 80 年代初为实现其高速年代初为实现其高速集成电路方案集成电路方案(VHSICVery High Speed Integrated Circuit)而提出而提出的一种硬
2、件描画言语的一种硬件描画言语(HDLHardware Description Language),以,以作为各合同商之间提交复杂电路设计文档的一种规范方案,作为各合同商之间提交复杂电路设计文档的一种规范方案,VHDL的含义为超高速集成电路硬件描画言语。的含义为超高速集成电路硬件描画言语。 1987年被采用为年被采用为IEEE 1076规范规范VHDL87。 1993年被更新为年被更新为IEEE 1164规范规范VHDL93。西安电子科技大学VHDLVHSIC Hardware Description Language HDL 的出现是为了顺应电子系统设计的日益复杂性。的出现是为了顺应电子系统设
3、计的日益复杂性。假设以计算机软件的设计与电路设计做个类比:假设以计算机软件的设计与电路设计做个类比: 机器码好比晶体管机器码好比晶体管/MOS管;管; 汇编言语好比电路网表;汇编言语好比电路网表; HDL言语就好像高级言语。言语就好像高级言语。西安电子科技大学几种常用的几种常用的HDL言语:言语: 1VHDL硬件描画言语:功能强,规范性好;硬件描画言语:功能强,规范性好; 2VerilogHDL硬件描画言语:功能强、灵敏性高;硬件描画言语:功能强、灵敏性高; 3ABEL硬件描画言语:属于较低级的硬件描画言硬件描画言语:属于较低级的硬件描画言语;语; 4AHDL硬件描画言语:硬件描画言语:Alt
4、era公司开发,语法简公司开发,语法简单,但不通用。单,但不通用。 其中:其中:VHDL和和VerilogHDL已成为已成为IEEE规范。规范。VHDLVHSIC Hardware Description Language西安电子科技大学 VHDL在语法和风格上类似于现代高级编程言语。在语法和风格上类似于现代高级编程言语。但要留意,但要留意,VHDL毕竟描画的是硬件,它包含许多硬毕竟描画的是硬件,它包含许多硬件特有的构造。件特有的构造。 HDL是用文字化方法描画电子电路与系统。是用文字化方法描画电子电路与系统。VHDLVHSIC Hardware Description Language西安电
5、子科技大学VHDL与计算机言语的区别与计算机言语的区别计算机言语主要关注于变量值的变化计算机言语主要关注于变量值的变化VHDL要实现严厉的时序逻辑关系要实现严厉的时序逻辑关系西安电子科技大学回想回想组合逻辑电路组合逻辑电路时序逻辑电路时序逻辑电路分析分析设计设计真值表真值表分析分析设计设计输入输入/输出输出笼统笼统实体实体EntityArchitecture与、或、非与、或、非与非、或非与非、或非异或、同或异或、同或RS触发器触发器D触发器触发器T触发器触发器JK触发器触发器西安电子科技大学主要内容安排主要内容安排1 多路选择器的多路选择器的VHDL描画描画2 时序电路的时序电路的VHDL描画
6、描画3 更复杂电路的更复杂电路的VHDL描画描画5 VHDL设计练习设计练习4 有限形状机形状转移图设计有限形状机形状转移图设计西安电子科技大学1 多路选择器的多路选择器的VHDL描画描画例例1.1 2选选1多路选择器的多路选择器的VHDL描画描画 2选选1MUX输入输入/输出输出端口端口实体实体Entity abymux21s电路功能电路功能实现实现构造体构造体Architecture?西安电子科技大学例例1.1 2选选1多路选择器的实体描画多路选择器的实体描画1 多路选择器的多路选择器的VHDL描画描画abymux21sENTITY mux21 IS PORT a, b : IN BIT
7、; S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21 ; 西安电子科技大学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选选1多路选择器的构造体描画多路选择器的构造体描画1 (行为描画行为描画)abymux21sS=0S=1abyS1 多路选择器的多路选择器的V
8、HDL描画描画西安电子科技大学例例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描画描画西安电子科技大学例例1.1 2选选1多路选择器的构造体描画多路选择器的构造体描画3 (布尔方程描布尔方程描画画)1 多路选择器的多路选择器的V
9、HDL描画描画y = (a AND (NOT s) OR ( b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave;y = as+bsabymux21s阐明:以上阐明:以上三种构造体三种构造体描画都是并描画都是并行语句行语句西安电子科技大学例例1.1 2选选1多路选择器的构造体描画多路选择器的构造体描画4 (进程描画进程描画)1 多路选择器的多路选择器的VHDL描画描画S=0S=1abySabymux21s ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s =
10、0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; -a,b,s 为敏感信号表为敏感信号表西安电子科技大学2选选1多路选择器功能时序波形多路选择器功能时序波形 例例1.1 2选选1多路选择器的多路选择器的EDA软件仿真结果软件仿真结果1 多路选择器的多路选择器的VHDL描画描画西安电子科技大学1.1 实体表达实体表达ENTITY 1 多路选择器的多路选择器的VHDL描画描画例例1.1VHDL描画中出现的相关语句构造和语法阐明描画中出现的相关语句构造和语法阐明ENTITY 实体名实体名 IS GENERIC
11、 类属表;类属表; PORT 端口表;端口表;END ENTITY 实体名;实体名; 实体在电路中主要是阐明该电路的输入、输出关实体在电路中主要是阐明该电路的输入、输出关系,更详细地说就是用来定义实体与外部的衔接关系系,更详细地说就是用来定义实体与外部的衔接关系以及需传送给实体的参数。以及需传送给实体的参数。ENTITY 实体名实体名 IS GENERIC 类属表;类属表; PORT 端口表;端口表;END ENTITY 实体名;实体名;1类属表:用于指定参数的大小、实体中子元件的数目类属表:用于指定参数的大小、实体中子元件的数目及实体的定时特性等,用以将信息参数传送到实体。及实体的定时特性等
12、,用以将信息参数传送到实体。2端口表:指明实体的输入、输出信号及其方式、数据端口表:指明实体的输入、输出信号及其方式、数据类型。类型。PORT (端口名:端口方式端口名:端口方式 数据类型;数据类型; 端口名:端口方式端口名:端口方式 数据类型数据类型 );英文字母英文字母+ +数字数字数据流动方向数据流动方向主要有主要有“位和位和“位矢量两类位矢量两类设计者本人命名的称号文件名设计者本人命名的称号文件名例如:例如:mux21的端口描画的端口描画添加以下语句添加以下语句:generic (m: time:=1ns)类属参数阐明语句,它定类属参数阐明语句,它定义了延时时间为义了延时时间为1ns
13、留意留意 简单地说简单地说 In 不可以出如今赋值符号不可以出如今赋值符号(= 或或:=)的左边的左边 out不可以出如今赋值符号不可以出如今赋值符号(= 或或:=)的右边的右边 buffer可以出如今赋值符号可以出如今赋值符号(= 或或:=)的两边的两边方向定义方向定义含义含义IN输入,定义的通道为单向输入方式输入,定义的通道为单向输入方式 OUT输出,定义的通道为单向输出方式输出,定义的通道为单向输出方式 INOUT双向,定义的通道确定为输入输出双向端口双向,定义的通道确定为输入输出双向端口 BUFFER缓冲端口,其功能与缓冲端口,其功能与INOUT类似类似 常用端口方式:常用端口方式:例
14、:例:ENTITY mux21 IS PORT a, b, : IN BIT ; S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21 ; VHDL中任何一种数据对象信号、变量、常数必需严中任何一种数据对象信号、变量、常数必需严厉限定其取值范围。厉限定其取值范围。 VHDL 中一个对象只能有一种类型,施加于该对象的操中一个对象只能有一种类型,施加于该对象的操作必需与该类型相匹配。作必需与该类型相匹配。 常用数据类型有:常用数据类型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等参考等参
15、考书上书上P260表表10.3.1西安电子科技大学1.2 构造体表达构造体表达ARCHITECTURE 1 多路选择器的多路选择器的VHDL描画描画ARCHITECTURE 构造体名构造体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等定义;内部信号,常数,数据类型,函数等定义;BEGIN 功能描画语句功能描画语句;END ARCHITECTURE 构造体名;构造体名;ARCHITECTURE 构造体名构造体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描画语句功能
16、描画语句;END ARCHITECTURE 构造体名;构造体名;ARCHITECTURE 构造体名构造体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描画语句功能描画语句;END ARCHITECTURE 构造体名;构造体名;ARCHITECTURE 构造体名构造体名 OF 实体名实体名 IS 定义语句定义语句 内部信号,常数,数据类型,函数等的定义;内部信号,常数,数据类型,函数等的定义;BEGIN 功能描画语句功能描画语句;END ARCHITECTURE 构造体名;构造体名;半加器半加器ab
17、csabcs0000000011111110半加器真值表:半加器真值表: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 PROCESS; END alg_ha; 高层次的功能描高层次的功能描画,不用思索在画,不用思索在电路中究竟是怎电路中究竟
18、是怎样实现的。样实现的。练习:练习: 试用上面的两种方法描画半加器的功能。试用上面的两种方法描画半加器的功能。半加器半加器abcs西安电子科技大学构造体中三种描画方式的比较构造体中三种描画方式的比较布尔函数定义明布尔函数定义明白白衔接关系明晰,衔接关系明晰,电路模块化明晰电路模块化明晰 优优 点点小门数设计小门数设计不易描画复杂电路,不易描画复杂电路,修正不易修正不易数据流描画数据流描画电路层次化设计电路层次化设计电路不易了解、繁琐、电路不易了解、繁琐、复杂复杂构造化描画构造化描画 适用场所适用场所 缺缺 点点描画方式描画方式电路特性清楚明电路特性清楚明了了大型复杂的电路模大型复杂的电路模块设
19、计块设计进展综合效率相对较进展综合效率相对较低低行为描画行为描画西安电子科技大学 信号赋值符信号赋值符 “= 表达式中的等号表达式中的等号“=没没有赋值的含义,只是一种数有赋值的含义,只是一种数据比较符号。据比较符号。 1.3 赋值符号和数据比较符号赋值符号和数据比较符号 1 多路选择器的多路选择器的VHDL描画描画例例1.1VHDL描画中出现的相关语句构造和语法阐明描画中出现的相关语句构造和语法阐明 ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF
20、; END PROCESS;END ARCHITECTURE one ; 西安电子科技大学1.4 逻辑操作符逻辑操作符 1 多路选择器的多路选择器的VHDL描画描画例例1.1VHDL描画中出现的相关语句构造和语法阐明描画中出现的相关语句构造和语法阐明y = (a AND (NOT s) OR (b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave; VHDL共有共有7种根本逻辑操作符:种根本逻辑操作符: AND(与与)、OR(或或)、NOT(取反、取反、NAND (与非与非)、 NOR(或非或非)、XOR(异或异或)、XNOR(同或
21、同或) 要求数据类型:要求数据类型: BIT BOOLEAN STD_LOGIC西安电子科技大学ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 1.5 WHEN_ELSE条件信号赋值语句条件信号赋值语句 1 多路选择器的多路选择器的VHDL描画描画例例1.1VHDL描画中出现的相关语句构造和语法阐明描画中出现的相关语句构造和语法阐明赋值目的赋值目的 = 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 ; 西安
22、电子科技大学在在VHDL中,一切的顺序语句,如中,一切的顺序语句,如“IF_THEN_ELSE_END IF,都必需放在由都必需放在由“PROCESSEND PROCESS引导的进程构造中。引导的进程构造中。 在一个构造体在一个构造体ARCHITECTURE中可以包含恣意个进程语句,中可以包含恣意个进程语句,一切的进程语句都是并行语句,而进程一切的进程语句都是并行语句,而进程PROCESS引导的内部语句构造引导的内部语句构造属于顺序语句。属于顺序语句。1.4 进程语句和顺序语句进程语句和顺序语句 1 多路选择器的多路选择器的VHDL描画描画例例1.1VHDL描画中出现的相关语句构造和语法阐明描
23、画中出现的相关语句构造和语法阐明西安电子科技大学1 小结小结在在2选选1的的VHDL描画中出现的言语景象归纳:描画中出现的言语景象归纳:实体:实体: Entity构造体:构造体:Architecture端口定义:端口定义: Port( )端口方式:端口方式:In/Out/Inout数据类型:数据类型:Bit、Std_Logic信号赋值符:信号赋值符:=条件比较符:条件比较符:=逻辑操作符:逻辑操作符:ANDIF条件语句:条件语句:IFEND IF并行条件语句:并行条件语句:WHENELSE进程语句:进程语句:ProcessEnd Process顺序语句:由进程语句引导顺序语句:由进程语句引导并
24、行语句:简单赋值语句并行语句:简单赋值语句 when.else语句语句 with .select语句语句西安电子科技大学补充 WITH . SELECT 语句 用WITH . SELECT语句描画2选1多路选择器ENTITY mux21 IS PORT a, b : IN STD_LOGIC; S : IN STD_LOGIC; y : OUT STD_LOGIC); END mux21; ARCHITECTURE one OF mux21 ISBEGIN WITH s SELECT y = a WHEN 0; b WHEN OTHERS ;END one ; 西安电子科技大学2 时序电路的时
25、序电路的VHDL描画描画例例2.1 D触发器的触发器的VHDL描画描画 最简单、最具有代表性的时序电路是最简单、最具有代表性的时序电路是D触发器。对触发器。对D触发触发器的描画包含了器的描画包含了VHDL对时序电路的最根本和典型的表达方对时序电路的最根本和典型的表达方式,也包含了式,也包含了VHDL中许多最具特征的言语景象。中许多最具特征的言语景象。实体实体Entity 电路功能描画电路功能描画构造体构造体Architecture?DCLKQDFF1例例2.1 D触发器的触发器的VHDL描画描画 VHDL电路描画与设电路描画与设计平台和硬件实现对象计平台和硬件实现对象 (组组合或时序逻辑合或时
26、序逻辑) 无关。无关。DCLKQDFF1例例2.1中中D触发器的触发器的VHDL描画的言语景象阐明描画的言语景象阐明 2.1 完好完好VHDL程序根本构成程序根本构成VHDL设计设计VHDL文件文件库和程序包库和程序包 声明在设计或实体中将用到的常数,数据类声明在设计或实体中将用到的常数,数据类型,元件及子程序等型,元件及子程序等实体实体Entities 声明到其实体及声明到其实体及其设计的接口,即定其设计的接口,即定义本设计的输入义本设计的输入/出端出端口口构造体构造体Architectures 定义了实体的实现。定义了实体的实现。即电路功能的详细描画即电路功能的详细描画西安电子科技大学 程
27、序包:定义了一组数据类型阐明、常量阐明、元件阐明和子程程序包:定义了一组数据类型阐明、常量阐明、元件阐明和子程序阐明。以供其它多个设计实体援用。序阐明。以供其它多个设计实体援用。 库:是专门存放预先编译好的程序包的地方,这样它们库:是专门存放预先编译好的程序包的地方,这样它们就可以在其它设计中被调用。就可以在其它设计中被调用。 库库/程序包就是为了使一组类型阐明,常量阐明和子程程序包就是为了使一组类型阐明,常量阐明和子程序阐明对多个设计实体都成为可见的而提供的一种构造。它序阐明对多个设计实体都成为可见的而提供的一种构造。它们好像们好像C言语中的言语中的*.h文件,定义了一些类型阐明,函数一文件
28、,定义了一些类型阐明,函数一样。样。西安电子科技大学 例如:例如: 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;西安电子科技大学西安电子科技大学2.2 规
29、范逻辑位数据类型规范逻辑位数据类型STD_LOGIC ENTITY DFF1 IS - 端口声明端口声明 PORT (CLK, D : IN STD_LOGIC ; Q : OUT STD_LOGIC );END ENTITY DFF1;ENTITY mux21 IS PORT (a, b, : IN BIT ; S : IN BIT ; y : OUT BIT ); END ENTITY mux21 ; 西安电子科技大学2.3 信号定义和数据对象信号定义和数据对象 信号的运用和定义范围是实体、构造体和程序包,在进程和子信号的运用和定义范围是实体、构造体和程序包,在进程和子程序的顺序语句中不允
30、许定义信号。只需信号才干把进程外的信程序的顺序语句中不允许定义信号。只需信号才干把进程外的信息带入进程内部,或将进程内的信息带出进程息带入进程内部,或将进程内的信息带出进程西安电子科技大学2.3 信号定义和数据对象信号定义和数据对象 在在VHDL中,变量是一个部分量,作为暂时的数据存储单元,中,变量是一个部分量,作为暂时的数据存储单元,只能在进程和子程序的顺序语句中运用。变量定义中的初始值仅对只能在进程和子程序的顺序语句中运用。变量定义中的初始值仅对仿真有效,实践的综合器并不支持设置初始值。仿真有效,实践的综合器并不支持设置初始值。西安电子科技大学2.3 信号定义和数据对象信号定义和数据对象
31、常量的定义主要是为了程序更容易阅读和修正。在一切的常量的定义主要是为了程序更容易阅读和修正。在一切的VHDL构造中都可以定义常量,照实体、构造体、程序包、进程和构造中都可以定义常量,照实体、构造体、程序包、进程和子程序等。常量是一个恒定不变的值。子程序等。常量是一个恒定不变的值。西安电子科技大学2.4 上升沿检测表达式和信号属性函数上升沿检测表达式和信号属性函数EVENT PROCESS (CLK) - 进程进程 BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;边沿检测语句边沿检测语句2.5 不完好条件语句与时序
32、电路不完好条件语句与时序电路 CLKEVENT AND CLK = 1YesNoQ1 = D ; ? 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
33、PROCESS ;END ;EDA软件综合结果软件综合结果西安电子科技大学2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 .PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -确保确保CLK的变化是一次上升沿的跳变的变化是一次上升沿的跳变 END IF; END PROCESS ; .PROCESS (CLK)BEGIN - 同上同上 IF CLK=1 AND CLKLAST_VALUE=0 THEN Q = D ; END IF; END PROCESS ; 2.6 实现
34、时序电路的实现时序电路的VHDL不同表述不同表述 LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ; 西安电子科技大学.PROC
35、ESS BEGIN wait until CLK = 1 ; Q = D ;END PROCESS; 2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 西安电子科技大学.PROCESS (CLK)BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ; 上升沿触发上升沿触发DFF的仿真波形:的仿真波形:2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 西安电子科技大学.PROCESS (CLK,D) BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ; 电平触发电平触发DFF
36、的仿真波形:的仿真波形:2.6 实现时序电路的实现时序电路的VHDL不同表述不同表述 西安电子科技大学2 小结小结西安电子科技大学3 更复杂电路的更复杂电路的VHDL描画描画CLKQn 时序电路中,普通计数器的输入时序电路中,普通计数器的输入/输出信号包括:输出信号包括:?EntityArchitecture电路设计电路设计3.1 计数器的计数器的VHDL描画描画ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS B
37、EGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ;END bhv; 【例【例1】: 4位二进制加法计数器位二进制加法计数器CLKQnENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q
38、 = Q + 1 ; -如何了解?如何了解? END IF; END PROCESS ;END bhv; 【例【例1】: 4位二进制加法计数器位二进制加法计数器西安电子科技大学1 十进制整数十进制整数35 十进制整数十进制整数10E3 十进制整数十进制整数16#D9# 十六进制整数十六进制整数8#562# 八进制整数八进制整数2#11001001# 二进制整数二进制整数整数的表达不加引整数的表达不加引号,而逻辑位的数号,而逻辑位的数据必需加引号,如据必需加引号,如1、0、“101。整数整数Integer类型类型VHDL中整数常量的书写方式:中整数常量的书写方式:西安电子科技大学3.2 计数器设
39、计的其他表述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重载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)
40、 BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+ 运算符重载运算符重载 END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; 西安电子科技大学3.2 计数器设计的其他表述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重载ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_L
41、OGIC_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 + 1 ; -“+ 运算符重载运算符重载 END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; EDA软件综合结果软件综合结果组合电路加组合电路加1逻辑逻辑4位二进制位二进制锁存器锁存器输出反输出
42、反响响锁存时锁存时钟钟西安电子科技大学3.2 计数器设计的其他表述方法计数器设计的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 运算符重载运算符重载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 DO
43、WNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+ 运算符重载运算符重载 END IF; END PROCESS ; Q 0); -计数器复位高有效计数器复位高有效 ELSIF (clkEVENT AND clk = 1) THEN -检测时钟上升沿检测时钟上升沿 IF (en=1) THEN -检测能否允许计数不完全条件语句检测能否允许计数不完全条件语句 IF cqi 9 THEN cqi :=cqi+1; -允许计数,且计数允许计数,且计数0); -计数形状计数形状=9,下一形状清
44、零,下一形状清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数形状计数形状=9,输出进位信号,输出进位信号 ELSE 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,下一形状清零,下一形状清零
45、 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -计数形状计数形状=9,输出进位信号,输出进位信号 ELSE co =0; END IF; qcnt = cqi; -将计数值输出到端口将计数值输出到端口 END PROCESS;END behave;10进制计数器时序波形仿真结果进制计数器时序波形仿真结果西安电子科技大学VARIABLE cqi : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VE
46、CTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; 西安电子科技大学3.3 不同任务方式的时序电路设计不同任务方式的时序电路设计 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;ARCHITECTURE behave OF shifter IS -构
47、造体描画构造体描画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装载新数据装载新数据 ELSE - load=0, 移位操作移位操作 reg8(6 downto 0) :=reg8 (7 downto 1); END IF; END IF; qb = reg8(0) ; - 串行输出最低位串行输出最低位 END PROCESS; END ARCHITECTUR
48、E behave;移位存放器时序波形仿真结果移位存放器时序波形仿真结果西安电子科技大学3.4 1位二进制全加器的位二进制全加器的VHDL描画描画 1位二进制全加器引脚图位二进制全加器引脚图1位二进制全加器实现原理图位二进制全加器实现原理图1位二进制位二进制半加器半加器西安电子科技大学3.4.1 半加器的半加器的VHDL描画描画 1001010110001100cosoba半加器真值表半加器真值表 coasobnotxnor2and2半加器电路图半加器电路图3.4 1位二进制全加器的位二进制全加器的VHDL描画描画 so=?co=?-半加器描画半加器描画(1):布尔方程描画方法:布尔方程描画方法
49、LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; 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) ; co = a AND b ; END ARCHITECTURE fh1; 3.4.1 半加器的半加器的VHDL描画描画 -半加器描画半加器描画(2):真值表描画方法:真值表描画方法1 -这
50、里省略库和实体声明部分这里省略库和实体声明部分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; END ARCHITECTURE fh1 ; VHDL描画中的根本构造与语法:描画中的根本构造与语法:VHDL运算符运算符 &:衔接运算符:衔接运算符 &衔接,将两个对象或矢量衔接成维数更大衔接,将两个对象或矢量衔接成维数更大的矢量的矢
51、量, 它可给代码书写带来方便。它可给代码书写带来方便。 例如,为表达例如,为表达a=1 and b=0 and c=1概念,可定义一个变量:概念,可定义一个变量: vabc=a & b & c;那么可用;那么可用 vabc=“101表达上述内容。表达上述内容。-半加器描画半加器描画(3):真值表描画方法:真值表描画方法2 -这里省略库和实体声明部分这里省略库和实体声明部分ARCHITECTURE fh1 OF h_adder IS SIGNAL abc, cso : std_logic_vector(1 downto 0) ;BEGIN abc = a & b; co
52、= cso(1) ; so cso cso cso cso null ; -或或“00 END CASE; END PROCESS;END fh1;西安电子科技大学-“或门逻辑描画或门逻辑描画LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; -库、函数包调库、函数包调用用ENTITY or2a IS -实体声明实体声明 PORT (a, b : IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a IS -构造体描画构造体描画 BEGIN c = a OR b
53、;END ARCHITECTURE one ; 3.4.2 “或门逻辑的或门逻辑的VHDL描画描画 3.4.3 1位二进制全加器的位二进制全加器的VHDL描画描画 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;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 -半加器元件调用声明半
54、加器元件调用声明 PORT (a,b: IN STD_LOGIC; co,so: OUT STD_LOGIC); END COMPONENT;VHDL描画中的根本构造与语法:描画中的根本构造与语法:STD_LOGIC_VECTOR STD_LOGIC 在运用在运用STD_LOGIC_VECTOR中,必需注明其数组宽度,即位宽,如:中,必需注明其数组宽度,即位宽,如: B : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ; SIGNAL A :STD_LOGIC_VECTOR (1 TO 4) ; B = 01100011 ; - B(7)为为 0 B(4 DOWNTO
55、1) = “0001 ; - B(4)为为 0 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) 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);西安电子科技大学1、形状机分类:、形状机分类:按输出按输出方式分方式分Mealy型型Moore型型输出仅为当前形状的函输出仅为当前形状的函数数输出是当前形状和输入输出是当前形状和输
56、入的函数的函数按构按构造分造分单单 进进 程程多多 进进 程程主进程和辅进程合一主进程和辅进程合一分时序、组合主进程,分时序、组合主进程,辅助进程辅助进程4 有限形状机设计有限形状机设计 4.1 普通有限形状机的设计普通有限形状机的设计 时序电路可以称为有限形状机时序电路可以称为有限形状机(Finite State Machine, FSM),以此命名的缘由是可以运用有,以此命名的缘由是可以运用有限数量的形状表示时序电路的功能行为。限数量的形状表示时序电路的功能行为。西安电子科技大学按形状按形状表达分表达分符号形状机符号形状机确定编码形状机确定编码形状机S0,S1,S2,000,001,010
57、, 按编码按编码方式分方式分顺序编码顺序编码一位热码一位热码二进制顺序编码等二进制顺序编码等00001,00010,00100, 其它编码其它编码格雷码,循环码,等格雷码,循环码,等4 有限形状机设计有限形状机设计西安电子科技大学2、用户自定义数据类型、用户自定义数据类型4 有限形状机设计有限形状机设计4.1 普通有限形状机的设计普通有限形状机的设计TYPE 数据类型名数据类型名 IS 数据类型定义;数据类型定义;例如:例如:TYPE m_state IS (st0,st1,st2,st3,st4,st5);SIGNAL present_state,next_state : m_state;西
58、安电子科技大学3、普通形状机的设计、普通形状机的设计a、阐明部分、阐明部分例如:例如: SIGNAL current_state,next_state : m_state; ARCHITECTURE beh OF s_machine IS TYPE m_state IS (st0,st1,st2,st3,st4,st5);4 有限形状机设计有限形状机设计4.1 普通有限形状机的设计普通有限形状机的设计b、主控时序进程、主控时序进程 该部分是在CLK控制下,进展形状转换: current_state = next_state ;c、主控组合进程、主控组合进程 该部分是确定该部分是确定curren
59、t_state,next_state的取值,的取值,为时序进程提供参数;进展形状转换条件的断定;进为时序进程提供参数;进展形状转换条件的断定;进展输出断定。展输出断定。d、辅助进程、辅助进程 该部分是配合主控时序进程或主控组合进程,完该部分是配合主控时序进程或主控组合进程,完成某种算法、输出数据锁存等。成某种算法、输出数据锁存等。西安电子科技大学RSTS0/5S2/12S3/14S1/80000elseelseelse1111else State_inputsState/outputclkresetState inputs24Comb_outputs形状机4 有限形状机设计有限形状机设计4.2
60、 双进程双进程Moore型有限形状机的设计型有限形状机的设计Library ieee; Use ieee.std_logic_1164.all;Entity s_machine is Port ( clk, reset : in std_logic; State_inputs : in std_logic_vector(0 to 1); comb_outputs : out integer range 0 to 15); End s_machine; Architecture behv of s_machine is type fsm_st is (s0,s1,s2,s3); clkresetState inputs24Comb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塑胶跑道产品供应链分析
- 二手奢侈品交易电商行业市场调研分析报告
- 药柜市场发展前景分析及供需格局研究预测报告
- 舌头清洁刷项目运营指导方案
- 皮制书皮项目营销计划书
- 农业作物收获技术行业经营分析报告
- 葡萄柚树修剪器市场发展前景分析及供需格局研究预测报告
- 彩色皱纹纸产品供应链分析
- 冷藏仓储行业市场调研分析报告
- 医用呼吸装置产品供应链分析
- 2023-2024学年天津市经开区国际学校八年级(上)期末物理试卷
- DB23T 3842-2024 一般化工企业安全生产标准化评定规范
- 期中模拟押题卷(1-3单元)(试题)-2024-2025学年苏教版数学六年级上册
- 环氧树脂项目可行性研究报告项目报告
- 2024-2025学年人教版数学三年级上册 第三单元 测量 单元测试卷(含答案)
- 2024新信息科技三年级第四单元:创作数字作品大单元整体教学设计
- 第一单元达标练习(单元练习)-2024-2025学年语文一年级上册(统编版)
- 2024年水电暖安装合同模板
- 三年级语文《那次玩得真高兴:记一次游戏的感受》说课课件
- 2023-2024学年广东省深圳市龙岗区沪教牛津版(深圳用)六年级上册期中英语试卷(无答案)
- 2024年统编版新教材语文小学一年级上册第五单元检测题及答案
评论
0/150
提交评论