信号、变量、常数对比 四、适用范围 信号:实体、结构体、程序包 变量:定义了变量的进程、子程序的顺序语句中 常数:视其定义的位置而定 若常数定义在实体中,适用范围是实体所对应的所 有结构体。 若常数定义在结构体中,适用范围就是本结构体
四、适用范围 信号:实体、结构体、程序包 变量:定义了变量的进程、子程序的顺序语句中 常数:视其定义的位置而定 若常数定义在实体中,适用范围是实体所对应的所 有结构体。 若常数定义在结构体中,适用范围就是本结构体。 信号、变量、常数对比
信号和变量赋值区别举例 信号赋值(非立即) 变量赋值(立即) Architecture abc of example is Architecture abc of example is signal tmp: std logic Begin Begin process (a, b,c) process (a, b, c) variable tmp: std logic; begin begin tmp<=a; tmp =a; X<=c and tmp; X<=c and tmp; tmp<=b: tmp:=b; y<=c and tmp; y<=c and tmp; end process; end process; End abc End abc; 执行结果:x= c and b 执行结果:x= c and a y=c and b y=c and b
信号赋值(非立即) 信号和变量赋值区别举例 Architecture abc of example is signal tmp:std_logic; Begin process(a,b,c) begin tmp<=a; x<=c and tmp; tmp<=b; y<=c and tmp; end process; End abc; 变量赋值(立即) Architecture abc of example is Begin process(a,b,c) variable tmp:std_logic; begin tmp:=a; x<=c and tmp; tmp:=b; y<=c and tmp; end process; End abc; 执行结果:x=c and b y=c and b 执行结果:x=c and a y=c and b
VHDL数据类型 、逻辑数据类型 (1)布尔代数( Boolean)型 定义位置:在std库的 standard程序包中进行定义 取值: FALSE,TRUE (2)位(Bit) 定义位置:在std库的 standard程序包中进行定义。 取值:0, (低电平,高电平)
VHDL数据类型 1、逻辑数据类型 (1)布尔代数(Boolean)型 定义位置:在std库的standard程序包中进行定义。 取值:FALSE,TRUE (2)位(Bit) 定义位置:在std库的standard程序包中进行定义。 取值:0,1 (低电平,高电平 )
VHDL数据类型 (3)位矢量( Bit vector) 定义位置:在std库的 standard程序包中进行定义 位矢量是基于“位”数据类型的数组 Signal A: bit vector o to 7) Signal B: bit vector (7 downto O) A<=“00001010”; B<=“00001010; A(7)=0A(6)=1A(5)=0A(4)=1A(3)=0A(2)=0A(1)=0A(0)=0 B(7)=0B(6)=0B(5)=0B(4)=0B(3)=1B(2)=0B(1)=1B(0)2=0
(3)位矢量(Bit_Vector) 定义位置:在std库的standard程序包中进行定义。 Signal A: bit_vector(0 to 7); Signal B: bit_vector(7 downto 0); A<=“00001010”; B<=“00001010”; VHDL数据类型 位矢量是基于“位”数据类型的数组 A(7)=0 A(6)=1 A(5)=0 A(4)=1 A(3)=0 A(2)=0 A(1)=0 A(0)=0 B(7)=0 B(6)=0 B(5)=0 B(4)=0 B(3)=1 B(2)=0 B(1)=1 B(0)=0