EDA复习总结

一.名词解释

EDA 电子自动化设计 electronic design automation

FPGA 现场可编程门阵列 field programmable gate array

CPLD 复杂可编程逻辑器件 complex programmable logic device

ASIC 特定用途集成电路 application specific integrated circuit

IP 知识产权 intellectual property

SOC 片上系统 system on a chip

FSM 有限状态机 finite state machine

MPW 多用途晶圆 multi project wafer

DSP 数字信号处理器 digital signal processor

MCU 微程序控制器 micro control unit

HDL 硬件表述语言 hardware description language

VHDL 超高速集成电路硬件描述语言

very high speed integrated circuit hardware description language

二.简答题

1.top-down方法:从系统硬件的高层次抽象描述向低层次物理描述的一系列转化过程。从顶向下设计由功能级,行为级描述开始;寄存器传输(RTL)级描述为第一个中间结果,再将RTL级描述由逻辑综合网表或电路图;利用EDA工具将网表自动转换换成目标文件下载到现场可编程门阵列|复杂可编程逻辑器件或通过自动布局布线设计成专用集成电路,从而得到电路与系统的物理实现。

2.逻辑综合主要通过综合工具,依据设计人员设定的时序,面积等约束条件,将与工艺无关的RTL级的电路逻辑描述程序,转化为与工艺相关的电路,是将程序设计转化为硬件实现的重要环节。

3.简述可编程器件与ASIC在设计应用成本等方面的优缺点

面向可编程逻辑器件的设计其设计投入资金小,风险小,开发周期短,调试灵活,易学易用,而ASIC设计的设计资金投入大,流片费用都很昂贵,研发投片制作其有一定的失败风险,且其开发周期较长,调试改动设计都比较困难,不过,产品进入大批量生产后,ASIC成品的成本往往低于可编程器件成本。

4.top-down过程分为:行为级描述,寄存器传输(RTL)级描述,逻辑综合,物理实现。

5.VHDL描述方式:行为级描述,RTL级描述方式,结构级描述方式。

6.仿真过程:行为级仿真,RTL仿真,门级仿真,后仿真。

7.Top-down设计方法特点:

1)在系统设计早期就能发现设计中存在的问题,并尽可能在早期设计阶段就能解决问题。

2)自动化

8.top-down优势

1)在系统设计早期发现设计中存在的问题,提高设计的一次成功率。

2)大大缩短了系统设计的周期,减少系统开发所耗用的时间。

3)易于系统划分和项目管理,使几十万乃至几百万的大规模复杂数字电路的设计成为可能。

4)设计效率提高,可减少设计人员。

5) 通过设计共享,避免重复设计。

9.HDL:指电子技术高层设计阶段中所采用的硬件描述语言。

特点:1、HDL以行为级描述见长,它能从比较抽象的角度描述电子实体的行为,能够进行早期仿真。

2、HDL能够进行结构化描述,它能从具体的角度描述电子实体结构,便于存档,便于共享。

3、HDL具备了从比较抽象到比较具体的多个层面上进行混合描述能力,降低了硬件电路设计难度。

4、既能被仿真又能被综合。

10.VHDL特点:

1)通用型好,适用面广 2)重用性好 3)可靠性好 4)以行为级描述见长。

11.IP分为软核,硬核,固核

软核:第二阶段,寄存器级设计结果,且经过RTL级仿真验证。通常以HDL语言形式提交。

固核:第四阶段,经过FPGA实物验证的设计结果。通常以门级网表的形式提交。 硬核:第四阶段,经过ASIC工艺验证的设计结果。通常以版图的形式提交。 三者的价值:

从FPGA角度看固核最有价值 从ASIC角度看硬核最有价值

软核则由于它与工艺和器件均无关,具有高度灵活性,从而具有独特价值。

固核硬化:将固核转化为硬核。

硬核软化:因为硬核必须用过交换或出售才能实现价值最大化。而在硬核交换过程中,为了保护硬核知识产权,IP提供者往往将硬核以黑匣子形式提供给用户,同时能将硬化软化,即采用硬件描述语言对硬核的功能进行行为级描述,通过使用该行为级描述,在保护匣子具体内容的同时,仍可进行IP仿真。

12.FPGA/CPLD在EDA中具有重要作用

1)VHDL程序用过FPGA/CPLD可以得到EDA设计的最终产品,在产品数据较小时快速占领市场。

2)VHDL程序通过FPGA/CPLD验证可以形成固核具有一定商品价值。

