1、系别 班次 学号 姓名 .密封线以内答题无效第 1 页 共 8 页电子科技大学二零零四至二零零五学年第一学期( A)一、 填空题:(20分,每小题2分)1) 用VHDL语言进行设计过程中一般要进行仿真以判断设计是否正确,在综合前进行的仿真称为 功能仿真 ,综合后进行的仿真称为 时序仿真 。2) CPLD和FPGA内部结构差别很大,一般CPLD是一种以 乘积项 方式构成逻辑行为的器件,而一般FPGA则是以 查找表 方式构成逻辑行为的器件。3) Altera公司的FLEX 10K 系列器件的内部结构主要包括: 逻辑阵列块(LAB) 、嵌入式阵列块() 、 I/O单元 和 快速通道互连 。4) VH
2、DL语言中端口 buffer和inout的主要区别是 buffer不能接收外部的输入信号,inout可实现双向数据传送 。5) 数字频率计功能是测量被测信号的频率,测量频率的基本原理是: 1秒时间内 代测信号的脉冲个数 。6) 在VHDL 语法规则中变量只能在 进程 和 子程序 中使用。7) EDA软件中的综合器的基本功能是: 将描述针对给定的硬件结构进行编译、优化、转换和综合最终获得门级电路或更底层的电路描述文件 。8) 一般常用的VHDL描述风格有三种,它们分别是: 行为描述 、寄存器级描述(或数据流描述) 和 结构描述 。9) 元件例化语句中的端口映射方式有_位置关联_、_名字关联_。1
3、0) CPLD的全称是 Complex Programmable Logic Devices(或复杂可编程逻辑器件) 、FPGA的全称是 Field Programmable Gate Array(或现场可编程门阵列) 。二、 单项选择题(14分,每小题2分)1) Altera公司的FLEX 10K 系列器件采用的编程元件是 D 。A、 熔丝型开关 B、 EPROM的编程元件 C、 EEPROM的编程元件 D、基于SRAM的编程元件2) 若a=1,b=2,下面程序执行后, a和b的值分别为 B 。architecture rtl of entityName is系别 班次 学号 姓名 .密封线
4、以内答题无效第 2 页 共 8 页signal a, b: integer;beginprocess (a, b)variable c: integer;begina outpoutpoutpoutp Qout Qout Qout = “00000000” ;-只要有others即对 1分End case ;End process;End arch ;4) 七段LED译码显示电路,只须显示09,Din30为输入,Dout60 为输出。数码管为共阴极,数码管对应关系如下图所示,a对应译码显示输出的低位,g对应高位,其它按顺序对应。Library ieee;Use ieee.std_logic_1
5、164.all;Entity decoder isPort(Din: in std_logic_vector(3 downto 0);Dout: out std_logic_vector(6 downto 0);End decoder ;Architecture arch of decoder isBeginDout = “0111111” when Din = “0000” else “0000110” when Din = “0001” else 1分“1011011” when Din = “0010” else “1001111” when Din = “0011” else 1分“1
6、100110” when Din = “0100” else “1101101” when Din = “0101” else 1分 “11111101” when Din = “0110” else “0000111” when Din = “0111” else 1分 “1111111” when Din = “1000” else “1101111” when Din = “1001” else 1分“0000000” ; End arch ;五、用VHDL设计电路:(26分)1. 用VHDL(必须使用元件例化方式)描述如下的方框图,十进制计数器也要编写。 (14分)-十进制计数器lib
7、rary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; 2分entity CNT10 isport(Clk: in std_logic;En: in std_logic;Carry: out std_logic ;CntOut: out std_logic_vector(3 downto 0);七 段 译 码显 示Din3.0 Dout6.0十 进 制计 数 器Clk Dout3.0十 进 制计 数 器En Dout7.4caryCNT10CNT10系别 班次 学号 姓名 .密封线以内答题无效第 7 页 共
8、8 页End CNT10; 1分Architecture arch of CNT10 isSignal CntOutTmp: std_logic_vector(3 downto 0);BeginProcess(clk)BeginIf (Clkevent and Clk = 1 ) then If (En = 1) thenIf (CntOutTmp = “1001”) thenCntOutTmp = “0000” ;Carry = 1 ;elseCntOutTmp = CntOutTmp+ 1 ;Carry = 0 ;End if ;End if ;End if ;End process ;C
9、ntOut = CntOutTmp ;End arch ; 3分-主程序library ieee;use ieee.std_logic_1164.all; 1分entity top is port (Clk, en: in std_logic;carry : out std_logic;Dout: out std_logic_vector(7 downto 0);End top; 1分Architecture arch of top isComponent CNT10 Port(clk: in std_logic; En : in std_logic;Carry : out std_logic
10、;CntOut : out sdd_logic_vector(3 downto 0);End Component ; 2分Signal carryTmp: std_logic;BeginU1: CNT10 port map(Clk, En, carryTmp, Dout(3 downto 0); 2分U2:CNT10 port map(carryTmp, En, carry, Dout(7 downto 4); 2分End arch ; 2. 用VHDL设计一个模为90,具有异步复位、同步置数功能的8421BCD码计数器。输入输 出接口如图所示,nReset 为异步复位信号,Load为用于同步
11、置数的控制信号,Clk为时钟信号,LoadData70为计数器初始计数数据,Carry为进位输出产生的信号,CL 和CH分别为计数器数据输出的低四位和高四位。(12分)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; 2分entity cntm90 isport(Clk: in std_logic;nReset, Load: in std_logic;LoadData: in std_logic_vector(7 downto 0) ;Carry: out std_logic; 模 90计 数 器
12、nRestLoadClk CL3.0CH3.0CaryLoadDat7.0系别 班次 学号 姓名 .密封线以内答题无效第 8 页 共 8 页CL: buffer std_logic_vector(3 downto 0);CH: buffer std_logic_vector(3 downto 0);End cntm90; 2分Architecture arch of cntm90 isBeginCarry = 1 when CL= “1001” and CH = “1000” else0 ; 3分process (Clk, nReset)beginif (nReset = 0) then 1分CL= “0000”;CH = “0000”; Elsif (Clkevent and clk = 1 ) thenIf Load = 1 then 1分CL= LoadData(3 downto 0);CH =LoadData(7 downto 4);Else 3分If (CL = “1001”) thenCL = “0000” ;If (CH = “1000” ) thenCH = “0000” ;ElseCH = CH + 1 ;End if ;elseCL = CL + 1 ;End if ;End if ;End if ;End process ;End arch ;