硬件描述语言及器件3(侯伯亨版).ppt
《硬件描述语言及器件3(侯伯亨版).ppt》由会员分享,可在线阅读,更多相关《硬件描述语言及器件3(侯伯亨版).ppt(44页珍藏版)》请在三一文库上搜索。
1、适合班级: 09060241 09060242 教学东区01107H,第三课 VHDL语言数据类型及运算操作符,数据对象/客体,在VHDL中把保存数据的单元称为数据对象。 客体(Object):凡是可以赋予一个值的对象成为客体。 VHDL中的四种客体: 信号(Signal) 变量(Variable) 常量(Constant) 文件(File),四类客体含义及说明场合,常数(constant),语法格式如下: constant 常数名:数据类型名:= 表达式; 例: constant VCC :real := 5.0; constant daly : time := 100 ns; consta
2、nt fbus : bit_vector := “0101”; 常数一旦设定后,在整个程序中将不再改变。,常数名称的命名规则: 第一个字符是英文字母。 最后一个字符不能是下划线,中间也不能有两个连续的下划线。 常数名称不能是VHDL的保留字。,常数所赋的值应与定义的数据类型一致。 例如: constant VCC :real := “0101”;,变量(Variable),临时数据,没有物理意义 只能在Process、Function和Procedure中定义,并只在其内部有效 语法格式: variable 变量名 :数据类型 约束条件 := 表达式; 例: variable x,y : in
3、teger; variable count : integer range 0 to 255 :=10; 用 := 进行赋值,共享变量,实际使用过程中,有时希望进程或子程序的结果以变量形式进行数据传递。 不能在Process、Function和Procedure中定义 语法格式: shared variable 变量名 :数据类型 约束条件 := 初始值; 慎用。,共享变量,Architecture sample of test is shared variable notclk: std_logic; signal clk : std_logic; Begin p1: process(clk
4、) is begin if (clkevent and clk = 1) then notclk := 0; end if; end process p1;,p2: process(clk) is begin if (clkevent and clk = 0) then notclk := 1; end if; end process p2; End architecture sample;,信号 (signal),信号是逻辑电路内部硬件连接(节点)的抽象,它除了没有数据流动方向的说明外,其它性质几乎和“端口”一样。信号通常在结构体、程序包集合和实体中说明。,信号A,信号说明语句的格式为: s
5、ignal 信号名:数据类型 约束条件:= 设置值; 例如: signal sys_clk: bit := 0; signal ground : bit := 0;,使用信号(signal)的VHDL程序,有关信号的使用规则说明如下:,“:”表示对信号直接赋值,表示信号初始值不产生延时。 “”表示代入赋值,是变量之间信号的传递,代入赋值法允许产生延时。例如:T1 T2; 在仿真中,初始化能保证信号设定在指定值上。对于存储元件的加电初始状态,应该设计复位或予置位机构,而不是通过信号指定初始化值来实现。 在EDA工具综合时,信号应在结构体中描述清楚。,信号与变量的区别,architecture r
6、tl of start is signal count : integer range 0 to 7; begin process(clk) begin if (clkevent and clk=1) then count = count + 1; if(count=0) then carryout = 1; else carryout = 0; end if; end if; end process; end rtl; -信号延时赋值,architecture rtl of start is begin process(clk) variable count : integer range
7、0 to 7; begin if (clkevent and clk=1) then count := count + 1; if(count=0) then carryout = 1; else carryout = 0; end if; end if; end process; end rtl; -变量实时赋值,VHDL的数据类型,所有的信号、变量和常量,在VHDL程序中都要指定数据类型。数据类型用来指定工程可以采用的数据集合或数值的范围,并且也有与给定类型相关联的一套操作(如或、与,等等)。 VHDL是强类型语言,强类型是指数据类型的定义相当严格,不同类型之间的数据不能直接代入,而且,即
8、使数据类型相同,而位长不同时也不能直接代入。这意味着编译器不允许给类型不同的信号赋值。,VHDL的数据类型,bit(位),信号定义: Type bit is (0,1) 0或者1表示在数字电路中一个位的两种取值: 0可与数字电路里的低电平对应, 1可与数字电路里的高电平对应。,bit_vector(位向量),signal a: bit_vector (0 to 7); signal b: bit_vector (7 downto 0); signal c: bit_vector (0 to 3) := “0110”; 可按位来表示,如: c(0)= 0,c(1)= 1,c(2)= 1,c(3)
9、= 0,递增,递减,单个位用单引号,向量用双引号“ ”,std_logic(标准逻辑),在VHDL程序里,对逻辑信号的定义,通常都是采用这个std_logic信号形式 。,std_logic_vector (标准逻辑向量),将几个信号合成一组来代表特定功能的逻辑信号,例如:数据总线(date bus)、地址总线(address bus)等 。 std_logic_vector与bit_vector相似,只是数据内容多了Z与_两种。Z表示电路的高阻状态,仅能指定给最外层电路输出,并且必须对应到IC的实际引脚上。 例: signal bus: std_logic_vector (7 downto
10、0); begin bus = “ZZZZZZZZ”;,使用标准逻辑向量将两个信号相加,boolean(布尔量),定义是: type boolean is ( false, true ); 布尔量只有两种状态:false 和true,默认为false。,integer(整数),在VHDL语言中,整数范围从(2311)到(2311),例如: 128,5,12,。 在电子系统中,整数可以用进制来表示。 整数不能看作矢量,不能单独对某一位操作。 整数不能用于逻辑运算,只能用于算术运算。 对象的数据类型定义为整数时,范围应有约束。例如: VARIABLE A: INTEGER RANGE 128 TO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 描述 语言 器件 侯伯亨版
链接地址:https://www.31doc.com/p-3411215.html