ImageVerifierCode 换一换
格式:PPT , 页数:46 ,大小:504.50KB ,
资源ID:797320      下载积分:11 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/797320.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(VHDL语言描述语句PPT课件.ppt)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

VHDL语言描述语句PPT课件.ppt

1、VHDLVHDL语言描述语句1.VHDLVHDL语言描述语句一、VHDL语句分类;二、基本的VHDL顺序语句三、基本的VHDL并行语句四、常用组合单元电路VHDL设计五、常用时序单元电路VHDL设计2.一、VHDLVHDL语句分类l按照功能分类:n赋值语句;n数据流控制语句(转向控制语句):1.Case when (顺序);2.If else (顺序);3.with select when (并);4.When else (并);n模块化设计语句:process;component;generate;block;forloop;子程序调用语句n仿真语句:wait ;n按照语句的执行方式特点分为

2、n并行语句:u按动作特点:语句执行顺序与书写顺序无关;u使用范围 :进程语句外部的语句都是并行的;u实际应用 :对应于各自独立运行的逻辑电路;n顺序语句:u按动作特点:照语句书写顺序执行;u使用范围 :进程、函数和过程内部出现;u实际应用 :时序电路、数据流控制电路;3.VHDLVHDL顺序语句黑龙江大学电子工程学院黑龙江大学电子工程学院/EDA/EDA/EDA/EDA教研室教研室4.基本的VHDLVHDL顺序语句lVHDL中的顺序语句用于描述进程或子程序的内部功能,且只能出现在PROCESS、FUNCTION、PROCEDURE等语句中。l可以用来设计 时序电路、组合电路。l主要作用:时序

3、流控制、程序控制、条件和迭代等,行为描述代码。l常用的顺序语句见下表。顺序语句语句作用是否可综合顺序赋值语句信号或变量赋值可综合IF语句条件控制可综合CASE语句条件控制可综合LOOP语句循环控制循环次数有限时可综合WAIT语句描述延迟WAIT ON和WAIT UNTIL可综合NULL语句空操作可综合ASSERT语句仿真时报告错误不可综合5.1 1、processprocess(进程);2 2、信号和变量;3 3、IFIF语句;4 4、C ASEC ASE语句;5 5、CASECASE语句和IFIF语句的比较;6 6、LOOPLOOP语句;7 7、WAITWAIT语句;8 8、使用顺序代码设计

4、组合逻辑电路;基本的VHDL顺序语句6.5.3.1 进程(PROCESS)语句语法说明:1、Process为过程语句,定义如下:进程标号:Process 触发信号1,触发信号2,定义区 Begin顺序语句End Process 进程标号;注:方括号内容可以省略;触发信号将决定该过程是否执行;一个结构体当中可以有多个过程;多个进程语句之间是并行执行,进程内部属于顺序执行语句。7.2.2.进程语句语法说明a)a)进程标号:用于标识进程,可选。多个进程时,提高程序可读性;a)a)敏感信号列表:敏感信号发生变化(上升沿或者下降沿),进程被 激活,从而执行内部顺序语句。注意:可以有多个敏感信号,用逗号隔

5、开,任何一个变化都激活进 程,否则进程挂起。c)c)进程声明区:用于定义进程内部的局部变量,信号不可在此声明。进程之间数据 交流通过全局信号。d)顺序语句:进程内部语句顺序执行。e)用处:适合描述时序电路。也可用于组合逻辑电路的设计。8.例1 1:进程语句例程带异步复位的D D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY cydff ISPORT(d,clk,rst :IN STD_LOGIC;q :OUT STD_LOGIC);END ENTITY cydff;ARCHITECTURE behave OF cydff ISBEGINcy

