EDA技术期末考试复习资料.docx

上传人:b****5 文档编号:7962907 上传时间:2023-01-27 格式:DOCX 页数:16 大小:342.89KB
下载 相关 举报
EDA技术期末考试复习资料.docx_第1页
第1页 / 共16页
EDA技术期末考试复习资料.docx_第2页
第2页 / 共16页
EDA技术期末考试复习资料.docx_第3页
第3页 / 共16页
EDA技术期末考试复习资料.docx_第4页
第4页 / 共16页
EDA技术期末考试复习资料.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA技术期末考试复习资料.docx

《EDA技术期末考试复习资料.docx》由会员分享,可在线阅读,更多相关《EDA技术期末考试复习资料.docx(16页珍藏版)》请在冰豆网上搜索。

EDA技术期末考试复习资料.docx

EDA技术期末考试复习资料

EDA技术期末考试复习资料

什么是EDA?

本意:

ElectronicDesignAutomation

在教材中“EDA”是指

依赖于功能强大的计算机,在EDA工具软件平台上,对以硬件描叙语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

EDA技术的实现目标:

完成专用集成电路ASIC的设计和实现(这种说法太片面)

实现ASIC的三种途径:

可编程逻辑器件CPLD、FPGA半定制或全定制ASIC、混合ASIC

常用硬件描述语言(HDL):

VHDLVerilogHDLSystemVerilogSystemC

VerilogHDL与VHDL的比较:

VHDL来源于古老的Ada语言,VerilogHDL来源于C语言,VerilogHDL受到一线工作的工程师的青睐。

90%以上的公司采用verilogHDL进行IC设计,ASIC设计必须学习VerilogHDL,VerilogHDL在工业界通用些,VHDL在大学教学中使用较多

VerilogHDL在系统级抽象方面比VHDL差一些,在门级开关电路描叙方面VerilogHDL比VHDL强很多

VHDL比较严谨,VerilogHDL格式要求宽松些

集成电路设计的层次:

抽象层次

时序单位

基本单位

电路的功能(行为)描述

系统级System

数据处理

进程及通信

自然语言描述或相互通信的进程

行为级(算法级)Algorithm

运算步

运算的控制

行为有限状态机、数据流图、控制流图

寄存器传输级(RTL)

时钟周期

寄存器、计数器、多路选择器、算术逻辑单元

布尔方程、二元决策图、有限状态机

逻辑门级Logic

延时

与门、或门、触发器、锁存器等

原理图,VHDL

门(电路)级Gate

物理时间

晶体管、R、L、C

电压、电流之间的微分方程

物理级(版图级)Layout

几何图形

几何图形(硅表面上的扩散区、多晶硅和金属等)

隐含在器件的物理方程中

综合(synthesis)

将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

(是从外文翻过来的别扭的句子)

从算法表示转换到寄存器传输级,即行为综合

从RTL级表示转换到逻辑门的表示,即逻辑综合

从逻辑门表示转换为版图表示,即版图综合或结构综合

功能仿真和时序仿真:

1.功能仿真:

是直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求的过程,

仿真过程不涉及任何具体器件的硬件特性。

2.时序仿真:

就是接近真实器件运行特性的仿真,仿真文件中己包含了器件硬件特性参数,因而,仿真精度高。

CPLD还是FPGA?

CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。

而FPGA的一个LUT只能处理4输入的组合逻辑,因此,CPLD适合用于设计译码等复杂组合逻辑。

但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,CPLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于CPLD。

所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。

同时CPLD拥有上电即可工作的特性,而大部分FPGA需要一个加载过程,所以,如果系统要可编程逻辑器件上电就要工作,那么就应该选择CPLD。

CPLD有被FPGA取代的可能.

CPLD和FPGA的编程和配置:

编程工艺有三种

1.基于电可擦除存储单元的EEPROM或FLASH技术:

多数CPLD

2.基于SRAM查找表的编程单元:

多数FPGA

3.基于反熔丝编程单元:

比如Actel公司的FPGA

编程方式有很多种