3)VHDL程序的FPGA/CPLD验证试验是一种ASIC设计的硬件仿真工具。

13.并行语句和顺序语句在使用上有哪些差异:

1)并发语句只能够出现在并发语句结构中,如结构体,BLOCK等,并发语句的执行与其在程序中的书写顺序无关;

2)顺序语句只能够出现在顺序语句结构中,如PROCESS,过程,函数等结构中,其执行与书写顺序相关,写在前面的语句先执行,写在后面的依据后执行。

14.数据类型是用标示符表征某个或某个数值的集合,数据类型按照定义可分为标准预定义数据类型和用户自定义数据类型,还有用户自定义数据类型。在VHDL中若某个对象被声明为某种类型,其值必须在该数据类型所限定的取值范围之中,且只有相同的数据类型才能做赋值或运算,不同数据类型的数据必须通过类型转换一致后,才能运算。故说VHDL语言是强数据类型的描述语言。

15.描述行为语言:信号赋值语言,进程语句,子程序,块语句,断言语句。

描述结构语句:元件语句(COMPONENT),生成语句(GENERATE),参数说明语句(GENERIC)

16.并行信号赋值语句:一般信号赋值,条件信号赋值,选择信号赋值。

17.什么是EDA?

EDA技术是一种以计算机为基本工作平台,利用计算机图形学,拓扑逻辑学,计算数学以及人工智能学等多种计算机应用学科的最新成果而开发出来的一整套软件工具,是一种帮助电子设计工程师从事电子元件产品和系统设计的综合设计,电子设计自动化技术,方法一般采用自顶向下的设计方法,也叫正向设计,它是针对传统的自底向上的设计方法而提出的。

18.什么是IP核?学习VHDL与掌握IP核技术的关系四什么?

IP核是具有知识产权的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时“搭积木”之用。

19.信号赋值语句在进程做并行语句,并发执行,与语句所处位置无关。

信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处位置无关。 信号赋值语句符号为“<=” 变量赋值符号位”:=”

用于信号赋值动作,不立即生效 用于变量赋值动作,会立即生效

20.Active—HDL软件工具对VHDL程序进行仿真方法有哪些?

利用Active—HDL软件工具对VHDL程序进行仿真时,常用的三种仿真方法:

1)用图形化界面加激励(或手动测试加激励)方法简单,常用于初学者或简单的小程序仿真。

2)编写测试平台文件(或编写testbench)的仿真方法可以方便地使用VHDL编写做激励文件。常用于工程设计实践,尤其适用于需要反复多次仿真或测试激励的跨平台移植。

3)编写宏文件的仿真方法用命令行,批处理文件方式编写激励,常用于需要多次仿真时,一次性编写激励,多次仿真时反复使用。

21.进程的“敏感信号”,也称敏感表,是进程的激活条件,可由一个信号或多个信号组成之间用“,”隔开。

当敏感信号表中的任意一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕后,进程即进入等待挂起状态,直到下一次敏感表中的信号有时间发生,进程再次被激活,如此循环往复。

22.VHDL程序的组成部分包括哪些?

实体:描述设计单元的外围接口信号和内部参数。

构造体:描述设计单元的内部结构和逻辑行为。

配置:为设计单元从多个构造体中选择合适的构造体或从库中选取合适的元件以便于进行设计单元的仿真或综合。

程序包:存放各设计模块都能共享的数据类型,常熟和子程序。

库:存放已经编译了的元件和程序包,以便在设计单元中使用,库可由系统工程师的自信设计或由ASIC芯片制造商提供。

23.端口方向有哪几种?

端口:

In:输入端口,在设计单元内部只可读,在设计单元内不可对其赋值。

Out:输出端口,在设计单元内部只可写,不可反馈至设计单元内部作逻辑电路的输入型号。

Inout:输入通道和输出通道共享引脚的双向端口,在设计单元内部分时可读可写,需要控制信号控制何时读,何时写,输入和输出通道不能同时有效。

Buffer:缓冲输出端口,可反馈至设计单元内部作为逻辑电路的输入信号,故可在设计单元内部可读可写。

Linkage:链接端口,无指定方向,可以与任意方向信号链接。

24.VHDL有哪几种描述方式?分别用于什么场合?

逻辑综合:在top-down流程中,EDA软件可以将源程序自动转换为描述底层逻辑门互联关系的门级网表,从而与最终的可编程器件或ASIC硬件实现相对应。

行为级描述方式是抽象程度最高的电路建模方式,源程序主要描述电路的输出端口随输入变化而变化规律,程序描述贴近人类高级语言,不可被综合。

