中国高校课件下载中心 》 教学资源 》 大学文库

电子科技大学:《VHDL语言与数字集成电路设计》第九章 用户定义数据类型

文档信息
资源类别:文库
文档格式:PPT
文档页数:34
文件大小:152.5KB
团购合买:点击进入团购
内容简介
用户定义数据类型 VHDL允许用户自行定义类型; 自定义类型的元素实际上全部来自预定义类型 用户定义类型必须在使用以前进行类型说明; 用户定义类型可以分为子类型、枚举类型和数 组3类;
刷新页面文档预览

用户定义数据类型 VHDL允许用户自行定义类型; 自定义类型的元素实际上全部来自预定义类型 用户定义类型必须在使用以前进行类型说明 用户定义类型可以分为子类型、枚举类型和数 组3类

用户定义数据类型 VHDL允许用户自行定义类型; 自定义类型的元素实际上全部来自预定义类型; 用户定义类型必须在使用以前进行类型说明; 用户定义类型可以分为子类型、枚举类型和数 组3类;

子类型 从已有类型中取连续子集合加以定义 subtype twoval logic is std logic range o to I subtype bitnum is integer range 31 downto 0; 子类型的数据可以和原有类型的数据进行直接运 算

子类型 从已有类型中取连续子集合加以定义 例: subtype twoval_logic is std_logic range `0` to `1` ; subtype bitnum is integer range 31 downto 0 ; 子类型的数据可以和原有类型的数据进行直接运 算;

子类型 当原有类型为 Integer时,也可以采用下列简化 定义: type子类型名称 Is range起点to终点; 例 type a is range32to212;整数升序定义 type b is range31 downto0整数降序定义

子类型 当原有类型为integer时,也可以采用下列简化 定义: type 子类型名称 is range 起点 to 终点; 例: type a is range 32 to 212; 整数升序定义 type b is range 31 downto 0; 整数降序定义

枚举类型 从已有类型中取离散子集合加以定义 type type-name is( value list); 例 type move is(1,0,A,a); type tra_light is(reset, stop, wait, go): type color is(red, green, blue, white, black)

枚举类型 从已有类型中取离散子集合加以定义 type type-name is ( value list) ; 例: type move is ('1','0','A','a'); type tra_light is (reset, stop, wait, go); type color is (red,green,blue,white,black)

枚举类型 在括号中按顺序列举该类型中的全部元素; 各元素间以逗号分隔; 在枚举类型中,数据大小关系根据顺序进 行排列,并根据数据元素的数量,采用最 短的二进制自然码表达;

枚举类型 在括号中按顺序列举该类型中的全部元素; 各元素间以逗号分隔; 在枚举类型中,数据大小关系根据顺序进 行排列,并根据数据元素的数量,采用最 短的二进制自然码表达;

数组 数组为同类型元素的有序排布(从左向 右),每一元素与一个数组指标对应; 数组指标通常为整数;也可以采用枚举类 型的元素来表达。 只有一维和二维数组可以综合,高维数组 不可综合;

数组 数组为同类型元素的有序排布(从左向 右),每一元素与一个数组指标对应; 数组指标通常为整数;也可以采用枚举类 型的元素来表达。 只有一维和二维数组可以综合,高维数组 不可综合;

数组示例 type byte is array (7 downto 0)of std logic; type monthly count is array(l to 12)ofinteger type length is array (natural range <>)of bit;

数组示例 type byte is array (7 downto 0) of std_logic; type monthly_count is array (1 to 12) of integer; type length is array (natural range <>) of bit;

数组示例 constant word len: integer: =32 type word is array (word len-l downto O)of std logic; constant num regs: integer: =8 type reg file is array (1 to num regs)of word;

数组示例 constant word_len: integer := 32; type word is array (word_len-1 downto 0)of std_logic; constant num_regs: integer := 8; type reg_file is array (1 to num_regs) of word;

多维数组定义的示例 type row is array (7 downto 0)of std logic 先定义一维数组; type matrix is array(0 to 3)of row; 再定义1x1数组; type matrix is array(0 to 3 )of std logic vector (7 downto0);-直接定义1x1数组; type matrix is array (0 to 3, 7 downto o)of std logic;-直接定义2维数组;

多维数组定义的示例 type row is array (7 downto 0) of std_logic; --先定义一维数组; type matrix is array (0 to 3) of row; --再定义1x1数组; type matrix is array (0 to 3) of std_logic_vector (7 downto 0); --直接定义1x1数组; type matrix is array (0 to 3,7 downto 0) of std_logic;--直接定义2维数组;

数据类型的转换 当数据需要交替进行算术和逻辑运算时,就需 要进行数据转换; 一般的类型转换通常由专门的函数进行,这些 函数存放在特定的包集合中 子类型与基本类型之间可以直接赋值,不需要 进行类型转换;个别非常关联的类型可以通过 赋值进行直接转换;

数据类型的转换 当数据需要交替进行算术和逻辑运算时,就需 要进行数据转换; 一般的类型转换通常由专门的函数进行,这些 函数存放在特定的包集合中; 子类型与基本类型之间可以直接赋值,不需要 进行类型转换;个别非常关联的类型可以通过 赋值进行直接转换;

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档