收藏 分享(赏)

vhdl课件1.ppt

上传人:wspkg9802 文档编号:7402675 上传时间:2019-05-16 格式:PPT 页数:18 大小:520KB
下载 相关 举报
vhdl课件1.ppt_第1页
第1页 / 共18页
vhdl课件1.ppt_第2页
第2页 / 共18页
vhdl课件1.ppt_第3页
第3页 / 共18页
vhdl课件1.ppt_第4页
第4页 / 共18页
vhdl课件1.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、数据对象(Data Objects):,凡是可以被赋予一个值的对象称为数据对象,,数据对象用于传递信号。,例 :,数据对象名,数据对象类型,数据对象值的类型,执行结果为:,x=c xor b, y=c xor b,执行结果为:,x=c xor a, y=c xor b,本讲导航:,VHDL语言像其它高级语言一样,具有多种数据类型,正是由于这些数据类型的存在,才使得VHDL语言在描述硬件电路时具有较好的灵活性。一般来说,VHDL语言中的数据类型按照其产生的来源可以分为两大类:标准定义的数据类型和用户定义的数据类型。下面将对这两类数据类型进行讨论。,2.2 VHDL语言数据类型,标准数据类型,*,

2、*,*,用户定义的数据类型,TYPE 数据类型名 ,数据类型名 数据类型定义;,枚举(Enumerated)类型; 数组(Array)类型; 记录(Recode)类型; 时间(Time)类型(物理类型); 用户定义的子类型。,枚举(Enumerated) 类型TYPE 数据类型名 IS (元素,元素, );例: TYPE month IS (January February March April May June July August September October November December),数组(Array) 类型TYPE 数据类型名 IS ARRAY 范围 OF 原数据

3、类型名;例: TYPE word IS ARRAY (15 DOWNTO 0) OF BIT;TYPE doubleword IS ARRAY (natural RANGE) OF STD_LOGIC;SIGNAL a: doubleword (3 DOWNTO 0);,默认为整数类型,时间(Time) 类型(物理类型)TYPE 数据类型名 IS 范围;UNITS 基本单位;单位;END UNITS; 例: TYPE time IS RANGE 1E18 TO 1E18;UNITSfs;ps=1000fs;ns=1000ps;us=1000ns;ms=1000 s;sec=1000ms;min

4、=60sec;hr=60min;END UNITS;,记录 (Record) 类型TYPE 数据类型名 IS RECORD ;元素名:数据类型名;元素名:数据类型名;END RECORD; 例: TYPE bank IS RECORD ;addr0: STD_LOGIC_VECTOR(7 DOWNTO 0);addr1: STD_LOGIC_VECTOR(7 DOWNTO 0);r0: INTEGER;inst: instruction;END RECORD;SIGNAL addbus1, addbus2:STD_LOGIC_VECTOR(7 DOWNTO 0)SIGNAL result: I

5、NTEGER;SIGNAL alu_code: instruction;SIGNAL r_bank: bank :=(“0000000”, “0000001”, 0, ADD);addbus1=r_rank.addr1;r_bank.inst= SUB;,TYPE instruction IS (ADD, SUB, INC, SRL, SPF,LDA,LDB,XFR);,用户定义的子类型,SUBTYPE 子类型名 IS 数据类型名范围:,例: SUBTYPE abus IS STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL aio: STD_LOGIC_VECTOR(7

6、DOWNTO 0);SIGNAL bio: STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNAL cio: abus;aio=cio; bio=cio;,right,wrong,子类型可以是原数据类型的一部分,也可以完全 和原数据类型范围一致。,数据类型的转换,两种IEEE标准数据类型,std_logic * std_logic_vector *“std_logic”型数据可以具有如下9种不同的值:U-初始值;X-不定;0 -0;1 -1; 注意:当使用这两种数据类型Z -高阻; 时,在程序中必须写出库W-弱信号不定; 和包集合的说明语句。L -弱信号0; H -弱信号1;

7、-不可能情况。,定义位置:在IEEE库的std_logic_1164程序包中进行定义,可以看出,这个“标准逻辑”信号定义,比“位即bit”信号对于数字逻辑电路的逻辑特性描述更完整、更真实。所以在VHDL的程序里,对于逻辑信号的定义,通常都是采用这个“标准逻辑”信号形式。,使用这类数据信号,必须包含下面两条声明语句:,Library IEEE;Use IEEE.std_logic_1164.all;,标准逻辑数组类型(Std_Logic_vector),定义位置:在ieee库的std_logic_1164程序包中进行定义。,Bit_Vector与Std_Logic_vector的区别在于数组的每

8、一位前者为BIT型(0,1)后者为Std_Logic型,小结:,在VHDL语言中信号、变量、常数都要指定数据类型。为此,VHDL提供了多种标准的数据类型。在VHDL 语言中,使用户最感兴趣的一个特点是,可以由用户自己来定义数据类型。由用户自己定义的数据类型的书写格式为:TYPE 数据类型名 ,数据类型名 数据类型定义;,练习:,1定义信号 A1,A2,A3,A4,A5,A6,A7,A8,其中每一位信号均为STD_LOGIC型,2. 定义信号B,其数据类型为STD_LOGIC。,3.定义信号C,数据类型为整数型。,4. 给A、B赋值,其中A的值为11001101;B的值为0。,下面数据类型定义和

9、操作是否正确?signal atmp:STD_LOGIC_VECTOR(7 DOWNTO 0); signal btmp:STD_LOGIC_VECTOR(0 TO 7); signal cint: INTEGER; signal dtmp:STD_LOGIC_VECTOR(15 DOWNTO 0); atmp=cint; atmp=btmp; btmp=dtmp;,Library IEEE,Use ieee.std_logic_1164.all,Signal A: std_logic_vector(1 to 8);,Signal B: std_logic;,Signal C: integer;,A=“11001101”;,B=0;,作业:,P275: 9,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报