电子与信息学院10应用电子技术教育2班科目:<<FPGA设计>>(X)卷考试形式:闭卷考试时间:100 分钟院(系)别、班级:姓名:学号:20XX.X.考试试卷) Array试题区:(试题区必须与答题区同时交回,含答题纸、试题纸、草稿纸的装订试卷不能分拆)一、单项选择题:(20分)1.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是___C___。
A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。
B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号;C.进程由说明部分、结构体部分、和敏感信号三部分组成;(进程由声明语句、顺序语句、敏感信号列表组成)D.当前进程中声明的变量不可用于其他进程。
2.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的___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#;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___; --库的声明USE IEEE.STD_LOGIC_1164.ALL; --库的引用,引用IEEE库中的std_logic_1164中的所有项目A. IEEE B. STD C.WORK D.ENTITY counter IS8.下列标识符中,___B___是不合法的标识符。
(标识符开头必须是英文字符)A. State0B. 9moonC. Not_Ack_0D. signall9.关于VHDL中的数字,请找出以下数字中最大的一个:___A___。
(整型数字的表示)A.2#1111_1110# --二进制数,下划线不影响数值大小,只是增强可读性,转换Array成10进制数为:254B.8#276# --八进制数,转换成十进制为:190C.10#170# --十进制数:170D.16#E#E1 --十六进制数,E为十进制14,后面的E1是指14乘以相应进制数的1次方,转换成十进制为:14*16^1=22410.下列EDA软件中,哪一个不具有逻辑综合功能:____B____。
(逻辑功能简单点说就是利用软件使我们用语言设计的电路优化成最简逻辑,相当于我们数电的最简与或式)A.Max+Plus II (Quartus II的旧版本)B.ModelSim (专业的仿真软件,时序和功能仿真,不具备逻辑综合功能)C.Quartus II (自带)D.Synplify (专业的逻辑综合工具)二.简答题30分(每题5分)。
1.根据下面的VHDL语句,描述出相应的电路原理图。
LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY cfq_1 ISPORT (d,cp :IN std_logic;q,nq :OUT std_logic);END cfq_1;-- END ar_4;--老师的题目错误,结束实体,这句应该放在最后。
ARCHITECTURE ar_4 OF cfq_1 ISBEGINPROCESS (CP)BEGINIF cp=′1′THENq <= d;nq <=NOT d;END IF;END PROCESS;END ar_4; --修改后,结束实体END ar_4应该在这个位置。
自己用Quartus II软件生成的,笔试的时候应该用笔来画,元件名应与实体名一致cfq_1。
2.quartusⅡ开发工具为设计者提供了哪些库?各有什么功能?(摘自《FPGA系统设计与实例》P32)1) IEEE库:被IEEE采用的标准化库,是VHDL设计中最重要的库;2) STD库:所用设计单元所共享,默认的库;3) VITAL库:提高VHDL门级时序模拟的精度;4) WORK库:用户的VHDL 设计的现行工作库用于存放用户设计和定义的一些设计单元和程序包5)用户自定义库:设计者自己建立的设计单元资源库。
3.quartusⅡ开发工具,图形文件的扩展名是? 波形文件的扩展名是?使用VHDL语言,文本设计文件的扩展名是?图形文件扩展名:gdf;波形文件扩展名:vwfVHDL文本设计文件扩展名:vhd4.简述FPGA的结构FPGA由可编程逻辑块(CLB)、输入/输出模块(IOB)及可编程互连资源(PIR)等三种可编程电路和一个SRAM结构的配置存储单元组成。
1)可编程逻辑块(CLB):主要由逻辑函数发生器、触发器、数据选择器等电路组成。
2)输入/输出模块(IOB):主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。
3)可编程互连资源(PIR):由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。
实现FPGA内部的CLB和CLB之间、CLB和IOB之间的连接。
5.什么叫功能仿真?什么叫时序仿真?、两者有什么区别?功能仿真又称前仿真,是在不考虑器件延时的理想情况下的一种项目验证方法,通过功能仿真来验证一个项目的逻辑功能是否正确。
时序仿真又称模拟仿真或后仿真,是在考虑设计项目具体适配器件的各种延时的情况下的一种项目验证方法。
时序仿真不仅测试逻辑功能,还测试目标器件最差情况下的时间关系。
注:功能仿真无延时(验证逻辑是否正确时用),时序仿真有延时(仿真出实实在在的芯片工作波形,实际芯片是有延时的)。
6.名词解释,写出下列缩写的中文(或者英文)含义:1.VHDL 超高速集成电路硬件描述语言(V ery-High-Speed Integrated Circuit HardwareDescription Language)2.FPGA 现场可编程逻辑门阵列(Field-Programmable Gate Array)3.RTL 寄存器传输级(Register-Transfer Level)4.SOPC 可编程片上系统(System-on-a-Programmable-Chip)5.EAB 嵌入式阵列块(Embedded Array Block)B 逻辑阵列块(Logic Array Block)三、判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。
(20分)下列程序是用VHDL语言编写的上升沿控制的D触发器(原理图如下)library ieee;use ieee.std_logic_unsigned.all;____use IEEE.std_logic_1164.all;___ --此D触发器没用到无符号算术运算,所以不用std_logic_unsigned 库。
entity dff1 isport(clk,d:in std_logic;Q:out std_logic) ____Q:out std_logic) ;___ --少了个“;”号end dff1;architecture one of d is ____architecure one of dff1 is___ --实体名不正确,dff1beginprocess ____process(clk)___ --VHDL中大小写无影响beginif clk ='1' ____if (clk’event and clk=’1’) then ___ --题目要求是上升沿控制的D触发器then Q<=d; ____Q <= d; ___ --then 一般紧接if语句end if;end process;end d; ____end one;___ --结构体名不正确,one四、VHDL程序填空:(10分)下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。
程序-- N-bit Up Counter with Load, Count Enable, and-- Asynchronous Resetlibrary ieee;use IEEE.std_logic_1164.all;use IEEE.__ std_logic_unsigned __.all;use IEEE.std_logic_arith.all;entity counter_n is__generic__ (width : integer := 8);port(data : in std_logic_vector (width-1 downto 0);load, en, clk, rst : _in__ std_logic;q : out std_logic_vector (___width-1___ downto 0));end counter_n;architecture behave of ____ counter_n ____ issignal count : std_logic_vector (width-1 downto 0);beginprocess(clk, rst)beginif rst = '1' thencount <= ___ (others => ‘0’) _____; ―― 清零-–others=>’0’是比较专业的写法,可以 count <= “00000000”;,8位标准向量,直接每一位给0;elsif ___(clk‘event and clk=1) ____ then ―― 边沿检测if load = '1' thencount <= data;___elsif___en = '1' thencount <= count + 1;___ end if _____;end if;end process;___ q <= count; ______end behave;注:由于是电子稿,应注意下划线。