数字系统vhdl基本语句

上传人:第*** 文档编号:50360708 上传时间:2018-08-07 格式:PPT 页数:57 大小:290.50KB
返回 下载 相关 举报
数字系统vhdl基本语句_第1页
第1页 / 共57页
数字系统vhdl基本语句_第2页
第2页 / 共57页
数字系统vhdl基本语句_第3页
第3页 / 共57页
数字系统vhdl基本语句_第4页
第4页 / 共57页
数字系统vhdl基本语句_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《数字系统vhdl基本语句》由会员分享,可在线阅读,更多相关《数字系统vhdl基本语句(57页珍藏版)》请在金锄头文库上搜索。

1、数字系统VHDL基本语句 1 顺序语句 1.1 赋值语句 信号赋值语句信号赋值语句变量赋值语句变量赋值语句1.2 IF语句 1.3 CASE语句 单个普通数值,如6。数值选择范围,如(2 TO 4)。 并列数值,如35。混合方式,以上三种方式的混合。 K KX康芯科技【例】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (s4,s3, s2,s1 : IN STD_LOGIC;z4,z3, z2,z1 : OUT STD_LOGIC); END mux41;ARCHITECTURE activ OF mux41 ISSI

2、GNAL sel : INTEGER RANGE 0 TO 15;BEGINPROCESS (sel ,s4,s3,s2,s1 )BEGINsel z1 z2 z3 z4 out1 out1 out1 out1 result result - a、b相等IF (a = b) THEN result - a、b不相等IF (a /= b) THEN result 10 ; - 当a大于10时跳出循环END LOOP L2;. 1 顺序语句 1.4 LOOP语句 (2) FOR_LOOP语句,语法格式如下:LOOP标号: FOR 循环变量,IN 循环次数范围 LOOP 顺序语句END LOOP L

3、OOP标号; 1 顺序语句 K KX康芯科技【例】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY p_check ISPORT ( a : IN STD_LOGIC_VECTOR (7 DOWNTO 0);y : OUT STD_LOGIC ); END p_check; ARCHITECTURE opt OF p_check ISSIGNAL tmp :STD_LOGIC ; BEGINPROCESS(a) BEGINtmp f);s3 : b(k+8) := 0;k := k+1;NEXT LOOP L_y ;NEXT LOOP L_x ;

4、. 1 顺序语句 1.5 EXIT语句 EXIT; - 第一种语句格式EXIT LOOP标号; - 第二种语句格式EXIT LOOP标号 WHEN 条件表达式; - 第三种语句格式 1 顺序语句 1.5 EXIT语句 【例】 SIGNAL a, b : STD_LOGIC_VECTOR (1 DOWNTO 0); SIGNAL a_less_then_b : Boolean; .a_less_then_b bEXIT ;ELSIF (a(i)=0 AND b(i)=1) THENa_less_then_b qout qout qout NULL; END CASE;END IF;END PRO

5、CESS; END behave; 1 顺序语句 K KX康芯科技1.7 子程序调用语句 1. 过程调用 过程名(形参名= 实参表达式 ,形参名= 实参表达式) ; 【例】 PACKAGE data_types IS - 定义程序包 SUBTYPE data_element IS INTEGER RANGE 0 TO 3 ;- 定义数据类型 TYPE data_array IS ARRAY (1 TO 3) OF data_element; END data_types; USE WORK.data_types.ALL; -打开以上建立在当前工作库的程序包data_types ENTITY s

6、ort ISPORT ( in_array : IN data_array ;out_array : OUT data_array); END sort;ARCHITECTURE exmp OF sort ISBEGIN (接下页)PROCESS (in_array) - 进程开始,设data_types为敏感信号PROCEDURE swap(data : INOUT data_array; - swap的形参名为data、low、highlow, high : IN INTEGER ) ISVARIABLE temp : data_element ;BEGIN - 开始描述本过程的逻辑功能

