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

    EDA第五章复习总结.docx

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

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

    EDA第五章复习总结.docx

    1、EDA第五章复习总结5.1 VHDL概述硬件描述语言(VHDL)的突出优点1.打破了IC设计者与使用者的界线2.VHDL及其配套工具软件简单易学,直观明了,便于迅速掌握,也便于修改。3.极大地缩短了专用芯片的开发周期,降低开发成本,加快了产品更新换代的速度,提高产品的市场竞争力。4.大大缩小电路板面积和整机体积,提高产品可靠性,增强产品功能,实现技术保密。5.可实现电路设计的模块化和积木式多级组合。各模块均可在今后被重复再利用(调用)。6.完全实现拥有整机的自主知识产权,不再在关键芯片(专用芯片)的进口及价格方面受制于人。5.2 VHDL程序的结构一、 基本的VHDL描述的组成: 1.实体(e

    2、ntity)部分 64页 2.结构体(architecture)部分 67页IN(输入)、OUT(输出)是表示信号的类别; BIT是表示信号的类型,BIT是系统定义的类型,即二进位类型,信号只有0和1两种值; 每个VHDL语句都是以“;”结束,包括最后一个语句也不例外; VHDL中的“注释”是以两个减号“-”开始的。二、 实体描述ENTITY 实体名 ISPORT(信号名: 类别信号类型;信号名: 类别信号类型);END 实体名;同样类别和类型的信号可以用逗号分隔,在一个语句行中说明。信号的类别主要有以下4种:IN:此信号是输入信号; OUT:此信号是输出信号,提供给其他的实体; BUFFER

    3、:缓冲信号,也是实体的输出信号,但是可以被实体本身的结构体读入; INOUT:双向信号,既可以输入,也可以输出。系统预定义的信号类型有:BIT:二进位型,信号的值只能是0或1。 BIT_VECTOR:二进位向量,实际对应的是二进位数组 ; BOOLEAN:布尔型,取值只能是true或者false ; INTEGER:整型,一般都用32位二进制数表示整型数 ; CHARACTER:字符型,使用8位编码的ASCII字符。三、 结构体描述 ARCHITECTURE 结构体名 OF 实体名 IS BEGIN END 结构体名;对于一个实体来说,可以有几种不同的结构体描述。5.3 VHDL程序的元素一、

    4、关键字 85页二、标识符的命名 85页三、数据类型 91页预定义:整数Integer:-(2的31次方-1)2的31次方-1实数Real:-1.0E+38-+1.0E+38位Bit:0或1位矢量Bit_Vector:”001100”布尔量Boolean:真或假字符Character:A,C物理Time:预定义为时间,其他如电压、电流等也为物理型错误等级:NOTE、WARNING、ERROR、FAILURE自然数(Natural)、正整数(Positive)字符串(String),如”morning”用户自定义类型: 96页枚举型 可以通过枚举类型来定义信号的取值。除了最常用的二值逻辑(已经预定

    5、义为BIT型),还可以有三值逻辑(信号有三种取值:0、1和z),九值逻辑等 TYPE枚举类型名 IS (枚举型值表);如 TYPE qit_logic IS (0,1,Z,X)STD_ULOGIC在IEEE1164标准逻辑包中所定义的std_ulogic类型是一种九值逻辑,也是一种枚举型的数据类型:TYPE std_ulogic IS ( U, -UninitializedX, -Forcing Unknown0, - Forcing 01, - Forcing 1Z, -High ImpedanceW,-Weak UnknownL, -Weak 0H, -Weak 1- , -Dont Ca

    6、re);数组类型TYPE 数组名 IS ARRAY(范围) OF 基类型1,其中的“基类型”是已经定义过的类型,甚至可以是已经定义过的数组类型。 2,定义中的“范围”,既表示数组的大小,也说明用什么方式表示数组元素的下标。通常,“范围”是用整数表示,也可以用枚举值表示3,“范围”用整数表示时,整数范围可以是递增表示,也可以是递减表示:TYPE register IS ARRAY (0 TO 7) OF BIT; TYPE regist_1 IS ARRAY (7 DOWNTO 1) OF BIT; TYPE rom IS ARRAY (0 TO 7) OF register; rom类型实际上

    7、是用register基类型定义的二维数组,即TYPE rom IS ARRAY (0 TO 7, 0 TO 7) OF BIT;数组的范围还可以用已经定义过的枚举型来表示,如:TYPE light_delay IS ARRAY (traffic_light) OF INTEGER; 这里的traffic-light是已经定义的枚举类型,有三个取值(“red、yellow、green”)。将来定义的类型为light-delay的数组,也只会有三个元素。在VHDL中,可以对数组的整体赋值: 如定义了regist_1类型的数组信号:TYPE regist_1 IS ARRAY (7 DOWNTO 0

    8、) OF BIT; SIGNAL arr_1, arr_2 : regist_1; 以下的赋值操作在VHDL中都是允许的:arr_1 = 10110110; arr_2 =arr_1;子类型 97页希望对某种类型数据的范围加以限制四、对象 VHDL把信号、变量、常量和文件统称为对象。 89页1. 常量的定义 CONSTANT常量名: 类型名 := 常量值; 例如:CONSTANT array_size : INTEGER := 16; CONSTANT gate_delay : TIME := 50ns;2.变量的定义 变量的定义采用如下的方式:VARIABLE 变量名: 类型名:=初值; 变

    9、量的赋值用“:=”来表示。变量的赋值没有延迟。3.信号的定义 信号定义的方式:SIGNAL 信号名: 类型名:=初值; 信号的赋值用“=”表示,有延迟,初始化不同于赋值 信号的传送可以规定延迟,也可以不规定延迟。但是VHDL规定,如果没有指定信号传送的延迟,信号的传送也会有一个最小延迟。 信号可以是全局定义的,PORT中定义的信号就是对所有的结构体都有效。但是,信号也可以是局部定义的,在结构体内部定义的信号只对这个结构体有效。五、词法单元 87页 1.注释以双连符(-)开始直到行末 2.VHDL中的数字八进制:以O开头,如O”340”二进制:以B开头,如B”11100000”十六进制:以X开头

    10、,如X”E0” 3.字符文字字符表示形式为:单引号括起来的ASCII字符,如A,* 4.字符串文字字符串表示形式为:双引号括起来的图形字符序列。如”how are you”,” ”等5.位串位串表示形式为:双引号括起来的扩展的数字序列,数字序列前冠以基数说明符。如: B”11110101” 长度为八的二进制数,等效2456.VHDL语句中使用的标点符号 分号(;)是一条语句结束的标志 逗号(,)是对象的分隔符 冒号(:)和原点(.)的用法在每条语句中给出六、表达式与运算符 102页具体的运算符和其他程序设计语言中的表达式很相似,一个表达式是由运算符把对象名、文字、函数调用及括起来的表达式连接起

    11、来的式子。在一个VHDL表达式中,数据的类型应该相同。如果不同的数据类型出现在同一个表达式,VHDL不会进行自动类型的转换,而只会给出错误信息。 VHDL支持运算符的重载。例如可以对不同类型的信号各自进行AND运算。七、VHDL的库和包1.VHDL库的种类和使用 VHDL的库可以分为三种类型:系统库,IEEE库、用户库。系统库是VHDL语言本身预定义的库,包括STD库和WORK库。STD库是系统的标准库,所有系统本身预定义的类型和有关的操作都包含在这个库中。WORK库是用户的工作库 。对用户都是透明的,也就是随时都可以使用的,不需要在描述中专门说明。IEEE库是IEEE认可的标准库,其中包括对

    12、于STD_LOGIC类型以及有关函数的定义。用户库就是VHDL软件提供厂商开发的库,应该查询相应软件的说明。2.程序包 一个VHDL库可以包含许多内容,并且往往以程序包(Package)的形式组织在一起。一个程序包由两个部分构成:包的说明部分(Package Declaration)和包的主体部分(Package Body)。基本的结构如下:PACKAGE 程序包名IS程序包说明部分END 程序包名;PACKAGE BODY 程序包名 IS程序包主体描述END 程序包名;说明部分可以包括:常量说明; 信号说明,这里说明的信号可以被所有的结构体使用; 类型说明; 函数或过程说明; 部件(Comp

    13、onent)说明,程序包的主体部分则是对所包含的函数、过程、结构体进行具体的描述。程序包示例PACKAGE qit_utilities ISTYPE qit IS (0, 1, Z, X);FUNCTION AND (a, b :qit) RETURN qit; 只是声明,有这个函数FUNCTION OR (a, b :qit) RETURN qit;END qit_utilities;PACKAGE BODY qit_utilities ISFUNCTION AND (a, b :qit) RETURN qit IS 对函数的具体过程描述CONSTANT qit_and_table : qi

    14、t_2d := (0, 0, 0, 0),(0, 1, 1, X),(0, 1, 1, X),(0, X, X, X);BEGINRETURN qit_and_table(a, b);END AND;FUNCTION OR (a, b :qit) RETURN qit IS 函数的定义方法71页例3-3比较CONSTANT qit_or_table : qit_2d := (0, 1, 1, X),(1, 1, 1, 1),(1, 1, 1, 1),(X, 1, 1, X);BEGINRETURN qit_or_table(a, b);END OR;END qit_utilities; 以上的

    15、程序包中定义了一种4值逻辑及其操作。在说明部分定义了一种新的信号类型qit,也就是一种4值逻辑,还说明了两个函数AND和OR,用来对4值逻辑进行“与”“或”运算。在BODY部分实现了这两个函数。3.库和程序包的引用 77页 在所有的VHDL源程序都要首先声明使用什么VHDL库。声明要使用关键字LIBRARY,例如,要使用IEEE库,使用这个库中的哪个程序包就应该作以下的声明: LIBRARY IEEE; USE 库名.程序包名.ALL; 包中所有内容可用USE 库名.程序包名.子程序名; 包中选中内容可用4.函数和过程 前一页程序包的例子 VHDL 中既可以使用函数,也可以使用过程(Proce

    16、dure)。两者统称为子程序。 函数的定义包括函数说明和函数主体两部分,基本的格式如下:FUNCTION 函数名(参数表) RETURN 类型ISBEGIN函数体END 函数名; 函数体中一定要包括RETURN语句。过程的定义和函数的定义非常相似:PROCEDURE过程名(参数表) ISBEGIN过程体END 过程名; 过程没有返回值。 函数的参数传递总是一个方向的,也就是传入到函数,而过程的参数传递可以是两个方向的。具体在过程执行中参数如何传递,取决于参数的类别(IN、OUT、INOUT等),而对于函数参数的类别,则只能有一种:IN,就是输入到函数。5.4 VHDL程序的描述语句可以有许多并

    17、行处理语句,这些语句的执行是可以同时进行的。并行语句主要是信号传送语句。传送时可以指定传输延迟。如果传送时没有指定时延,VHDL会对并行处理语句的执行加上一个最小时延。一、并行赋值语句 并行赋值语句是最基本的VHDL语句,它的格式是: 信号名=表达式;信号名=表达式 AFTER 延迟时间;例5.4 半加器的数据流描述。ENTITY half_adder ISPORT(a, b: IN BIT;s, c0: OUT BIT);END half_adder;ARCHITECTURE h_adder OF half_adder ISSIGNAL c, d: BIT;BEGIN 信号时非输入输出的中间

    18、量相c= a OR b;d= a NAND b; 当于下一阶段的输入和上一阶段的输出?c0= NOT d;s= c AND d;END h_adder;二、条件赋值语句 条件赋值语句也是一种信号赋值语句,只是赋给信号的值可以根据条件的不同而不同。 条件赋值语句的格式如下:信号名= 表达式1 WHEN 布尔表达式1 ELSE表达式2 WHEN 布尔表达式2 ELSE表达式n WHEN 布尔表达式n ELSE表达式;例5.5 用条件赋值语句描述数据选择器。ENTITY mux4_to_1 ISPORT(d0, d1, d2, d3, a, b: IN BIT;y: OUT BIT);END mux

    19、4_to_1;ARCHITECTURE sample_1 OF mux4_to_1 IS 和例5.4比,没有需要中间信号BEGINy= d0 WHEN a=0 AND b=0 ELSEd1 WHEN a=0 AND b=1 ELSEd2 WHEN a=1 AND b=0 ELSEd3 WHEN a=1 AND b=1 ;END sample_1三,选择信号赋值语句 选择信号赋值语句可以根据一个表达式的不同取值,给信号或者信号数组赋以不同的结果。 选择信号赋值语句的格式如下:WITH 表达式SELECT信号名= 信号值1 WHEN 表达式值1,信号值2 WHEN 表达式值2,信号值n WHEN

    20、others;例5.6 用信号选择语句描述数据选择器。ENTITY mux4_to_1 ISPORT(d0, d1, d2, d3, a, b: IN std_logic;y: OUT std_logic);END mux4_to_1;ARCHITECTURE sample_2 OF mux4_to_1 ISBEGINWITH a&b SELECTy= d0 WHEN 00,d1 WHEN 01,d2 WHEN 10,d3 WHEN 11,X WHEN OTHERS;END sample_2;5.4.2 顺序描述语句并行信号传输语句主要描述硬件电路或系统中信号的传送过程。同时,VHDL还支持顺

    21、序描述语句,主要使用于对电路和系统的性能描述。顺序描述语句的执行就和一般程序设计语言中语句相似,是按照语句的顺序依次执行的。前一条语句的结果会影响到下一条语句的执行。一、PROCESS语句 132页 尽管PROCESS语句本身是并行描述语句,可以和其他并行语句同时执行,但是PROCESS语句内部的语句都是顺序语句。 PROCESS语句一旦开始执行,就要依次执行其中的顺序语句,一直到最后的END PROCESS为止。 PROCESS语句的格式如下:PROCESS(信号1,信号k) 用到的信号变量说明(定义);其他说明;BEGIN顺序语句顺序语句END PROCESS;二、分支语句 两分支IF语句

    22、的格式: 多分支IF语句的格式: IF 布尔表达式 IF 布尔表达式THEN 顺序语句 THEN 顺序语句ELSE 顺序语句 ELSIF 布尔表达式END IF; THEN顺序语句ELSE 顺序语句END IF; 例5.7 反向器的顺序描述。ENTITY inverter ISPORT(x: IN BIT;y: OUT BIT);END inverter;ARCHITECTURE behave OF inverter ISBEGINPROCESS(x) 只用到x作为判断条件BEGINIF (x=0) THEN y=1;ELSE y 顺序语句1WHEN 值k = 顺序语句kWHEN OTHERS

    23、 =顺序语句k+1END CASE;例5.8 四选一数据选择器的顺序描述。ENTITY mux4_1 ISPORT(a, b, i0, i1, i2, i3: IN BIT;y: OUT BIT);END mux4_1;ARCHITECTURE behave OF mux4_1 ISSIGNAL sel bit_vector(1 DOWNTO 0);BEGINsel y y y y信号名1, ,接口信号n =信号名n); 采用这样的格 式,就不要求COMPONENT语句中的信号名和ENTITY的PORT部分的信号名保持顺序上的一致,而只要它们的对应关系正确就可以了。例5.9 全加器的结构描述。

    24、 使用前面已经定义过的半加器ENTITY full_adder ISPORT(x, y, cin: IN BIT;sum, carry: OUT BIT);END full_adder;ARCHITECTURE struct OF full_adder ISCOMPONENT half_adder 部件声明PORT(a, b: IN BIT;s, c0: OUT BIT);END COMPONENT;SIGNAL h1_s, h1_c, h2_c: BIT;BEGINh1: half_adder PORT MAP(x, y, h1_s, h1_c); 部件描述第一种(如x对应声明中的a)h2:

    25、 half_adder PORT MAP(a=h1_s, b=cin, s=sum, c0=h2_c); 第二种(h2中的a对应h1_s)第一个全家器的输出被第二个的输入对应carry=h2_c OR h1_c;END struct;5.5.2 时序逻辑电路中的应用一、时钟信号时序逻辑电路中进程的敏感信号是时钟信号。描述方式有两种:(1) 时钟信号显示地出现在PROCESS语句后面的敏感信号表中。(2) 时钟信号没有显示地出现在PROCESS语句后面的敏感信号表中,而是出现在WAIT语句的后面。沿分为上升沿和下降沿。(1) 上升沿描述:其物理意义是指时钟信号的逻辑值是从0跳变到1。描述1:PROCESS(clk)BEGINIF(clkEVENT AND clk = 1)THENEND PROCESS;描述2:label2:PROC


    注意事项

    本文(EDA第五章复习总结.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开