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

    电子设计自动化第二讲.ppt

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

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

    电子设计自动化第二讲.ppt

    电子与通信工程系,上节回顾,FPGA设计流程使用Quartus II进行原理图设计VHDL,电子与通信工程系,2,第2章 VHDL程序编程基础,2.1、VHDL特点,2.2、VHDL语言程序的基本结构,2.3、VHDL语言的数据类型及运算操作符,2.4、VHDL语法基础,2.5、属性的描述与定义,电子与通信工程系,3,VHDL的优点:,用于设计复杂的、多层次的设计。支持设计库和设计的重复使用,与硬件独立,一个设计可用于不同的硬件结构,而且设计时不必了解过多的硬件细节。,有丰富的软件支持VHDL的综合和仿真,从而能在设计阶段就能发现设计中的Bug,缩短设计时间,降低成本。,VHDL有良好的可读性,容易理解。,电子与通信工程系,4,硬件描述语言(HDL)与计算机语言的区别,运行的基础 计算机语言是在CPURAM构建的平台上运行 HDL设计的结果是由具体的逻辑、触发器组成的数字电路,执行方式 计算机语言基本上以串行的方式执行 HDL在总体上是以并行方式工作,验证方式 计算机语言主要关注于变量值的变化 HDL要实现严格的时序逻辑关系,电子与通信工程系,5,-eqcomp4 is a four bit equality comparatorLibrary IEEE;use IEEE.std_logic_1164.all;entity eqcomp4 isport(a,b:in std_logic_vector(3 downto 0);equal:out std_logic);end eqcomp4;architecture dataflow of eqcomp4 isbegin equal=1 when a=b else 0;End dataflow;,VHDL 大小写不敏感,eqcomp4.vhd,包,实体,结构体,文件名和实体名一致,每行;结尾,关键字begin,关键字end后跟实体名,关键字end后跟结构体名,库,类型,设计实体,电子与通信工程系,6,2.2、VHDL语言程序的基本结构,一个完整的VHDL语言程序通常包含五个部分:,实体(Entity),结构体(Architecture),配置(Configuration),包集合(Package),库(Library),(课本P225),电子与通信工程系,结构体(architecture),begin,end,Data Flow 描述,Behavior 描述,Structure 描述,配置(Configuration),描述或设计硬件电路的区域,选择采用的结构体和实体,数据流描述,行为描述,结构描述,不可视部分,可视部分和端口,2.2、VHDL语言程序的基本结构,(课本P225),电子与通信工程系,8,前面的例子,设计实体是VHDL语言设计的基本单元,是最重要的系统抽象。,设计实体由实体说明和结构体两部分组成,定义了设计单元的具体构造和操作,规定了设计单元的输入输出接口信号或引脚,Entity Declaration,Architecture Body,2.2.1 设计实体(design entity),电子与通信工程系,9,实体说明的一般格式如下:,文件名和实体名一致!,ENTITY 实体名 IS GENERIC(参数传递说明语句);PORT(端口说明);实体说明部分;END ENTITY 实体名;,2.2.2 实体说明,电子与通信工程系,10,端口说明,端口为设计实体和其外部环境的动态通信提供通道,是对基本设计实体与外部接口的描述。,PORT(端口名:端口模式 数据类型);,(1)端口名,端口名是赋予每个外部引脚的名称,常用书写格式为:,电子与通信工程系,11,(2)端口模式,端口模式用来说明数据、信号通过该端口的方向。,LINKAGE(不指定方向,无论哪个方向都可连接)。日常设计请不要使用BUFFER和LINKAGE,VHDL语言提供了下述端口模式:,IN(流入实体),,OUT(流出实体),,INOUT(双向端口:既可流入,又可流出),,BUFFER(信号输出到外部,但同时也可在实体内部反馈),,(课本P67),电子与通信工程系,12,(3)数据类型,VHDL语言中有10种数据类型,IEEE1076/93标准规定,EDA综合工具提供的数据类型为布尔型(Boolean)、位型(Bit)、位矢量型(Bit_vector)和整数型(Integer)。,实际中,常用的数据类型为:STD_LOGIC STD_LOGIC_VECTOR,(课本P71),电子与通信工程系,13,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY deco ISPORT(clock:IN STD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END deco;clock为输入,STD_LOGIC型q为输出,STD_LOGIC_VECTOR型8位总线,最高位q7,最低位q0也可以q:OUTSTD_LOGIC_VECTOR(0 TO 7),前面的例子,无;,电子与通信工程系,14,结构体描述一个设计的结构或行为,用VHDL语言描述结构体功能有3种方法:,(1)行为描述法(behavioral):,(2)数据流描述法(RTL or dataflow):,(3)结构描述法(structural):,2.2.3 结构体,(课本P68、P229),电子与通信工程系,15,例如:,ARCHITECTURE mux21_arch OF mux21 ISBEGIN y=a when s=0 else b;END ARCHITECTURE mux21_arch;,结构体的常用书写格式为:,ARCHITECTURE 结构体名 OF 实体名 IS-说明语句(用于对信号和常量进行声明)BEGIN-功能描述语句END ARCHITECTURE 结构体名;,电子与通信工程系,16,ARCHITECTURE deco_arch OF deco ISBEGIN WITH num SELECTq=00111111 WHEN 0000,00000110 WHEN 0001,01011011 WHEN 0010,01001111 WHEN 0011,01100110 WHEN 0100,01101101 WHEN 0101,01111101 WHEN 0110,00100111 WHEN 0111,01111111 WHEN 1000,01101111 WHEN 1001,00000000 WHEN OTHERS;END deco_arch;,电子与通信工程系,17,1结构体名称的命名,结构体的名称可自由命名,但通常命名为behavioral 行为描述(数学模型描述);dataflow(RTL)数据流描述(寄存器传输描述);structural 结构描述(逻辑元件单元连接描述)。,ARCHITECTURE behavioral OF mux IS 用结构体行为命名ARCHITECTURE dataflow OF mux IS 用结构体的数据流命名ARCHITECTURE structural OF mux IS 用结构体的组织结构命名,2定义语句,用于对结构体内部所使用的信号、常数、数据类型和函数进行定义。,电子与通信工程系,ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b;END ARCHITECTURE one;,实体说明,结构体,设计实体与结构体的关系,图4-1 mux21a实体,图4-2 mux21a结构体,2选1多路选择器的VHDL描述,电子与通信工程系,19,2.3、VHDL语言的数据类型及运算操作符,VHDL语言的标识符是遵守以下规则的字符序列:,(1)有效字符:(AZ,az)、(09)和(_)。,(2)必须以英文字母打头。,(3)下划线前后必须都有英文字母或数字。,(4)标识符不区分大小写。,下面是合法的标识符:,pulse_100ms Pulse_100ms PULSE_100MS,下面是不合法的标识符:,pulse-100ms 2pulse_100ms _pulse_100ms pulse_100ms_,2.3.1 标识符,(课本P247),电子与通信工程系,20,在VHDL语言中对象包括以下3种:信号(Signal)、变量(Variable)和常数(Constant)。(课本P127),1.常数(Constant),CONSTANT 常数名:数据类型:=表达式;,例如:CONSTANT DELAY:time:=100ns;,常数说明的一般格式如下:,固定值,不能在程序中被改变增强程序的可读性,便于修改程常数是一个全局量。,2.3.2 VHDL语言的对象及其分类,SYN,constant writeDDRAM:std_logic_vector(4 downto 0):=10001;,电子与通信工程系,2.信号(Signals),代表连线,Port也是一种信号 没有方向性,可给它赋值,也可当作输入 在Package、Entity、Architecture中定义用=进行赋值目标信号名=表达式AFTER 时间量;用:=进行初始化设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。signal count:bit_vector(3 downto 0):=“0011”;,电子与通信工程系,3.变量(Variable),临时数据,没有物理意义 只能在Process、Function、Procedure中定义,并只在其内部有效,要使其全局有效,先转换为Signal。用:=进行赋值 用:=进行初始化 variable result:std_logic:=0;,电子与通信工程系,变量与信号的区别,电子与通信工程系,24,2.信号(Signal),SIGNAL 信号名:数据类型 约束条件:=表达式;,例如:SIGNAL ground:std_logic:=;,信号说明语句的一般格式为:,用于VHDL中元件之间的通讯通常对应实际系统中的连线端口也是一种特殊的信号信号赋值需要 延时周期后才生效在Package、Entity、Architecture中定义,不能在process内声明信号是一个全局量,电子与通信工程系,25,3.变量(Variable),VARIABLE 变量名:数据类型 约束条件:=表达式;,例如:VARIABLE x,y,z:INTEGER;,变量说明语句的一般格式为:,变量只能在进程语句、函数语句和过程语句结构中使用,是一个局部量。变量在赋值时不能产生附加延时。通常暂存一些信号。要使其全局有效,先转换为Signal。,variable count:integer range 0 to 255:=10;,SYN,电子与通信工程系,信号与变量赋值,【例6-1】.ARCHITECTURE bhv OF DFF3 ISBEGINPROCESS(CLK)VARIABLE QQ:STD_LOGIC;BEGINIF CLKEVENT AND CLK=1 THEN QQ:=D1;END IF;END PROCESS;Q1=QQ;END;,电子与通信工程系,信号与变量赋值,【例6-2】.ARCHITECTURE bhv OF DFF3 ISSIGNAL QQ:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN QQ=D1;END IF;END PROCESS;Q1=QQ;END;,电子与通信工程系,信号与变量赋值(差异),【例6-3】ARCHITECTURE bhv OF DFF3 ISSIGNAL A,B:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENA=D1;B=A;Q1=B;END IF;END PROCESS;END;,电子与通信工程系,信号与变量赋值(差异),【例6-4】.ARCHITECTURE bhv OF DFF3 ISBEGINPROCESS(CLK)VARIABLE A,B:STD_LOGIC;BEGINIF CLKEVENT AND CLK=1 THENA:=D1;B:=A;Q1=B;END IF;END PROCESS;END;,电子与通信工程系,30,2.3.3 VHDL语言的数据类型,VHDL语言标准定义了10种标准的数据类型,还可以由用户自定义数据类型,VHDL语言的数据类型的定义相当严格,不同类型之间的数据不能直接代入,数据类型相同,而位长不同时也不能直接代入。,1VHDL语言标准所定义的标准数据类型,整数(Integer)实数(Real)位(Bit)位矢量(Bit_Vector)布尔量(Boolean),(课本P249),电子与通信工程系,31,字符(Character)字符串(String)时间(Time)错误等级(Severity Level)自然数(Natural)、正整数(Positive),(1)整数(Integer),整数的表示范围从(2311)到(2311),VARIABLE A:INTEGER RANGE 127 TO 127;,(2)实数(Real),定义值范围为-1.0E+38到+1.0E+38,例如:+2.0,-2.5,+1.0E38,SYN,例子,电子与通信工程系,32,(3)位(Bit),位值的表示方法是,用字符 0 或者 1(将值放在单引号中)表示,(4)位矢量(Bit_Vector),位矢量是用双引号括起来的一组位数据。,例如:001010,(5)布尔量(Boolean),它能进行关系运算。一个布尔量常用来表示信号的状态或者总线上的情况。,一般这一类型的数据的初始值总为FALSE。,SYN,SYN,SYN,电子与通信工程系,33,(6)字符(Character),字符量通常用单引号括起来,如 T,I。,(7)字符串(String),字符串是由双引号括起来的一个字符序列,也称字符矢量或字符串数组,例如:“STRING”,“INTEGER RANGE”,(8)时间(Time),时间是一个物理量数据。时间类型一般用于仿真,而不用于逻辑综合。,例如:55 sec,2 min,SYN,SYN,电子与通信工程系,34,错误等级类型数据用来表示系统的状态。它分为四种:NOTE(注意)、WARNING(警告)、ERROR(出错)、FAILURE(失败)。在仿真过程中可以用这四种状态来提示系统当前的工作情况。,(9)错误等级(Severity Level),(10)自然数(Natural)、正整数(Positive),自然数和正整数是整数的子类,Natural类数据只能取值0和0以上的正整数,Positive只能为正整数。,SYN,电子与通信工程系,1.标准逻辑位(STG_LOGIC)2.标准逻辑矢量数据类型(STG_LOGIC_VECTOR),U UninitializedX Forcing Unknown0 Forcing 01 Forcing 1Z High ImpedanceW Weak UnknownL Weak 0H Weak 1-Dont care,须在程序开始加入以下两语句:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,2.IEEE预定义数据类型,电子与通信工程系,3.其他预定义标准数据类型,无符号数据类型(UNSIGNED TYPE)UNSIGNED(“1000”)代表8VARIABLE var:UNSIGNED(0 TO 10);SIGNAL sig:UNSIGNED(5 DOWNTO 0);2.有符号数据类型(SIGNED TYPE)SIGNED(0101)代表+5,5SIGNED(1011)代表5VARIABLE var:SIGNED(0 TO 10);需加入:LIBRARY IEEE;,电子与通信工程系,4.数组类型,限定性数组,限定性数组定义语句格式如下:TYPE 数组名IS ARRAY(数组范围)OF 数据类型;如:type word is array(0 to 7)of std_logic;,非限定性数组,非限制性数组的定义语句格式如下:TYPE 数组名IS ARRAY(数组下标名RANGE)OF 数据类型;如:type word is array(natural range)of bit;,电子与通信工程系,数组的元素可以是任何一种数据类型,用以定义数组元素的下标范围子句决定了数组中元素的个数,以及元素的排序方向,既下标数是由高到低,或是由低到高。如子句“0 TO 7”是由低到高排序的8个元素;即:a(0)a(1)a(2)a(7)。“15 DOWNTO 0”是由高到低排序的16个元素;即:a(15)a(14)a(13)a(0)。,电子与通信工程系,39,2用户定义的数据类型,TYPE 数据类型名,数据类型名 数据类型定义;,可由用户定义的数据类型有:,枚举(Enumerated)类型整数(Integer)类型实数(Real)、浮点数(Floating)类型数组(Array)类型存取(Access)类型文件(File)类型记录(Record)类型时间(Time)类型(物理类型),书写格式为:,电子与通信工程系,40,(1)枚举(Enumerated)类型,格式:TYPE 数据类型名 IS(元素,元素,);,例如:TYPE Boolean IS(false,true);,SYN,(2)整数(Integer)类型,格式:TYPE 数据类型名 IS 数据类型定义 约束范围;,例如:TYPE digit IS INTEGER range 0 TO 9;,SYN,(3)数组(Array)类型,格式:TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型名;,例如:TYPE word IS ARRAY(1 TO 16)OF STD_LOGIC;,SYN(一维),电子与通信工程系,41,(4)实数(Real)、浮点数(Floating)类型,(5)存取(Access)类型,(6)文件(File)类型,(7)记录(Record)类型,SYN,(8)时间(Time)类型(物理类型),电子与通信工程系,42,在VHDL语言中,不同类型的数据是不能进行运算和代入的。为了实现正确的代入操作,必须要将代入的数据进行类型转换。一般是用函数转换法实现类型转换。,例如:,2.3.4 类型转换,STD_LOGIC_VECTOR 与INTEGER 相互转换的函数,其对应的转换函数在程序包IEEE.STD_LOGIC_UNSIGNED和IEEE.STD_LOGIC_ARITH中定义。,function conv_integer(arg:std_logic_vector)return integer;function conv_std_logic_vector(arg:integer;size:integer)return std_logic_vector;,例子,(课本P254,例9-18,例9-19),电子与通信工程系,例9-19LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-必须声明这个包集ENTITY decoder3to8 ISPORT(input:IN STD_LOGIC_VECTOR(2 DOWNTO 0);output:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END decoder3to8;ARCHITECTURE behave OF decoder3to8 ISBEGINPROCESS(input)BEGINoutput 0);output(CONV_INTEGER(input)=1;END PROCESS;END behave;,

    注意事项

    本文(电子设计自动化第二讲.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开