7、IF (data(low) data(high) THEN - 检测数据temp := data(low) ;data(low) := data(high);data(high) := temp ;END IF ;END swap ; - 过程swap定义结束VARIABLE my_array : data_array ; - 在本进程中定义变量my_arrayBEGIN - 进程开始 my_array := in_array ; - 将输入值读入变量swap(my_array, 1, 2); - my_array、1、2是对应于data、low、high的实参 swap(my_array,

8、2, 3); - 位置关联法调用, 第2、第3元素交换swap(my_array, 1, 2); - 位置关联法调用, 第1、第2元素再次交换out_array y THEN tmp := x; x := y; y := tmp;END IF; END sort2; BEGINPROCESS (a, b, c, d)VARIABLE va, vb, vc, vd : BIT_VECTOR(0 TO top); BEGINva := a; vb := b; vc := c; vd := d;sort2(va, vc); sort2(vb, vd);sort2(va, vb); sort2(vc,

9、 vd);sort2(vb, vc);ra REPORT SEVERITY ; Note(通报)报告出错信息,可以通过编译Warning(警告)报告出错信息,可以通过编译Error(错误)报告出错信息,暂停编译Failure(失败)报告出错信息,暂停编译预定义错误等级 1 并行语句 1.8 断言语句 【例】P1: PROCESS(S,R)VARIABLE D : std_logic;BEGIN ASSERT not (R=1and S=1)REPORT “both R and S equal to 1 “SEVERITY Error;IF R = 1 and S = 0 THEN D := 0

10、;ELSIF R = 0 and S = 1 THEN D := 1 ;END IF;Q tmp := rega AND regb ;WHEN “101“ = tmp := rega OR regb ;WHEN “110“ = tmp := NOT rega ;WHEN OTHERS = NULL ;END CASE ; 2 并行语句 并行信号赋值语句(Concurrent Signal Assignments)。 进程语句(Process Statements)。 块语句(Block Statements)。条件信号赋值语句(Selected Signal Assignments)。 元件例

11、化语句(Component Instantiations),其中包括类属配置语句。 生成语句(Generate Statements)。并行过程调用语句(Concurrent Procedure Calls)。 ARCHITECTURE 结构体名 OF 实体名 IS说明语句BEGIN并行语句END ARCHITECTURE 结构体名 2 并行语句 2.1 并行信号赋值语句 1. 简单信号赋值语句 赋值目标 = 表达式 ARCHITECTURE curt OF bc1 IS SIGNAL s1, e, f, g, h : STD_LOGIC ; BEGINoutput1 l_time,gb2 =

12、 s_time); - 局部端口参量设定PORT (pb : IN BIT; pb2 : INOUT BIT ); - 块结构中局部端口定义PORT MAP (pb1 = b1, pb2 = a1 ) ; - 块结构端口连接说明CONSTANT delay : Time := 1 ms ; - 局部常数定义SIGNAL s1 : BIT ; - 局部信号定义BEGINs1 连接端口名,.) ; 2 并行语句 2.5 生成语句 标号: FOR 循环变量 IN 取值范围 GENERATE说明BEGIN并行语句END GENERATE 标号 ;标号: IF 条件GENERATE说明Begin并行语句

13、END GENERATE 标号 ; 2 并行语句 2.5 生成语句 表达式 TO 表达式 ; - 递增方式,如1 TO 5表达式 DOWNTO 表达式 ; - 递减方式,如5 DOWNTO 1 【例】. COMPONENT comp PORT (x : IN STD_LOGIC ; y : OUT STD_LOGIC ); END COMPONENT ; SIGNAL a :STD_LOGIC_VECTOR(0 TO 7); SIGNAL b :STD_LOGIC_VECTOR(0 TO 7); . gen : FOR i IN aRANGE GENERATEu1: comp PORT MA

14、(x=a(i),y=b(i); END GENERATE gen,. 2 并行语句 2.5 生成语句 生成语句产生的8个相同的电路模块 2 并行语句 2.5 生成语句 【例】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Latch ISPORT( D,ENA : IN STD_LOGIC;Q : OUT STD_LOGIC ); END ENTITY Latch ;ARCHITECTURE one OF Latch ISSIGNAL sig_save : STD_LOGIC;BEGINPROCESS (D, ENA)BEGINIF ENA = 1 THEN sig_save = D ; END IF ;Q = sig_save ;END PROCESS ; END ARCHITECTURE one; K KX康芯科技【例】 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SN74373 IS PORT (D : IN STD_LOGIC_VECTOR( 8 DOWNTO 1 ); OE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号