ImageVerifierCode 换一换
格式:PPT , 页数:112 ,大小:2.09MB ,
资源ID:965668      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/965668.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL语言教程.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VHDL语言教程.ppt

1、3 VHDL语言,VHDL:VHSIC Hardware Description Language.,3.1 VHDL语言基础3.2 VHDL基本结构3.3 VHDL语句3.4 状态机在VHDL中的实现3.5 VHDL3.6 VHDL仿真3.7 VHDL综合,HDL-Hardware Description Language 一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。,优点:HDL设计的电路能获得非常抽象级的描述。如基于RTL(Register Transfer Level)描述的IC,可用于不同的工艺。

2、HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。HDL设计的电路类似于计算机编程。,常用的HDL语言:VHDL、Verilog HDL,VHDL是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC计划提出的描述语言;IEEE从1986年开始致力于VHDL标准化工作,融合了其它ASIC芯片制造商开发的硬件描述语言的优点,于93年形成了标准版本(IEEE.std_1164)。1995年,我国国家技术监督局推荐VHDL做为电子设计自动化硬件描述语言的国家标准。,VHDL 概述:,覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言;VHDL语言具有良好的可读性,既可以

3、被计算机接受,也容易被人们所理解;VHDL语言可以与工艺无关编程;VHDL语言已做为一种IEEE的工业标准,便于使用、交流和推广。,VHDL优点:,设计的最终实现取决于针对目标器件的编程器,工具的不同会导致综合质量不一样。,3.1.1 标识符(Identifiers),要求:首字符必须是字母 末字符不能为下划线 不允许出现两个连续的下划线 不区分大小写 VHDL定义的保留字(关键字),不能用作标识符 标识符字符最长可以是32个字符。,注释由两个连续的虚线()引导。,3.1 VHDL语言基础,标识符用来定义常数、变量、信号、端口、子程序或参数的名字,由字母(AZ,az)、数字(09)和下划线(_

4、)字符组成。,例如:ABS,ACCESS,AFTER,ALL,AND,ARCHITECTURE,ARRAY,ATTRIBUTE,BEGIN,BODY,BUFFER,BUS,CASE,COMPONENT,CONSTANT,DISCONNECT,DOWNTO,ELSE,ELSIF,END,ENTITY,EXIT,FILE,FOR,FUNCTION,GENERIC,GROUP,IF,INPURE,IN,INOUT,IS,LABEL,LIBRARY,LINKAGE,LOOP,MAP,MOD,NAND,NEW,NEXT,NOR,NOT,NULL,OF,ON,OPEN,OR,OTHERS,OUT,PACK

5、AGE,POUT,PROCEDURE,PROCESS,PURE,RANGE,RECODE,REM,REPORT,RETURN,ROL,ROR,SELECT,SHARED,SIGNAL,SLA,SLL,SRA,SUBTYPE,THEN,TRANSPORT,TO,TYPE,UNAFFECTED,UNITS,UNTIL,USE,VARIABLE,WAIT,WHEN,WHILE,WITH,XOR,XNOR,关键字(保留字):,关键字(keyword)是VHDL中具有特别含义的单词,只能做为固定的用途,用户不能用其做为标识符。,3.1.2 数据对象(Date Objects),常量Constant,Co

6、nstant bus_width:integer:=8;-定义总线宽度为常数8,数据对象包括常量、变量、信号和文件四种类型。,常量是对某一常量名赋予一个固定的值,而且只能赋值一次。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。,Constant 常数名:数据类型:表达式,Constant Vcc:real:=5.0;-定义Vcc的数据类型是实数,赋值为5.0V,常量所赋的值应和定义的数据类型一致;,常量在程序包、实体、构造体或进程的说明性区域内必须加以说明。定义在程序包内的常量可供所含的任何实体、构造体所引用,定义在实体说明内的常量只能在该实体内可见,定义在进程说明性区域中的常量

7、只能在该进程内可见。,Variable 变量名:数据类型:初始值;,Variable count:integer 0 to 255:=20;-定义count整数变量,变化 范围0255,初始值为20。,变量Variable,变量只能在进程语句、函数语句和过程语句结构中使用。变量的赋值是直接的,非预设的,分配给变量的值立即成为当前值,变量不能表达“连线”或存储元件,不能设置传输延迟量。,变量赋值语句:目标变量名:=表达式;,变量定义语句:,x:=10.0;-实数变量赋值为10.0Y:=1.5+x;-运算表达式赋值,注意表达式必须与目标变量的数据类型相同A(3 to 6):=(“1101”);-位

8、矢量赋值,Signal 信号名:数据类型:初始值,Signal clock:bit:=;-定义时钟信号类型,初始值为0,信号Signal,信号表示逻辑门的输入或输出,类似于连接线,也可以表达存储元件的状态。信号通常在构造体、程序包和实体中说明。,信号定义语句:,Signal count:BIT_VECTOR(3 DOWNTO 0);-定义count为4位位矢量,信号赋值语句:目标信号名=表达式;,x=9;Z=x after 5 ns;-在5ns后将x的值赋予z,3.1.2 数据类型,布尔:(Boolean),位:(Bit)TYPE BIT IS(0,1);-取值为0和1,用于逻辑运算,位矢量:

