首页 VHDL数据类型vhdl语法

VHDL数据类型vhdl语法

举报
开通vip

VHDL数据类型vhdl语法二、VHDL数据类型与数据对象在VHDL程序中,我们经常会遇到这样的语句:SignalA:std_logic;VariableB:std_logic_vector(7downto0);ConstantC:integer;数据对象类型数据类型数据对象名第1页/共41页VHDL语言中的基本数据类型逻辑类型数值类型布尔代数(Boolean)位(Bit)标准逻辑(Std_Logic)整数(Integer)实数(Real)二、VHDL数据类型与数据对象第2页/共41页逻辑数据类型(1)布尔代数(Boolean)型;(2)位(...

VHDL数据类型vhdl语法
二、VHDL数据类型与数据对象在VHDL程序中,我们经常会遇到这样的语句:SignalA:std_logic;VariableB:std_logic_vector(7downto0);ConstantC:integer;数据对象类型数据类型数据对象名第1页/共41页VHDL语言中的基本数据类型逻辑类型数值类型布尔代数(Boolean)位(Bit) 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 逻辑(Std_Logic)整数(Integer)实数(Real)二、VHDL数据类型与数据对象第2页/共41页逻辑数据类型(1)布尔代数(Boolean)型;(2)位(Bit);(3)标准逻辑(Std_logic);typeBITis(‘0’,‘1’);typeBOOLEANis(FALSE,TRUE);二、VHDL数据类型与数据对象第3页/共41页标准逻辑类型 TypeStd_LogicIs(‘U’,--Undefined(未初始化)‘X’,--ForcingUnknown(强未知)‘0’,--Forcing0(强0)‘1’,--Forcing1(强1)‘Z’,--HignImpedance(高阻)‘W’,--WeakUnknown(弱未知)‘L’,--Weak0(弱0)‘H’,--Weak1(弱1) ‘-’,--Don’tCare(忽略))二、VHDL数据类型与数据对象标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整,真实,因此在VHDL程序中,对逻辑信号的定义通常采用标准逻辑类型.第4页/共41页逻辑序列位序列(Bit_Vector) 标准逻辑序列(Std_Logic_Vector)二、VHDL数据类型与数据对象第5页/共41页Signaldata:Std_Logic_Vector(7downto0);Signaladdr:Bit_Vector(0to3);序列的范围大小声明方式: To,Downto序列的使用二、VHDL数据类型与数据对象第6页/共41页序列的分解与合成SignalA:Std_Logic_Vector(3downto0);SignalB:Std_Logic_Vector(0to3);SignalC:Std_Logic_Vector(0to1);SignalD:Std_Logic_Vector(1downto0);C<=A(2downto1);B<=A(3)&D&‘1’;二、VHDL数据类型与数据对象第7页/共41页数值类型(1)整数TypeIntegerIsRange-231~231-1限定整数取值范围的方法:SignalA:Integer;SignalB:IntegerRange0to7;SignalC:IntegerRange-1to1;二、VHDL数据类型与数据对象第8页/共41页无符号数Unsigned与标准逻辑序列相似,声明时必须指明其位数。SignalA:Unsigned(3downto0);SignalB:Unsigned(7downto0);注意:必须使用downto形式。二、VHDL数据类型与数据对象第9页/共41页(2)实数TypeRealIsRange-1.7E38to1.7E38;实数类型的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示可用科学计数形式或者带小数点的形式。二、VHDL数据类型与数据对象第10页/共41页VHDL中的运算符二、VHDL数据类型与数据对象算术运算符:+加-减*乘除**乘方mod求模rem求余abs求绝对值逻辑运算:and逻辑与or逻辑或nand与非nor或非xor异或xnor同或not逻辑非第11页/共41页关系运算符:=等于/=不等于<小于<=小于或等于>大于>=大于或等于注:其中‘<=’操作符也用于表示信号的赋值操作。&连接符,将两个数据对象或矢量连接成维数更大的矢量,它可给代码书写带来方便。例如:vabc=a&b&c;如果a=‘1’,b=‘0’,c=‘1’,则vabc=“101”。二、VHDL数据类型与数据对象第12页/共41页用户自定义数据类型:(1)列举数据类型Type列举名称is(元素1,元素2,…)例子:Typestateis(S0,S1,S2,S3);SignalA:state;二、VHDL数据类型与数据对象第13页/共41页(2)数组类型Type数组名称isArray(范围)of数据类型;例子:TypeByteisArray(7downto0)ofBit;Signalsdo:Byte;二、VHDL数据类型与数据对象第14页/共41页数据类型的转换在VHDL语言里,不同类型的数据信号之间不能互相赋值。当需要不同类型数据之间传递信息时,就需要类型转换函数将其中的一种类型数据转换为另一中数据类型后,再进行信号的传递。二、VHDL数据类型与数据对象第15页/共41页例如:SignalY:Std_logic_vector(7downto0);SignalX:Integerrange0to255;Y<=CONV_STD_LOGIC_VECTOR(X,8);二、VHDL数据类型与数据对象第16页/共41页CONV_INTEGER将数据类型UNSIGNED,SIGNED转换为INTEGER类型.CONV_UNSIGNED将数据类型INTEGER,SIGNED转换为UNSIGNED类型.CONV_SIGNED将数据类型INTEGER,UNSIGNED转换为SIGNED类型.CONV_STD_LOGIC_VECTOR将数据类型INTEGER,UNSIGNED,SIGNED,STD_LOGIC转换为STD_LOGIC_VECTOR类型.二、VHDL数据类型与数据对象第17页/共41页数据对象常量信号变量(DataObjects)二、VHDL数据类型与数据对象第18页/共41页(1)常量定义格式:Constant常量名称:数据类型:=给定值;常量通常来来定义延迟和功耗等参数。注意!常数定义的同时进行赋初值。常数可以在实体说明、结构体描述中使用。二、VHDL数据类型与数据对象第19页/共41页libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;--必需定义+entityexam1isport(ip:instd_logic_vector(3downto0);op:outstd_logic_vector(3downto0));endexam1;architecturem1ofexam1isconstantnum:integer:=6;beginop<=ip+num;endm1;二、VHDL数据类型与数据对象第20页/共41页(2)信号定义格式Signal信号名称:数据类型[:=初始值];信号相当于电路内部元件之间的物理连线,因此信号的赋值有一定的延迟时间.二、VHDL数据类型与数据对象第21页/共41页“信号”数据对象,代表电路内部信号或连接线路,其在元件之间起互连作用。注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。建议信号对象定义后再进行赋值。信号为全局量。在实体说明、结构体描述和程序包说明中使用。信号赋值的语法格式为:信号名<=表达式;如:SignalS1:Std_logic_vector(3Downto0);S1<=“0000”;二、VHDL数据类型与数据对象第22页/共41页(3)变量定义格式Variable变量名称:数据类型[:=初始值];变量只能用于“进程”之中,变量的赋值是立即生效的,常用于高层次抽象的算法描述当中。二、VHDL数据类型与数据对象第23页/共41页“变量”数据对象,它用于对中间数据的临时存储,并不一定代表电路的某一组件。注意!变量定义的时候尽管可以直接赋初值,但系统往往忽略。建议变量对象定义后再进行赋值。变量为局部量。仅限于进程(Process)或子程序中使用。变量赋值的语法格式为:目标变量:=表达式;如:VariableS1:Std_logic_vector(3Downto0);S1:=“0000”;二、VHDL数据类型与数据对象第24页/共41页信号和变量的比较(1)信号和变量的对应关系不同:信号代表电路内部信号或连接线路;而变量则不是。(2)信号和变量声明的位置不同:信号声明在子程序、进程的外部;而变量声明在子程序、进程的内部。(3)信号为全局量,而变量只在定义它的域中才可见。因此,变量不能在两个进程之间传递信息。(4)在一个进程中多次为一个信号赋值时,只有最后一个值会起作用;而变量则不同,每次赋值都会改变它的值。(5)赋值不同。在进程中,信号赋值只有在进程结束时起作用,而变量赋值是立即进行的。而且赋值符号不同:信号赋值为“<=”,变量赋值为“:=”。第25页/共41页数据对象属性(1)数值类属性:(数组类型的数据对象)数值类属性有’left,’right,’low,’high,’length。其中用符号’隔开对象名及其属性。left表示数组的左边界;right表示数组的右边界;low表示数组的下边界;high表示数组的上边界;length表示数组的长度。第26页/共41页如:SignalA:std_logic_vector(7downto0);SignalB:std_logic_vector(0to3);则这两个信号的属性值分别为:A’left=7;A’right=0;A’low=0;A’high=7;A’length=8;B’left=0;B’right=3;B’low=0;B’high=3;B’length=4;数据对象属性第27页/共41页(2)’event属性:’event属性,它的值为布尔型,如果刚好有事件发生在该属性所附着的信号上(即信号有变化),则其取值为True,否则为False。利用此属性可识别时钟信号的变化情况,即时钟是否发生。数据对象属性第28页/共41页例如:时钟边沿表示:signalclk:instd_logic;If(clk’eventandclk=’1’)thenQ<=Q+1;则clk’eventandclk=’1’表示时钟的上升沿。即时钟变化了,且其值为1。clk’eventandclk=’0’表示时钟的下降沿。即时钟变化了,且其值为0。数据对象属性第29页/共41页例2: 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 组合逻辑电路设计一个1bit全加器。输入X,Y,CI输出Z,CO第30页/共41页libraryieee;useieee.std_logic_1164.all;use;use;entityfull_bit_adderisport(a,b,ci:instd_logic;y,cout:outstd_logic);endfull_bit_adder;第31页/共41页architecturebh1offull_bit_adderisbeginy<=((nota)and(notb)andci)or((nota)and(b)and(notci))or((a)and(notb)and(notci))or((a)and(b)and(ci));cout<=(bandci)or(aandci)or(aandb);endbh1;第32页/共41页architecturebh2offull_bit_adderisbeginy<=axorbxorci;cout<=(aandb)or(aandci)or(bandci);endbh2;configurationcon1offull_bit_adderisforbh2endfor;endcon1;第33页/共41页(1)触发器设计DQCPCPDQ无上升沿XQn-10->1000->111D触发器第34页/共41页LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdffISPORT(cp,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff;第35页/共41页ARCHITECTUREaOFdffISBEGINprocess(cp)beginifcp'eventandcp='1'thenq<=d;endif;endprocess;ENDa;第36页/共41页(3)计数器设计计数器CLKQ第37页/共41页LIBRARYieee;USEieee.std_logic_1164.ALL;USE;USE;ENTITYcounterISPORT(clk:inSTD_LOGIC;q:bufferSTD_LOGIC_vector(3downto0));ENDcounter;第38页/共41页ARCHITECTUREaOFcounterISBEGINprocess(clk)beginif(clk'eventandclk='1')thenq<=q+1;endif;endprocess;ENDa;无控制端四位加计数器第39页/共41页ARCHITECTUREaOFcounterISBEGINprocess(clk)beginif(clk'eventandclk='1')thenif(q<9)thenq<=q+1;elseq<="0000";--q<=(others=>’0’);endif;endif;endprocess;ENDa;无控制端10进制计数器第40页/共41页感谢您的观看!第41页/共41页
本文档为【VHDL数据类型vhdl语法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
莉莉老师
暂无简介~
格式:ppt
大小:173KB
软件:PowerPoint
页数:41
分类:
上传时间:2021-11-27
浏览量:1