EDA技术期末考试复习资料_第1页
EDA技术期末考试复习资料_第2页
EDA技术期末考试复习资料_第3页
EDA技术期末考试复习资料_第4页
EDA技术期末考试复习资料_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实用文档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级表示转换到逻辑门的表示,即逻辑综合

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

功能仿真和时序仿真:

功能仿真:是直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以1.了解其实现的功能是否满足原设计的要求的过程,实用文档仿真过程不涉及任何具体器件的硬件特性。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技术:多数CPLD2.基于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型状态机:实用文档其它/0000 其它/10011/1001其它/1111S00/00001/1111S1S30/1100其它/1100S2LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFSM2ISPORT(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<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论