- 0
- 0
- 约7.68千字
- 约 44页
- 2017-05-29 发布于北京
- 举报
适合班级:09060242 教学东区01107H 数据对象/客体 在VHDL中把保存数据的单元称为数据对象。 客体(Object):凡是可以赋予一个值的对象成为客体。 VHDL中的四种客体: 信号(Signal) 变量(Variable) 常量(Constant) 文件(File) 四类客体含义及说明场合 常数(constant) 语法格式如下: constant 常数名:数据类型名:= 表达式; 例: constant VCC :real := 5.0; constant daly : time := 100 ns; constant fbus : bit_vector := “0101”; 常数一旦设定后,在整个程序中将不再改变。 常数名称的命名规则: ①第一个字符是英文字母。 ②最后一个字符不能是下划线,中间也不能有两个连续的下划线。 ③常数名称不能是VHDL的保留字。 常数所赋的值应与定义的数据类型一致。 例如: constant VCC :real := “0101”; 变量(Variable) 临时数据,没有物理意义 只能在Process、Function和Procedure中定义,并只在其内部有效 语法格式: variable 变量名 :数据类型 约束条件 := 表达式; 例: variable x,y : integer; 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) is begin if (clk’event and clk = ‘1’) then notclk := ‘0’; end if; end process p1; 信号 (signal) 信号是逻辑电路内部硬件连接(节点)的抽象,它除了没有数据流动方向的说明外,其它性质几乎和“端口”一样。信号通常在结构体、程序包集合和实体中说明。 使用信号(signal)的VHDL程序 有关信号的使用规则说明如下: “:=”表示对信号直接赋值,表示信号初始值不产生延时。 “<=”表示代入赋值,是变量之间信号的传递,代入赋值法允许产生延时。例如:T1 <= T2; 在仿真中,初始化能保证信号设定在指定值上。对于存储元件的加电初始状态,应该设计复位或予置位机构,而不是通过信号指定初始化值来实现。 在EDA工具综合时,信号应在结构体中描述清楚。 信号与变量的区别 architecture rtl 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 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的
原创力文档

文档评论(0)