VHDL语言描述语句.ppt
《VHDL语言描述语句.ppt》由会员分享,可在线阅读,更多相关《VHDL语言描述语句.ppt(46页珍藏版)》请在三一办公上搜索。
1、VHDL语言描述语句,VHDL语言描述语句,一、VHDL语句分类;二、基本的VHDL顺序语句三、基本的VHDL并行语句四、常用组合单元电路VHDL设计五、常用时序单元电路VHDL设计,一、VHDL语句分类,按照功能分类:赋值语句;数据流控制语句(转向控制语句):Case when(顺序);If else(顺序);with select when(并);When else(并);模块化设计语句:process;component;generate;block;forloop;子程序调用语句仿真语句:wait;按照语句的执行方式特点分为:并行语句:按动作特点:语句执行顺序与书写顺序无关;使用范围:
2、进程语句外部的语句都是并行的;实际应用:对应于各自独立运行的逻辑电路;顺序语句:按动作特点:照语句书写顺序执行;使用范围:进程、函数和过程内部出现;实际应用:时序电路、数据流控制电路;,VHDL顺序语句,黑龙江大学电子工程学院/EDA教研室,基本的VHDL顺序语句,VHDL中的顺序语句用于描述进程或子程序的内部功能,且只能出现在PROCESS、FUNCTION、PROCEDURE等语句中。可以用来设计 时序电路、组合电路。主要作用:时序流控制、程序控制、条件和迭代等,行为描述代码。常用的顺序语句见下表。,1、process(进程);2、信号和变量;3、IF语句;4、C ASE语句;5、CASE
3、语句和IF语句的比较;6、LOOP语句;7、WAIT语句;8、使用顺序代码设计组合逻辑电路;,基本的VHDL顺序语句,5.3.1 进程(PROCESS)语句语法说明:1、Process为过程语句,定义如下:进程标号:Process 触发信号1,触发信号2,定义区 Begin顺序语句End Process 进程标号;注:方括号内容可以省略;触发信号将决定该过程是否执行;一个结构体当中可以有多个过程;多个进程语句之间是并行执行,进程内部属于顺序执行语句。,2.进程语句语法说明,进程标号:用于标识进程,可选。多个进程时,提高程序可读性;敏感信号列表:敏感信号发生变化(上升沿或者下降沿),进程被 激活
4、,从而执行内部顺序语句。注意:可以有多个敏感信号,用逗号隔开,任何一个变化都激活进 程,否则进程挂起。进程声明区:用于定义进程内部的局部变量,信号不可在此声明。进程之间数据 交流通过全局信号。顺序语句:进程内部语句顺序执行。用处:适合描述时序电路。也可用于组合逻辑电路的设计。,例1:进程语句例程带异步复位的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
5、cydff ISBEGINcydff_inst:PROCESS(clk,rst)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;,语法说明:时钟沿的VHDL描述方法总结(3种):clkevent and clk=1;clkevent and clk=0;clk=1 AND clkEVENT AND clkLAST_VALUE=0 clk=0 AND clkEVENT AND clk
6、LAST_VALUE=1 rising_edge(clk);falling_edge(clk);Clkevent?,上升沿描述1:,下降沿描述1:,上升沿描述2:,下降沿描述2:,上升沿描述3:,下降沿描述3:,进程语句总结:,进程仅在敏感信号发生变化时才执行。特点:进程内部,顺序语句;进程语句之间,并行。不同进程内不可以对同一信号赋值,即不可多重赋值。进程内信号和变量赋值效果不同。一个进程内不能同时扑捉同一个时钟信号的上升沿或者下降沿。例如下面语句是错误的:PROCESS(clk)BEGINIF rising_edge(clk)then elsif falling_edge(clk)then
7、 end if;end peocess;,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,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 temp=c;END IF;EN
8、D PROCESS p_b;end ex;,1、信号和变量异同:(1)、声明范围:。信号:ENTITY,ARCHITECTURE,PACKAGE(ALL)变量:顺序语句中(PROCESS、子程序)(2)、作用:动态数值传递,存储运算中间结 果(变量)。(3)、使用范围:全局(sig),局部(var)。(4)、变量结果只能由信号传递到外部。(5)、动作特点:变量:立即更新。信号:process执行完毕才生效。(允许多驱动源,仅最后 一个有效)(6)、操作符:信号:=变量::=,2、信号和变量,例2:ARCHITECTURE behavioral OF example_duibi ISSIGNAL
9、 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 cduibi_2;END behavioral;,进程li
10、_1的运行结果:q0=d1 OR d3 并且 q1=d1 OR d3进程li_2的运行结果:q0=d0 OR d3 而 q1=d1 OR d3,语法说明:进程当中的赋值:变量:立即更新。信号:process执行完毕赋值才生效。同时,进程中的信号赋值语句允许有多个不同的赋值驱动源,但仅最后 一个驱动源有效,3、IF语句,IF语句 IF语句是根据所指定的条件来确定执行哪些语句,适用于比较器、译码器等需要条件控制的逻辑电路设计,通常有以下三种类型。(1)用作门阀控制时的IF语句书写格式为 IF(条件)THEN 顺序处理语句;END IF;例程:PROCESS(clk)BEGIN IF clkeven
11、t and clk=1 THEN q=d;qb=NOT d;END IF;END PROCESS;,(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;,(3)用作多选择控制时的IF语句书写格式为 IF 条件1 THEN 顺序处理语句1;ELSIF 条件2 THEN 顺序处理语句2;ELSIF 条件N-1 THEN 顺序处理语句N-1;ELSE 顺序处理语句N;END IF;,LIBRARY I
12、EEE;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);ELSIF(en=10)THEN y=input(2);ELSE y=input(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 描述 语句
链接地址:https://www.31ppt.com/p-5452217.html