6、dff_inst:PROCESS(clkclk,rstrst)BEGIN IF (rst=1)then q=0;elsIF(clk=1 AND clkLAST_VALUE=0 AND clkEVENT)THEN q=d;END IF;END PROCESS cydff_inst;END ARCHITECTURE behave;9.l语法说明:n时钟沿的VHDL描述方法总结(3种):clkevent and clk=1;clkevent and clk=0;clk=1 AND clkEVENT AND clkLAST_VALUE=0 clk=0 AND clkEVENT AND clkLAST_

7、VALUE=1 rising_edge(clk);falling_edge(clk);Clkevent?上升沿描述1:下降沿描述1:上升沿描述2:下降沿描述2:上升沿描述3:下降沿描述3:10.进程语句总结:l进程仅在敏感信号发生变化时才执行。l特点:进程内部,顺序语句;进程语句之间,并行。l不同进程内不可以对同一信号赋值,即不可多重赋值。l进程内信号和变量赋值效果不同。l一个进程内不能同时扑捉同一个时钟信号的上升沿或者下降沿。例如下面语句是错误的:PROCESS(clk)BEGINIF rising_edge(clk)then elsif falling_edge(clk)then end

8、if;end peocess;11.entity mul isport(a,b,c,selx,sely:IN bit;data_out:OUT BIT);end mul;ARCHITECTURE ex OF mul IS SIGNAL temp:BIT;BEGIN p_a:PROCESS(a a,b b,selxselx)BEGIN IF(SELX=0)THEN temp=a;ELSE temp=b;END IF;END PROCESS p_a;p_b:PROCESS(temptemp,c c,selysely)BEGIN IF(SELy=0)THEN data_out=temp;ELSE t

9、emp=c;END IF;END PROCESS p_b;end ex;12.1、信号和变量异同:(1)、声明范围:。信号:ENTITY,ARCHITECTURE,PACKAGE(ALL)变量:顺序语句中(PROCESS、子程序)(2)、作用:动态数值传递,存储运算中间结 果(变量)。(3)、使用范围:全局(sig),局部(var)。(4)、变量结果只能由信号传递到外部。(5)、动作特点:变量:立即更新。信号:process执行完毕才生效。(允许多驱动源,仅最后 一个有效)(6)、操作符:信号:=变量::=2 2、信号和变量13.例2:ARCHITECTURE behavioral OF ex

10、ample_duibi ISSIGNAL d0,d1,d2,d3 :STD_LOGIC;-定义信号 SIGNAL q0,q1 :STD_LOGIC;BEGINli_1:PROCESS(d0,d1,d2,d3)BEGIN d2 =d0;-信号量代入 q0 =d2 OR d3;d2 =d1;-信号量代入 q1 =d2 OR d3;END PROCESS cduibi_1;li_2:PROCESS(d0,d1,d3)VARIABLE m2:STD_LOGIC;BEGIN m2 :=d0;-变量赋值 q0 =m2 OR d3;m2 :=d1;-变量赋值 q1 =m2 OR d3;END PROCESS

11、 cduibi_2;END behavioral;进程li_1的运行结果:q0=d1 OR d3 并且 q1=d1 OR d3进程li_2的运行结果:q0=d0 OR d3 而 q1=d1 OR d314.语法说明:进程当中的赋值:变量:立即更新。信号:process执行完毕赋值才生效。同时,进程中的信号赋值语句允许有多个不同的赋值驱动源,但仅最后 一个驱动源有效15.3 3、IFIF语句IF语句 IF语句是根据所指定的条件来确定执行哪些语句,适用于比较器、译码器等需要条件控制的逻辑电路设计,通常有以下三种类型。(1)用作门阀控制时的IF语句书写格式为 IF(条件)THEN 顺序处理语句;EN

