FPGA复习题汇总有两部分哦.doc_第1页
FPGA复习题汇总有两部分哦.doc_第2页
FPGA复习题汇总有两部分哦.doc_第3页
FPGA复习题汇总有两部分哦.doc_第4页
FPGA复习题汇总有两部分哦.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

FPGA复习资料一、回答问题1、 叙述摩尔定律;答:不断提高产品的性能价格比是微电子技术发展的动力, 集成电路芯片的集成度每三年提高4倍,而加工特征尺寸缩小 倍,这就是摩尔定律2、 简述门阵列与FPGA异同;答:FPGA是现场可编程门阵列。3、 画图说明FPGA的开发流程;答:系统规范,模块设计(系统设计规范),设计输入(HDL语言描述IP核),功能仿真(输入设计文件.v。vhd),综合(时序、面积、功耗约束,工艺库),布局布线(I/O指派,布局布线约束),时序验证(反标注文件.sdf),配置下载。4、 解释在FPGA设计过程中“库”的作用;答:Verilog设计文件中所有模块和UDPs(用户定义元语)必须被编译到一个或多个设计库中。Modelsim系统中设计中设计库含有以下信息:可重指定执行代码,调整信息和从属信息等。该库设计分为两类:一类是资源库,另一类是工作库。资源库是一个典型的静态库,用于存储第三方提供的已编译好的参考设计,可用作设计源文件的一部分。用户可以创建自己的资源库,也可以直接使用其他设计组或第三方(如器件厂家)提供的资源库。 设计库是一个目录或存档文件,用于存储当前设计单元的编译结果,当更新设计并冲编译时,工作库内容即被修改。工作库中设计单元的编译结果,当更新设计并重编译时,工作库内容即被修改。工作库中的设计单元由Verilog模块、UDPs和System C模块等组成。默认情况下,设计库以目录的结构来存储,其内的每个设计单元存储为一个子目录,也可以使用vlib命令的-archive参数创建存档文件,将设计库配置成一个存档文件方式。5、 FPGA器件中专用时钟引脚的作用是什么;与其它引脚的区别是什么;答:引入外部全局时钟,其与每一个LE或CLB相连。6、 为什么芯片的功耗与信号的翻转率(高低电平转换的次数)有关;答:高低电平转换的次数和电容的充放电的次数有关,在电压一定的时候,电容的充放电与充电电流有关,而电流的大小与芯片的功耗有关,所以,芯片的功耗与信号的翻转率。7、 什么叫综合;答:综合实际上是根据设计功能和实现核设计的约束条件(如面积、速度、功耗和成本等),将设计描述(如HDL文件、原理图等)变换成满足要求的电路设计方案,该方案必须同时满足预期功能和约束条件。8、 对于一个给定的设计(或者自己设计好的电路)如何选择FPAG器件;答:在选择FPGA器件时,应该考虑以下几个问题:(1) 可配置逻辑块:虽然大多数的FPGA有类似的逻辑块,但是它们之间有一些区别。根据设计需要选择合适结构的FPGA。(2) 可配置逻辑块数目:它决定了所能容纳的设计的逻辑门数。(3) I/O管脚的数量和类型:根据设计需要,选择合适数目的I/O管脚,了解多少是通用的I/O管脚,有多少特殊用途的I/O管脚,如全局时钟输入、复位信号、下载管脚信号等。(4) 嵌入式IP核:所选择的器件中是否包含了你设计中需要的IP核,如是否包含了锁相环核、DSP核、SDRAM控制器,有多大的RAM等。充分使用这些IP核可以提高设计效率。(5) FPGA器件的编程方式:选择反熔丝、Flash还是SRAM?综合评定设计需求,如是否需要安全、低功耗、非易失性,根据需要选择合适的FPGA。(6) FPGA的工作温度:所设计的FPGA工作温度满足标准是工业标准、军用标准还是商业标准。(7) FPGA的工作速度:每个FPGA厂家在同一种FPGA中,提供不同速度的FPGA型号,速度越高,价格越贵。因此,在选定了某个类型的FPGA后,还需要考虑同一FPGA中选择哪一中速度的FPGA。9、 异步时钟域进行数据交换时为什么要用FIFO;答:异步电路的设计会导致亚稳态现象(就是不稳定的状态,介于低电平0和高电平1之间,或者经过震荡到达1或0的稳态。)的出现,就是说信号在不同的时钟区域中传递时,会有不稳定的信号产生。 同步多个信号时,最好使用FIFO结构。一个异步的FIFO设计可以按照下图的结构实现。由于异步FIFO的读/写时钟不同,因此,将读地址、写地址分别用两个模块实现,这两个模块中分别只有一个时钟。FIFO用双端口RAM实现。根据读写地址判断的空满条件模块CMP,包括了读/写两个时钟。FIFO(Dual RAM)cmpFIFO读地址FIFO写地址 rd_clk wr_clk wr_addr rd_addr rd_en wr_en10、一次性FPGA与可反复编程的FPGA的主要区别是什么;答:一次性FPGA采用反熔丝技术,只能进行一次编程。可反复编程的FPGA采用了基于SRAM工艺的查找表结构或Flash。11.FPGA的内部包括那些部分,每个部分的作用;答:(1)可编程输入/输出单元(IOB):它是芯片与外界电路的接口部分,完成不同电器特性下对输入输出信号的驱动和匹配要求。 (2)可配置逻辑块(CLB):CLB是FPGA内的基本逻辑单元。 (3)数字时钟管理模块(DCM):为FPGA提供数字时钟管理。 (4)嵌入式块RAM(BRAM) (5)丰富的布线资源:布线资源连同FPGA内部的所有单元,而连接线的长度和工艺决定着信号在连接线上的驱动能力和传输速度。 (6)底层内嵌功能单元:内嵌功能模块主要指DLL,PLL,DSP和CPU等软处理核。12、FPGA的工作原理是什么;答;FPGA器件结构非常类似于ASIC,但是FPGA芯片没有任何定制的掩模层,设计人员可以对其进行设计输入和仿真,最后用专用软件将设计转换成一串二进制比特,形成配置文件。这个配置文件描述了需要完成设计的FPGA芯片的连接关系。最后,通过计算机将配置文件下载到FPGA或配置芯片对其进行配置。13、IC的分类;(1)根据集成电路中有源器件的结构类型和工艺技术可以将集成电路分为三类:双极、MOS和双极-MOS混合型即BiMOS集成电路(2)按集成电路规模分类:集成度:每块集成电路芯片中包含的元器件数目。小规模集成电路(Small Scale IC,SSI)中规模集成电路(Medium Scale IC,MSI)大规模集成电路(Large Scale IC,LSI)超大规模集成电路(Very Large Scale IC,VLSI)特大规模集成电路(Ultra Large Scale IC,ULSI)巨大规模集成电路(Gigantic Scale IC,GSI)(3)按电路功能分类数字集成电路(Digital IC)模拟集成电路(Analog IC)数模混合集成电路(Digital-Analog IC)14、什么叫软核、硬核和固核;(1)软IP内核通常是以某种HDL文本的形式提交给用户,它已经过行为级设计优化和功能验证,但其中不含任何具体的物理信息。据此,用户可以综合出正确的门电路级网表,并可以进行后续结构设计,具有较大的灵活性,可以很容易地借助于EDA综合工具将其与其他外部逻辑电路结合成一体,根据各种不同的半导体工艺,将其设计成具有不同性能的器件。软IP核又称为虚拟器件。(2)硬IP内核是基于某种半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来用的全套技术。(3)固IP内核的设计深度介于软IP内核和硬IP内核之间,除了完成硬IP内核所有的设计外,还完成门电路级综合和时序仿真等设计环节,一般以们电路级网表形式提交用户使用。15、如何消除异步时钟进行数据交换时的“亚稳态”;答:所谓的 “亚稳态” 就是介于低电平0和高电平1之间不稳定的状态,或是经过振荡到达1或0的稳态。在异步电路中(FF 的Tsu、Th不能保证)很容易出现亚稳态,造成电路状态错误,在电路设计时要特别处理。尽量设计成同步时序电路,如果一个电路中包含了多个时钟,在设计师将具有多个时钟的模块独立出来,而其他每个模块只有一个时钟。无法避免时,将具有多个时钟的模块独立出来,在时钟的模块中,用一个时钟同步另外一个时钟域中的信号(进行时钟同步)。如果一个被同步信号的宽度大于同步时钟的周期,可以采用下图所示的同步电路。 如果被同步的信号脉冲宽度小于用于同步的时钟时,可采用三个触发器的同步电路。16、什么叫RTL级描述;答:RTL(Register Transfer Level,寄存器传输级)通常是指数据流建模和行为级建模的结合。17、解释电路中的组合环;答:18、任务和函数有什么区别;答:函数任务函数能调用另一个函数,但不能调用一个任务任务能调用另一个任务,也能调用另一个函数函数总是在仿真时刻0就开始执行任务可以在非零仿真时刻执行函数一定不能包含任何延迟、事件或者时序控制声明语句任务可以包含延迟、事件或者时序控制声明语句函数至少有一个输入变量,函数可以有多个输入变量任务可以没有或者有多个输入(input)、输出(output)和双向(inout)函数只能返回一个值,函数不能有输出(output)或者双向(inout)变量任务不返回任何值,任务可以通过输出(output)或者双向(inout)变量传递多个值19、解释电路中关键路径;答:20、电路中三态门的作用;答:三态门只有在控制信号有效地情况下才能传递数据;如果控制开关无效,则输出为高阻抗z。21、阻塞赋值与非阻塞赋值的区别;一、阻塞赋值 阻塞赋值操作符号用等号(即=)表示。赋值时先计算等号右手方向(RHS)部分的值,这时赋值语句不允许任何别的Verilog语句干扰,直到现行的赋值完成时刻,即把RHS赋值给LHS的时刻,它才允许别的赋值语句的执行。一般可综合的赋值操作在RHS不能设定有延迟。非阻塞赋值操作符用小于等于号(即=)表示。在赋值操作时刻开始时计算非阻塞符号的RHS表达式,赋值结束时更新LHS。在计算非阻塞赋值的RHS表达式和更新LHS期间,其他的Verilog语句,包括包括其他的Verilog非阻塞赋值语句都能同时计算RHS表达式和更新LHS。22、叙述begin end与fork join的区别;答:fork 和join内的语句并发执行,语句执行的顺序是有各自语句中的延迟或是事件控制决定的,且是相对于语句开始执行的时刻而言的。 begin和end内的语句是按顺序执行的除了带有内嵌延迟控制的非阻塞赋值语句;若语句包括延迟或事件控制,那么延迟总是相对于前面那条语句执行完成的仿真时间的。23、FPGA与CPLD的区别。答:FPGA和CPLD的区别主要特性CPLDFPGA结构类似PLA类似门阵列速度快、可预测取决于应用密度低等到中等中等到高等互联纵横连接方式路径选择方式功耗高低11、 电路设计1.用Verilog HDL描述反相器、八输入与门、八输入或门、八输入异或门、一位D触发器、一位锁存器、四选一电路、两位比较器、两位加法器、两位乘法器。答:详王金明例题2.用基本的逻辑单元,如D触发器、比较器、选择器和逻辑门等器件设计一个双口RAM,RAM的深度位16,宽度为8;RAM的模型如下module ram16X8( w_clk,wr_en,wr_addr,data_in, r_clk,rd_en,rd_addr,data_out );input w_clk,wr_en,r_clk,rd_en;input 7:0 data_in;input 3:0 wr_addr,rd_addr;output 7:0 data_out;reg 7:0 data_out;reg 7;0 mem 15:0;always (posedge wr_clk) if(wr_en) memwr_addr = data_in;always (posedge rd_clk) if(rd_en) data_out = memrd_addr; endmodule l 画出电路结构图l 用Verilog HDL写出电路3.异步FIFO电路的设计,FIFO的深度为16,宽度为8位,CLKA写入,CLKB读出,给出读空和写满指示。/RAM模块module RAM16X8( wr_clk,wr_en,wr_addr,data_in, rd_clk,rd_en,rd_addr,data_out );input wr_clk,wr_en,rd_clk,rd_en;input 7:0 data_in;input 3:0 wr_addr,rd_addr;output 7:0 data_out;reg 7:0 data_out;reg 7:0 mem 15:0;always (posedge wr_clk) if(wr_en) memwr_addr = data_in;always (posedge rd_clk) if(rd_en) data_out = memrd_addr; endmodule /肈触发器打两下的模块module D_D(clock,reset_n,data_in,data_out);input clock,reset_n;input 3:0 data_in;output 3:0 data_out;reg 3:0 data_out,data0;wire 3:0 data_w;assign data_w=data0;always (posedge clock or negedge reset_n)begin if(!reset_n)begindata0=4h0;end else begindata0=data_in;end end always (posedge clock or negedge reset_n)begin if(!reset_n)begindata_out=4h0;end else begindata_out=data_w;end end endmodule /FIFO模块module FIFO(clock_in,data_in,wr_en,clock_out,data_out,rd_en,reset_n,F_flag,E_flag);input clock_in,wr_en,clock_out,rd_en,reset_n;input 7:0 data_in;output F_flag,E_flag;output 7:0 data_out;reg F_flag,E_flag;reg 3:0 wr_addr,rd_addr;wire 3:0 wr_addr_w,rd_addr_w,wr_addr_bijiao,rd_addr_bijiao;/生成写地址assign wr_addr_bijiao=wr_addr;always (clock_in or reset_n)beginif(!reset_n)beginwr_addr=4h0;end else if(wr_en)beginwr_addr=wr_addr+1b1;end end /生成读地址assign rd_addr_bijiao=rd_addr;always (clock_out or reset_n)beginif(!reset_n)beginrd_addr=4h8;end else if(rd_en)beginrd_addr=rd_addr+1b1;end end /用D触发器打两下读地址,和写地址比较看是否写满D_D rd(.clock(clock_out),.reset_n(reset_n),.data_in(wr_addr_bijiao),.data_out(wr_addr_w);always (posedge clock_out or negedge reset_n)begin if(!reset_n)beginE_flag=1b0;end else if(rd_addr_bijiao=wr_addr_w)beginE_flag=1b1;end else beginE_flag=1b0;end end /用D触发器打两下写地址,和读地址比较看是否读空D_D wr(.clock(clock_in),.reset_n(reset_n),.data_in(rd_addr_bijiao),.data_out(rd_addr_w);always (posedge clock_in or negedge reset_n)begin if(!reset_n)beginF_flag=1b0;end else if(wr_addr_bijiao=rd_addr_w)beginF_flag=1b1;end else beginF_flag=1b0;end end RAM16X8 ZD(.wr_clk(clock_in),.wr_en(wr_en),.wr_addr(wr_addr_bijiao),.data_in(data_in), .rd_clk(clock_out),.rd_en(rd_en),.rd_addr(rd_addr_bijiao),.data_out(data_out);endmodule4.各种计数器的设计(包括分频器的设计),如作业题。5.移位寄存器的设计,设计一个8位的移位寄存器。6.串并、并串转换器的设计,分别完成8位的串并和并串转换电路。/两个模块综合完成从并转串,再从串转并module chuanbing(clock,reset_n,bing_in,bing_out,control); input clock,reset_n,control; input 7:0 bing_in; output 7:0 bing_out; wire 7:0 bing_out; wire control_inout; wire chuan_inout; chuanbing_in shou(.clock(clock),.reset_n(reset_n),.chuan_in(chuan_inout),.bing_out(bing_out),.control_in(control_inout);chuanbing_out fa(.clock(clock),.reset_n(reset_n),.bing_in(bing_in),.chuan_out(chuan_inout),.control_in(control),.control_out(control_inout);endmodule /并串转换module chuanbing_out(clock,reset_n,bing_in,chuan_out,control_in,control_out); input clock,reset_n,control_in; input 7:0 bing_in; output chuan_out,control_out; reg control_out,chuan_out; reg 7:0 state_bing_in;/chang_bing_in; reg 3:0 flag; always (posedge clock or negedge reset_n ) begin if(!reset_n) begin state_bing_in=8bxxxx_xxxx; control_out=1b0; flag=4h0; end else if(control_in=1b1) begin chuan_out=state_bing_in7; state_bing_in=state_bing_in1; control_out=1b1; if(flag=4h8) begin flag=4h0; control_out=1b0; end else flag=flag+1b1; end else begin state_bing_in=bing_in; control_out=1b0; end end endmodule /串并转换module chuanbing_in(clock,reset_n,chuan_in,bing_out,control_in); input clock,reset_n,chuan_in,control_in; output7:0 bing_out; reg 7:0 bing_out; always (negedge clock or negedge reset_n) begin if(!reset_n) begin bing_out=8hxx; end else if(control_in=1b1) begin bing_out=bing_out6:0,chuan_in; end else bing_out=8hxx; end endmodule 一 简答题 30分 (每题五分)二 判断下列程序是否有错误,如有则指出错误所在,并给出完整程序(20分)三 解释程序 (30分)四 编程序 (20分)1. 已知电路原理图如下,请用VHDL语言编写其程序2. 用元件例化语句设计如图所示电路,元件为2输入与非门。 1. 简述quartus II 的设计流程。答:设计输入,综合,布局布线,时序分析,仿真,编程与配置。2. quartus II开发工具为设计者提供了哪些库?各有什么功能?答: 样板二 :1)Megafunction库,参数化宏模块库。算术运算模块,逻辑模块,存储模块,I/O模块; 2)Maxplus2库,时序电路宏模块,运算电路宏模块 3)Primitives库,存储单元,逻辑门,缓冲器,I/O引脚和其他功能模块3. quartus II的综合编译器包含哪些内容?答:编译,网表输出,综合,配置器件,将设计配置到ALTERA器件中,编译器根据器件特性产生真正延时时间并给器件的配置文件。4. 什么叫功能仿真?什么叫时序仿真?两者有什么区别?答:功能仿真又称前仿真,是在不考虑器件延时的理想情况下的一种项目验证方法,通过功能仿真来验证一个项目的逻辑功能是否正确。时序仿真又称模拟仿真或后仿真,是在考虑设计项目具体适配器件的各种延时的情况下的一种项目验证方法。时序仿真不仅测试逻辑功能,还测试目标器件最差情况下的时间关系。5. 设计输入有几种方法?怎样选择?答: 1)QuatusII 本身具有的编辑器:原理图式图形设计输入;文本编辑输入;内存编辑输入。 2)第三方EDA工具编辑的标准格式文件。 3)采用一些别的方法优化和提高输入的灵敏度,乳混合设计格式,他利用LPM和宏模块来加速设计输入。6. 根据下面的VHDL语句,描述出相应的电路原理图。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY cfq_1 IS PORT (d,cp :IN std_logic;q, nq :OUT std_logic);END cfq_1;END ar 4;ARCHITECTURE ar_4 OF cfq_1 ISBEGI

温馨提示

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

评论

0/150

提交评论