寄存器级通过描述数据从输入到输出的运算处理按时了电路结构综合。

结构描述方式是层次化设计思想的体现,是描述电路硬件连接的建模方式,源程序可否被综合,依赖被调用元件可综合否。

25.什么是数据对象?常用的数据对象有哪些几种?

常用数据对象:信号,变量,常量

在VHDL程序中凡是可以被赋值的对象称为数据对象。

26.信号延时有哪几种?它们有何异同?

信号延时:

传播延时:直接模拟导线上信号的延时。任何信号传入导线的一段,经过一段延时信号必须从导线另一段输出。

惯性延时:模拟某类元件的延时特征,信号传入软件后,在指定时间内输入信号必须保持不变,元件的输出端才会有响应。

27.什么是数据类型?它可以分为哪几大种?每一种类型中包括哪些具体类型?

数据类型:标准数据类型,用户自定义数据类型,用户自定义子类型。

标准数据类是在VHDL预定义库中定义的数据类型,在使用时不需要作参考库和程序包申明。

位、矢量位、整数、自然数。正整数、实数、布尔量、字符、字符串、时间、错误等级。 用户自定义数据类型:

在VHDL中用户还可以自己定义所需数据类型。

语法格式:Type <数据类型> Is 数据类型定义;

枚举类型、数组类型、存取类型、文件类型、记录类型、时间类型。

用户自定义子类型:

用户自定义的子类型,是对已定义数据类型取值范围加以限制得到的子集。

语法格式:SUBTYPE <子类型名> IS 原数据类型名 [范围]

28.VHDL中操作符主要有哪几类?它们都分为哪些主要元素?

逻辑运算符: not(非) and(与) or(或) nand(或与) nor(或非) xor(异或)

算数运算符:+ - * / MOD(求模) REM(取余) * *(指数) ABS(取绝对值) 关系运算符:= /= < > <= >=

并置运算符:& 用于位链接。

算数运算符 + - *能够真正被综合,MOD REM 分母的操作数为2乘方的书,逻辑电路综合是可能的。

29. 什么是层次化?

层次化设计基于电子系统的结构化建模方式,对系统的功能和结构进行描述,层次化设计奖系统逐级划分,将较独立的功能或逻辑电路单独建模,与参考库中的底层元件一起调用。作为可调用元件,在确保正确的情况下,调入高层次的设计中作为实例使用,在系统设计中,采用层次化设计方法,可以有效地简化设计难度,明确系统架构,促进团队合作和共享。

30.什么是组合逻辑?其VHDL程序设计有何特点?

组合逻辑就是指数字电路在任何时刻仅仅取决于该时刻数字电路的输入,与历史输入无关。

用VHDL描述组合逻辑电路,使用并行语句或使用进程。

31.什么是时序逻辑?其VHDL程序设计与组合逻辑的有何不同?

时序逻辑电路指数字电路在任何时刻的输出不仅取决于该时刻数字电路输入,而且取决于电路原来状态,或者说还与历史输入有关。

用VHDL描述时序电路:必须使用到进程。

32.常用EDA工具:Active-HDL,FPGA-Express,ISE,Cadence,Verilog-XL,NC-verilog,Maxplus-II.

33.‘U’初始状态 ‘X’不定态 ‘0’强0态 ‘1’强1态 ‘Z’高阻态 ‘L’弱0态 ‘H’弱1态 ‘W’ 弱补丁太 ‘-’无关态

34.mealy:输出由状态机的输入和状态机的状态共同决定。

Moore:输出仅与状态机的状态有关,与状态机的输入无关。

 

第二篇:EDA考试总结

名词解释:

EDA:电子设计自动化(Electronic Design Automation)

ASIC:专用集成电路(Application Specific Integrated Circuit)

CPLD:复杂可编程逻辑器件(Complex Programmable Logic Device)

FPGA:现场可编程门阵列(Filed-Programmable Gate Array)

IP:知识产权核或知识产权模块(Intellectual Property)

SOPC:可编程片上系统或单芯片可编程系统(System On a Programmable Chip)

HDL:硬件描述语言(Hardware Description Language)

VHDL: VHSIC (Very High Speed Integrated Circuit) Hardware Description Language

简述JTAG的用途:

JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于测试访问端口,使用边界扫描的方法来测试印刷电路板。 JTAG具有广泛的应用。几乎所有的嵌入式系统都具有JTAG端口。PCI总线接口包含JTAG引脚。一种特殊的JTAG卡可以用来刷新被破坏了的BIOS。