12、D IF;例程:PROCESS(clk)BEGIN IF clkevent and clk=1 THEN q=d;qb=NOT d;END IF;END PROCESS;16.(2)用作选择控制时的IF语句书写格式为 IF(条件)THEN 顺序处理语句1;ELSE 顺序处理语句2;END IF;PROCESS(a,b,en)BEGIN IF(en=1)THEN c=a;ELSE c=b;END IF;END PROCESS;17.(3)用作多选择控制时的IF语句书写格式为 IF 条件1 THEN 顺序处理语句1;ELSIF 条件2 THEN 顺序处理语句2;ELSIF 条件N-1 THEN 顺

13、序处理语句N-1;ELSE 顺序处理语句N;END IF;18.LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT(input:IN STD_LOGIC_VECTOR(3 DOWNTO 0);en:IN STD_LOGIC_VECTOR(1 DOWNTO 0);y:OUT STD_LOGIC);END mux4;ARCHITECTURE aa OF mux4 ISBEGIN PROCESS(input,en)BEGIN IF(en=00)THEN y=input(0);ELSIF(en=01)THEN y=input(1);

14、ELSIF(en=10)THEN y=input(2);ELSE y=input(3);END IF;END PROCESS;END aa;例2(例5-9)四选一数据选择器19.IFIF语句应用例2 2l8-3优先编码器(74HC148)20.课堂练习11l模10计数器;lN位移位寄存器(右移);作业1:(1)、N位移位寄存器(左移);(2)、通用模n计数器;CLKDQCDQCDQCq3q2q1DQCq0d21.IF IF 语句使用总结If语句必须要有else,尤其组合逻辑嵌套计数不能太多,否则关键路径会很长,会严重影响性能;分支较多的if应想办法采用case代替;If条件判断不能太长,若逻辑

15、比较复杂,尽量用新产生信号代替;注意if的优先级;尽量不使用、=比较符。22.4 4、CASECASE语句CASE语句的一般格式为:CASECASE 表达式 ISIS WHENWHEN 值1=1=多条赋值语句;WHENWHEN 值2=2=语句2 2;WHENWHEN OTHERSOTHERS=语句3 3(nullnull、unaffectedunaffected);END CASE END CASE;当需要对多个条件进行判断时:(1)、WHEN 值=语句;-单个值(2)、WHEN 值|值|值|值=语句;-多个值的“或”(3)、WHEN 值 TO 值=语句;-取值范围,枚举23.例5-10 用C

16、ASE语句描述4选1电路。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT(s1,s2,a,b,c,d:IN STD_LOGIC;z:OUT STD_LOGIC);END mux4;ARCHITECTURE a OF mux4 IS SIGNAL s:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN SZZZZZZ 相当于 THEN(3)、分支入口条件必须唯一,且取值在表达式范围内。(4)、分支入口选择(并行),与书写顺序无关。(5)、OTHERS(必须列出条件表达式的所有可能),NULL 。Case语

17、句的条件没有优先级,综合后是一个并行多路选择器。注意:如果if语句太长,应该尽可能用case语句代替。适用于编写组合逻辑电路:译码器,编码器等。语法说明:25.5、语句与语句比较:1、有优先级的电路,用IF语句。2、CASE语句可提高程序可读性,经常用来设计状态机电路。26.6、LOOP及相关语句l用途:当一段代码需要多次重复执行时。lLOOP语句的语法结构有以下两种。l顺序语句,使用范围:进程、函数、过程。(1)FOR/LOOP:循环固定次数 label:FOR 循环变量 IN 范围 LOOP 顺序处理语句;END LOOP 循环标号;(2)WHILE/LOOP:循环执行直到某个条件不再满足

18、 label:WHILE (条件)LOOP 顺序处理语句;END LOOP 循环标号;27.6 6、LOOPLOOP及相关语句(3)、NEXT:跳出本次循环 label:NEXT loop_label when 条件表达式;(4)、EXIT:结束整个循环操作 label:EXIT loop_label when 条件表达式;例:FOR I IN 0 TO LOOP temp :=temp XOR cdata(i);END LOOP;FOR I IN 0 TO LOOP不可综合,静态参数。循环次数必须为确定值或者用属性语句来定义 28.例:VARIABLE sum_temp:INTEGER:=0