9、(Bit_Vector)TYPE BIT_VECTOR IS ARRAY(Natural range)OF BIT;-基于Bit类型的数 组,用于逻辑运算 SIGNAL a:Bit_Vector(0 TO 7);SIGNAL a:Bit_Vector(7 DOWNTO 0),VHDL的预定义数据类型,在VHDL标准程序包STANDARD中定义好,实际使用过程中,已自动包含进VHDL源文件中,不需要通过USE语句显式调用。,TYPE BOOLEAN IS(FALSE,TRUE);-取值为FALSE和TRUE,不是数值,不 能运算,一般用于关系运算符,整数:(Integer)取值范围-(231-1

10、)(231-1),可用32位有符号的二进制数表示 variable a:integer range-63 to 63 在实际应用中,VHDL仿真器将Integer做为有符号数处理,而VHDL综合器将Integer做为无符号数处理;要求用RANGE子句为所定义的数限定范围,以便根据范围来决定表示此信号或变量的二进制数的位数。,字符:(Character)TYPE CHARACTER IS(NUL,SOH,STX,!,);-通常用引起 来,区分大小写;,字符串:(String)VARIABLE string_var:STRING(1 TO 7);string_var:=“A B C D”;-通常用

11、“”引起来,区分大小写;,实数:(Real)取值范围-1.0E38+1.0E38,仅用于仿真不可综合 1.0-十进制浮点数 843.6e+4-八进制浮点数 43.6E-4-十进制浮点数,时间:(Time)物理量数据,完整的包括整数和单位两个部分,用至少一个空格隔开,仅用于仿真不可综合;fs,ps,ns,us,ms,sec,min,hr,错误等级(Severity Level):表示系统状态,仅用于仿真不可综合;TYPE severity_level IS(NOTE、WARNING、ERROR、FAILURE);,IEEE预定义标准逻辑位与矢量,标准逻辑位(Std_Logic),标准逻辑位矢量(

12、Std_Logic_vector),基于Std_Logic类型的数组;,使用Std_Logic和 Std_Logic_Vector要调用IEEE库中的Std_Logic_1164 程序包;就综合而言,能够在数字器件中实现的是“、0、1、Z”四种状态。在条件语句中,必须要全面考虑Std_Logic的所有可能取值情况,否则综合器可能会插入不希望的锁存器。,U:Uninitialized;X:Forcing Unkown;0:Forcing 0 1:Forcing 1 Z:High Impedance W:Weak UnknownL:Weak 0 H:Weak 1:Dont care,枚举:type

13、 states is(idle,decision,read,write);type boolean is(false,true);type bit is(0,1);,数组:type value_type is array(127 downto 0)of integer;type matrix_type is array(0 to 15,0 to 31)of std_logic;,用户自定义,TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 或 TYPE 数据类型名 IS 数据类型定义,SUBTYPE 子类型名 IS 基本数据类型定义 RANGE 约束范围,subtype digit

14、 is integer range 0 to 9;,3.1.3 数据类型转换,VHDL为强定义类型语言,不同类型的数据不能进行运算和直接赋值。,类型标记法,Variable A:integer;Variable B:real;A=integer(B);B=real(A);,函数法,Conv_interger(A);-由std_logic转换为integer型,在std_logic_unsigned包。,常数转换法/常量转换法,Type conv_table is array(std_logic)of bit;Constant table:conv_table:=(0|L=0,1|H=1,oth

15、ers=0);Signal a:bit;signal b:std_logic;A=table(b);-将std_logic型转换为bit型,具有转换表性质的常数,在“STD_LOGIC_1164”、“STD_LOGIC_ARITH”和“STD_LOGIC_UNSIGNED”的程序包中提供的数据类型变换函数。,属性,属性提供的是关于信号、类型等的指定特性。,event:若属性对象有事件发生,则生成布尔值“true”,常用来检查时钟边沿是否有效。,上升沿:Clock EVENT AND Clock=1,range:生成一个限制性数组对象的范围,left:生成数据类型或数据子类型的左边界值;,rig

16、ht,high,low,length,range:“0 to n”;reverse_range:“n downto 0”,运算符,算术运算符:,*,/,MOD,REM,SLL,SRL,SLA,SRA,ROL,ROR,*,ABS,关系运算符:,/,=,逻辑运算符:AND,OR,NAND,NOR,XNOR,NOT,XOR,赋值运算符:=,:=,关联运算符:=,其他运算符:,&,并置操作符,SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a=10d(1)1;-元素与元素并置,并置后的数组长度为4.IF a d=101011 THEN.-在IF条件句中可以使用并置符,运算符优先级别,逻辑、算术运算符(NOT,*,ABS),乘法运算符(/,MOD,REM,*),正负运算符:,,加减、并置运算符:,&,关系运算符:,/,=,逻辑运算符:AND,OR,NAND,NOR,XNOR,NOT,XOR,移位运算符的左边为一维数组,其类型必须是BIT或BOOLEAN,右边必须是整数移位次数为整数的绝对值。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1