K述列 53数据对拿 DATA OBJECTS 53.2变量( VARIABLE) 变量赋值语句左边的目标变量可以是单值变量,也可以是一个变 量的集合,如位矢量类型的变量。如 VARIABLE X, y: INTEGER RANGE 15 DOWNTO0; VARIABLE a, b: STD LOGIC VECTOR( DOWNTO0); X y:=2+x;-运算表达式赋值,y也是实数变量 a: =b a(0TO5):=b(2To7);
KX 康芯科技 5.3 数据对象DATA OBJECTS 5.3.2 变量(VARIABLE) 变量赋值语句左边的目标变量可以是单值变量,也可以是一个变 量的集合,如位矢量类型的变量。如 VARIABLE x,y : INTEGER RANGE 15 DOWNTO0 ; VARIABLE a,b : STD_LOGIC_VECTOR(7 DOWNTO0) ; x := 11 ; y := 2 + x ; -- 运算表达式赋值,y也是实数变量 a := b a (0 TO 5) := b (2 TO 7) ;
K述列 53数据对拿 DATA OBJECTS 53.3信号( SIGNAL) SIGNAL信号名:数据类型:=初始值; 目标信号名<=表达式; SIGNAL a, b, c, y, T INTEGER PROCESS (a, b, c) BEGIN y<=a+b; Z<=c-a; b END PROCESS
KX 康芯科技 5.3 数据对象DATA OBJECTS 5.3.3 信号(SIGNAL) SIGNAL 信号名: 数据类型 := 初始值 ; 目标信号名 <= 表达式 ; SIGNAL a,b,c,y,z: INTEGER ; ... PROCESS (a,b,c) BEGIN y <= a + b ; z <= c – a ; y <= b ; END PROCESS ;
K述列 53数据对拿 DATA OBJECTS 534进程中的信号与变量赋值语句 表6-1信号与变量赋值语句功能的比较 信号 SIGNAL 变量 VARIABLE 基本用法用于作为电路中的信号连线 用于作为进程中局部数据存储单元 适用范围在整个结构体内的任何地方都能适用只能在所定义的进程中使用 行为特性在进程的最后才对信号赋值 立即赋值
KX 康芯科技 5.3.4 进程中的信号与变量赋值语句 信号SIGNAL 变量VARIABLE 基本用法 用于作为电路中的信号连线 用于作为进程中局部数据存储单元 适用范围 在整个结构体内的任何地方都能适用 只能在所定义的进程中使用 行为特性 在进程的最后才对信号赋值 立即赋值 表6-1 信号与变量赋值语句功能的比较 5.3 数据对象DATA OBJECTS
K述列 534进程中的信号与变量赋值语句 例5-5】 工工 BRARY工EE; USE IEEE STD LOGIC 1164.ALL ENTITY DEF3 IS PORT( CLK, D1 IN STD LOGIC i Q1 OUT STD LOGIC)i END ARCHITECTURE bhV OF DFF3 IS BEG工N PROCESS (CLK VARIABLE .Q: STD LOG工C BEG工N IF CLK EVENT AND CLK =1 THEN QQ : D1 END工F Q1<=Q9; END PROCESS END
KX 康芯科技 5.3.4 进程中的信号与变量赋值语句 【例5-5】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC); END ; ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLK'EVENT AND CLK = '1' THEN QQ := D1 ; END IF; Q1 <= QQ; END PROCESS ; END ;
K述列 534进程中的信号与变量赋值语句 【例5-6】 ARCHITECTURE bhV OF DFF3 IS s工cNAQ9: STD LOG工c BEG工N PROCESS (CLK) BEG工N TF CLK EVENT AND CLK =1 THEN QQ < DI END工E; Q1 < 9Q; END PROCESS END
KX 康芯科技 5.3.4 进程中的信号与变量赋值语句 【例5-6】 . . . ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK ='1' THEN QQ <= D1 ; END IF; Q1 <= QQ; END PROCESS ; END ;