欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VHDL数据类型(vhdl语法).ppt

    • 资源ID:5452188       资源大小:307.49KB        全文页数:41页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VHDL数据类型(vhdl语法).ppt

    VHDL数据类型,FPGA应用技术,二、VHDL数据类型与数据对象,在VHDL程序中,我们经常会遇到这样的语句:Signal A:std_logic;Variable B:std_logic_vector(7 downto 0);Constant C:integer;,数据对象类型,数据类型,数据对象名,VHDL语言中的基本数据类型,逻辑类型,数值类型,布尔代数(Boolean),位(Bit),标准逻辑(Std_Logic),整数(Integer),实数(Real),二、VHDL数据类型与数据对象,逻辑数据类型,(1)布尔代数(Boolean)型;(2)位(Bit);(3)标准逻辑(Std_logic);,type BIT is(0,1);,type BOOLEAN is(FALSE,TRUE);,二、VHDL数据类型与数据对象,标准逻辑类型Type Std_Logic Is(U,-Undefined(未初始化)X,-Forcing Unknown(强未知)0,-Forcing 0(强0)1,-Forcing 1(强1)Z,-Hign Impedance(高阻)W,-Weak Unknown(弱未知)L,-Weak 0(弱0)H,-Weak 1(弱1)-,-Dont Care(忽略)),二、VHDL数据类型与数据对象,标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整,真实,因此在VHDL程序中,对逻辑信号的定义通常采用标准逻辑类型,逻辑序列,位序列(Bit_Vector),标准逻辑序列(Std_Logic_Vector),二、VHDL数据类型与数据对象,Signal data:Std_Logic_Vector(7 downto 0);Signal addr:Bit_Vector(0 to 3);,序列的范围大小声明方式:To,Downto,序列的使用,二、VHDL数据类型与数据对象,序列的分解与合成Signal A:Std_Logic_Vector(3 downto 0);Signal B:Std_Logic_Vector(0 to 3);Signal C:Std_Logic_Vector(0 to 1);Signal D:Std_Logic_Vector(1 downto 0);C=A(2 downto 1);B=A(3),二、VHDL数据类型与数据对象,数值类型(1)整数 Type Integer Is Range-231 231-1限定整数取值范围的方法:Signal A:Integer;Signal B:Integer Range 0 to 7;Signal C:Integer Range-1 to 1;,二、VHDL数据类型与数据对象,无符号数 Unsigned与标准逻辑序列相似,声明时必须指明其位数。Signal A:Unsigned(3 downto 0);Signal B:Unsigned(7 downto 0);注意:必须使用downto形式。,二、VHDL数据类型与数据对象,(2)实数 Type Real Is Range-1.7E38 to 1.7E38;实数类型的表示可用科学计数形式或者带小数点的形式。,二、VHDL数据类型与数据对象,VHDL中的运算符,二、VHDL数据类型与数据对象,算术运算符:+加-减*乘/除*乘方mod求模 rem求余 abs求绝对值,逻辑运算:and 逻辑与or逻辑或nand与非nor 或非xor 异或xnor同或not 逻辑非,关系运算符:=等于/=不等于大于=大于或等于注:其中=操作符也用于表示信号的赋值操作。,&连接符,将两个数据对象或矢量连接成维数更大的矢量,它可给代码书写带来方便。例如:vabc=a&b&c;如果a=1,b=0,c=1,则 vabc=“101”。,二、VHDL数据类型与数据对象,用户自定义数据类型:(1)列举数据类型Type 列举名称 is(元素1,元素2,)例子:Type state is(S0,S1,S2,S3);Signal A:state;,二、VHDL数据类型与数据对象,(2)数组类型Type 数组名称 is Array(范围)of 数据类型;例子:Type Byte is Array(7 downto 0)of Bit;Signal sdo:Byte;,二、VHDL数据类型与数据对象,数据类型的转换 在VHDL语言里,不同类型的数据信号之间不能互相赋值。当需要不同类型数据之间传递信息时,就需要类型转换函数将其中的一种类型数据转换为另一中数据类型后,再进行信号的传递。,二、VHDL数据类型与数据对象,例如:Signal Y:Std_logic_vector(7 downto 0);Signal X:Integer range 0 to 255;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数据类型与数据对象,数据对象,常 量,信 号,变 量,(Data Objects),二、VHDL数据类型与数据对象,(1)常量定义格式:Constant 常量名称:数据类型:=给定值;常量通常来来定义延迟和功耗等参数。注意!常数定义的同时进行赋初值。常数可以在实体说明、结构体描述中使用。,二、VHDL数据类型与数据对象,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-必需定义+entity exam1 is port(ip:in std_logic_vector(3 downto 0);op:out std_logic_vector(3 downto 0);end exam1;architecture m1 of exam1 isconstant num:integer:=6;beginop=ip+num;end m1;,二、VHDL数据类型与数据对象,(2)信号定义格式Signal 信号名称:数据类型:=初始值;信号相当于电路内部元件之间的物理连线,因此信号的赋值有一定的延迟时间.,二、VHDL数据类型与数据对象,“信号”数据对象,代表电路内部信号或连接线路,其在元件之间起互连作用。,注意!信号定义的时候尽管可以直接赋初值,但系统往往忽略。建议信号对象定义后再进行赋值。,信号为全局量。,在实体说明、结构体描述和程序包说明中使用。,信号赋值的语法格式为:信号名=表达式;如:Signal S1:Std_logic_vector(3 Downto 0);S1=“0000”;,二、VHDL数据类型与数据对象,(3)变量定义格式Variable 变量名称:数据类型:=初始值;变量只能用于“进程”之中,变量的赋值是立即生效的,常用于高层次抽象的算法描述 当中。,二、VHDL数据类型与数据对象,“变量”数据对象,它用于对中间数据的临时存储,并不一定代表电路的某一组件。,注意!变量定义的时候尽管可以直接赋初值,但系统往往忽略。建议变量对象定义后再进行赋值。,变量为局部量。,仅限于进程(Process)或子程序中使用。,变量赋值的语法格式为:目标变量:=表达式;如:Variable S1:Std_logic_vector(3 Downto 0);S1:=“0000”;,二、VHDL数据类型与数据对象,信号和变量的比较,(1)信号和变量的对应关系不同:信号代表电路内部信号或连接线路;而变量则不是。,(2)信号和变量声明的位置不同:信号声明在子程序、进程的外部;而变量声明在子程序、进程的内部。,(3)信号为全局量,而变量只在定义它的域中才可见。因此,变量不能在两个进程之间传递信息。,(4)在一个进程中多次为一个信号赋值时,只有最后一个值会起作用;而变量则不同,每次赋值都会改变它的值。,(5)赋值不同。在进程中,信号赋值只有在进程结束时起作用,而变量赋值是立即进行的。而且赋值符号不同:信号赋值为“=”,变量赋值为“:=”。,数据对象属性,(1)数值类属性:(数组类型的数据对象)数值类属性有 left,right,low,high,length。其中用符号 隔开对象名及其属性。left表示数组的左边界;right表示数组的右边界;low表示数组的下边界;high表示数组的上边界;length表示数组的长度。,如:Signal A:std_logic_vector(7 downto 0);Signal B:std_logic_vector(0 to 3);则这两个信号的属性值分别为: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。利用此属性可识别时钟信号的变化情况,即时钟是否发生。,数据对象属性,例如:时钟边沿表示:signal clk:in std_logic;If(clkevent and clk=1)then Q=Q+1;则clkevent and clk=1表示时钟的上升沿。即时钟变化了,且其值为1。clkevent and clk=0表示时钟的下降沿。即时钟变化了,且其值为0。,数据对象属性,例2:设计组合逻辑电路,设计一个1bit全加器。输入 X,Y,CI 输出 Z,CO,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity full_bit_adder isport(a,b,ci:in std_logic;y,cout:out std_logic);end full_bit_adder;,architecture bh1 of full_bit_adder isbegin y=(not a)and(not b)and ci)or(not a)and(b)and(not ci)or(a)and(not b)and(not ci)or(a)and(b)and(ci);cout=(b and ci)or(a and ci)or(a and b);end bh1;,architecture bh2 of full_bit_adder isbegin y=a xor b xor ci;cout=(a and b)or(a and ci)or(b and ci);end bh2;configuration con1 of full_bit_adder isfor bh2end for;end con1;,(1)触发器设计,D QCP,D触发器,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff ISPORT(cp,d:IN STD_LOGIC;q:OUT STD_LOGIC);END dff;,ARCHITECTURE a OF dff ISBEGINprocess(cp)beginif cpevent and cp=1 thenq=d;end if;end process;END a;,(3)计数器设计,计数器,CLK,Q,LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.ALL;ENTITY counter ISPORT(clk:in STD_LOGIC;q:buffer STD_LOGIC_vector(3 downto 0);END counter;,ARCHITECTURE a OF counter ISBEGIN process(clk)begin if(clkevent and clk=1)then q=q+1;end if;end process;END a;,无控制端四位加计数器,ARCHITECTURE a OF counter ISBEGIN process(clk)begin if(clkevent and clk=1)then if(q0);end if;end if;end process;END a;,无控制端10进制计数器,

    注意事项

    本文(VHDL数据类型(vhdl语法).ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开