–ISP:

使用Jtag接口

–PS(被动串行)

–PP(被动并行)

–AS(主动串行)

–AP(主动并行)

–JTAG

第一个VHDLD的例子

设计单元的基本构造:

一个设计单元都是由实体说明和构造体两部分组成。

实体的功能是对这个设计单元与外部电路进行接口描叙。

实体是设计单元的表层,实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计单元对外的一个通信界面。

结构体定义了设计单元的具体构造和操作(行为)。

每个实体可以有多个结构体,不同的结构体对应着实体不同的结构和算法实现方案,其间的各结构体的地位是相等的。

端口说明--PORTS:

端口说明是基本设计实体(单元)与外部接口的描述,也可以说是对外部引脚信号的名称、数据类型和输入输出方向的描述。

一般书写格式如下:

PORT(端口名{,端口名}:

方向数据类型;

端口名{,端口名}:

方向数据类型;

端口模式:

数据类型:

BIT:

只能赋值为1或0

•结构体的组成部分:

对数据类型、常数、信号、子程序和元件等元素的说明部分

•描叙设计单元逻辑行为的、以各种不同的描叙风格表达的功能描述语句。

◆进程语句

◆信号赋值语句

◆子程序调用语句

•以元件例化语句为特征的外部元件(设计单元)端口间的连接。

结构体一般语言格式:

•ARCHITECTURE结构体名OF实体名IS

•[说明语句]

•BEGIN

•[功能描述语句]

•ENDARCHITECTURE结构体名;

进程语句(PROCESS):

•所有的顺序语句都只能在进程(PROCESS)中使用,进程内是顺序执行,进程与进程间是并发的。

•进程是最关键的并发语句,其它并发语句:

并发信号赋值、条件信号赋值、选择信号赋值、并发过程调用等可以看作是PROCESS语句的简化形式。

进程的启动和敏感信号列表:

•进程的两个状态:

执行和挂起

•初始起动时,进程处于执行状态,进程中的语句从前向后逐句执行一遍。

•当最后一句语句执行完后,返回到进程开始的PROCESS语句,进程处于挂起状态。

•只要进程的敏感信号列表中任何一个信号发生变化,进程又处于执行状态。

然后再挂起,再执行,一直循环下去。

例4-1,4-2和4-3综合后的RTL视图:

RTL的介绍

RTLView也就是通常所讲的能够查看VHDL或者VerilogHDL对应的电路原理图。

这个功能对于使用HDL进行逻辑设计的人员还是很有用的,一方面可以充分理解HDL和硬件电路的对应关系,另一方面可以更加方便的查找设计中的错误。

异步时序电路设计:

•一个时钟进程只能构成对应单一时钟信号的时序电路。

•构成时序电路的进程称为时钟进程。

•异步逻辑最好用多个时钟进程语句来构成。

并置操作符(连接操作符)--&:

•把操作数或数组合并起来形成新的数组。

SIGNALa:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALd:

STD_LOGIC_VECTOR(1DOWNTO0);

….

A<=‘1’&‘0’&d

(1)&‘1’;--元素与元素并置,并置后数组长度为4

….

IFa&d=“101011THEN….--在IF条件句中可以使用并置符

用VHDL实现组合逻辑和时序逻辑的方法:

4.4计数器设计:

例4-204位二进制加法计数器

ENTITYCNT4IS

PORT(CLK:

INBIT;

Q:

BUFFERINTEGERRANGE15DOWNTO0);--Q为BUFFER模式

END;

ARCHITECTUREbhvOFCNT4IS

BEGIN

PROCESS(CLK)

BEGIN

IFCLK’EVENTANDCLK=‘1’THEN

Q<=Q+1;--在符号<=两边都出现了Q

ENDIF;

ENDPROCESS;

ENDbhv;(加粗字体重要)

例4-22中的新语句现象:

•变量(VARIABLE):

–与SIGNAL一样也是数据对象

–SIGNAL用“<=“赋值,VARIABLE用”:

=“赋值

–SIGNAL是全局的,VARIABLE只能作用于一个PROCESS内

–SIGNAL是在PROCESS末尾真正赋值,bescheduled;VARIABLE是立即赋值,immediately。

–(在第六章中会有对变量和信号的详细阐述)。

•省略赋值操作符(OTHERS=>X):

–用X给位矢量的某一部分位赋值后,再给剩余的位赋值。

例1:

SIGNALd1:

STD_LOGIC_VECTOR(4DOWNTO0);

d1<=(OTHERS=>’0’);等同于d1<=”00000“;

例2:

VARIABLEa1:

STD_LOGIC_VECTOR(15DOWNTO0);

a1:

=(OTHERS=>’0’)等同于a1:

=“0000000000000000”

例3:

d1<=(1=>’1’,3=>’1’,OTHERS=>’0’)等同于d1的第一位和每3位赋值为1,其它位赋值为0

问题:

为什么说RST是异步复位信号?

为什么说EN是同步使能信号?

PROCESS(CLK,RST,EN)

……

BEGIN

IFRST=‘1’THENCQI:

=(OTHERS=>‘0’);--计数器异步复位

ELSIFCLK’EVENTANDCLK=‘1’THEN--检测时钟上升沿

IFEN=‘1’THEN--检测是否允许计数(同步使能)

……

进行渐进式综合:

•渐进式综合是自上而下和自下而上渐进式编译流程的组成部分,可以将设计中的实体指定为设计分区,在上面逐渐进行Analysis&Synthesis,而不会影响工程的其他部分。

•设计完成后,渐进式综合只更新重新综合的设计部分,从而缩短了综合时间,减少了对运行时存储器的占用。

您可以修改并重新综合设计的一部分,而不会影响其他部分,这意味着在没有改动的部分,已寄存和已结合的节点名称保持不变。

成功进行工程及其所有分区的Analysis&Synthesis之后,单个分区必须合并到一起,作为完整工程的一部分再次进行编译。

信号(signal)与变量(variable):

•变量只能用在Process内部,变量不能用于Process间进行通信

•变量与信号的数据类型相同

•对变量的赋值马上有效,对信号的赋值是计划,是排队

•变量的主要作用是在进程中作为临时的数据存储单元(不全对)

Moore型状态机:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFSM2IS

PORT(clk,reset,in1:

INSTD_LOGIC;

out1:

OUTSTD_LOGIC_VECTOR(3downto0));

END;

ARCHITECTUREbhvOFFSM2IS

TYPEstate_typeIS(s0,s1,s2,s3);

SIGNALcurrent_state,next_state:

state_type;

BEGIN

P1:

PROCESS(clk,reset)

BEGIN

IFreset=‘1’THENcurrent_state<=s0;

ELSIFclk='1'ANDclk'EVENTTHEN

current_state<=next_state;

ENDIF;

ENDPROCESS;

P2:

PROCESS(current_state)

BEGIN

casecurrent_stateis

WHENs0=>IFin1=‘1’THENnext_state<=s1;

ELSEnext_state<=s0;

ENDIF;

WHENs1=>IFin1='0'THENnext_state<=S2;

ELSEnext_state<=s1;

ENDIF;

WHENs2=>IFin1='1'THENnext_state<=S3;

ELSEnext_state<=s2;

ENDIF;

WHENs3=>IFin1='0'THENnext_state<=S0;

ELSEnext_state<=s3;ENDIF;

endcase;

ENDPROCESS;

p3:

PROCESS(current_state)

BEGIN

casecurrent_stateis

WHENs0=>IFin1=‘1’THENout1<=“1001”;

ELSEout1<="0000";ENDIF;

WHENs1=>IFin1='0'THENout1<="1100";

ELSEout1<="1001";ENDIF;

WHENs2=>IFin1='1'THENout1<="1111";

ELSEout1<="1001";ENDIF;

WHENs3=>IFin1='1'THENout1<="0000";

ELSEout1<="1111";ENDIF;

endcase;

ENDPROCESS;

endbhv;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

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

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