




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、标准数据类型1,整数(integer)范围:-2147483547-21474836462,实数(real)范围:-1.0e38-1.0e38 (综合器不支持)书写时一定要有小数.3,位(bit)在数字系统中,信号经常用位值表示,位值用带单引号1和0来表示标准数据类型4,位矢量(bit_vector)位矢量是用双引号括起来一组位数据0101015,布尔量(boolean)只有真和假两个状态,可以进行关系运算6,字符(character)字符量通常用单引号括起来,对大小写敏感明确说明1是字符时: character(1) 标准数据类型7,字符串(string)字符串是双引号括起来由字母,数字或,
2、%,$组成一串字符.区分大小写laksdklakld 10101010108,时间(time)时间单位:fs,ps,ns,ms,sec,min,hr例: 10 ns整数数值和单位之间应有空格标准数据类型9,错误等级(severity level)在vhdl仿真器中,错误等级用来表示系统状态,它共有4种:note(注意)warning(警告)error(错误)failure(失败)标准数据类型10,自然数(natural) 正整数(positive)自然数是整数一个子类型,包括0和正整数;正整数也是整数一个子类型.只能是正整数数据除定义类型外,有时还需要定义约束范围.integer range
3、100 downto 0bit_ vector (3 downto 0)real range 2.0 to 30.0ieee定义的逻辑位与矢量在ieee程序包std_logic_1164中定义了两个非常重要数据类型:1 ,std_logic 取值:0,1,z,x,w,l,hz:高阻 x:不定 w:弱信号不定 l:弱信号0 h:弱信号12,std_logic_vector注 意1,在使用std_logic和std_logic_vector时,在程序中必须声明库及程序包说明语句,即library ieee和std_logic_1164.all这两句在程序中必不可少.2, std_logic有多个取
4、值,与bit不同,在编程时应特别注意,需要考虑全所有情况.用户自定义的数据类型1,枚举类型格式:type 数据类型名 is(元素,元素,);type std_logic is(u,x,0,1,z,w,l,h,-);type week is (sun,mon,tue,wed,thu,fri,sat);type color is (red,green,yellow,blue) type lift_state is(stopon1,doorpeen,doorclose, doorwait1, doorwait2, doorwait3, doorwait4, doorwait5,up,down,sto
5、p) 枚举类型声明type color is (red,green,yellow,blue);variable a:color;signal b:color;a:=red;b=yellow;type lever is (0,1,z);signal v:lever;v=1;用户自定义数据类型2,整数(integer)格式:type 数据类型名 is 数据类型定义 约束范围例 type digit is integer range 0 to 9 variable a:digit;a:=5;a:=28;用户自定义数据类型3,实数(real)格式:type 数据类型名 is 数据类型定义 约束范围ty
6、pe current is real range -1e4 to 1e4 variable a:current;a:=1e3;a:=1e10;用户自定义数据类型4,数组(array)格式:type 数据类型名 is array 范围 of 原数据类型名;例:type word is array (1 to 8) of std_logic;type word is array (integer 1 to 8) of std_logic;数组常在总线,rom和ram中使用. 用户自定义数据类型5,记录(recode) 类型将不同数据类型放在一块,就是记录类型数据格式:type 记录类型名 is r
7、ecord元素名:数据类型名;元素名:数据类型名;:end record记录类型名; 记录(recode) 类型例:type bank is recordaddr0: std_logic_vector(7 downto 0);addr1: std_logic_vector(7 downto 0);r0: integer;end record; 记录(recode) 类型例:constant len:integer:=100;type array logic is array (99 downto 0)of std_logic_vector(7 downto 0)type table is re
8、corda: array logic;b: std_logic_vector(7 downto 0);c: integer range 0 to len ;end record; 数据类型的转换数据类型转换函数有vhdl语言包提供例如:std_logic_1164,std_logic_arithstd_logic_unsigned等等 函数说明1、std_logic_1164包to_stdlogic_vector(a)to_bitvector(a)to_logic(a)to_bit(a)由bit_vector转换成std_logic_vector由std_logic_vector转换成bit_
9、vector由bit转换成std_logic由std_logic转换成bit2、std_logic_arith包conv_std_logic_vector(a,位长)conv_integer(a)由integer,unsigned和signed转换成std_logic_vector由unsigned和signed转换成integer3、std_logic_unsigned包conv_integer(a)_std_logic_vector转换成integervhdl属性vhdl没有一般程序语言中那些运算类标准函数,取而代之是多种能反映和影响硬件行为属性.属性在描述时序电路vhdl设计文件中几乎处
10、处可见,如检测上升沿,下降沿,知道前一次发生事件.vhdl属性属性指是关于实体,结构体,类型及信号一些特征.有属性对综合(设计)非常有用.vhdl属性可分为数值类属性,函数类属性,范围类属性,信号类属性,类型类属性.其引用一般形式为:对象属性.数值类属性数值类属性用于返回数组,块或一般数据有关值,如边界,数组长度等信息.对一般数据有4种数值类属性:对象类型左边界,右边界,上边界,下边界,对应关键字是:left,right,high,low.数组在加一个长度属性length.数值类属性sdown:in std_logic_vector(8 downto 0);sup:in std_logic-v
11、ector(0 to 8);这两个信号各属性值如下:sdownleft=8; sdownright=0; sdownlow=0; sdownhigh=8; sdownlength=9;supleft=0; supright=8; suplow=0; suphigh=8; suplength=9;数值类属性type bit32 is array (63 downto 32)of bitvariable:left_range,right_range,up_range,low_range,len:integer;begin left-range:=bit32left; -return 63right
12、-range:=bit32right; -return 32up-range:=bit32high; -return 63low-range:=bit32low; -return 32len:=bit32length; -return 32函数类属性信号属性函数属于函数类属性,用来返回有关信号行为功能信息.共有5种信号属性函数,分别是: event(事件) ; active(活跃); last_event (最近一次事件到现在经过多少时间); last_active (最近一次活跃到现在经过多少时间); last_value(信号变化前取值是什么)eventevent:它值为布尔型,取值为tr
13、ue或false;如果刚好有事件发生在该属性所附着信号上(即信号有变化),取值为true.利用此属性可决定时钟边沿是否有效,即时钟是否发生.eventsignal clk: in std_logic;clk event and clk=1 clk=1 and clk eventclk event and clk=0clk=0 and clk eventrising_edge(clk) falling_edge(clk)event 和activeevent 要求信号值发生变化;1到0,0到1active 信号值任何变化,1到1,1 到0,0到1,0到0;所有事件都是活跃,但并非所有活跃都是事件范
14、围类属性range属性,其生成一个限制性数据对象范围.例 signal data_bus:std_logic_vector(15 downto 0);data_bus range=15 downto 0用vhdl语言设计分频电路,把1khz的时钟分至约1hz左右的时钟library ieee;use ieee.std_logic_1164.all;entity fredevider isport (clkin:in std_logic; clkout:out std_logic);end;architecture devider of fredevider isconstant n:integer:=499
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届湖北省黄冈市浠水县洗马高级中学物理高一下期末复习检测模拟试题含解析
- 2025年北京市朝阳区力迈国际学校高一物理第二学期期末考试试题含解析
- 宣传党史知识课件
- 数字视频监控安装合同书
- 2025届山东省日照市第一中学物理高一下期末联考试题含解析
- 2025版建筑石材采购质量保证合同
- 2025版食品加工企业食品安全管理与质量追溯合同
- 二零二五年OEM农业机械委托生产及售后服务合同
- 2025版建筑工地铁质勘察测绘服务合同
- 二零二五版高端LED媒体租赁合作协议
- 船厂安全用电培训课件
- 高中学生管理
- 2025年西班牙语DELE考试真题模拟试卷(C1)
- 中国智能驾驶商业化发展白皮书
- 《2025年CSCO肾癌诊疗指南》解读
- 人教版九年级化学上册暑假衔接讲义(初二升初三)
- 尾矿库安全知识培训课件
- 跆拳道馆技术岗位薪酬制度
- 2025年网格长认证考试题库
- 石油化工企业绿色设计指南
- 跨国公司试用期管理流程标准
评论
0/150
提交评论