EDA考试必考知识点

EDA考试必考知识点


2024年4月19日发(作者:)

考试题型:简答题,程序语句解释,程序填空,编程

EDA就是以计算机为工作平台,以EDA软件工具为开发环境,

以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系

统的一种技术。

现代EDA技术的特征:1,、采用硬件描述语言进行设计2、逻

辑综合与优化3、开放性和标准化4.、更完备的库。

数字系统设计技术:1、Topdown即自顶向下的设计。这种设计

首先从系统设计下手,在顶层进行功能方框图的划分和结构设

计。须经过“设计—验证—修改设计再验证”的过程,不断反

复,直到结果能够实现所要求的功能,并在速度、功耗、价格

和可靠性方面实现较为合理的平衡。2、Bottomup设计,即自

底向上的设计,由设计者调用设计库中的元件(如各种门电路、

加法器、计数器等) ,设计组合出满足自己需要的系统。不仅

效率低、成本高而且易出错。

IP:原来的含义是指知识产权、著作权,在IC设计领域指实现

某种功能的设计。IP核(IP模块):指功能完整,性能指标可

靠,已验证的、可重用的电路功能模块。IP复用:软IP--用

VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体

电路元件实现这些功能。固IP完成了综合的功能块。硬IP供

设计的最终阶段产品:掩膜。基于IP复用的开发帮助设计者节

省时间,缩短开发周期,避免重复劳动。

可编程逻辑阵列PLA,可编程与阵列或阵列,输出电路固定。可

编程阵列逻辑PAL,可编程与阵列,或阵列输出电路固定。

FPGA是一种半定制的器件,器件内已做好各种逻辑资源,用户

只需对器件内的资源编程连接就可实现所需要的功能。ASIC指

用全定制的方法来实现设计的方式,它在最底层,即物理版图

级实现设计,因此也称为掩膜ASCI。CPLD即复杂可编程逻辑器

件,是从EPLD改进而来的。

逻辑综合:RTL级描述转换到逻辑门级(包括触发器)。版图

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

PLD器件的配置网表表示。综合器是能够自动实现上述转换的

软件工具,是能将原理图或HDL语言描述的电路功能转化为具

体电路结构网表的工具。硬件综合器和软件程序编译器有本质

区别:软件程序编译器是将C或汇编编写的程序编译为0/1代

码流,而硬件综合器是将硬件描述语言编写的程序代码转化为

具体的电路网表结构。适配器也称为结构综合器,它的功能是

将由综合器产生的网表文件配置于指定的目标器件中,并产生

最终的可下载文件。仿真是对所设计电路的功能的验证。包括

功能仿真、时序仿真。不考虑信号延时等因素的仿真称功能仿

真。时序仿真是在选择了具体器件并完成了布局布线后进行的

包含延时的仿真。(功能仿真与时序仿真有什么区别)编程是

把适配后生成的编程文件装入到PLD器件中的过程或称为下

载。(通常将对基于EEPROM工艺的非易失结构PLD器件的下载

称为编程,将基于SRAM工艺结构的PLD器件的下载称为配

置。)

数字系统设计的流程:1、设计输入包括原理图输入、硬件描述

语言(HDL文本输入)2、综合3、适配4、仿真5、编程

EDA技术的发展趋势:1、超大规模集成电路的集成度和工艺水

平不断提高/2、市场对系统的集成度不断提出更高的要求3、

高性能的EDA工具,其自动化和智能化程度不断提高,为嵌入

式系统设计提供了功能强大的开发环境/4、计算机硬件平台性

能大幅度提高,为复杂的SoC设计提供了物理基础。

PLD器件按照可以编程的次数可以分为两类:(1) 一次性编程

器件(OTP)(2) 可多次编程器件。OTP类器件的特点:只允许

对器件编程一次,不能修改。可多次编程器件则允许对器件多

次编程,适合于在科研开发中使用。

按编程元件和编程工艺分类:(1)熔丝(2)反熔丝编程元件(3)紫

外线擦除、电可编程,如EPROM。(4)电擦除、电可编程方式,

EEPROM、快闪存储器),如多数CPLD。以上为非易失性器件。

(5)静态存储器结构,如多数FPGA。以上为易失性器件。

按结构特点分类:1.基于乘积项结构的PLD器件。基于与或阵

列,此类器件都包含一个人或多个与或阵列。这类器件多采用

EEPROM或Flash工艺制作,配置数据掉电后不会丢失。如

CPLD。CPLD(如MAX7000S)器件主要由以下及部件构成:宏单

元、可编程连线阵列、IO控制块。2.基于查找表结构的PLD器

件。基于静态存储器(SRAM)和数据选择器,通过查表方式实现

函数功能。这类器件集成度高,逻辑功能强,但配置数据容易

丢失。如FPGA。FPGA(如XC4000)器件主要由3部分组成:可

配置逻辑块(CLB)、输入输出模块、布线通道。(CPLD和

FPGA在机构上有什么区别,各有什么特点)从功能上看,可以

