VHDL语言描述语句.ppt

VHDL语言描述语句.ppt

ID:48662832

大小:981.01 KB

页数:46页

时间:2020-01-18

VHDL语言描述语句.ppt_第1页
VHDL语言描述语句.ppt_第2页
VHDL语言描述语句.ppt_第3页
VHDL语言描述语句.ppt_第4页
VHDL语言描述语句.ppt_第5页
资源描述:

《VHDL语言描述语句.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VHDL语言描述语句VHDL语言描述语句一、VHDL语句分类;二、基本的VHDL顺序语句三、基本的VHDL并行语句四、常用组合单元电路VHDL设计五、常用时序单元电路VHDL设计一、VHDL语句分类按照功能分类:赋值语句;数据流控制语句(转向控制语句):Case…when…(顺序);If…else…(顺序);with…selectwhen(并);When…else(并);模块化设计语句:process;component;generate;block;for…loop;子程序调用语句仿真语句:wait;

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

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

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

5、或者下降沿),进程被激活,从而执行内部顺序语句。注意:可以有多个敏感信号,用逗号隔开,任何一个变化都激活进程,否则进程挂起。进程声明区:用于定义进程内部的局部变量,信号不可在此声明。进程之间数据交流通过全局信号。顺序语句:进程内部语句顺序执行。用处:适合描述时序电路。也可用于组合逻辑电路的设计。例1:进程语句例程——带异步复位的D触发器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcydffISPORT(d,clk,rst:INSTD_LOGIC;q:OUTS

6、TD_LOGIC);ENDENTITYcydff;ARCHITECTUREbehaveOFcydffISBEGINcydff_inst:PROCESS(clk,rst)BEGINIF(rst=‘1’)thenq<=‘0’;elsIF(clk='1'ANDclk'LAST_VALUE='0'ANDclk'EVENT)THENq<=d;ENDIF;ENDPROCESScydff_inst;ENDARCHITECTUREbehave;语法说明:时钟沿的VHDL描述方法总结(3种):clk’eventandcl

7、k=‘1’;clk’eventandclk=‘0’;clk='1'ANDclk'EVENTANDclk'LAST_VALUE='0‘clk=‘0'ANDclk'EVENTANDclk'LAST_VALUE=‘1‘rising_edge(clk);falling_edge(clk);Clk’event??上升沿描述1:下降沿描述1:上升沿描述2:下降沿描述2:上升沿描述3:下降沿描述3:进程语句总结:进程仅在敏感信号发生变化时才执行。特点:进程内部,顺序语句;进程语句之间,并行。不同进程内不可以对同一信号

8、赋值,即不可多重赋值。进程内信号和变量赋值效果不同。一个进程内不能同时扑捉同一个时钟信号的上升沿或者下降沿。例如下面语句是错误的:PROCESS(clk)BEGINIFrising_edge(clk)then…elsiffalling_edge(clk)then…endif;endpeocess;entitymulisport(a,b,c,selx,sely:INbit;data_out:OUTBIT);endmul;ARCHITECTUR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。