




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL数据类型,FPGA应用技术,二、VHDL数据类型与数据对象,在VHDL程序中,我们经常会遇到这样的语句:SignalA:std_logic;VariableB:std_logic_vector(7downto0);ConstantC:integer;,数据对象类型,数据类型,数据对象名,VHDL语言中的基本数据类型,逻辑类型,数值类型,布尔代数(Boolean),位(Bit),标准逻辑(Std_Logic),整数(Integer),实数(Real),二、VHDL数据类型与数据对象,逻辑数据类型,(1)布尔代数(Boolean)型;(2)位(Bit);(3)标准逻辑(Std_logic);,typeBITis(0,1);,typeBOOLEANis(FALSE,TRUE);,二、VHDL数据类型与数据对象,标准逻辑类型TypeStd_LogicIs(U,-Undefined(未初始化)X,-ForcingUnknown(强未知)0,-Forcing0(强0)1,-Forcing1(强1)Z,-HignImpedance(高阻)W,-WeakUnknown(弱未知)L,-Weak0(弱0)H,-Weak1(弱1)-,-DontCare(忽略)),二、VHDL数据类型与数据对象,标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整,真实,因此在VHDL程序中,对逻辑信号的定义通常采用标准逻辑类型,逻辑序列,位序列(Bit_Vector),标准逻辑序列(Std_Logic_Vector),二、VHDL数据类型与数据对象,Signaldata:Std_Logic_Vector(7downto0);Signaladdr:Bit_Vector(0to3);,序列的范围大小声明方式:To,Downto,序列的使用,二、VHDL数据类型与数据对象,序列的分解与合成SignalA:Std_Logic_Vector(3downto0);SignalB:Std_Logic_Vector(0to3);SignalC:Std_Logic_Vector(0to1);SignalD:Std_Logic_Vector(1downto0);C=A(2downto1);B=大于或等于注:其中=操作符也用于表示信号的赋值操作。,SignalA:state;,二、VHDL数据类型与数据对象,(2)数组类型Type数组名称isArray(范围)of数据类型;例子:TypeByteisArray(7downto0)ofBit;Signalsdo:Byte;,二、VHDL数据类型与数据对象,数据类型的转换在VHDL语言里,不同类型的数据信号之间不能互相赋值。当需要不同类型数据之间传递信息时,就需要类型转换函数将其中的一种类型数据转换为另一中数据类型后,再进行信号的传递。,二、VHDL数据类型与数据对象,例如:SignalY:Std_logic_vector(7downto0);SignalX:Integerrange0to255;Y=CONV_STD_LOGIC_VECTOR(X,8);,二、VHDL数据类型与数据对象,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数据类型与数据对象,数据对象,常量,信号,变量,(DataObjects),二、VHDL数据类型与数据对象,(1)常量定义格式:Constant常量名称:数据类型:=给定值;常量通常来来定义延迟和功耗等参数。注意!常数定义的同时进行赋初值。常数可以在实体说明、结构体描述中使用。,二、VHDL数据类型与数据对象,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数据类型与数据对象,(2)信号定义格式Signal信号名称:数据类型:=初始值;信号相当于电路内部元件之间的物理连线,因此信号的赋值有一定的延迟时间.,二、VHDL数据类型与数据对象,“信号”数据对象,代表电路内部信号或连接线路,其在元件之间起互连作用。,注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。建议信号对象定义后再进行赋值。,信号为全局量。,在实体说明、结构体描述和程序包说明中使用。,信号赋值的语法格式为:信号名=表达式;如:SignalS1:Std_logic_vector(3Downto0);S1=“0000”;,二、VHDL数据类型与数据对象,(3)变量定义格式Variable变量名称:数据类型:=初始值;变量只能用于“进程”之中,变量的赋值是立即生效的,常用于高层次抽象的算法描述当中。,二、VHDL数据类型与数据对象,“变量”数据对象,它用于对中间数据的临时存储,并不一定代表电路的某一组件。,注意!变量定义的时候尽管可以直接赋初值,但系统往往忽略。建议变量对象定义后再进行赋值。,变量为局部量。,仅限于进程(Process)或子程序中使用。,变量赋值的语法格式为:目标变量:=表达式;如:VariableS1:Std_logic_vector(3Downto0);S1:=“0000”;,二、VHDL数据类型与数据对象,信号和变量的比较,(1)信号和变量的对应关系不同:信号代表电路内部信号或连接线路;而变量则不是。,(2)信号和变量声明的位置不同:信号声明在子程序、进程的外部;而变量声明在子程序、进程的内部。,(3)信号为全局量,而变量只在定义它的域中才可见。因此,变量不能在两个进程之间传递信息。,(4)在一个进程中多次为一个信号赋值时,只有最后一个值会起作用;而变量则不同,每次赋值都会改变它的值。,(5)赋值不同。在进程中,信号赋值只有在进程结束时起作用,而变量赋值是立即进行的。而且赋值符号不同:信号赋值为“=”,变量赋值为“:=”。,数据对象属性,(1)数值类属性:(数组类型的数据对象)数值类属性有left,right,low,high,length。其中用符号隔开对象名及其属性。left表示数组的左边界;right表示数组的右边界;low表示数组的下边界;high表示数组的上边界;length表示数组的长度。,如:SignalA:std_logic_vector(7downto0);SignalB:std_logic_vector(0to3);则这两个信号的属性值分别为:Aleft=7;Aright=0;Alow=0;Ahigh=7;Alength=8;Bleft=0;Bright=3;Blow=0;Bhigh=3;Blength=4;,数据对象属性,(2)event属性:event属性,它的值为布尔型,如果刚好有事件发生在该属性所附着的信号上(即信号有变化),则其取值为True,否则为False。利用此属性可识别时钟信号的变化情况,即时钟是否发生。,数据对象属性,例如:时钟边沿表示:signalclk:instd_logic;If(clkeventandclk=1)thenQ=Q+1;则clkeventandclk=1表示时钟的上升沿。即时钟变化了,且其值为1。clkeventandclk=0表示时钟的下降沿。即时钟变化了,且其值为0。,数据对象属性,例2:设计组合逻辑电路,设计一个1bit全加器。输入X,Y,CI输出Z,CO,libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityfull_bit_adderisport(a,b,ci:instd_logic;y,cout:outstd_logic);endfull_bit_adder;,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;,architecturebh2offull_bit_adderisbeginy=axorbxorci;cout=(aandb)or(aandci)or(bandci);endbh2;configurationcon1offull_bit_adderisforbh2endfor;endcon1;,(1)触发器设计,DQCP,D触发器,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdffISPORT(cp,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff;,ARCHITECTUREaOFdffISBEGINprocess(cp)beginifcpeventandcp=1thenq=d;endif;endprocess;ENDa;,(3)计数器设计,计数器,CLK,Q,LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.ALL;ENTITYcounterISPORT(clk:inSTD_LOGIC;q:bufferSTD_LOGIC_vector(3downto0);ENDcounter;,ARC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柑橘售卖协议书
- 柯南结婚协议书
- 2025年物流专业知识笔试题及答案
- 2025年人员素质类试题及答案
- 2025年中医辨识试题及答案
- 2025年幼儿园人性测试题及答案
- 2025年产科学基础试题及答案
- 城市快速路建设项目社会稳定风险评估与风险评估指标体系构建与评估报告
- 土壤污染修复技术在重金属污染土壤中的应用效果评估报告
- 标准岗位协议书
- 《消毒供应室》课件
- 汽车产业园运营规划方案
- 开发建设项目水土保持方案编报审批管理规定
- 谈判的技巧和原则
- 招商规划方案推进智慧农业
- 2022年齐齐哈尔克山县公安局招聘警务辅助人员考试真题
- SMT-炉温锡膏标准曲线图
- 《饮用水卫生》课件
- 创伤严重程度(AIS)(ISS)评分表(完整版)
- 仓储业务基础知识培训课件
- 新鸿基地产员工手册参考
评论
0/150
提交评论