19、 ;VARIABLE i:INTEGER:=0 ;BEGINsum_examplesum_example:WHILE(i count:=count+1;WHEN others=EXIT;-跳出当前循环,使LOOP循环结束。END CASE;END LOOP;32.1、利用LOOP/EXIT语句设计一个连0检测器对输入矢量中连续出现的零的个数进行统计(从矢量左端开始统计)课堂练习2233.课堂练习22l2、利用loop语句描述一个n位的逐级进位加法器:FAS3A3 B3C4FAS2A2 B2C3FAS1A1 B1C2FAS0A0 B0C1034.7.WAIT7.WAIT语句1、作用:替代PROC

20、ESS敏感信号列表。2、WAIT语句语法格式:WAIT -无限等待(仿真)WAIT FOR time -时间到(仿真,不可综合)WAIT UNTIL signal_condition -条件满足(可综合)WAIT ON signal1,signal2,;-敏感信号发生变化(可综合)35.7.17.1、WAIT WAIT 语句说明 作用:仿真复位信号的产生:reset_proc:process reset_proc:process begin begin reset=1;reset=1;wait for reset_period;wait for reset_period;reset=0;res

21、et=0;wait;wait;end process;end process;36.7.27.2、WAIT FOR WAIT FOR 语句作用:常用于描述仿真激励信号,产生时钟信号;例:constant clk_period:time:=10ns clk_process:process begin clk=0;wait for clk_period/2;clk=1;wait for clk_period/2;END PROCESS ;或者:Clk_process:process(clk)begin clk=NOT clk AFTER period/2;end process;37.7.3 WA

22、IT UNTIL7.3 WAIT UNTIL使进程语句进入等待状态,直到UNTIL之后的条件满足后才激活。例:带同步复位端的D出触发器 PROCESS BEGIN WAIT UNTIL(clkevent and clk=1);if(rst=1)then output0);elsif clkevent and clk=1 then output=input;end if;end process;38.7.4 WAIT ON WAIT ON 语句使进程进入等待状态,直到ON之后信号状态发生变化才被激活,相当于进程的敏感信号列表。WAIT ON clk,reset;-相当于在进程敏感信号列表中写cl

23、k,reset。【注意】:对于进程语句,WAIT ON 和敏感信号列表只能二选一,不可同时存在。.-敏感信号列表形式PROCESS(clk,reset)Begin 顺序语句End process;-WAIT ON语句形式PROCESSBegin WAIT ON clk,reset 顺序语句End process;39.WAIT ON WAIT ON 语句例:带异步复位的8位寄存器;PROCESS BEGIN WAIT ON clk,rst;IF rst=1 THEN output0);ELSIF clkevent and clk=1 THEN output q NULL ;END CASE;E

24、ND dataflow;42.8 8、使用顺序代码设计组合逻辑电路l使用顺序代码设计组合逻辑电路原则:l原则1:确保在PROCESS中用到的所有输入信号都出现在敏感信号列表中。l原则2:确保考虑了输入/输出信号的所有可能组合,即真值表必须在代码中完整的反映出来(否则可能产生出多余的锁存器)。l例:数据选择器selxy00a001b110c11dabcdXySel(1:0)43.锁存和寄存的差别l区别:n锁存是电平起作用n寄存是时钟有效沿起作用l!在设计中,应该尽量避免使用锁存!因为锁存要占去大量的触发器资源,而且会对电路带来某种不稳定的隐患。l在组合逻辑的组合进程中,条件语句描述时应该指定所有条件下所有输出的状态,以避免锁存。比如if/case语句的所有分支必须定义全部的输出才可能避免出现锁存。44.作业:(1)、N位移位寄存器(左移);(2)、通用模n计数器;(3)、用wait until 语句设计模10计数器。45.46.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服