欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《VHDL并行语句》PPT课件.ppt

    • 资源ID:70273864       资源大小:308.50KB        全文页数:36页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《VHDL并行语句》PPT课件.ppt

    六、六、VHDLVHDL语言的并行语句语言的并行语句1、并行信号赋值语句、并行信号赋值语句4、进程语句、进程语句3、块语句、块语句2、条件信号赋值语句、条件信号赋值语句5、元件例化语句、元件例化语句6、生成语句、生成语句7、并行过程调用语句、并行过程调用语句结构体结构体结构体中的并行语句模块结构体中的并行语句模块1、并行信号赋值语句、并行信号赋值语句赋值目标赋值目标 =表达式表达式例例 ARCHITECTURE curt OF bc1 ISSIGNAL s1,e,f,g,h:STD_LOGIC;BEGIN output1=a AND b;output2=c+d;g=e OR f;h=e XOR f;s1=g;END ARCHITECTURE curt;2、条件信号赋值语句、条件信号赋值语句赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE .表达式表达式;例例 ENTITY mux IS PORT(a,b,c:IN BIT;p1,p2:IN BIT;z :OUT BIT);END;ARCHITECTURE behv OF mux IS BEGIN z =a WHEN p1=1 ELSE b WHEN p2=1 ELSE c ;END;选择信号赋值语句选择信号赋值语句WITH 选择表达式选择表达式 SELECT 赋值目标信号赋值目标信号=表达式表达式 WHEN 选择值,选择值,表达式表达式 WHEN 选择值,选择值,.,表达式表达式 WHEN 选择值;选择值;例例.WITH selt SELECTmuxout=a WHEN 0|1 ,-0或或1 b WHEN 2 TO 5,-2或或3,或,或4或或5 c WHEN 6 ,d WHEN 7 ,Z WHEN OTHERS;.3、块语句、块语句块标号块标号 :BLOCK(块保护表达式)块保护表达式)接口说明;接口说明;类属说明;类属说明;BEGIN 并行语句;并行语句;END BLOCK 块标号块标号;与大部分的与大部分的VHDL语句不同,语句不同,BLOCK语句的应语句的应用,包括其中的类属说明和端口定义,都不会影响用,包括其中的类属说明和端口定义,都不会影响对原结构体的逻辑功能的仿真结果。对原结构体的逻辑功能的仿真结果。例例.b1:BLOCK SIGNAL s1:BIT;BEGIN S1=a AND b;b2:BLOCK SIGNAL s2:BIT;BEGIN s2=c AND d;b3:BLOCK BEGIN Z=s2;END BLOCK b3;END BLOCK b2;y=s1;END BLOCK b1;.4、进程语句、进程语句 进程标号进程标号:PROCESS (敏感信号参数表敏感信号参数表 )IS 进程说明部分进程说明部分 BEGIN 顺序描述语句顺序描述语句;END PROCESS 进程标号进程标号;PROCESS语句结构的一般表达格式如下语句结构的一般表达格式如下 在一个结构体中多个在一个结构体中多个PROCESS语句可以同时并发运语句可以同时并发运行,而进程内部语句之间是顺序关系。行,而进程内部语句之间是顺序关系。PROCESS语句在语句在VHDL程序中,是描述硬件并行工作程序中,是描述硬件并行工作行为的最常用、最基本的语句。行为的最常用、最基本的语句。PROCESS 组成组成PROCESS语句结构语句结构进程说明进程说明顺序描述语句顺序描述语句敏感信号参数表敏感信号参数表信号赋值语句变量赋值语句进程启动语句子程序调用语句顺序描述语句进程跳出语句(1)进程说明部分主要定义一些局部量,可包括数据进程说明部分主要定义一些局部量,可包括数据类型、常数、属性、子程序等。但需注意,在进程说类型、常数、属性、子程序等。但需注意,在进程说明部分中不允许定义信号和共享变量。明部分中不允许定义信号和共享变量。(2)顺序描述语句部分可分为赋值语句、进程启动语顺序描述语句部分可分为赋值语句、进程启动语句、子程序调用语句、顺序描述语句和进程跳出语句句、子程序调用语句、顺序描述语句和进程跳出语句等。等。(3)为启动进程,在进程中必须包含有一个显式的为启动进程,在进程中必须包含有一个显式的敏敏感信号量表感信号量表或者包含一个或者包含一个WAITWAIT语句语句;敏感信号表应当;敏感信号表应当紧跟在紧跟在PROCESSPROCESS之后,含有敏感信号表的进程语句中之后,含有敏感信号表的进程语句中不允许再显式出现不允许再显式出现WAITWAIT语句。语句。说明说明1.1.PROCESSPROCESS为一无限循环语句为一无限循环语句2.2.PROCESSPROCESS语句具有顺序语句具有顺序/并行运行双重性并行运行双重性3.3.进程必须由敏感信号的变化来启动进程必须由敏感信号的变化来启动4.4.信号是多个进程间的通信线信号是多个进程间的通信线PROCESS语句特点语句特点5.5.一个进程中只允许描述对应于一个时钟信号的同步时序一个进程中只允许描述对应于一个时钟信号的同步时序逻辑逻辑 例例:ENTITY mul ISPORT(a,b,c,selx,sely :IN BIT;data_out :OUT BIT );END mul;ARCHITECTURE ex OF mul IS SIGNAL temp:BIT;BEGINp_a:PROCESS(a,b,selx)BEGIN IF(selx=0)THEN temp=a;ELSE temp=b;END IF;END PROCESS p_a;p_b:PROCESS(temp,c,sely)BEGIN IF(sely=0)THEN data_out=temp;ELSE data_out=c;END IF;END PROCESS p_b;END ex;上例的综合结果上例的综合结果例例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT(CLR:IN STD_LOGIC;IN1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);OUT1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT10;ARCHITECTURE ART OF CNT10 IS BEGIN PROCESS(IN1,CLR)IS BEGIN IF(CLR=1 OR IN1=1001)THEN OUT1=0000;-有清零信号,或计数已达有清零信号,或计数已达9,OUT1输出输出0 ELSE -否则作加否则作加1操作操作 OUT1 连接端口名,连接端口名,.);元件例化就是将预先设计好的设计实体定义为一个元元件例化就是将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。级的设计层次。COMPONENT 元件名元件名 IS GENERIC(类属表);类属表);-元件定义语句元件定义语句 PORT (端口名表);端口名表);END COMPONENT 文件名;文件名;元件定义元件定义(声明声明)语句语句元件例化语句元件例化语句例例:利用元件例化语句设计如下所示电路利用元件例化语句设计如下所示电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ND2 ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END ENTITY ND2;ARCHITECTURE ARTND2 OF ND2 ISBEGIN CC1,C=S2,B=D1);-名字关联方式名字关联方式 U3:ND2 PORT MAP(S1,S2,C=Z1);-混合关联方式混合关联方式END ARCHITECTURE ARTORD41;例例:6、生成语句、生成语句标号:标号:FOR 循环变量循环变量 IN 取值范围取值范围 GENERATE 说明;说明;BEGIN 并行语句;并行语句;END GENERATE 标号标号;表达式表达式 TO 表达式表达式;-递增方式,如递增方式,如1 TO 5表达式表达式 DOWNTO 表达式表达式;-递减方式,如递减方式,如5 DOWNTO 1标号:标号:IF 条件条件 GENERATE 说明;说明;BEGIN 并行语句;并行语句;END GENERATE 标号标号;取值范围取值范围 生成语句有一种复制作用,在设计中,只要根据某生成语句有一种复制作用,在设计中,只要根据某些条件,设定好某一元件或设计单位,就可以利用生成些条件,设定好某一元件或设计单位,就可以利用生成语句复制一组完全相同的并行元件或设计单元电路结构。语句复制一组完全相同的并行元件或设计单元电路结构。:生成语句的两种形式生成语句的两种形式例例:利用生成语句产生的八个相同的电路模块利用生成语句产生的八个相同的电路模块 主要的主要的VHDL程序如下:程序如下:COMPONENT COMP IS PORT(X:IN STD_LOGIC;Y:OUT STD_LOGIC);END COMPONENT COMP;SIGNAL A,B:STD_LOGIC_VECTOR(0 TO 7);GEN:FOR I IN ARANGE GENERATE U1:COMP PORT MAP(X=A(I),Y=B(I);END GENERATE GEN;7、并行过程调用语句、并行过程调用语句PROCEDURE 过程名(参数过程名(参数1;参数;参数2;);)IS 声明语句;声明语句;BEGIN 顺序处理语句;顺序处理语句;END 过程名;过程名;并行过程调用语句可以作为一个并行语句直接出现并行过程调用语句可以作为一个并行语句直接出现在结构体或块语句中。并行过程调用语句的功能等效于在结构体或块语句中。并行过程调用语句的功能等效于包含了同一个过程调用语句的进程。并行过程调用语句包含了同一个过程调用语句的进程。并行过程调用语句的语句调用格式与前面讲的顺序过程调用语句是相同的。的语句调用格式与前面讲的顺序过程调用语句是相同的。过程调用的实质内容要先装入程序包中(过程调用的实质内容要先装入程序包中(PackagePackage):过程名(关联参数表)过程名(关联参数表);并行过程调用:并行过程调用:位置关联方式位置关联方式名字关联方式名字关联方式 =参数关联方式参数关联方式例:例:设有一过程设有一过程PROCEDURE vect(a,b:IN BIT;x,y:INOUT BIT);则调用时:则调用时:位置关联方式:位置关联方式:vect(in1,in2,out1,out2);名字关联方式:名字关联方式:vect(a=in1,b=in2,x=out1,y=out2);使用说明使用说明1、过程的参数表中可以使用过程的参数表中可以使用IN、OUT、INOUT三种;三种;(不能理解为端口)(不能理解为端口)2、过程可以返回多个变量(通过、过程可以返回多个变量(通过OUT、INOUT 定义的定义的参数返回);参数返回);3、参数对象可以为常量(、参数对象可以为常量(IN方式)、信号、变量;方式)、信号、变量;4、在进程外的过程调用为并行过程调用;在进程内的为、在进程外的过程调用为并行过程调用;在进程内的为顺序过程调用;顺序过程调用;函数调用:函数调用:FUNCTION 函数名(参数函数名(参数1;参数;参数2)RETURN 数据类型名数据类型名 IS 定义变量语句;定义变量语句;BEGIN 顺序处理语句;顺序处理语句;RETURN 返回变量名返回变量名;END 函数名;函数名;函数调用的实质内容要先装入程序包中(函数调用的实质内容要先装入程序包中(PackagePackage):函数名(关联参数表)函数名(关联参数表);使用说明使用说明1、函数的参数表中只能为函数的参数表中只能为IN的信号与常量;的信号与常量;2、函数返回值只有一个(通过、函数返回值只有一个(通过RETURN实现,由函数名实现,由函数名传给调用者);传给调用者);3、也可以像过程一样使用位置关联方式和名字关联方式;、也可以像过程一样使用位置关联方式和名字关联方式;1 1、过程可以有多个返回值,函数只有一个过程可以有多个返回值,函数只有一个;2 2、参数传递方式不同、参数传递方式不同:过程(过程(IN OUT INOUTIN OUT INOUT)函数(函数(ININ)过程(过程(Procedure)函数(函数(FunctionFunction)两者的主要区别:两者的主要区别:1 库的种类库的种类A.IEEEA.IEEE库库B.STDB.STD库库C.WORKC.WORK库库D.VITALD.VITAL库库七、七、VHDLVHDL库库2 库的用法库的用法 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.STD_ULOGIC;USE IEEE.STD_LOGIC_1164.RISING_EDGE;USE语句的使用有两种常用格式:USE 库名库名.程序包名程序包名.项目名项目名;USE 库名库名.程序包名程序包名.ALL;库库的的作作用用范范围围从从一一个个实实体体说说明明开开始始到到它它所所属属的的结结构构体体、配配置置为为止止,当当有有两两个个实实体体时时,第第二二个个实体前要另加库和包的说明。实体前要另加库和包的说明。程序包程序包程序包程序包常数说明常数说明VHDL数据类型说明数据类型说明元件定义元件定义子程序子程序定义程序包的一般语句结构如下:PACKAGE PACKAGE 程序包名程序包名 IS -IS -程序包首程序包首 程序包首说明部分;程序包首说明部分;END END 程序包名程序包名;PACKAGE BODY PACKAGE BODY 程序包名程序包名 IS -IS -程序包体程序包体 程序包体说明部分以及包体内程序包体说明部分以及包体内顺序顺序语句;语句;END END 程序包名程序包名;3 VHDL程序包程序包例例:程序包首程序包首PACKAGE logic IS TYPE three_level_logic IS(0,1,z);-数据类型项目数据类型项目 CONSTANT unknown_value:three_level_logic:=0;-常数项目常数项目 FUNCTION invert(input:three_level_logic)RETURN three_level_logic;-函数项目函数项目 END logic;PACKAGE BODY logic IS FUNCTION invert(input:three_level_logic);-函数项目描述函数项目描述 BEGIN CASE input IS WHEN 0=RETURN 1;WHEN 1=RETURN 0;WHEN Z=RETURN Z;END CASE;END invert;END logic;程序包程序包体体 USE logic.three_level_logic,logic.invert;-使用数据类型和使用数据类型和 函数两个项目函数两个项目ENTITY inverter IS PORT(x:IN three_level_logic;y:OUT three_level_logic);END inverter;ARCHITECTURE inverter_body OF inverter ISBEGIN kk:PROCESS BEGIN Y=invert(x)AFTER 10ns;WAIT ON x;END PROCESS;END inverter_body;该包使用例该包使用例:PACKAGE seven IS SUBTYPE segments is BIT_VECTOR(0 TO 6);TYPE bcd IS RANGE 0 TO 9;END seven;USE WORK.seven.ALL;-WORK库默认是打开的,库默认是打开的,ENTITY decoder IS PORT(input:bcd;drive:out segments);END decoder;ARCHITECTURE simple OF decoder IS BEGIN WITH input SELECT drive=B1111110 WHEN 0,B0110000 WHEN 1,B1101101 WHEN 2,B1111001 WHEN 3,B0110011 WHEN 4,B1011011 WHEN 5,B1011111 WHEN 6,B1110000 WHEN 7,B1111111 WHEN 8,B1111011 WHEN 9,B0000000 WHEN OTHERS;END simple;例例:常用的预定义的程序包常用的预定义的程序包STD_LOGIC_1164程序包程序包STD_LOGIC_ARITH程序包程序包STD_LOGIC_UNSIGNED和和STD_LOGIC_SIGNED程序包程序包STANDARD和和TEXTIO程序包程序包std_logic_1164.all;std_logic_1164.all;定义标准逻辑类型数据定义标准逻辑类型数据std_logic_signed.all;std_logic_signed.all;有符号的算术运算有符号的算术运算std_logic_unsigned.all;std_logic_unsigned.all;无符号的算术运算无符号的算术运算std_logic_arith.all;std_logic_arith.all;定义了有符号与无符号类型,及基于这些类型上的定义了有符号与无符号类型,及基于这些类型上的算术运算算术运算

    注意事项

    本文(《VHDL并行语句》PPT课件.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开