把Megafunction库中的元器件分为:算术运算模块、逻辑门模

块、储存模块、IO模块。

参数化锁相环宏模块altpll以输入时钟信号作为参考信号实现

锁相,从而输出若干个同步倍频或者分频的片内时钟信号。与

直接来自片外的时钟相比,片内时钟可以减少时钟延迟,减小

片外干扰,还可改善时钟的建立时间和保持时间,是系统稳定

工作的保证。

Verilog程序的特点:1、Verilog程序是由模块构成的。每个

模块的内容都嵌在module和endmodule两个关键字之间;每个

模块实现特定的功能;模块是可以进行层次嵌套的。2、每个模

块首先要进行端口定义,并说明输入和输出口(input、output

或inout),然后对模块的功能进行逻辑描述。3、Verilog程序

书写格式自由,一行可以写几个语句,一个语句也可以分多行

写。4、除了endmodule等少数语句外,每个语句的最后必须有

分号。5、可以用 /*„„*/ 和 //„„ 对Verilog程序作注

释。好的源程序都应当加上必要的注释,以增强程序的可读性

和可维护性。

Verilog HDL包括4个主要部分:模块声明、端口定义、信号

类型声明、逻辑功能描述。

空白符包括:空格、tab、换行和换页。

Verilog中的标识符可以是任意一组字母、数字以及符号“$”

和“_”(下划线)的组合,但标识符的第一个字符必须是字母

或者下划线。另外,标识符是区分大小写的。

Verilog语言内部已经使用的词称为关键字或保留字,这些保

留字用户不能作为变量或节点名字使用。关键字都是小写的。

程序运行中,值不能被改变的量称为常量,Verilog中的常量

主要有如下3种类型:整数、实数、字符串。在位宽和'之间,

以及进制和数值之间允许出现空格,但'和进制之间,数值间是

不允许出现空格的。小数点两侧都必须有数字。字符串不能分

成多行书写。数据类型是用来表示数字电路中的物理连线、数

据存储和传输单元等物理量的。

Verilog有下面四种基本的逻辑状态:0:低电平、逻辑0或逻

辑非。1:高电平、逻辑1或“真”。x或X:不确定或未知的

逻辑状态。z或Z:高阻态。

Verilog中的变量分为如下两种数据类型:net型(wire、

tri)、variable型(reg、integer)。

Net型数据相当于硬件电路中的各种物理连接,其特点是输出

的值紧跟输入值的变化而变化。对连线型有两种驱动方式,一

种方式是在结构描述中将其连接到一个门元件或模块的输出

端;另一种方式是用持续赋值语句assign对其进行赋值。

variable型变量必须放在过程语句(如initial、always)

中,通过过程赋值语句赋值;在always、initial等过程块内

被赋值的信号也必须定义成variable型。

在Verilog语言中,用参数parameter来定义符号常量,即用

parameter来定义一个标志符代表一个常量。参数常用来定义

时延和变量的宽度。

标量与向量:宽度为1位的变量称为标量,如果在变量声明中

没有指定位宽,则默认为标量(1位)。线宽大于1位的变量

(包括net型和variable型)称为向量。位选择和域选择:

在表达式中可任意选中向量中的一位或相邻几位,分别称为位

选择和域选择。存储器:二维向量或是由若干个宽度相同的寄

存器构成的阵列。存储器定义时,需定义存储器的字长(数据

宽度)和容量(存储单元数)。只能对存储器某一单元整体赋

值,不可进行位选择、域选择,不过可以先将存储器的内容赋

给寄存器,再对寄存器进行位选择、域选择。用系统任务

$readmemb,$readmemh实现存储器加载。

向量(多位)的逻辑运算采用各位标量逐位进行逻辑或运算

(见1为1,全0为0)得到1位标量之后,再行相关运算!位

运算即将两个操作数右端对齐、按对应位分别进行逻辑运算。

在一个模块(module)中,使用initial和always语句的次数

是不受限制的。initial语句常用于仿真中的初始化,initial

过程块中的语句仅执行一次;always块内的语句则是不断重复

执行的。

“always”过程语句通常是带有触发条件的,触发条件写在敏

感信号表达式中,只有当触发条件满足时,其后的“begin-

end”块语句才能被执行。敏感信号表达式又称事件表达式或敏

感信号列表,即当该表达式中变量的值改变时,就会引发块内

语句的执行。因此敏感信号表达式中应列出影响块内取值的所

有信号。若有两个或两个以上信号时,它们之间用“or”连

接。敏感信号分为两种类型:边沿敏感型和电平敏感型(不建

议两种放一起用)。

对于时序电路,事件通常是由时钟边沿触发的,为表达边沿这

个概念,Verilog提供了posedge和negedge关键字来描述。

initial语句不带触发条件,且沿时间轴只执行一次。通常用

于仿真模块中激励信号的描述,或给寄存器变量赋初值。

assign为持续赋值语句,主要用于对wire型变量的赋值。

