广东技术师范学院电子与信息学院10应用电子技术教育2班广东技术师范学院20XX—20XX学年度第(X)学期期末考试试卷科目:FPGA设计(X)卷考试形式:闭卷考试时间:100分钟院(系)别、班级:姓名:学号:电子与信息学院20XX.X.考试试卷(含答题纸、试题纸、草稿纸的装订试卷不能分拆)试题区:(试题区必须与答题区同时交回,含答题纸、试题纸、草稿纸的装订试卷不能分拆)一、单项选择题:(20分)1.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是___C___。A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号;C.进程由说明部分、结构体部分、和敏感信号三部分组成;(进程由声明语句、顺序语句、敏感信号列表组成)D.当前进程中声明的变量不可用于其他进程。2.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0to127,下面哪个赋值语句是正确的___C___。(信号赋值符号=)A.idata:=32;B.idata=16#A0#;(十进制数为:10*16=160,idata范围为0~127)C.idata=16#7#E1;(十进制数为:7*16^1=112)D.idata:=B#1010#;题目一二三四五六七八总分标准分数2030201020100实得分数评卷人装订线考生答题不得超过此线广东技术师范学院电子与信息学院10应用电子技术教育2班第2页(不含草稿纸部分共11页3.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是___C___。A.FPGA是基于乘积项结构的可编程逻辑器件;(FPGA芯片基于查找表的可编程逻辑结构)B.FPGA是全称为复杂可编程逻辑器件;(FPGA现场可编程逻辑门阵列,CPLD才是复杂可编程逻辑器件)C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。(MAX7000系列属CPLD结构)4.进程中的变量赋值语句,其变量更新是___A___。(变量(variable)是立即完成的,信号(signal)有延时)A.立即完成;B.按顺序完成;C.在进程的最后完成;D.都不对。5.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___D___。(结构体实现实体的功能,通过对实体的逻辑功能进行描述)A.器件外部特性;B.器件的综合约束;C.器件外部特性与内部功能;D.器件的内部功能。6.CASE语句是___A___。(case语句时顺序语句中最重要最常用的顺序语句)A.顺序语句B.并行语句C.其它D.组合逻辑控制电路语句7.LIBRARY___A___;--库的声明USEIEEE.STD_LOGIC_1164.ALL;--库的引用,引用IEEE库中的std_logic_1164中的所有项目A.IEEEB.STDC.WORKD.ENTITYcounterIS广东技术师范学院电子与信息学院10应用电子技术教育2班第3页(不含草稿纸部分共11页)8.下列标识符中,___B___是不合法的标识符。(标识符开头必须是英文字符)A.State0B.9moonC.Not_Ack_0D.signall9.关于VHDL中的数字,请找出以下数字中最大的一个:___A___。(整型数字的表示)A.2#1111_1110#--二进制数,下划线不影响数值大小,只是增强可读性,转换成10进制数为:254B.8#276#--八进制数,转换成十进制为:190C.10#170#--十进制数:170D.16#E#E1--十六进制数,E为十进制14,后面的E1是指14乘以相应进制数的1次方,转换成十进制为:14*16^1=22410.下列EDA软件中,哪一个不具有逻辑综合功能:____B____。(逻辑功能简单点说就是利用软件使我们用语言设计的电路优化成最简逻辑,相当于我们数电的最简与或式)A.Max+PlusII(QuartusII的旧版本)B.ModelSim(专业的仿真软件,时序和功能仿真,不具备逻辑综合功能)C.QuartusII(自带)D.Synplify(专业的逻辑综合工具)二.简答题30分(每题5分)。1.根据下面的VHDL语句,描述出相应的电路原理图。LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYcfq_1ISPORT(d,cp:INstd_logic;q,nq:OUTstd_logic);ENDcfq_1;--ENDar_4;--老师的题目错误,结束实体,这句应该放在最后。ARCHITECTUREar_4OFcfq_1ISBEGINPROCESS(CP)BEGINIFcp=′1′THENq=d;装订线考生答题不得超过此线广东技术师范学院电子与信息学院10应用电子技术教育2班第4页(不含草稿纸部分共11页nq=NOTd;ENDIF;ENDPROCESS;ENDar_4;--修改后,结束实体ENDar_4应该在这个位置。自己用QuartusII软件生成的,笔试的时候应该用笔来画,元件名应与实体名一致cfq_1。2.quartusⅡ开发工具为设计者提供了哪些库?各有什么功能?(摘自《FPGA系统设计与实例》P32)1)IEEE库:被IEEE采用的标准化库,是VHDL设计中最重要的库;2)STD库:所用设计单元所共享,默认的库;3)VITAL库:提高VHDL门级时序模拟的精度;4)WORK库:用户的VHDL设计的现行工作库用于存放用户设计和定义的一些设计单元和程序包5)用户自定义库:设计者自己建立的设计单元资源库。3.quartusⅡ开发工具,图形文件的扩展名是?波形文件的扩展名是?使用VHDL语言,文本设计文件的扩展名是?图形文件扩展名:gdf;波形文件扩展名:vwfVHDL文本设计文件扩展名:vhd广东技术师范学院电子与信息学院10应用电子技术教育2班第5页(不含草稿纸部分共11页)4.简述FPGA的结构FPGA由可编程逻辑块(CLB)、输入/输出模块(IOB)及可编程互连资源(PIR)等三种可编程电路和一个SRAM结构的配置存储单元组成。1)可编程逻辑块(CLB):主要由逻辑函数发生器、触发器、数据选择器等电路组成。2)输入/输出模块(IOB):主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。3)可编程互连资源(PIR):由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。实现FPGA内部的CLB和CLB之间、CLB和IOB之间的连接。5.什么叫功能仿真?什么叫时序仿真?、两者有什么区别?功能仿真又称前仿真,是在不考虑器件延时的理想情况下的一种项目验证方法,通过功能仿真来验证一个项目的逻辑功能是否正确。时序仿真又称模拟仿真或后仿真,是在考虑设计项目具体适配器件的各种延时的情况下的一种项目验证方法。时序仿真不仅测试逻辑功能,还测试目标器件最差情况下的时间关系。注:功能仿真无延时(验证逻辑是否正确时用),时序仿真有延时(仿真出实实在在的芯片工作波形,实际芯片是有延时的)。6.名词解释,写出下列缩写的中文(或者英文)含义:1.VHDL超高速集成电路硬件描述语言(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)广东技术师范学院电子与信息学院10应用电子技术教育2班第6页(不含草稿纸部分共11页2.FPGA现场可编程逻辑门阵列(Field-ProgrammableGateArray)3.RTL寄存器传输级(Register-TransferLevel)4.SOPC可编程片上系统(System-on-a-Programmable-Chip)5.EAB嵌入式阵列块(EmbeddedArrayBlock)6.LAB逻辑阵列块(LogicArrayBlock)三、判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。(20分)下列程序是用VHDL语言编写的上升沿控制的D触发器(原理图如下)libraryieee;useieee.std_logic_unsigned.all;____useIEEE.std_logic_1164.all;___--此D触发器没用到无符号算术运算,所以不用std_logic_unsigned库。entitydff1isport(clk,d:instd_logic;Q:outstd_logic)____Q:outstd_logic);___--少了个“;”号enddff1;architectureoneofdis____architecureoneofdff1is___--实体名不正确,dff1beginprocess____process(clk)___--VHDL中大小写无影响beginifclk='1'____if(clk’eventandclk=’1’)then___--题目要求是上升沿控制的D触发器thenQ=d;____Q=d;___--then一般紧接if语句endif;endprocess;endd;____endone;___--结构体名不正确,one四、VHDL程序填空:(10分)下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。程序--N-bitUpCounterwithLoad,CountEnable,and--AsynchronousResetlibraryieee;广东技术师范学院电子与信息学院10应用电子技术教育2班第7页(不含草稿纸部分共11页)useIEEE.std_logic_1164.all;useIEEE.__std_logic_unsigned__.all;useIEEE.std_logic_arith.all;entitycounter_nis__generic__(width:integer:=8);port(data:instd_logic_vector(width-1downto0);load,en,clk,rst:_in__std_logic;q:outstd_logic_vector(___width-1___downto0));endcounter_n;architecturebehaveof____counter_n____issignalcount:std_logic_vector(width-1downto0);beginprocess(clk,rst)beginifrst='1'thencount=___(others=‘0’)_____;――清零-–others=’0’是比较专业的写法,可以count=“00000000”;,8位标准向量,直接每一位给0;elsif___(clk‘eventandclk=1)____then――边沿检测ifload='1'thencount=data;___elsif___en='1'thencount=count+1;___endif_____;endif;endprocess;___q=count;______endbehave;注:由于是电子稿,应注意下划线。libraryieee;useIEEE.std_logic_1164.all;useIEEE.__std_logic_unsigned__.all;--计数器涉及运算赋值,所以需要声明引用unsigned程序包useIEEE.std_logic_arith.all;entitycounter_nis__generic__(width:integer:=8);--generi