最新FPGA习题集及参考答案.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateFPGA习题集及参考答案FPGA习题集及参考答案习题集及参考答案一、 填空题1. 一般把EDA技术的发展分为( )个阶段。2. FPGA/CPLD有如下设计步骤:原理图/HDL文本输入、适配、功能仿真、综合、编程下载、硬件测试,正确的设计顺序是( )。3. 在EDA工具中,能完成在目标系统器件上布局布线的软件称为( )。4. 设计输入完成之后,应立即对文件进行( )。5. 基于硬件描述语言的数字系统设计目前最常用的设计方法称为( )设计法。6. 将硬件描述语言转化为硬件电路的过程称为( )。 7. IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为( )IP。8. SOC系统又称为( )系统。SOPC系统又称为( )系统。9. 将硬核和固核作为( )IP核,而软核作为( )IP核。10. IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为( )。11. HDL综合器就是逻辑综合的过程,把可综合的VHDL/Verilog HDL转化成硬件电路时,包含了三个过程,分别是( )、( )、( )。12. EDA软件工具大致可以由五个模块构成,分别是设计输入编辑器、( )、( )、( )和( )。13. 按仿真电路描述级别的不同,HDL仿真器分为( )仿真、( )仿真、( )仿真和门级仿真。14. 系统仿真分为( )、( )和( )。15. ( )仿真是对设计输入的规范检测,这种仿真通过只能表示编译通过,说明设计满足一定的语法规范,但不能保证设计功能满足期望。16. ( )仿真是对综合后的网表进行的仿真,它验证设计模块的基本逻辑功能,但不带有布局布线后产生的时序信息,是理想情况下的验证。17. ( )仿真是布局布线后进行的后仿真,仿真时考虑了布线延时,和芯片实际的工作情况更加接近。18. 目前Xilinx公司生产的FPGA主要采用了( )配置存储器结构。19. 描述测试信号的变化和测试工程的模块叫做( )。20. 现代电子系统设计领域中的EDA采用( )的设计方法。21. 有限状态机可分为( )状态机和( )状态机两类。22. Verilog HDL中的端口类型有三类: ( )、( )、输入/输出端口。23. Verilog HDL常用两大数据类型: ( )、( )。24. FPGA / CPLD设计流程为:原理图/HDL文本输入( )综合适配( )编程下载硬件测试。25. ( )是描述数据在寄存器之间流动和处理的过程。26. 连续赋值常用于数据流行为建模,常以( )为关键词。27. Verilog HDL有两种过程赋值方式:( )和( )。 28. timescale 1ns/100ps中1ns代表( ),100ps代表( )。29. 未来的集成电路技术的发展趋势,把整上系统集成在一个芯片上去,这种芯片被称为( )。30. 从互连结构上可将PLD分为确定型和统计型两类。确定型结构的代表是( ),统计型结构代表是( ) 。31. CPLD是由( )的结构演变而来的。32. FPGA的核心部分是( ),由内部逻辑块矩阵和周围I/O接口模块组成。33. 把基于电可擦除存储单元的EEPROM或Flash 技术的CPLD 的在系统下载称为 ( ),这个过程就是把编程数据写入E2CMOS单元阵列的过程。34. 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以( )为单位将配置数据载人可编程器件:而并行配置一般以( )为单位向可编程器件载入配置数据。35. FPGA的配置模式有从动串行模式、从动并行模式、主动串行模式、主动并行模式、以及( )模式。36. 可编程逻辑器件的配置方式分为( )和( )两类。37. VerilogHDL是在( )年正式推出的。38. 在verilog HDL的always块本身是( )语句。 39. Verilog HDL中的always语句中的语句是( )语句。40. Verilog HDL提供了标准的系统任务,用于常用的操作。如显示、文件输入/输出等,系统函数前都有一个标志符 ( )加以确认。41. Verilog HDL很好地支持了“自顶向下”的设计理念,即,复杂任务分解成的小模块完成后,可以通过( )的方式,将系统组装起来。42. Verilog HDL模块分为两种类型:一种是( )模块,即,描述某种电路系统结构,功能,以综合或者提供仿真模型为设计目的;另一种是 ( )模块,即,为功能模块的测试提供信号源激励、输出数据监测。43. Verilog语言中,标识符可以是任意一组字母、数字、( )符号和下划线符号的组合。44. state,State ,这两个标识符是( )同。45. assign c=a>b? a: b中,若a=3,b=2,则c=( );若a=2,b=3,则c=( )。46. 在Verilog HDL的逻辑运算中,设A=4´b1010,则表达式A的结果为( )47. 在Verilog HDL的逻辑运算中,设a=2 ,b=0,则a && b结果为( ), a | b 结果为( )。48. 在Verilog HDL的逻辑运算中,设 a = 4´b1010, a >>1结果是( )。二、 EDA名词解释1. ASIC,2.CPLD, 3.FPGA,4.IC, 5.LUT .6.PCB.7.RTL,8.FSM,9.GAL,10.ISP, 11.JATG, 12.PBD,13.BBD 三、 选择题1 任Verilog HDL的端口声明语句中,用( )关键字声明端口为双向端口 A:inout B:INOUT C:BUFFER D:buffer2 用Verilog HDL的assign语句建模的方法一般称为( )方法。A:连续赋值 B:并行赋值 C:串行赋值 D:函数赋值3 IP核在EDA技术和开发中具有十分重要的地位,IP是指( )。A:知识产权 B:互联网协议 C:网络地址 D:都不是4 在verilog HDL的always块本身是( )语句A:顺序 B:并行 C:顺序或并行 D:串行5 在Verilog HDL的逻辑运算中,设A=8'b11010001,B=8'b00011001,则表达式“A&B”的结果为( )A:8'b00010001 B:8'b11011001 C:8'b11001000 D:8'b001101116 大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( )。A:FPGA是基于乘积项结构的可编程逻辑器件;B:FPGA是全称为复杂可编程逻辑器件;C:基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D:在Altera公司生产的器件中,MAX7000系列属FPGA结构。7 下列EDA软件中,哪一个不具有逻辑综合功能:( )。A: ISE B: ModelSim C: Quartus II D:Synplify8 下列标识符中,( )是不合法的标识符。A: State0B: 9moonC: Not_Ack_0D: signal9 关于Verilog HDL中的数字,请找出以下数字中最大的一个:( )。A: 8´b1111_1110 B: 3´o276 C: 3´d170 D: 2´h3E10 大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是( )。A:CPLD是基于查找表结构的可编程逻辑器件;B:CPLD即是现场可编程逻辑器件的英文简称;C:早期的CPLD是从GAL的结构扩展而来;D:在Xilinx公司生产的器件中,XC9500系列属CPLD结构;11 IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为( )。A :瘦IP B:固IP C:胖IP D:都不是12 不完整的IF语句,其综合结果可实现( )。A: 时序逻辑电路B: 组合逻辑电路 C: 双向电路 D: 三态控制电路13 CPLD的可编程是主要基于什么结构( )。A :查找表(LUT) C: PAL可编程 B: ROM可编程 D: 与或阵列可编程14 IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为:( )A: 硬I PB: 固IP C: 软IP D: 都不是;15 设a = 4´b1010,b=4´b0001, c= 4´b1xz0则下列式子的值为1的是( )A:a > b B:a <= c C:13 - a < b d:13 (a>b)16 设a=2 ,b=0,则下列式子中等于X的是( )。A: a && b B: a | b C: !a D: x && a17 FPGA可编程逻辑基于的可编程结构基于( )。A: LUT结构 B: 乘积项结构 C:PLD D:都不对18 CPLD 可编程逻辑基于的可编程结构基于 ( )。A: LUT结构 B: 乘积项结构 C: PLD D:都不对19 下列运算符优先级最高的是( )。 A: ! B: + C :& D:20 设a = 1´b1,b = 3´b101,c = 4´b1010则X= a,b,c的值的等于( )A: 7´b1101100 B:8´b 10101011 C: 8´b 11010101 D:8´b1101101021 将设计的系统按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程,称 为( )。A:设计的输入 B:设计的输出 C:仿真 D:综合22 一般把EDA技术的发展分为( )个阶段。A:2 B: 3 C:4 D:523 设计输入完成之后,应立即对文件进行( )。A:编译 B:编辑 C:功能仿真 D:时序仿真 24 VHDL是在( )年正式推出的。A:1983 B:1985 C:1987 D:1989 25 Verilog HDL是在( )年正式推出的。A:1983 B:1985 C:1987 D:1989 26 基于硬件描述语言的数字系统设计目前最常用的设计方法称为( )设计法。A:自底向上 B:自顶向下 C:积木式 D:顶层 27 在EDA工具中,能将硬件描述语言转化为硬件电路的重要工具软件为( )。A:仿真器 B:综合器 C:适配器 D:下载器 28 在EDA工具中,能完成在目标系统器件上布局布线的软件称为( )。A:仿真器 B:综合器 C:适配器 D:下载器 29 逻辑器件( )属于非用户定制电路。A:逻辑门 B: PROM C:PLA D:GAL30 可编程逻辑器件PLD属于( )电路。A:半用户定制 B:全用户定制 C:自动生成 D:非用户定制31 不属于PLD基本结构部分的是( )。A:与门阵列 B:输入缓存 C:与非门阵列 :或门阵列32 任Verilog HDL的标识符使用字母的规则是( )。A:大小写相同 B:大小写不同 C:只允许大写 D:只允许小写33 操作符是Verilog HDL预定义的函数命名,操作符是由( )字符组成的。A:1 B:2 C:3 D:1334 在Verilog HDL模块中,task语句类似高级语言中的( )。A:函数 B:常数 C:变量 D:子程序 35 在Verilog HDL模块中,函数调用时返回一个用于( )的值。A: 表达式 B:输出 C:输入 D:程序包36 Verilog HDL中的always语句中的语句是( )语句。A: 串行 B: 顺序 C: 并行 D:顺序或并行37 嵌套的if语句,其综合结果可实现( )。A:条件相与的逻辑 B:条件相或的逻辑 C:条件相异或的逻辑 D:三态控制电路38 嵌套的使用if语句,其综合结果可实现( )。A:带优先级且条件相与的逻辑电路 B:双向控制电路C: 三态控制电路 D:条件相异或的逻辑电路39 下列哪个FPGA/CPLD设计流程是正确的( )。A:原理图/HDL文本输入->功能仿真->综合->适配->编程下载->硬件测试 B:原理图/HDL文本输入->适配->综合->功能仿真->编程下载->硬件测试 C:原理图/HDL文本输入->功能仿真->综合->编程下载->适配->硬件测试D:原理图/HDL文本输入->适配->功能仿真->综合->编程下载->硬件测试四、 简答题1 简述EDA技术的发展历程? 2 什么是EDA技术?3 在EDA技术中,什么是自顶向下的设计方法?4 自顶向下的设计方法有什么重要意义?5 简要说明目前现代数字系统的发展趋势是什么?6 简述现代数字系统设计流程。7 简述原理图设计法设计流程。8 简述原理图设计法设计方法的优缺点。9 什么是综合?综合的步骤是什么?10 什么是基于平台的设计?现有平台分为哪几个类型?11 目前,目前数字专用集成电路的设计主要采用三种方式?各有什么特点?12 什么是SOC技术含义是什么?什么是SOPC?13 SOPC技术含义是什么?SOPC技术和SOC技术的区别是什么?14 SOPC技术是指什么?SOPC的技术优势是什么?15 简要说明一下功能仿真和时序仿真的异同。设计过程中如果只做功能仿真,不做时序仿真,设计的正确性是否能得到保证?16 综合完成的主要工作是什么?实现(Implement)完成的主要工作是什么?17 主要的HDL语言是哪两种?Verilog HDL 语言的特点是什么?18 简述阻塞赋值与非阻塞赋值的不同。19 简述过程赋值和连续赋值的区别。20 什么叫做IP核?IP在设计中的作用是什么?21 什么是IP软核,它的特点是什么?22 根据有效形式将IP分为哪几类?根据功能方面的划分分为哪两类?23 比较基于查找表的FPGA和CPLD系统结构和性能上有何不同?24 什么是数据流级建模?什么是行为级建模?25 timescale指令的作用是什么。26 采用HDL完成设计后,必须应用测试程序(testbench)对设计的正确性进行验证。测27 什么是FPGA,CPLD?他们分别是基于什么结构的可编程逻辑结构? 28 CPLD是基于什么结构的可编程逻辑器件?其基本结构由哪几部分组成。29 FPGA是于什么结构的可编程逻辑器件?其基本结构由哪几部分组成。30 PLD器件按照编程方式不同,可以分为哪几类?31 解释编程与配置这两个概念。32 说明FPGA配置有哪些模式,主动配置和从动配置的主要区别是什么?33 为什么在FPGA构成的数字系统中要配备一个PROM或E2PROM?五、 程序补充完整1 下面程序是一个3-8译码器的VerilogHDL描述,试补充完整。空(1) decoder_38(out,in)output7:0 out;input2:0 in;reg7:0 out空(2)(in) begin 空(3)(in) 3´d0:out=8´b11111110; 3´d1:out=8´b11111101; 3´d2:out=8´b11111011; 3´d3:out=8´b11110111; 3´d4:out=8´b11101111; 3´d5:out=8´b11011111; 3´d6:out=8´b10111111; 3´d7:out=8´b01111111;endcase空(4) 空(5) 2 下面程序4位计数器的Verilog HDL描述,试补充完整。空(1)count4(out ,reset,clk)output3:0 out;空(2)reset,clk;reg3:0 out;空(3)(posedge clk)空(4)if(reset) out<=0;else out<=out+1;end空(5)3 下面程序描述一个时钟上升沿触发、同步复位的D触发器,试补充完整。空(1) dflop(d,reset,clk,q);input d,clk;input reset;空(2) q;reg q;空(3) (posedge clk)if(reset) q <= 0; else q <=空(4);空(5)4 用下面测试平台对mux21u1二选一选择器进行测试,试补充完整。空(1)1ns/100ps Module空(2); reg A,B; reg SEL;wire C;mux21u1 ( .a(A),.b(B), .sel (SEL), .c(C);空(3)begin A = 0; B = 0; SEL = 0; #10 begin A=1;B=0;SEL=0; end #10 begin A=0;B=0;SEL=1;end#10 $空(4); end空(5)5 clock1是周期为20的时钟,clock_pshift是clock1相移 ,试补充完整。空(1)Gen_clock1 (clock_pshift,clock1) ;output clock_pshift,clock1;reg clock1;wire clock_pshift;空(2) T=20;parameter pshift=2;空(3)clock1 =0;always# (T/2) clock1=clock1;空(4)#PSHIFT clock_pshift=clock1; 空(5)6 下面程序描述了8位移位寄存器,试补充完整。空(1) shifter(空(2),clr,dout);input din,clk,clr;output空(3)dout;reg7:0 dout;always (posedge clk)beginif (空(4)) dout<= 8'b0;else begin dout <= dout << 1; dout0 <= din; end空(5) endmodule7 下面程序描述了一个数据选择器MUX,试补充完整。空(1) mux(data_in1,data_in2,sel,data_out);input data_in1,data_in2;input 1:0 sel;output data_out;always (空(2) begin case(空(3) 2b00 : data_out <= data_in1 data_in2; 2b01: data_out <= data_in1 | data_in2; 2b10: data_out <= data_in1 data_in2;2b11: data_out <= data_in1;空(4): data_out <=2bxx;endcaseend空(5)8 下面程序描述了一个返回两个数中的最大值的函数。试补充完整。空(1) 3:0 max; 空(2) 3:0 a,b; begin if (空(3)) max=a; elsemax=b;空(4)空(5)六、 程序改错1 下面的中有5处错误,试找出错误并修改正确。第1行 module divide2( clk , clk_o, reset)第2行input clk , reset;第3行output clk_o;第4行wire in;第5行wire out ;第6行always ( posedge clk or posedge reset)第7行if ( reset)第8行 out <= 0;第9行 else第10行out <= in;第11行 assign in <=out;第12行assign clk_o = out;2 下面的中有5处错误,试找出错误并修改正确。第1行module dff8(reset, d, q);第2行input clk;第3行input reset;第4行input7:0 d;第5行output q;第6行reg7:0 q;第7行initial (posedge clk) 第8行 if(reset)第9行 q <= 0;第10行else第11行 q <= d;第12行endmodule;3 下面的中有5处错误,试找出错误并修改正确。第1行module decode4_7(decodeout,indec)第2行output6:0decodeout;第3行input3:0 indec;第4行reg6:0decodeout;第5行always(indec)第6行begin第7行case第8行4´d1:decodeout=7´b1111110;第9行 4´d1:decodeout=7´b0110000;第10行4´d2:decodeout=7´b1101101;第11行4´d3:decodeout=7´b1111001;第12行4´d4:decodeout=7´b0110011;第13行4´d5:decodeout=7´b1011011;第14行4´d6:decodeout=7´b1011111;第15行4´d7:decodeout=7´b1110000;第16行4´d8:decodeout=7´b1111111;第17行4´d9:decodeout=7´b1111011;第18行endcase第19行end4 下面的中有5处错误,试找出错误并修改正确。第1行timescale 10ns/1ns第2行module wave2;第3行reg wave;第4行cycle=5;第5行always第6行fork第7行 wave=0;第8行#(cycle) wave=1;第9行#(2*cycle)wave=0;第10行#(3*cycle)wave=1;第11行#(4*cycle)wave=0;第12行#(5*cycle) $finish;第13行endmodule;5 下面的中有5处错误,试找出错误并修改正确。第1行module alutast(code,a,b,c)第2行input1:0code;第3行input3:0a,b;第4行output4:0c;第5行 reg4:0 c;第6行 task my_and;第7行 input3:0a,b;第7行output4:0out;第 8行interger i;第9行for(i=3;i>=0;i=i-1)第10行outi=ai&bi;第11行end第12行always(code or a or b)第13行begin第14行case(code)第15行2b00:my_hand(a,b,c);第16行 2b01:c=a|b;第17行2b10:c=a-b;第18行2b11:c=a+b;第19行end第20行endmodule;6 下面的中有5处错误,试找出错误并修改正确。第1行 module mux4_1(out,in0,in1,in2,in3,sel);第2行 input out;第3行 input in0,in1,in2,in3;第4行 input sel;第5行 reg out;第6行 always ( )第7行 case(sel)第8行 2'b01: out=in0;第9行 2'b01: out=in1;第10行 2'b10: out=in2;第11行 2'b11: out=in3;第12行 default: out=2'bx;第13行 endmodule7 下面的中有5处错误,试找出错误并修改正确。第1行 module encoder8_3(none_on,outcode,a,b,c,d,e,f,g,h);第2行 output none_on;第3行 output3:0 outcode;第4行 input a,b,c,d,e,f,g,h;第5行 reg3:0 outtemp;第6行 assign none_on,outcode=outtemp;第7行 always (a or b or c or d or e or f or g or h)第8行 if(h) outtemp=4'b0111;第9行 else if(g) outtemp=4'b0110;第10行 else if(f) outtemp=4'b0101;第11行 else if(e) outtemp=4'b0100;第12行 else if(d) outtemp=4'b0011;第13行 else if(c) outtemp=4'b0010;第14行 else if(b) outtemp=4'b0001;第15行 else if(a) outtemp=4'b0000; 第16行 else if outtemp=4'b1000;第17行 end第18行 endmodule8 下面的中有5处错误,试找出错误并修改正确。第1行 module shifter( );第2行 input din,clk,clr;第3行 output7:0 dout;第4行 reg7:0 dout;第5行 alway (posedge clk)第6行 if (clr) dout = 8'b0;第7行 else第8行 begin第9行 dout <= dout << 1;第10行 dout0 <= din;第11行 end第12行 endmodule七、 程序分析与设计1. 设计7人投票表决器,当大于等于4票时输出为1,否则为0。2. 试描述一个具有循环左移和循环右移功能的8位串入并出移位寄存器。3. 试描述一个能实现2倍分频功能的模块。4. 试描述一个异步复位、二十进制的减法计数器。5. 试描述一个带进位输入、输出的4位全加器,其中端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出。6. 试描述一个同步置数、同步清零的8位加法计数器7. 分别用持续赋值和阻塞赋值方式描述的2选1多路选择器。8. 用阻塞赋值方式描述移位寄存器。9. 用for语句实现2个位数相乘。10. 试描述83优先编码器。11. 试描述一个异步清0、异步置1的D触发器。12. 试描述一个4位并串转换器。13. 设计一个序列检测器,用于检测串行的二进制序列,每当连续输入三个或三个以上的1时,序列检测器的输出为1,其它情况下输出为0。(1)画出状态图(2)写出实现程序。14. 设计一个状态机实现在时钟clk的控制下检测输入的串行数据是否为“110”,画出状态转移图,并写出设计实现程序。要求:当串行数据是“101”时,flag_out =1,否则flag_out =0。15. 下图是一个含有下降沿触发的D触发器的时序电路,试写出此电路的VerilogHDL设计程序。16. 根据以下原理图写出相应的Verilog程序。 习题集解答一、 填空题1.(3) 2.( ) 3.( 适配器 ) 4.( 编译 ) 5.( 自顶向下) 6.( 综合) 7.( 软) 8.(片上系统)、(可编程片上系统) 9.( 硬)、 (软) 10.( 软IP) 11.( 转化)、(优化)、(映射) 12.(HDL综合器)、(仿真器)、(适配器或布局、布线器)、(下载器)13.(系统级)、(行为级)、(RTL级)14.(行为仿真)、(功能仿真)、(时序仿真) 15.( 行为) 16.( 功能) 17.( 时序) 18.(SRAM) 19.(测试平台testbench) 20.(自顶向下) 21.(Mealy)、(Moore) 22.(输入端口)、(输出端口) 23.(线网类型)、(寄存器类型) 24.(功能仿真)、(时序仿真) 25.(数据流级建模) 26.(assign)27.(阻塞赋值)、(非阻塞赋值) 28.(时间单位)、(时间精度)29.(片上系统 SOC) 30.(CPLD、(FPGA)31.(简单PLD) 32.(逻辑单元阵列LCA) 33.(编程)34.(Bit 比特)、(Byte字节) 35.(JTAG) 36. (主动配置)、 (从动配置) 37.(1983) 38.(并行)39.(顺序) 40.( $ ) 41.(调用(也称例化)42.(功能)、(测试 ) 43.($ ) 44.(不同)45.( 3 )、( 3 ) 46.(8'b0101) 47.(0)、(1)48.(4´b0101)二、 EDA名词解释1. Application Specific Integrated Circuit,专用集成电路2. Complex Programmable Logic Device 复杂可编程逻辑块3. Filed Programmable Gate Array 现场可编程门阵列4. integrated circuit 集成电路5. look up table 查找表6. PrintedCircuitBoard印制电路板7. Register Transfer Level寄存器传输级8. Finite State Machine有限状态机9. Generic Array Logic 可编程通用阵列逻辑10. 在系统编程11. 边界扫描测试 是一种可测试结构技术12. Platform-Based Design 基于平台的设计方法13. Block-Based design 基于块的设计三、 选择题1-5 A A A B A 6-10 C B B A D 11-15 D A D C A 16-20 D A B A D 2125 A BB A 2630 B B C A A 3135 C B D D A 3639 B A A A四、 简答题1 答:(1)二十世纪70年代,产生了第一代EDA工具。(2)到了80年代,为了适应电子产品在规模和制作上的需要,应运出现了以计算机仿真和自动布线为核心技术的第二代EDA技术。(3)90年代后,随着科学技术的发展,出现了以高级语言描述、系统级仿真和综合技术为特征的第三代EDA技术。2 答:EDA技术就是以计算机为工具,设计者在EDA软件平台上,对系统功能进行描述完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。3