JTAG是一种所谓的边界扫描技术。边扫描测试是在20世纪xx年代中期作为解决PCB物理访问问题的JTAG接口发展起来的,这样的问题是新的封装技术导致电路板装配日益拥挤所产生的。边界扫描在芯片级层次上嵌入测试电路,以形成全面的电路板级测试协议。利用边界扫描--自19xx年以来的行业标准IEEE 1149.1--您甚至能够对最复杂的装配进行测试、调试和在系统设备编程,并且诊断出硬件问题。

与传统的数字电路系统设计相比,EDA设计有何特点,优势?(详见书上p5)

1. 用HDL进行设计,降低了设计成本,缩短了设计周期。

2. EDA工具能完成各种自动设计过程是因为各类库的支持,这些库是由EDA公司与半导体生产厂商合

作共同开发的。

3. 某些HDL本身也是文档型的语言(如VHDL),极大地简化了设计文档的管理。

4. EDA中最为瞩目的功能是逻辑设计仿真测试技术,只需通过计算机进行仿真测试,这一切极大地提高

了大规模系统电子设计的自动化程度。

5. 基于EDA技术的电子系统设计可以使设计者拥有完全的自主权,再无受制于人之虞。

使用EDA技术,完成系统设计,一般要经过哪几个步骤?

EDA设计流程:

1. 系统规格制定(Define Specification)

2. 设计描述(Design Description)

3. 功能验证(Function Verification)

4. 逻辑电路合成(Logic synthesis)

5. 逻辑门层次的电路功能验证(Gate-Level Netlist Verification)

6. 配置与绕线(Place and Routing)

7. 绕线后的电路功能验证(Post Layout Verification)

目前市面上有哪些软件可做电路设计使用?

Quartus II: Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Protel DXP: Altium公司作为EDA领域里的一个领先公司,在原来Protel 99SE的基础上,应用最先进的软件设计方法,率先推出了一款基于Windows20xx和Windows XP操作系统的EDA设计软件Protel DXP。DSP Builder:Altera可编程逻辑器件(PLD)中的DSP系统设计需要高级算法和HDL开发工具。Altera DSP Builder将The MathWorks MATLAB和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。

生成“或非”门(输入:A,B输出:Y):

library ieee;

use ieee.std_logic_1164.all;

entity VHDL1 is

port (a,b:in bit;

c:out bit);

end;

architecture bhv of VHDL1 is

begin

process(a,b)

begin

if a='0' and b='0'

then c<='1';

else

c<='0';

end if;

end process;

end bhv;

设计一个5人多数表决器:

library ieee;

use ieee.std_logic_1164.all;

entity VHDL2 is

port (a,b,c,d,e:in integer;

y:out integer);

end;

architecture bhv of VHDL2 is

signal q1:integer range 5 downto 0;

begin

process(a,b,c,d,e,q1)

begin

q1<=a+b+c+d+e;

if q1>='3'

then y<='1';

else

y<='0';

end if;

end process;

end bhv;

用IF-ELSE-IF-END IF语句实现三一八译码功能74LS138基本逻辑功能。 library ieee;

use ieee.std_logic_1164.all;

entity VHDL3 is

port (a,b,c:in bit;

y:out integer range 7 downto 0);

end;

architecture bhv of VHDL3 is

begin

process(a,b,c)

begin

if a='0'and b='0'and c='0'

then y<='0';

else

if a='0'and b='0'and c='1'

then y<='1';

else

if a='0'and b='1'and c='0'

then y<='2';

else

if a='0'and b='1'and c='1'

then y<='3';

else

if a='1'and b='0'and c='0'

then y<='4';

else

if a='1'and b='0'and c='1'

then y<='5';

else

if a='1'and b='1'and c='0'

then y<='6';

else

if a='1'and b='1'and c='1'

then y<='7';

end if;

end process;

end bhv;

一位全加器

library ieee;

use ieee.std_logic_1164.all; entity VHDL4 is

port (ain,bin,cin:in integer;

cout,sum:out integer); end;

architecture bhv of VHDL4 is

signal q1:integer range 3 downto 0 ; begin

process(ain,bin,cin)

begin

q1<=ain+bin+cin;

if q1='3'

then sum<='1' and cout='1'; else

if q1='2'

then sum<='0' and cout='1'; else

if q1='1'

then sum<='1' and cout='0'; else

if q1='0'

then sum<='0' and cout='0'; end if;

end process;

end bhv;

相关推荐