块语句是由块标志符begin-end或fork-join界定的一组语

句,当块语句只包含一条语句时,块标志符可以缺省。begin-

end串行块中的语句按串行方式顺序执行。

在Verilog中存在四种类型的循环语句,用来控制语句的执行

次数。这四种语句分别为:1、forever:连续地执行语句;多用

在“initial”块中,以生成时钟等周期性波形。2、repeat:

连续执行一条语句n次。3、while:执行一条语句直到某个条

件不满足。4、for:有条件的循环语句。

Verilog允许在程序中使用特殊的编译向导(Compiler

Directives)语句,在编译时,通常先对这些向导语句进行

“预处理”,然后再将预处理的结果和源程序一起进行编译。

向导语句以符号“`”开头,以区别于其它语句。Verilog提供

了十几条编译向导语句,如:`define。`define语句用于将一

个简单的名字或标志符(或称为宏名)来代替一个复杂的名字

或字符串

两个或更多个“always”过程块、“assign”持续赋值语句、

实例元件调用等操作都是同时执行的。在“always”模块内

部,其语句如果是非阻塞赋值,也是并发执行的;而如果是阻

塞赋值,则语句是按照指定的顺序执行的,语句的书写顺序对

程序的执行结果有着直接的影响。

Verilog设计的描述层次,级别:系统级、算法级、寄存器传

输级、门级、开关级。Verilog设计的描述风格,方式 :结构

描述、行为描述、数据流描述。结构描述多调用库中的元件或

是已设计好的模块来设计实体功能。行为描述就是对设计实体

的数学模型的描述,其抽象程度远高于结构描述方式。行为描

述类似于高级编程语言,当描述一个设计实体的行为时,无需

知道具体电路的结构,只需要描述清楚输入与输出信号的行

为,而不需要花费更多的精力关注设计功能的门级实现。多采

用always过程语句。数据流描述方式主要使用持续赋值语句

assign,多用于描述组合逻辑电路。

流水线设计是经常用于提高所设计系统运行速度的一种有效的

方法。为了保障数据的快速传输,必须使系统运行在尽可能高

的频率上,但如果某些复杂逻辑功能的完成需要较长的延时,

就会使系统难以运行在高的频率上,在这种情况下,可使用流

水线技术,即在长延时的逻辑功能块中插入触发器,使复杂的

逻辑操作分步完成,减小每个部分的延时,从而使系统的运行

频率得以提高。流水线设计的代价是增加了寄存器逻辑,增加

了芯片资源的耗用。

状态机是组合逻辑和寄存器逻辑的组合,分别用于存储状态、

状态译码和产生输出信号。状态机有Mealy型(输出是当前状

态和当前输入的函数)Moore型(输出是当前状态的函数)。

实用状态机一般为同步时序方式,在时钟信号的触发下完成各

个状态之间的转换,产生相应的输出。状态机的表示方法:状

态图、状态表、流程图。

奇数分频方法:用两个计数器,一个由输入时钟上升沿触发,

一个由输入时钟下降沿触发,最后将两个计数器的输出相或。

Verilog模块中有如下表示进程的方式:always过程块、

initial过程、assign赋值语句、元件调用。

非阻塞赋值在整个过程块结束时才完成赋值操作。阻塞赋值在

该语句结束时就立即完成赋值操作,如果在一个块语句中,有

多条阻塞赋值语句,那么在前面的赋值语句没有完成之前,后

面的语句就不能被执行,仿佛被阻塞了(blocking)一样,因

此称为阻塞赋值方式。在可综合的硬件设计中,使用阻塞和非

阻塞赋值语句时,应注意以下原则:1、当用“always”块来描述

组合逻辑时,既可以用阻塞赋值,也可以采用非阻塞赋值,应

尽量使用阻塞赋值。2、对时序逻辑描述和建模,使用非阻塞赋

值方式。3、为锁存器建模,应尽量使用非阻塞赋值。4、若在

同一个“always”过程块中既为组合逻辑建模,又为时序逻辑

建模,最好使用非阻塞赋值方式。5、在一个“always”过程块

中,最好不要混合使用阻塞赋值和非阻塞赋值,虽然同时使用

这两种赋值方式在综合时并不一定会出错,但对同一个变量不

能既进行阻塞赋值,又进行非阻塞赋值,这样在综合时会报

错。6、不能在两个或两个以上的“always”过程中对同一个变

量赋值,这样会引发冲突,在综合时会报错。7、仿真时使用

$strobe显示非阻塞赋值的变量。

毛刺:信号在FPGA器件内部通过连线和逻辑门时,都有一定的

延时。因此多路信号的电平值发生变化时,在信号变化的瞬

间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出

现一些不正确的“毛刺”,称为“冒险”现象。1、改变设计,

破坏毛刺产生的条件,来减少毛刺的发生。2、根据D触发器的

D输入端对毛刺不敏感的特点而消除毛刺。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713459812a2253194.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信