MHDL语言的数据对象(三) ■信号 是实体间动态交换数据的手段; 在物理上它对应着硬件设计中的一条硬件连 接线; ■初始值只对模拟有用,对综合来说意义不大; n信号既可以作为输入/输出,也可以具有缓 冲模式的特点 ■说明的格式 Signal信号名:数据类型[:=表达式] F: signal clk std_logic: =0
VHDL语言的数据对象(三) 信号 是实体间动态交换数据的手段; 在物理上它对应着硬件设计中的一条硬件连 接线; 初始值只对模拟有用,对综合来说意义不大; 信号既可以作为输入/输出,也可以具有缓 冲模式的特点。 说明的格式 Signal 信号名 : 数据类型 [:=表达式]; 例:signal clk : std_logic := ‘0’;
信号 signal VS.变量 variable 信号 signal 变量 variable 代表电路中的连接代表局部的一个暂存值 全局变量 局部变量 赋值符号<= 赋值符号“= 赋值在一个过程结束后才赋值没有延迟,立即变化 会变化
信号signal vs. 变量variable 赋值在一个过程结束后才 赋值没有延迟,立即变化 会变化 赋值符号‘<=’ 赋值符号‘:=’ 全局变量 局部变量 代表电路中的连接 代表局部的一个暂存值 信号signal 变量variable
例:定义为信号 case muxval is LIBRARY IEEE USE IEEE STD LOGIC 1164.ALL when0=>q<=10; when 1→>q<=il; When2→>q<=12 ENTITY mux 4 Is when PORT(10, 11. 12,13. a b: IN STD LOGIC q end case q: OUT STD LOGIC) END mux end process, eNd body mux architecture body mux oF mux Is signal muxval: integer range 0 to 3 注意信号定义的位置 BEGIN process(10, 11, 12, 13, a, b) begin Name alue 1000ns2000ns3000ns400 muxval<=0 0 if(a=1 )then muxval < muxval +1 0 end if E ab DO 0 if (b='1 )then muxval < muxval +2 end if
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC); END mux4; ARCHITECTURE body_mux4 OF mux4 IS signal muxval : integer range 0 to 3; BEGIN process(i0,i1,i2,i3,a,b) begin muxval <= 0; if (a = '1') then muxval <= muxval + 1; end if; if (b = '1') then muxval <= muxval + 2; end if; 例:定义为信号 case muxval is when 0 => q <= i0; when 1 => q <= i1; when 2 => q <= i2; when 3 => q <= i3; end case; end process; END body_mux4; --注意信号定义的位置
LIBRARY IEEE 例:定义为变量 USE IEEE STD LOGIC 1164ALL case muxval IS when ENTITY mux 4 Is when 1→>q<=i PORT (10, 11, 12, 13, a, b: IN STD LOGIC when 2 <=12 q: OUT STD LOGIC); when3→>q<=i3 END mux end case end process architecture body mux oF mux IS end body mux BEGIN process(10, 11, 12, 13, a, b) variable muxval: integer range 0 to3;-注意变量定义的位置 begin muxval =0 Name Value 1000ns2000ns3000ns4001 if(a=1 )then i3 muxval =muxval +1 end if if(b=1 )the muxval=muxval +2. D ab DO end if 0「 LLL UUUULWUULUU
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC); END mux4; ARCHITECTURE body_mux4 OF mux4 IS BEGIN process(i0,i1,i2,i3,a,b) variable muxval : integer range 0 to 3; begin muxval := 0; if (a = '1') then muxval := muxval + 1; end if; if (b = '1') then muxval := muxval + 2; end if; 例:定义为变量 case muxval is when 0 => q <= i0; when 1 => q <= i1; when 2 => q <= i2; when 3 => q <= i3; end case; end process; END body_mux4; --注意变量定义的位置
√HDL语言的数据对象(四) ■文件 ⅦHDL-93语法把文件也当作对象; ■不能被赋值; 通过规定的过程和函数对文件对象进行读出 和写作的操作; ■说明的格式 Fie文件名:文件类型is[方向]路径表达式; Type文件类型名 is file of数据类型; F5j: type filetype is file of std_logic_vector; file myfile: filetype is in"/myproject/vector. in
VHDL语言的数据对象(四) 文件 VHDL-93语法把文件也当作对象; 不能被赋值; 通过规定的过程和函数对文件对象进行读出 和写作的操作; 说明的格式 File 文件名 : 文件类型 is [方向] 路径表达式; Type 文件类型名 is file of 数据类型; 例: type filetype is file of std_logic_vector; file myfile : filetype is in “/myproject/vector.in