构造体 ⅤHDL的构造体基本结构p271表4-28 architecture arch name of entity name is declarations and definitions;说明部分 oIn concurrent statement: 语句部分 end ar name 构造体语法要点: 每个构造体必须属于一个实体 每个构造体必须有一个名称 通常可以根据描述方式起名: str rtI beh 构造体分为两部分: s- begin之间:说明部分 type declarations 类型说明 信号说明 constant declarations 常量说明 component declarations 元件说明 function definitions 函数说明 ocedure definitions 过程说明 begin--end之间:语句部分各种并行语句
构造体 VHDL 的构造体基本结构 p.271 表 4-28 architecture arch_name of entity_name is declarations and definitions; 说明部分 begin concurrent statement; 语句部分 end arch_name; 构造体语法要点: 每个构造体必须属于一个实体; 每个构造体必须有一个名称: 通常可以根据描述方式起名: str rtl beh 构造体分为两部分: is---begin 之间: 说明部分 type declarations; 类型说明 signal declarations; 信号说明 constant declarations; 常量说明 component declarations; 元件说明 function definitions; 函数说明 procedure definitions; 过程说明 begin---end 之间: 语句部分 各种并行语句
信号赋值语句 数据流描述 元件例化语句 构描述 进程语句 行为描述 除了第一句和 begin句外,其余各句均以分号结束 在每一部分中,各语句处于并列状态,执行时不分先后次序; VHDL的数据对象 signal信号 constant常量 variable变量 每个数据对象必须有特定的名称; 命名规则与实体名相同 sIona 信号 电路中端口、连接线的体现,具有具体物理含义,在构造体 内为全局变量 信号使用前必须进行说明: 输入/输出信号在实体中说明; 通用信号在包集合中进行说明; 模块内部信号在结构体内说明 信号说明语句基本格式 signal signal name: signal type 信号名信号类型 Bi: signal temp: std logic
信号赋值语句 数据流描述 元件例化语句 结构描述 进程语句 行为描述 除了第一句和 begin 句外,其余各句均以分号结束; 在每一部分中,各语句处于并列状态,执行时不分先后次序; VHDL 的数据对象 signal 信号 constant 常量 variable 变量 每个数据对象必须有特定的名称; 命名规则与实体名相同; signal 信号 电路中端口、连接线的体现,具有具体物理含义,在构造体 内为全局变量; 信号使用前必须进行说明: 输入/输出信号在实体中说明; 通用信号在包集合中进行说明; 模块内部信号在结构体内说明; 信号说明语句基本格式 signal signal_name : signal_type; 信号名 信号类型 例:signal temp : std_logic;
signal bus a: std logic vector(7 downto 0) 注意:端口(输入/输出)信号已在实体中说明,在 结构体中就不再说明 信号的赋值 在程序中采用“<=”(赋值语句)进行: 信号名<=信号值(表达式); B5i: temp<=l': z<=x and not y 赋值号两边的信号原则上必须为相同类型; 信号可在构造体内、过程、进程内赋值 信号不能在函数内赋值 constant常量 根据说明所在的位置,可表现为全局或局部常量: 常量在说明时赋值,所赋值与说明的类型必须一致 常量一旦赋值就不能在程序中通过语句更改 常量说明语句基本格式: constant常量名:常量类型:=常量值 例 constant constant grn: std logic: =0
signal bus_a : std_logic_vector(7 downto 0); 注意:端口(输入/输出)信号已在实体中说明,在 结构体中就不再说明; 信号的赋值 在程序中采用“<=”(赋值语句)进行: 信号名 <= 信号值(表达式); 例: temp<='1';z<=x and not y; d<=“0110”; 赋值号两边的信号原则上必须为相同类型; 信号可在构造体内、过程、进程内赋值; 信号不能在函数内赋值; constant 常量 根据说明所在的位置,可表现为全局或局部常量; 常量在说明时赋值,所赋值与说明的类型必须一致; 常量一旦赋值就不能在程序中通过语句更改; 常量说明语句基本格式: constant 常量名:常量类型:= 常量值 例: constant vcc: real:= 5.0; constant grn: std_logic:= '0';
constant tpd time: =5ns constant fbus std logic vector:=“0l10” variable变量 表达各类运算中间量,通常没有具体物理对应 变量在函数、过程、进程中进行说明,为局部变量 变量只在顺序语句中使用; 变量说明语句基本格式 variable变量名:变量类型 变量的赋值 采用“:=”符号进行: 变量赋值语句 变量名:=变量值(表达式); te =d+c wb:=“1001” 赋值号两边变量必须为相同类型 注意:变量只在函数、过程、进程等子结构中使用,一旦 子结构执行结束,变量值随即消失 HDL数据对象的类型
constant tpd: time:= 5ns; constant fbus:std_logic_vector:=“0110”; variable 变量 表达各类运算中间量,通常没有具体物理对应; 变量在函数、过程、进程中进行说明,为局部变量; 变量只在顺序语句中使用; 变量说明语句基本格式: variable 变量名:变量类型 变量的赋值 采用“:=”符号进行: 变量赋值语句 变量名:= 变量值(表达式); 例: va := a ; te := d+c; wb := “1001”; 赋值号两边变量必须为相同类型; 注意:变量只在函数、过程、进程等子结构中使用,一旦 子结构执行结束,变量值随即消失; VHDL 数据对象的类型
VHDL的重要特点: 每一个数据对象都必须规定其类型; 类型规定影响范围: 数据形式、取值范围、排列顺序、可进行的运算; 任何信号、变量、常量、函数在使用前都必须进行类型说明 任何代入或赋值必须在类型一致的情况下才能进行 任何运算符号只对特定的同类型量进行运算 vDL的类型可分为两大类: 预定义类型(用户)自定义类型 预定义类型 由语言标准预先规定,可以直接使用 常用预定义类型见p.271表4-29 bit bit vector boolean character time re 位位矢量布尔量字符时间实数 integer natural positive severity level string 整数自然数正整数错误等级 串 bit位 bit vector位矢量 可进行逻辑运算 boolean布尔符号 false true 可进行逻辑运算 关系运算的结果
VHDL 的重要特点: 每一个数据对象都必须规定其类型; 类型规定影响范围: 数据形式、取值范围、排列顺序、可进行的运算; 任何信号、变量、常量、函数在使用前都必须进行类型说明; 任何代入或赋值必须在类型一致的情况下才能进行; 任何运算符号只对特定的同类型量进行运算; VHDL 的类型可分为两大类: 预定义类型 (用户)自定义类型 预定义类型 由语言标准预先规定,可以直接使用 常用预定义类型见 p.271 表 4-29 bit bit_vector boolean character time real 位 位矢量 布尔量 字符 时间 实数 integer natural positive severity_level string 整数 自然数 正整数 错误等级 串 bit 位 bit_vector 位矢量 0 1 可进行逻辑运算 boolean 布尔符号 false true 可进行逻辑运算 关系运算的结果
character字符 string字符串 IS08位字符集 (前128个为ASCⅡ编码符号) 在字符类型中,大写字母和小写字母表达不同含义,可以区 分,例如:A和a分别表达不同的字符。 可通过连接运算将字符组合为字符串:& integer整数 (231-1)-+(231-1) 使用算术运算符号集 考虑到电路综合效率,对于整数类型尽可能限制在最小使用 范围 例 entity t is port a, b: in integer range 0 to 15 f: out bit) end t architecture d of t is begin f<=1 when a= b else·0 nd d time时间 带有单位( ns ms min等) 可进行算术运算 severity level错误等级 failure 关系判断的结果
character 字符 string 字符串 ISO 8 位字符集 (前 128 个为 ASCⅡ编码符号) 在字符类型中,大写字母和小写字母表达不同含义,可以区 分,例如:`A`和`a`分别表达不同的字符。 可通过连接运算将字符组合为字符串: & integer 整数 -(231-1)— +(231-1) 使用算术运算符号集 考虑到电路综合效率,对于整数类型尽可能限制在最小使用 范围; 例 entity t is port(a,b: in integer range 0 to 15; f: out bit); end t; architecture d of t is begin f<='1' when a=b else '0'; end d; time 时间 带有单位(ns ms min 等) 例: 50 ns 3 sec 25 hr 可进行算术运算 severity level 错误等级 note warning error failure 关系判断的结果