集成电路作业共7页文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简答题
1、列出三个及以上世界知名EDA公司的名称、主要芯片产品以及配套软件。
答:
(1)Xilinx公司(FPGA的发明者)。
产品主要有:7系列All Programmable FPGA产品(Artix-7、Kintex-7等)、6系列FPGA (Vertex-6)、 XC9500/4000、Coolrunner(XPLA3)、Xilinx All Programmable SoC、CPLD等,其最大的Vertex—II Pro器件已达到800万门。
开发软件为Foundation和ISE。
欧洲多用Xilinx 公司产品,中国和亚太地区用ALTERA的人多,美国则是平分秋色。
全球PLD/FPGA产品60%以上是由Altera 和Xilinx提供的。
(2)Altera公司。
主要产品有:可编程系统级芯片 (SOPC) 、FPGA、CPLD(MAX3000/7000/9000/II等系列)、Cylone、APEX20K、ACEX、Stratix等。
配套软件:可编程逻辑技术与软件工具,其开发工具—MAX+PLUS II是较成功的PLD开发平台,最新又推出了Quartus II开发软件。
Altera公司提供较多形式的设计输入手段,绑定第三方VHDL综合工具,如:综合软件FPGA Express、Leonard Spectrum,仿真软件ModelSim。
(3)Latticee公司,是ISP(In—System Programmability)技术的发明者,ISP技术极大地促进了PLD 产品的发展。
与ALTERA和XILINX相比,其开发工具比Altera和Xilinx略逊一筹。
中小规模PLD比较有特色,大规模PLD、FPGA的竞争力还不够强,2019年推出可编程模拟器件,99年收购Vantis(原AMD子公司),成为第三大可编程逻辑器件供应商。
2019年12月收购Agere公司(原Lucent微电子部)的FPGA 部门。
主要产品有ispLSI2000/5000/8000,ispMCAH4000等。
2、试阐述硬件描述语言与计算机高级编程语言在程序设计中的本质区别(例如Verilog HDL 与C语言)答:虽然Verilog的某些语法与C语言接近,但存在本质上的区别:
(1)Verilog是一种硬件语言,VHDL等硬件描述语言主要用于CPLD、FPGA的大规模可编程逻辑器件,最终是为了产生实际的硬件电路或对硬件电路进行仿真;
(2)C语言是一种软件高级编程语言,主要用于计算机等方面,是控制硬件来实现某些功能。
3、用Verilog HDL定义宽度为8位,深度为16的存储器。
答: reg[7:0] ROMA[15:0];
4、阻塞赋值(b=a)与非阻塞赋值(b<=a)有哪些区别?
答:在写组合逻辑电路的代码时,书上例子大都用的"=";而在写时序逻辑电路代码时,书上例子大都用的"<="。
在Verilog HDL中阻塞赋值"="和非阻塞赋值"<="有着很大的不同,对于初学者而言,首先要掌握可综合风格的Verilog模块编程的8个原则,才能在综合布局布线的仿真中避免出现竞争冒险现象。
(1)时序电路建模时,用非阻塞赋值。
(2)锁存器电路建模时,用非阻塞赋值。
(3)用always块建立组合逻辑模型时,用阻塞赋值。
(4)在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。
(5)在同一个always块中不要既用非阻塞赋值又用阻塞赋值。
(6)不要在一个以上的always块中为同一个变量赋值。
(7)用$strobe系统任务来显示用非阻塞赋值的变量值。
(8)在赋值时不要使用 #0延时。
这样做的目的是为了使综合前仿真和综合后仿真一致。
在很多时候,用"="或者是"<="实际上对应的是不同的硬件电路,这点一定要十分清楚。
阻塞赋值(=):
我们先做下面定义:RHS—赋值等号右边的表达式,LHS—赋值等号左边的表达式。
在串行语句块中,阻塞
赋值语句按照它们在块中的排列顺序依次执行,即前一条语句没有完成赋值之前,后面的语句不可能被执行,换言之,后面的语句被阻塞了。
阻塞赋值的执行可以认为只有一个步骤的操作,即计算RHS并更新LHS,此时不允许有来自任何其他Verilog语句的干扰。
所谓阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上是在前一条赋值语句结束后开始赋值的。
有句话我一直没读懂:从理论上讲,它与后面的赋值语句只有概念上的先后,而无实质上的延时。
例如:
begin
B = A;
C = B + 1;
end
首先第一条语句执行,将A的值赋给B,接着执行第二条语句,将B+1(即A加1),并赋给C。
也就是说C = A + 1。
非阻塞赋值(<=):
非阻塞语句的执行过程是:首先计算语句块内部所有右边表达式(RHS)的值,然后完成对左边寄存器变量的赋值操作,例如,下面两条非阻塞赋值语句的执行过程是:先计算右边表达式的值并暂存在一个暂存器中,A的值被保存在一个寄存器中,而B+1的值被保存在另一个寄存器中,在begin和end之间所有语句的右边表达式都被计算并存储完后,对左边的寄存器变量的赋值才会进行。
这样C得到的是B的原始值而不是A加一。
begin
B <= A;
C <= B +1;
end
如果我们想让两个最基本的D触发器串联,我们用阻塞和非阻塞赋值看看结果有什么不同
阻塞和非阻塞的不同造成了电路上巨大的不同,因此他们的差别应该牢记。
5、什么是有限状态机?设计有限状态机的一般步骤是什么?
答:有限状态机,又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
步骤为:
1)、逻辑抽象,得出状态转换图
2)、状态化简
3)、状态分配
4)、选定触发器的类型并求出状态方程,驱动方程和输出方程
5)、按照方程得出逻辑图
6)、检查所设计的电路能否自启动
6、FPGA和ASIC的概念,他们的区别。
答:
FPGA是可编程ASIC, FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Con-figurable Logick)
输入输出模块IOB(Input Out put Block)和内部连线(Inter connect)三个部分。
可配置逻辑模块是实现用户功能的基本单元,它们通常排列成一个阵列,散布整个芯片;输入输出模块IOB完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;内部连线包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O 块连接起来,构成特定功能的电路。
ASIC(Application Specific Integrated Circuit)在集成电路界被认为是一种为专门目的而设计的集成电路,即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
区别:
FPGA是可编程ASIC。
ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制
造的。
根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。
与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点。
7、你知道的集成电路设计的表达方式有哪几种?
答:IC 分数字和模拟门海门阵列 FPGA ASIC CPLD
8、描述你对集成电路设计流程的认识。
答:集成电路设计的流程一般先要进行软硬件划分,将设计基本分为两部分:芯片硬件设计和软件协同设计。
芯片硬件设计包括:
1.功能设计阶段。
设计人员产品的应用场合,设定一些诸如功能、操作速度、接口规格、环境温度及消耗功率等规格,以做为将来电路设计时的依据。
更可进一步规划软件模块及硬件模块该如何划分,哪些功能该整合于SOC 内,哪些功能可以设计在电路板上。
2.设计描述和行为级验证。
功能设计完成后,可以依据功能将SOC 划分为若干功能模块,并决定实现这些功能将要使用的IP 核。
此阶段将接影响了SOC 内部的架构及各模块间互动的讯号,及未来产品的可靠性。
决定模块之后,可以用VHDL 或Verilog 等硬件描述语言实现各模块的设计。
接着利用VHDL 或Verilog 的电路仿真器,对设计进行功能验证(function simulation或行为验证 behavioral simulation)。
注意:这种功能仿真没有考虑电路实际的延迟,但无法获得精确的结果。
3.逻辑综合。
确定设计描述正确后,可以使用逻辑综合工具(synthesizer)进行综合。
综合过程中,需要选择适当的逻辑器件库(logic cell library),作为合成逻辑电路时的参考依据。
硬件语言设计描述文件的编写风格是决定综合工具执行效率的一个重要因素。
事实上,综合工具支持的HDL 语法均是有限的,一些过于抽象的语法,只适于作为系统评估时的仿真模型,而不能被综合工具接受。
逻辑综合得到门级网表。
4.门级验证(Gate-Level Netlist Verification)。
门级功能验证是寄存器传输级验证。
主要的工作是要确认经综合后的电路是否符合功能需求,该工作一般利用门电路级验证工具完成。
注意,此阶段仿真需要考虑门电路的延迟。
5.布局和布线。
布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置。
布线则指完成各模块之间互连的连线。
注意,各模块之间的连线通常比较长,因此,产生的延迟会严重影响SOC的性能,尤其在0.25 微米制程以上,这种现象更为显著。
目前,这一个行业仍然是中国的空缺,开设集成电路设计与集成系统专业的大学还比较少,其中师资较好的学校有上海交通大学,哈尔滨工业大学,黑龙江大学、东南大学,西安电子科技大学,电子科技大学,哈尔滨理工大学,复旦大学,华东师范大学等。
这个领域已经逐渐饱和,越来越有趋势走上当年软件行业的道路。
二、设计题
1、写异步D触发器的verilog module
module dff(clk , reset, d, q);
input clk,reset,d;
output q;
reg q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
2、用时序逻辑设计一个25分频计数器,clk为输入。
Rst为复位,out为输出,要求每25个时钟,输出一个脉冲,用verilogHDL语言设计。
module divide25( clk , count, Rst, out);
input clk , Rst;
output [3:0]count, out;
reg [3:0]count;
always @ ( posedge clk)
if (Rst)
count <= 5'b00000;
else
if (count <= 5'b11000)
count <= 1'b0;
else
count<=count+1;
end
end
out<=~count
endmodule
3、用verilogHDL语言设计1101的序列检测器,其中a为输入被检测信号,rst为复位,低电平有效,clk 为输入时钟,out为输出。
当clk上升沿到来时检测,如检测到1101,则,输出out为1,否则为0。
( state 为内部寄存器)。
module seqdet(out, a, rst, clk);
parameter IDLE=3'd0, A=3'd1, B=3'd2, C=3'd3, D=3'd4;
output out;
input a, rst, clk;
reg[1:0] state, next_state;
wire out;
assign out=(state==D)?1:0;
always @(posedge clk or negedge rst)
if (rst)
state=IDLE;
else
case(state)
IDLE: if(a) next_state=A;
else next_state=IDLE;
A: if(a) next_state=B;
else next_state=IDLE;
B: if(a) next_state=B;
else next_state=C;
C: if(a) next_state=D;
else next_state=IDLE;
D: if(a) next_state=B;
else next_state=IDLE;
default: next_state=IDLE;
endcase
always @(posedge clk)
state<=next_state;
endmodule
4、用verilogHDL语言设计一个比较器,a、b分别为8位数据输入,en为使能,out为输出,当en=1且a≥b时输出为1,否则为输出0,en=0时不比较输出高阻,写出完整程序设计。
module comp8v(a,b,out,en);
input[7:0] a,b;
input en;
output out;
reg out;
always
begin
if(en==1)
else if (a >= b) begin out=1; end
else if (a < b) begin out=0; end
else begin out=z; end
end
endmodule
三、论述题(在下列三个题中自选一个):
2、EDA和芯片制造新技术的现状、趋势前景
答:EDA 是电子设计自动化( Electronic Design Automation) 的缩写。
它是一门正在高速发展的新技术, 是以大规模可编程逻辑器件为设计载体, 以硬件描述语言为系统逻辑描述的主要表达方式, 以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具, 通过有关的开发软件, 自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化, 逻辑布局布线、逻辑仿真。
完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作, 最终形成集成
电子系统或专用集成芯片。
EDA 代表了当今电子设计技术的最新发展方向, 即利用EDA 工具, 电子设计师可以从概念、算法、协议等开始设计电子系统, 大量工作可以通过计算机完成, 并可以将电子产品从电路设计、性能分析到设计出IC 版图或PCB 版图的整个过程在计算机上自动处理完成。
设计者采用的设计方法是一种高层次的自上而下的全新设计方法, 即首先从系统设计入手, 在顶层进行功能方框图的划分和结构设计。
在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述, 在系统一级进行驶证; 然后用综合优化工具生成具体门电路的网络表, 其对应的物理实现级可以是印刷电路板或专用集成电路。
设计者的工作仅限于利用软件的方式, 即利用硬件描述语言和EDA 软件来完成对系统硬件功能的实现。
随着设计的主要仿真和调试过程是在高层次上完成的, 这既有利于早期发现结构设计上的错误, 避免设计工作的浪费, 又减少了逻辑功能仿真的工作量, 提高了设计的一次性成功率。
随着现代电子产品的复杂度和集成度的日益提高, 一般的中小规模集成电路组合已不能满足要求, 电路设计逐步地从中小规模芯片转为大规模、超大规模芯片, 具有高速度、高集成度、低功耗的可编程器件已蓬勃发展起来。
硬件描述语言( HDL) 是一种用于进行电子系统硬件设计的计算机高级语言, 它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。
硬件描述语言是EDA 技术的重要组成部分, 是EDA 设计开发中很重要的软件工具。
VHDL 即超高速集成电路硬件描述语言, 是作为电子设计主流硬件的描述语言。
它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计可靠性,用VHDL 进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现, 而不需要对不影响功能与工艺有关的因素花费过多的时间和精力。
硬件描述语言可以在三个层次上进行电路描述, 其层次由高到低,分为行为级、几级和门电路级。
应用VHDL 进行电子系统设计有以下优点:(1)VHDL 的宽范围描述能力使它成为高层次设计的核心。
将设计人员的工作重心提高到了系统功能的实现与调试, 只需花较少的精力用于物理实现。
(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计, 灵活且方便, 而且也便于设计结果的交流、保存和重用。
(3) VHDL 的设计不依赖于特定的器件, 方便了工艺的转换。
(4) VHDL 是一个标准语言, 为众多的EDA 厂商支持, 因此移植性好。
将EDA 技术与传统电子设计方法进行比较可以看出, 传统的数字系统设计只能在电路板上进行设计, 是一种搭积木式的方式, 使复杂电路的设计、调试十分困难; 如果某一过程存在错误, 查找和修改十分不便; 对于集成电路设计而言, 设计实现过程与具体生产工艺直接相关, 因此可移植性差; 只有在设计出样机或生产出芯片后才能进行实现, 因而开发产品的周期长。
而EDA 技术则有很大不同, 采用可编程器件, 通过设计芯片来实现系统功能。
采用硬件描述语言作为设计输入和库的引入, 由设计者定义器件的内部逻辑和管脚, 将原来由电路板设计完成的大部分工作改在芯片的设计中进行。
由于管脚定义的灵活性, 大大减轻了电路图设计和电路板设计的工作量和难度, 有效增强了设计的灵活性, 提高了工作效率。
并且可减少芯片的数量, 缩小系统体积, 降低能源消耗, 提高了系统的性能和可靠性。
能全方位地利用计算机自动设计、仿真和调试。
EDA 技术的发展趋势:
EDA 技术发展迅猛, 逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。
在教学方面: 几乎所有理工科( 特别是电子信息) 类的高校都开设了EDA 课程。
主要是让学生了解EDA 的基本原理和基本概念、掌握用VHDL 描述系统逻辑的方法、使用EDA 工具进行电子电路课程的模拟仿真实验。
如实验教学、课程设计、毕业设计、设计竞赛等均可借助CPLD/ FPGA 器件, 使实验设备或设计出的电子系统具有高可靠性, 又经济、快速、容易实现、修改便利, 同时可大大提高学生的实践动手能力、创新能力和计算机应用能力。
在科研方面: 主要利用电路仿真工具进行电路设计与仿真; 利用虚拟仪器进行产品调试; 将CPLD/ FPGA 器件的开发应用到仪器设备中, CPLD/ FPGA 可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。
传统机电产品的升级换代和技术改造, CPLD/ FPGA 的应用可提高传统产品的性能, 缩小体积, 提高技术含量和产品的附加值。
作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行, 这不仅是提高设计效率的需要, 更是时代发展的需求, 只有掌握了EDA 技术才有能力参与世界电子工业市场的竞争, 才能生存与发展。
随着科技的进步, 电子产品的更新日新月异, EDA 技术作为电子产品开发研制的源动力, 已成为现代电子设计的核心。
所以发展EDA 技术将是电子设计领域和电子产业界的一场重大的技术革命, 同时也对电类课程的教学和科研提出了更深更高的要求。
在产品设计与制造方面: 从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等, EDA 技术不单是应用于前期的计算机模拟仿真、产品调试, 而且也在PCB 的制作、电子设备的研制与生产、电路板的焊接、制作过程等有重要作用。
可以说EDA 技术已经成为电子工业领域不可缺少的技术支持。
进入21 世纪后,电子技术全方位纳入EDA 领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面: 使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能; 基于EDA 工具的ASIC 设计标准单元已涵盖大规模电子系统及IP 核模块; 软硬件IP 核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认; SOC( System-on-Chip) 高效低成本设计技术的成熟。
随着半导体技术、集成技术和计算机技术的迅猛发展, 电子系统的设计方法和设计手段都发生了很大的变化。
传统的固定功能集成块十连线!的设计方法正逐步地退出历史舞台, 而基于芯片的设计方法正成为现代电子系统设计的主流。