欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    电子科技大学EDA技术课件 3_1.pptx

    • 资源ID:9493745       资源大小:1.52MB        全文页数:118页
    • 资源格式: PPTX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    电子科技大学EDA技术课件 3_1.pptx

    1、第三章 硬件描述语言,1,VHDL,3.1.1什么是VHDL?VHDL:VHSIC(Very High Speed Integrated Circuit)HardwareDescription Language,2,3.1概述,3.1.2VHDL的历史,3,80 年代初由美国国防部在实施超高速 集成电路(VHSIC)项目时开发的。1987年:IEEE1076-1987标准1993年:IEEE1076-1993标准2001年:IEEE1076-2001标准VHDL获得广泛支持,3.1.3VHDL的作用,4,1)VHDL打破软、硬件的界限传统的数字系统设计分为:硬件设计(硬件设计人员)软件设计(软

    2、件设计人员)是电子系统设计者和EDA工具之间的桥梁,EDA工具及 HDL的流行,促使电子系统向 集成化、大规模和高速度等方向发展。美国硅谷约有80%的 ASIC和 FPGA/CPLD采用 HDL进行设计。2)VHDL与C、C+的比较:C、C+代替汇编等语言VHDL 代替原理图、逻辑状态图等,5,3)VHDL与电原理图描述的比较:VHDL具有较强的抽象描述能力,可进行系统 行为级别的描述。描述更简洁,效率更高。VHDL描述与实现工艺无关。电原理图描述必须给出完整的、具体的电路 结构图,不能进行描象描述。描述繁杂,效率低。电原理图描述与实现工艺有关。,6,3.1.4VHDL语言特点,VHDL具有强

    3、大的语言结构,系统硬件抽象 描述能力强、设计效率高。一个可置数的16位计数器:,7,用VHDL描述的可置数16位计数器:,8,VHDL语言可读性强,易于修改和发现错误。VHDL具有丰富的仿真语句和库函数,可进行早 期行为仿真,利于大系统的设计与验证。VHDL设计与硬件电路关系不大。VHDL设计不依赖于器件,与工艺无关。移植性好。VHDL体系符合TOP-DOWN和CE(并行工 程)设计思想。VHDL设计效率高,产品上市时间快,成本低。易于ASIC实现。,9,3.1.5VHDL与其它硬件描述语言的比较,行为级RTL级门电路级RTL:Register Translate LevelVHDL:系统级抽

    4、象描述能力强,适合行为级和RTL级的描述。涉及电路细节少,工作量少,效率高。IEEE标准,支持广泛。对综合器要求高,不易控制底层电路的生成。,10,Verilog HDL:,系统级抽象描述能力比VHDL稍差;门级开关电路描述方面比 VHDL 强。适合RTL级和门电路级的描述。需了解电路细节,工作量较多。IEEE标准,支持广泛。ABEL、PALASM、AHDL(Altera HDL):,系统级抽象描述能力差,一般作门级电路,描述。要求对电路细节有详细的了解。工作量大。,对综合器要求低,易于控制电路资源。支持少。,11,VHDL,12,Verilog HDL,3.1.6VHDL设计简述,13,VH

    5、DL主要用于描述数字系统的结构、行为、功能和接口。VHDL将一个设计(元件、电路、系统)分 为:外部(可视部分、端口)内部(不可视部分、内部功能、算法),外部与内部:,ports,ports,Combinational Process,Sequential Process,component,14,器件或 子系统ENTITY ARCHITECTUREProcessProcess,2选1选择器的VHDL描述:,15,VHDL语言的一些基本特点:n VHDL语言由保留关键字组成;n 一般,VHDL语言对字母大小写不敏感;例外:、“”所括的字符、字符串;n 每条VHDL语句由一个分号(;)结束;n

    6、VHDL语言对空格不敏感,增加可读性;n 在“-”之后的是VHDL的注释语句;n VHDL有以下描述风格:行为描述;数据流(寄存器传输RTL)描述;结构化描述;,16,基本结构包括:实体(Entity)结构体(Architecture)配置(Configuration)库(Library)、程序包(Package),17,3.2VHDL程序基本结构,库、程序包实体(Entity)结构体(Architecture)进程或其它并行结构,配置(Configuration),18,3.2.1实体(说明),实体(说明):定义系统的输入输出端口语法:ENTITY IS Generic Declaratio

    7、ns Port DeclarationsEND;(1076-1987 version)END ENTITY;(1076-1993version),19,1、类属说明类属说明:确定实体或组件中定义的局部常数。必须放在端口说明之前。Generic(常数名称:类型:=缺省值常数名称:类型:=缺省值);,20,类属常用于定义:实体端口的大小、设计实体的物理特性、总线宽度、元件例化的数量等。例:entity mck isgeneric(width:integer:=16);port(add_bus:out std_logic_vector(width-1 downto 0);,21,例:2输入与门的实体

    8、描述entity and2 isgeneric(risewidth:time:=1 ns;fallwidth:time:=1 ns);port(a1:in std_logic;a0:in std_logic;z0:out std_loigc);end entity and2;注:time:用于仿真可综合的类属值:整数,22,2、端口声明端口声明:确定输入输出端口的数目和类型。,其中,端口模式:in输入型,此端口为只读型。out输出型,此端口只能在实体内部对其赋值。inout输入输出型,既可读也可赋值。buffer缓冲型,与 out 相似,但可读。,Port(,23,数据类型;,数据类型,端口名

    9、称,端口名称:端口模式端口名称,端口名称:端口模式);,out 和 buffer 的区别:,24,In1,25,In2,In3,Out1,Out2,Out3,Out4,数据类型:指端口上流动的数据的表达格式。为预先定 义好的数据类型。如:bit、bit_vector、integer、real、std_logic、std_logic_vector等。例:entitynand2is port(a,b:inbit;,26,:outbit,z);endnand2;,3.2.2结构体,27,作用:定义系统(或模块)的行为、元件及内部 的连接关系,即描述其逻辑功能。两个组成部分:说明部分逻辑功能描述部分,

    10、结 构 体,结 构 体 说 明,结 构 体 功 能 描 述,常数说明,数据类型说明,信号说明,例化元件说明,子程序说明,块语句 进程语句,信号赋值语句,子程序调用语句,元件例化语句,28,实体与结构体的关系:,设计实体,结构体3。结构体n,一个设计实体可有多个结构体,代表实体 的多种实现方式。各个结构体的地位相同。结构体1 结构体2,29,结构体的语法:,architecture结构体名称 of实体名称 is 说明语句内部信号、常数、数据类型、子程序(函数、过程)、元件等的说明;begin并行处理(功能描述)语句;endarchitecture 结构体名称;注:同一实体的结构体不能同名。定义语

    11、句中的常 数、信号不能与实体中的端口同名。,30,例:结构体中错误的信号声明,31,例:一个完整描述(3 bit 计数器),32,3 bit 计数器的等效描述(out 与 buffer 的区别):,33,3.2.3 配置,设计实体,结构体1结构体2 结构体3,。结构体n,一个设计实体的多 种实现方式,34,配置:从某个实体的多种结构体描述方式中选择 特定的一个。,简单配置的语法:configuration配置名 of实体名is for选配结构体名endfor;end配置名;例:一个与非门不同实现方式的配置如下:,35,library ieee;use ieee.std_logic_1164.a

    12、ll;entity nand isport(a:in std_logic;b:in std_logic;c:out std_logic);end entity nand;architecture art1 of nand is beginc=not(a and b);end architecture art1;,36,architecture art2 of nand is begin,c=1 when(a=0)and(b=0)else1 when(a=0)and(b=1)else1 when(a=1)and(b=0)else0 when(a=1)and(b=1)else0;,37,confi

    13、guration first of nand is for art1;end for;end first;configuration second of nand is for art2end for;endsecond;,38,例:一个对计数器实现多种形式的配置如下:,39,40,41,程序包:已定义的常数、数据类型、元件调用说明、子程序的一个集合。目的:方便公共信息、资源的访问和共享。库:多个程序包构成库。,42,3.2.4程序包、库,程序包说明的内容:常量说明;VHDL数据类型说明;元件说明;子程序说明;程序包的结构包括:程序包说明(包首)程序包主体(包体),43,1、程序包说明(包首)

    14、语法:package程序包名 is包说明项 end程序包名;包说明项:use 语句(用来包括其它程序包);类型说明;子类型说明;常量说明;信号说明;子程序说明;元件说明。,44,例:程序包说明,45,2、程序包包体,use 语句;常量说明;类型说明;子类型说明;子程序说明;子程序主体;,程序包的内容:子程序的实现算法。包体语法:package body程序包名 is,46,end包体说明项:,包体说明项程序包名;,程序包首与程序包体的关系:程序包体仅用于子程序的描述。程序包首可以独立定义和使用。,47,例:package seven issubtype segments is bit_vect

    15、or(0 to 6);type bcd is range 0 to 9;end seven;,library work;use work.seven.all;entity decoder isport(input:in bcd;drive:out segments);end decoder;architecture art of decoder is begin,48,with input select drive=B“1111110”when 0,B“0110000”when 1,B“1101101”when 2,B“1111001”when 3,B“0110011”when 4,B“101

    16、1011”when 5,B“1011111”when 6,B“1110000”when 7,B“1111111”when 8,B“1111011”when 9,B“0000000”when others;end architecture art;,a,b,c,d,e,f,g,49,3、库的种类,VHDL库可分为 5种:IEEE 库定义了四个常用的程序包:std_logic_1164(std_logic types&related functions)std_logic_arith(arithmetic functions)std_logic_signed(signed arithmeticfu

    17、nctions)std_logic_unsigned(unsigned arithmeticfunctions),50,Type STD_ULOGIC、STD_LOGIC:,9 logic value system(U,X,0,1,Z,W,L,H,-)U:未初始化的,X:强未知的,,0:强 0,Z:高阻态,,1:强1,W:弱未知,的,,L:弱0,,H:弱1,,51,STD 库(默认库)库中程序包为:standard,定义最基本的数据类型:Bit,bit_vector,Boolean,Integer,Real,and Time注:Type BIT2logic value system(0,1)面

    18、向ASIC的库WORK库(默认库)用户定义库,52,4、库及程序包的使用,53,库及程序包的位置:库的说明:library 程序包的说明:use默认库及程序包的说明:库及程序包的作用范围:,库、程序包实体(Entity)结构体(Architecture)进程或其它并行结构,配置(Configuration),54,库的使用语法:library库名;程序包的使用有两种常用格式:use库名程序包名项目名use库名程序包名All;例:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.conv_integer;,55,2

    19、 选 1 选择器:,56,2选1的另一种描述,57,四类语言要素:数据对象(Data Object)数据类型(Data Type)操作数(Operands)操作符(Operator),58,3.3VHDL语言要素,3.3.1VHDL文字规则,59,1、数字型文字整数文字:十进制整数如:5,678,156E2(=15600),45_234_287(=45234287)实数文字:带小数的十进制数如:23.34,2.0,44.99E-2(=0.4499)88_67_551.23_909(8867551.23909),如:10#170#2#1111_1110#16#E#E1,(=170)(=254)(

    20、=2#1110_0000#=224),或:(=1416=224)16#F.01#E+2(=(15+1/(16 16)16 16=3841.00),(3)以数制基数表示的文字 格式:基数#数字文字#E指数,60,(4)物理量文字如:60 s、100 m、177 A注:整数可综合实现;实数一般不可综合实现;物理量不可综合实现;,61,2、字符串型文字按字符个数多少分为:字符:用单引号引起来的ASCII字符,可以是 数值,也可以是符号或字母。如:A,*,Z字符串:用双引号引起来的一维字符数组,62,字符串分为:(1)文字字符串:“文字”如:“ERROR”,“XXXXXXXX”,“ZZZZZZZZ”,

    21、“X”,“BOTH S AND Q EQUAL TO L”,,63,(2)数位字符串:称为位矢量,代表二进制、八进制、十六进 制的数组。其位矢量的长度为等值的二进制数的 位数。格式:基数符号“数值”其中基数符号有三种:B:二进制基数符号。O:八进制基数符号,每一个八进制数 代表一个3位的二进制数。,64,X:十六进制基数符号,每一个十六进制数代表 一个4位的二进制数。,65,二进制数数组,长度为9 八进制数数组,长度为6 十六进制数数组,长度为,如:B“1_1101_1110”O“34”X“1AB”12,3、标识符定义常数、变量、信号、端口、子程序或 参数的名字。基本标识符的要求(87标准):

    22、以英文字母开头;不连续使用下划线“_”;不以下划线“_”结尾;由26个大小写英文字母、数字09及 下划线“_”组成的字符串。,66,基本标识符中的英文字母不分大小写;VHDL的保留字不能作为标识符使用。合法标识符如下:my_counter、Decoder_1、FFT、Sig_N、Not_Ack、State0,67,非法标识符如下:_Decoder_1、2FFT、Sig_#N、Not-Ack、ALL_RST_、data BUS、return、entity,68,扩展标识符(93标准):以反斜杠来界定,免去了87标准中基本标 识符的一些限制。可以以数字打头,允许包含图形符号,允许使用VHDL保留字

    23、,区分字母大小写等。如:74LS163、Sig_#N、entity、ENTITY,69,4、下标名及下标段名下标名:用于指示数组型变量或信号的某一个 元素。,格式:,下标段名:用于指示数组型变量或信号的某一 段元素。,格式:,如:a:std_logic_vector(7 downto 0)a(7),a(6)a(0)a(7 downto 0),a(7 downto 4),a(5 downto 3),标识符(表达式),标识符(表达式 to/downto表达式),70,3.3.2数据对象,71,三种对象:常量(Constant)变量(Variable)信号(Signal)三种对象的物理含义:常量:电

    24、源、地、恒定逻辑值等;变量:暂存某些值的载体,常用于描述算法;信号:硬件连接线,端口。,三种对象的特点及说明场合:,72,信号:全局量,定义于architecture、package、entitiy。变量:局部量,定义于process、function、procedure。常量:全局量,可定义于上面两种场合。,1、常量说明常量说明:对某一个常量名赋予一个固定的值。格式:constant常数名:数据类型:=表达式;例:constantdata:bit_vector(3 downto 0):=“1010”constantwidth:integer:=8;constantx:new_bit:=x;常

    25、量数据类型必须与表达式的数据类型一致。,73,常量的可视性(作用范围):,库、程序包实体(Entity)结构体1进程1_1,结构体2 进程2_1,常量是全局 量,其作用 范围取决于 常量被定义 的位置。,进程1_2,进程2_2,74,2、变量说明局部量,只能在进程和子程序中定义、使用。格式:,variablecount:integer range 0 to 255:=10;变量的初值可用于仿真,但综合时被忽略。,variable 变量名:数据类型例:variablea,b:bit;,75,约束条件:=表达式;,3、信号说明电子硬件系统运行的基本特性:各部分电路工作的并行特性;信号传输过程中的延

    26、时特性;多驱动源的总线特性;,时序电路中触发器的记忆特性等。信号是电子系统内部硬件连接和硬件特性的抽 象表示。格式:signal 信号名:数据类型约束条件:表达式;,76,例:signala,b:bit;signalinit:integer:=-1;signals1:std_logic:=0;signals2:std_logic_vector(15 downto 0);注:a.综合时初值被忽略。b.信号是全局量。可在结构体、实体、块中 说明和使用信号。c.在进程和子程序中只能使用信号,不能说 明信号。,77,例:进程中信号与变量的使用,Entityexis port(.);endex;arch

    27、itecturearch_exofexis signala,b:std_logic;beginprocess(a,b)variablec,d:std_logic;beginc:=a+b;d:=a-b;endprocess;endarch_ex;,78,信号与端口的区别:信号本身无方向,可读可写。端口是一种有方向的隐形信号。entity exam isport(signal a,b:in std_logic;signal c:out std_logic);end exam;输出端口不能读出数据,只能写入数据;输入端口不能写入数据,只能读出数据。,79,3.3.3VHDL数据类型,80,VHDL是

    28、一种强数据类型语言:数据类型必须事先说明;同类型才能互相传递和作用。VHDL数据类型分为四大类:标量类型(SCALAR TYPE)、复合类型(COMPOSITE TYPE)、存取类型(ACCESS TYPE)、文件类型(FILES TYPE),又分为:预定义数据类型、用户自定义数据类型1、VHDL的预定义数据类型 1)布尔量(boolean)两种状态:false、true常用于逻辑函数,如相等(=)、比较()等中作逻辑比较。如,bit 值转化成boolean 值:boolean_var:=(bit_var=1);,81,位(bit)bit 表示一位的信号值。放在单引号中,如 0 或 1。位矢量

    29、(bit_vector)bit_vector 是用双引号括起来的一组位数据。如:“001100”X“00B10B”字符(character)用单引号将字符括起来。variablecharacter_var:character;.Character_var:=A;,82,5)整数(integer)integer 表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为:-(231-1)to(231-1)VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路,或造成资源浪费。如:signals:integer range 0 to 15;信号s 的取值范围是01

    30、5,可用4位二进制数表 示,因此s 将被综合成由四条信号线构成的信号。,83,6)自然数(natural)和正整数(positive)natural 是integer类型的子类型,表示非负整数。positive 是integer 类型的子类型,表示正整数。定义如下:subtype natural is integer range 0 to integerhigh;subtype positive is integer range 1 to integerhigh;,84,实数(REAL)或称浮点数取值范围:-1.0E38+1.0E38实数类型仅能用于VHDL仿真器,一般综合器 不支持。字符串(

    31、string)string 是character 类型的一个非限定数组。用 双引号将一串字符括起来。如:variablestring_var:string(1 to 7);string_var:=“Rosebud”;,85,时间(TIME)由整数和物理单位组成 如:55 ms,20 ns错误等级(SEVERITY_LEVEL)仿真中用来指示系统的工作状态,共有四种:NOTE(注意)、WARNING(警告)、ERROR(出错)、FAILURE(失败),86,2、IEEE预定义标准逻辑位与矢量,std_logic 及其决断函数(Std_logic_1164包)Package std_logic_1

    32、164 is,type std_ulogic is(U,X,0,1,Z,W,L,H,-);type std_ulogic_vector is array(natural range)of std_ulogic;function resolved(s:std_ulogic_vector)returnstd_ulogic;subtype std_logic is resolved std_ulogic;type std_logic_vector is array(natural range)of std_logic;,End stdlogic1164;,87,Package body std_lo

    33、gic_1164 is,constant resolution_table:stdlogic_table:=(-|UX01ZWLH-|,(U,U,U,U,U,U,U,U,U),-|U|(U,X,X,X,X,X,X,X,X),-|X|(U,X,0,X,0,0,0,0,X),-|0|(U,X,X,1,1,1,1,1,X),-|1|(U,X,0,1,Z,W,L,H,X),-|Z|(U,X,0,1,W,W,W,W,X),-|W|,88,function resolved(s:std_ulogic_vector)return std_ulogic isvariable result:std_ulogic:=Z;-weakest beginif slength=1 then return s(slow);elsefor i in srange loop result:=resolution_table


    注意事项

    本文(电子科技大学EDA技术课件 3_1.pptx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开