书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型VHDL语言基础课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2869543
  • 上传时间:2022-06-06
  • 格式:PPT
  • 页数:47
  • 大小:388KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VHDL语言基础课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VHDL 语言 基础 课件
    资源描述:

    1、第第3章章 组合逻辑设计组合逻辑设计 硬件描述语言硬件描述语言定义:采用定义:采用形式化的方法形式化的方法对数字电路和系统进行描述的对数字电路和系统进行描述的 计算机语言。计算机语言。过程:建模、编程、编译、仿真、综合、下载。过程:建模、编程、编译、仿真、综合、下载。用一套特制的表意符号用一套特制的表意符号( (其意义可以其意义可以解释的解释的) )去表示概念、判断、推理去表示概念、判断、推理, ,获获得它们的形式结构得它们的形式结构, ,从而把对概念、从而把对概念、判断、推理的研究判断、推理的研究, ,转化为对形式符转化为对形式符号表达式系统的研究的方法。号表达式系统的研究的方法。第第3章章

    2、 组合逻辑设计组合逻辑设计 VHDL的起源及基本特点的起源及基本特点 VHDL原为美国国防部的一种标准,原为美国国防部的一种标准,1987年被年被IEEE协会接受为硬协会接受为硬件描述语言标准,即件描述语言标准,即VHDL-87,1993年又被年又被IEEE进一步修改,即进一步修改,即VHDL-93。基本特点:。基本特点:1、多种系统描述方法:比较抽象的、多种系统描述方法:比较抽象的系统行为描述系统行为描述、比较具体的、比较具体的数据数据流描述流描述、更加具体的、更加具体的逻辑结构描述逻辑结构描述。2、支持、支持层次化设计层次化设计(自顶向下、自底向上自顶向下、自底向上)方法方法3、支持各种不

    3、同类型的数字电路和系统的设计。、支持各种不同类型的数字电路和系统的设计。TTL、CMOS、CPLD、FPGA4、 VHDL具备很强的可移植性,本身的生命周期长。具备很强的可移植性,本身的生命周期长。3.6 VHDL 3.6 VHDL 硬件描述语言硬件描述语言 第第3章章 组合逻辑设计组合逻辑设计 完整的完整的VHDL源程序通常可以包含源程序通常可以包含5个部分个部分:实体实体(Entity)结构体结构体(Architecture)配置(配置(Configuration)库(库(Library)包集合(包集合(Package)VHDL的基本结构的基本结构VHDL文件文件库 , 程 序库 , 程

    4、序包包实体实体结构体结构体配置配置说明语句说明语句功能描述语功能描述语句句VHDL程序的基本结构程序的基本结构第第3章章 组合逻辑设计组合逻辑设计 例:例:2输入与非门的输入与非门的VHDL描述描述(数据流描述)数据流描述)ENTITY nand2 IS -实体描述实体描述 PORT(i1,i2: IN BIT; -输入信号名输入信号名 o1: OUT BIT); -输出信号名输出信号名END nand2;ARCHITECTURE delayed OF nand2 IS -结构体描述结构体描述BEGIN o1=i1 NAND i2 AFTER 5NS; -电路的数据流描述电路的数据流描述END

    5、 delayed;实体:实体:也称端口,用于定义模块也称端口,用于定义模块I/O接口,包括接口,包括I/O 信号的信号的名称、属性、数据类型名称、属性、数据类型。VHDL描述描述结构体:结构体:对硬件内部结构或性能的具体描述对硬件内部结构或性能的具体描述第第3章章 组合逻辑设计组合逻辑设计 实体描述实体描述格式:格式:ENTITY 实体名实体名 IS PORT(信号名:属性信号名:属性 信号类型信号类型; .; 信号名:属性信号名:属性 信号类型信号类型);END 实体名;实体名;属性:属性: IN OUT BUFFER INOUT 信号类型:信号类型: BIT(预定义的)(预定义的) BIT

    6、_VECTOR BOOLEAN INTEGER CHARACTER . 第第3章章 组合逻辑设计组合逻辑设计 结构体描述结构体描述格式:格式:ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS BEGIN END 结构体名;结构体名;例:例:2输入与非门的另一种描述(行为描述)输入与非门的另一种描述(行为描述)ARCHITECTURE another OF nand2 ISBEGIN PROCESS(i1, i2) -行为描述一定要有该语句行为描述一定要有该语句 BEGIN IF i1=1 AND i2=1 THEN o1=0 AFTER 5NS; ELSE o1 =1 AF

    7、TER 5NS; END IF; END PROCESS;END another;behavioralbehavioraldataflowdataflowstructuralstructural第第3章章 组合逻辑设计组合逻辑设计 丰富而灵活的自定义数据类型丰富而灵活的自定义数据类型1、枚举类型、枚举类型 格式:格式: TYPE 类型名类型名 IS (值列表)(值列表);举例:举例: TYPE bit_logic IS (0,1,Z,X); TYPE traffic_light IS (red, green, yellow);第第3章章 组合逻辑设计组合逻辑设计 2、数组类型、数组类型 格式:

    8、格式: TYPE 数组名数组名 IS ARRAY(范围范围)OF 基类型基类型;举例:举例: TYPE register IS ARRAY(0 TO 7) OF BIT; TYPE register_1 IS ARRAY(7 DOWNTO 0) OF BIT; TYPE rom IS ARRAY(0 TO 7) OF register; TYPE rom IS ARRAY(0 TO 7,0 TO 7) OF BIT;对数组的操作:对数组的操作:整体整体/部分赋值部分赋值,如:,如: SIGNAL arr_1, arr_2 : register_1; arr_1=“10110110”; arr_

    9、1=(1,0,1,1,0,1,1,0); arr_2=arr_1; arr_2(0 TO 3)=“1011”;第第3章章 组合逻辑设计组合逻辑设计 3、子类型、子类型 格式:格式: SUBTYPE 子类型名子类型名 IS 已定义父类型名已定义父类型名 范围范围; 范围范围可用可用 RANGE 子句,例:子句,例: SUBTYPE decimal IS INTEGER RANGE 0 TO 9; 也可以也可以直接限定数组的大小直接限定数组的大小来确定子类型的范围:来确定子类型的范围: TYPE std_logic_vector IS ARRAY(natural range)OF std_logi

    10、c SUBTYPE databus IS std_logic_vector(15 DOWNTO 0);子类型也可以由已定义的子类型也可以由已定义的枚举类型枚举类型来定义:来定义: TYPE weekday IS(Sun,Mon,Tue,Wed,Thu,Fri,Sat); SUBTYPE workday IS weekday RANGE(Mon TO Fri);第第3章章 组合逻辑设计组合逻辑设计 VHDL运算符运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符连接运算符连接运算符(加)(加)=(等于)(等于)AND(与)(与)&(连接)(连接)(减)(减)/=(不等于)(不等于

    11、)OR(逻辑或)(逻辑或)连接符将多个对连接符将多个对象或矢量连接成象或矢量连接成位数更大的矢量位数更大的矢量*(乘)(乘)(小于)(小于)NAND(与非)(与非)/(除)(除)(大于)(大于)XOR(异或)(异或)MOD(求模)(求模)=(大于等于)(大于等于)XNOR(同或)(同或)REM(求余)(求余)其中其中=也用也用于表示信号的赋于表示信号的赋值操作值操作NOT(非)(非)ABS(求绝对值)(求绝对值) 第第3章章 组合逻辑设计组合逻辑设计 了解:了解:逻辑运算符的优先级(低逻辑运算符的优先级(低高高):XOR、NOR、NAND、 OR、AND 、NOT注意:注意: 与非与非/或非运

    12、算不满足结合率:或非运算不满足结合率: (a NAND b) NAND c /= a NAND (b NAND C)应用:应用:&可以连接任意数组可以连接任意数组: TYPE register IS ARRAY (7 DOWNTO 0) OF BIT; SIGNAL reg_1,reg_2:register; reg_1=reg_1(6 DOWNTO 0) & reg_1(7);-左环移左环移 reg_1& reg_2;-形成形成16位数组位数组第第3章章 组合逻辑设计组合逻辑设计 vVHDL标识符(标识符(Identifier) 1)1) VHDLVHDL不不区分大小写;区分大小写; 2)2

    13、) 标识符一定要标识符一定要以字母开头以字母开头; 3)3) 下划线不能放在结尾;下划线不能放在结尾; 4)4) 下划线不能连用下划线不能连用。 由英文字母由英文字母“a”a”“z”z”、“A”A”“Z”Z”、数字、数字“0”0”“9”9”以及下划线以及下划线“_ _”组成。使用时应注意以组成。使用时应注意以下几点:下几点: 如如a_h_1a_h_1、show_new_stateshow_new_state、COUNTER_ACOUNTER_A有效有效。 a%h_1a%h_1、show-new-stateshow-new-state、COUNTER_COUNTER_、T_ _1T_ _1非法非

    14、法。第第3章章 组合逻辑设计组合逻辑设计 v常量定义:常量定义:格式:格式:CONSTANT 常量名:类型名:常量名:类型名:=常量值;常量值;CONSTANT array_size:INTEGER:=16; -整数类型整数类型CONSTANT gate_delay:TIME:=50ns; -时间类型时间类型v变量和信号定义:变量和信号定义: VHDL可以使用变量或信号,可以使用变量或信号,两者区别很大两者区别很大VARIABLE 变量名:类型名变量名:类型名:=初值初值; 变量用变量用:=赋值,表示赋值,表示立即立即起作用起作用SIGNAL 信号名:类型名信号名:类型名=初值初值; 信号用信

    15、号用=赋值,表示有赋值,表示有延迟延迟信号声明在子程序外部,使用信号声明在子程序外部,使用内外皆可内外皆可变量声明、使用变量声明、使用只能在子程序内部,外部不可用!只能在子程序内部,外部不可用!第第3章章 组合逻辑设计组合逻辑设计 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor_sig IS PORT (a,b,c: IN std_logic; x,y : OUT std_logic);END xor_sig;ARCHITECTURE sig_arch OF xor_sig IS SIGNAL d:std_logic;BEGIN sig

    16、:PROCESS(a,b,c) BEGIN d=a; x=c XOR d; d=b; y=c XOR d; END PROCESS;END; 举例:举例:结果:结果:x= c XOR bx= c XOR by= c XOR by= c XOR b改为变量:改为变量:x= c XOR ax= c XOR ay= c XOR by= c XOR b最后一句起作用最后一句起作用第第3章章 组合逻辑设计组合逻辑设计 VHDL库和包库和包一、库一、库:存储程序包和数据集合体的仓库,便于在其他设计存储程序包和数据集合体的仓库,便于在其他设计中,随时对其进行直接引用。中,随时对其进行直接引用。包括包括系统库

    17、系统库(设计库)、(设计库)、资源库资源库(IEEE库库和和用户库用户库)。)。系统库系统库:VHDL本身预定义的库,包括本身预定义的库,包括STD库和库和WORK库。库。 STD库库:系统的标准库,包括系统本身预定义的类型和文件:系统的标准库,包括系统本身预定义的类型和文件操作,如操作,如BIT、BIT_VECTOR等。等。WORK库库:是用户的工作库,保存当前设计。是用户的工作库,保存当前设计。STD、WORK库对用户透明,不需要说明。库对用户透明,不需要说明。第第3章章 组合逻辑设计组合逻辑设计 资源库资源库 IEEE库库是是IEEE认可的标准库,主要包括:认可的标准库,主要包括: 1.

    18、 STD_LOGIC类型以及有关函数的定义(封装在类型以及有关函数的定义(封装在STD_LOGIC_1164包中)。包中)。 2. 有符号数和无符号数的算术、逻辑、关系运算符号。有符号数和无符号数的算术、逻辑、关系运算符号。 3. 类型转换函数。类型转换函数。 用户库用户库是是VHDL软件厂商开发的库。如软件厂商开发的库。如Altera库、库、LPM库库等。等。 使用资源库时,必须显式声明。使用资源库时,必须显式声明。第第3章章 组合逻辑设计组合逻辑设计 VHDL库中可以包含很多内容,以程序包的形式组织在一起,库中可以包含很多内容,以程序包的形式组织在一起, 如,如,IEEE库中有标准逻辑包库

    19、中有标准逻辑包STD_LOGIC_1164。包是包是VHDL对预定义类型、函数、部件进行封装的一种形式。对预定义类型、函数、部件进行封装的一种形式。 结构:结构: PACKAGE 程序包名程序包名 IS 程序包程序包说明部分说明部分 END 程序包名;程序包名; PACKAGE BODY 程序包名程序包名 IS 程序程序包体包体描述描述 END 程序包名;程序包名;常量、信号、类型、函数或过程、常量、信号、类型、函数或过程、部件说明部件说明对预定义内容的具体描述对预定义内容的具体描述二、包二、包第第3章章 组合逻辑设计组合逻辑设计 包定义举例:包定义举例:1.STD库的库的standard程序

    20、包中的部分内容:程序包中的部分内容:package STANDARD istype BOOLEAN is (FALSE, TRUE);type BIT is (0, 1);type CHARACTER IS ();type INTEGER is range -2147483648 to 2147483647;type BIT_VECTOR is array (NATURAL range ) of BIT;subtype NATURAL is INTEGER range 0 to INTEGERHIGH;end STANDARD;第第3章章 组合逻辑设计组合逻辑设计 2.Ieee库的库的std_

    21、logic_1164包中的部分内容:包中的部分内容:PACKAGE std_logic_1164 ISTYPE std_ulogic IS ( U, - Uninitialized X, - Forcing Unknown 0, - Forcing 0 1, - Forcing 1 Z, - High Impedance W, - Weak Unknown L, - Weak 0 H, - Weak 1 - - Dont care );第第3章章 组合逻辑设计组合逻辑设计 TYPE std_ulogic_vector IS ARRAY ( NATURAL RANGE ) OF std_ulog

    22、ic;FUNCTION resolved ( s : std_ulogic_vector ) RETURN std_ulogic;SUBTYPE std_logic IS resolved std_ulogic;TYPE std_logic_vector IS ARRAY ( NATURAL RANGE ) OF std_logic;FUNCTION and ( l, r : std_logic_vector ) RETURN std_logic_vector;FUNCTION nand ( l, r : std_logic_vector ) RETURN std_logic_vector;F

    23、UNCTION or ( l, r : std_logic_vector ) RETURN std_logic_vector;FUNCTION nor ( l, r : std_logic_vector ) RETURN std_logic_vector;FUNCTION xor ( l, r : std_logic_vector ) RETURN std_logic_vector;FUNCTION xnor ( l, r : std_logic_vector ) RETURN std_logic_vector;FUNCTION not ( l : std_logic_vector ) RET

    24、URN std_logic_vector;END std_logic_1164;第第3章章 组合逻辑设计组合逻辑设计 STD_LOGIC类型类型(9 9值逻辑)值逻辑)TYPE std_logic IS(0,-强强0 1,-强强1 X,-强未知的强未知的 Z,-高阻态高阻态 (最弱)(最弱) U,-未初始化的(最强)未初始化的(最强) W,-弱未知的弱未知的 L,-弱弱0 H,-弱弱1 -,-无关状态无关状态)前前4 4有实际物理意有实际物理意义,义,其他是为与模其他是为与模拟环境相容保留的拟环境相容保留的第第3章章 组合逻辑设计组合逻辑设计 声明库,如声明库,如 LIBRARY IEEE;

    25、声明使用库中的声明使用库中的 哪哪 个包,如果使用全部内容则用个包,如果使用全部内容则用ALL声明,声明,否则要声明具体内容。否则要声明具体内容。 格式:格式:USE 库名库名.程序包名程序包名.ALL(或子程序名);(或子程序名); 如:如: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;注:注:STD和和WORK库不用声明库不用声明三、库和包的引用三、库和包的引用第第3章章 组合逻辑设计组合逻辑设计 函数和过程(子程序)函数和过程(子程序)vFUNCTION 函数名(参数表)函数名(参数表)RETURN 类型类型 IS 定义语句定义语句 BEGIN 函

    26、数体函数体 END 函数名;函数名;vPROCEDURE 过程名(参数表)过程名(参数表)IS 定义语句定义语句 BEGIN 过程体过程体 END 过程名;过程名;必须包含必须包含RETURN语句语句第第3章章 组合逻辑设计组合逻辑设计 函数与过程的区别:函数与过程的区别:1.函数必须包含返回值(函数必须包含返回值(return语句),过程没有返回值。语句),过程没有返回值。2.函数的参数传递方向为单向,而过程可为双向。函数的参数传递方向为单向,而过程可为双向。例如:例如:Function Pro_vote (v : std_logic_vector(6 downto 0) return st

    27、d_logic is -默认为默认为inProcedure vec_to_int (z: IN std_logic_vector; xflag: OUT boolean; q: INOUT integer) is -须指明类别须指明类别 第第3章章 组合逻辑设计组合逻辑设计 并行处理语句并行处理语句ENTITY half_adder IS PORT (a,b:IN BIT; - -输入信号输入信号 s,c:OUT BIT); - -输出信号输出信号END half_adder;ARCHITECTURE h_adder OF half_adder ISSINGAL c0,d:BIT; - -中间

    28、信号中间信号BEGIN c0=a OR b; d=a NAND b; c=NOT d; s=c0 AND d;END h_adder;一、并行赋值语句一、并行赋值语句 格式:信号名格式:信号名=表达式表达式 AFTER 延迟时间延迟时间 例:半加器例:半加器数据流描述数据流描述(S=AB(A+B),C=AB) 注:注:执行顺序与书写执行顺序与书写顺序无关,是一种信顺序无关,是一种信号激励和传送关系号激励和传送关系第第3章章 组合逻辑设计组合逻辑设计 二、条件赋值语句二、条件赋值语句 格式:格式:信号名信号名=表达式表达式1 WHEN 布尔表达式布尔表达式1 ELSE 表达式表达式2 WHEN

    29、布尔表达式布尔表达式2 ELSE 表达式表达式n WHEN 布尔表达式布尔表达式n ELSE 表达式表达式n+1;例:例:用条件赋值语句描述一个用条件赋值语句描述一个4路数据选择器路数据选择器的逻辑的逻辑ENTITY mux4_to_1 IS PORT(d0,d1,d2,d3,a,b:IN BIT; y:OUT BIT);END mux4_to_1; 第第3章章 组合逻辑设计组合逻辑设计 ARCHITECTURE sample_1 OF mux4_to_1 ISBEGIN y=d0 WHEN a=0AND b=0 ELSE d1 WHEN a=0AND b=1 ELSE d2 WHEN a=1

    30、AND b=0 ELSE d3 WHEN a=1AND b=1 ;END sample_1; 如果信号类型定义为如果信号类型定义为STD_LOGIC呢?呢?第第3章章 组合逻辑设计组合逻辑设计 三、选择信号赋值语句三、选择信号赋值语句 格式格式: WITH WITH 表达式表达式 SELECTSELECT 信号名信号名=信号值信号值1 WHEN 1 WHEN 表达式值表达式值1 1 , 信号值信号值2 WHEN 2 WHEN 表达式值表达式值2 2 , 信号值信号值n WHEN n WHEN OTHERSOTHERS ; ;例例:用选择信号赋值语句描述:用选择信号赋值语句描述4路数据选择器路数

    31、据选择器ARCHITECTURE sample_2 OF mux4_to_1BEGIN WITH a&b SELECT y=d0 WHEN “00”, d1 WHEN “01”, d2 WHEN “10”, d3 WHEN “11” , X WHEN OTHERS;END sample_2; 第第3章章 组合逻辑设计组合逻辑设计 顺序描述语句顺序描述语句格式:格式:PROCESS(信号(信号1 1,信号信号k k) 变量说明(定义);变量说明(定义);-不能定义信号不能定义信号 其它说明;其它说明; -常量、类型说明等等常量、类型说明等等BEGIN 顺序语句;顺序语句; 顺序语句;顺序语句;E

    32、ND PROCESS;一、一、PROCESS语句语句 PROCESS本身是并行描述语句,但顺序语句一般都要包含本身是并行描述语句,但顺序语句一般都要包含在在PROCESS语句中。语句中。敏感表敏感表第第3章章 组合逻辑设计组合逻辑设计 不含敏感表的进程不含敏感表的进程: wait语句。语句。Wait语句:表示进程挂起,等待条件满足再执行进程。语句:表示进程挂起,等待条件满足再执行进程。Wait语句格式:语句格式: Wait on 信号表信号表until 条件表达式条件表达式for 时间表达式时间表达式Wait on a, b; -信号信号a, b发生变化,触发进程发生变化,触发进程Wait u

    33、ntil a=1; -满足条件,触发进程满足条件,触发进程Wait for 5ns; -等待等待5ns后,触发进程执行后,触发进程执行第第3章章 组合逻辑设计组合逻辑设计 二、信号和变量赋值语句二、信号和变量赋值语句 信号名信号名=表达式;表达式; -同并行赋值语句,不立即起作用同并行赋值语句,不立即起作用 变量名变量名:=表达式;表达式;-立即起作用立即起作用三、分支语句三、分支语句1、IF 语句语句1)IF 布尔表达式布尔表达式 THEN 顺序语句;顺序语句; ELSE 顺序语句;顺序语句; END IF;2)IF 布尔表达式布尔表达式 THEN 顺序语句;顺序语句; ELSIF 布尔表达

    34、布尔表达 THEN 顺序语句;顺序语句; ELSE 顺序语句;顺序语句; END IF;第第3章章 组合逻辑设计组合逻辑设计 ENTITY inverter IS PORT(x:IN BIT; y:OUT BIT);END inverter;ARCHITECTURE behave OF inverter ISBEGIN PROCESS(x) BEGIN IF (x=0)THEN y=1; ELSE y=0; END IF; END PROCESS;END behave;例:一位反向器的顺序描述例:一位反向器的顺序描述第第3章章 组合逻辑设计组合逻辑设计 另一种无敏感表的进程结构:另一种无敏感表

    35、的进程结构:PROCESS BEGIN wait on x; IF (x=0)THEN y=1; ELSE y顺序语句顺序语句1; WHEN 值值k =顺序语句顺序语句k; WHEN OTHERS =顺序语句顺序语句k+1; END CASE;例例:4选选1数据选择器的顺序描述数据选择器的顺序描述第第3章章 组合逻辑设计组合逻辑设计 ENTITY mux4_1 IS PORT(a,b,d0,d1,d2,d3:IN BIT; y:OUT BIT);END mux4_1;ARCHITECTURE behave OF mux4_1 ISSIGNAL sel :bit_vector(1 DOWNTO

    36、0);BEGIN selyyyy=d3; END CASE;END PROCESS;END behave;第第3章章 组合逻辑设计组合逻辑设计 四、循环语句四、循环语句 1、FOR 循环循环 格式:格式: 标号标号: FOR 变量变量 IN 范围范围 LOOP 顺序语句顺序语句 顺序语句顺序语句 END LOOP 标号标号;用用NEXT语句可以结束本次语句可以结束本次循环,循环,EXIT语句可以跳出语句可以跳出循环,格式:循环,格式:NEXT 标号标号 WHEN 条件;条件;EXIT 标号标号 WHEN 条件;条件;2、WHILE 循环循环 格式:格式: 标号标号:WHILE 布尔表达式布尔表

    37、达式 LOOP 顺序语句顺序语句 顺序语句顺序语句 END LOOP 标号标号;第第3章章 组合逻辑设计组合逻辑设计 综合举例:七人表决电路的综合举例:七人表决电路的VHDL进程实现进程实现Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity vote7 is port (men: IN std_logic_vector(6 downto 0) ; Votepass,Votefail: OUT std_logic);End vote7;Architecture vote of vote7

    38、is signal pass: std_logic; begin Process (men) variable temp :std_logic_vector( downto 0);-投票计数器投票计数器第第3章章 组合逻辑设计组合逻辑设计 begin temp:=“000”; For i in 0 to 6 loop if (men(i)=1) then temp:=temp+1; end if; end loop; pass=temp(2); End Process; Votepass=1 when pass =1 else 0; Votefail=1 when pass =0 else 0

    39、;End vote;第第3章章 组合逻辑设计组合逻辑设计 也可用函数实现:也可用函数实现:Architecture vote of vote7 isFunction Pro_vote(v : std_logic_vector(6 downto 0) return std_logic is variable temp : std_logic_vector(2 downto 0););-投票计数器投票计数器begin temp:=“000”; For i in 0 to 6 loop if (v(i)=1) then temp:=temp+1; end if; end loop; return t

    40、emp(2);End Pro_vote;Begin Votepass=1 when Pro_vote(men) =1 else 0; Votefail当前实体端口名当前实体端口名) 注意:注意:例化元件端口名与例化元件端口名与当前实体端口名要一一对应。当前实体端口名要一一对应。 当省略当省略例化元件端口名时例化元件端口名时,当前实体与例化元件端口,当前实体与例化元件端口 定义中信号引脚的排列方式要完全一致。定义中信号引脚的排列方式要完全一致。 每使用一次每使用一次port map,则向电路中添加了一个元件。,则向电路中添加了一个元件。 第第3章章 组合逻辑设计组合逻辑设计 例例:使用前面定义的

    41、半加器:使用前面定义的半加器half_adder描述全加器描述全加器半半加加器器半半加加器器1xycincarrysumh1_sH1_cH2_c原理图原理图第第3章章 组合逻辑设计组合逻辑设计 ENTITY full_adder IS PORT (x,y,cin:IN BIT; -输入信号输入信号 sum,carry:OUT BIT); -输出信号输出信号END full_adder;ARCHITECTURE f_adder OF full_adder IS COMPONENT half_adder -半加器部件声明半加器部件声明 PORT(a,b:IN BIT; s,c:OUT BIT);

    42、END COMPONENT;SINGAL h1_s,h1_c,h2_c:BIT; -内部信号,与半加器接口信号对应内部信号,与半加器接口信号对应BEGIN h1:half_adder PORT MAP(a=x, b=y, s=h1_s, c=h1_c); -信号映射信号映射 h2:half_adder PORT MAP(a=h1_s, b=cin, s=sum, c=h2_c); carry=h2_c OR h1_c;END f_adder; 第第3章章 组合逻辑设计组合逻辑设计 三、重复部件的描述三、重复部件的描述 前面的方法是每使用一次部件就使用一次例化语句。前面的方法是每使用一次部件就使

    43、用一次例化语句。VHDL还有一种利用还有一种利用循环循环的简单方法。即的简单方法。即GENERATE语语句一次性批量产生多个同样的部件。句一次性批量产生多个同样的部件。格式:格式: 标号:标号:FOR 循环变量循环变量 IN 范围范围 GENERATE 元件例化语句元件例化语句 END GENERATE; 例:例:8位反相器的结构描述。位反相器的结构描述。第第3章章 组合逻辑设计组合逻辑设计 ENTITY inv_8_bit IS PORT(x:IN STD_LOGIC_VECTOR(1 TO 8); y:OUT STD_LOGIC_VECTOR(1 TO 8);END inv_8_bit;ARCHITECTURE struct OF inv_8_bit IS COMPONENT inv PORT(i:IN STD_LOGIC; o:OUT STD_LOGIC); END COMPONENT;BEGIN u:FOR n IN 1TO 8 GENERATE inv PORT MAP(x(n),y(n); END GENERATE;END struct;

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VHDL语言基础课件.ppt
    链接地址:https://www.163wenku.com/p-2869543.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库