(完整版)EDA期末考试题02_第1页
(完整版)EDA期末考试题02_第2页
(完整版)EDA期末考试题02_第3页
(完整版)EDA期末考试题02_第4页
(完整版)EDA期末考试题02_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、6.对于信号和变量的说法,哪一个是不正确的: AA.信号用于作为进程中局部数据存储单元一、选择题:(20分)1 .大规模可编程器件主要有 FPGA CPLDW类,下列对 CPLD吉构与工作原理的描述中,正确的是:D_A. CPLD 是基吁二查找表结构的可编程逻辑器件B. CPLD即是现场可编程逻辑器件的英文简称C.早期的CPLD从FPGA勺结构扩展而来D.在Xilinx 公司生产的器件中,XC9500系列属CPLD结构2 .基于VHD殴计的仿真包括有门级时序仿真、行为仿真、功能仿真和前端功能仿真这四种, 按照自顶向下的设计流程,其先后顺序应该是: DA.B.C.D.3 . IP核在EDA技术和

2、开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于固IP的正确描述为:DA.提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路B.提供设计的最总产品一一模型库C.以可执行文件的形式提交用户,完成了综合的功能块D.都不是4.下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:BA.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计B.原理图输入设计方法一般是一种自底向上的设计方法C.原理图输入设计方法无法对电路进行功能描述D.原理图输入设计方法不适合进行层次化设计5.在VHDL语言中,下列对进程(PROCESS语句

3、的语句结构及语法规则的描述中,不正确的是: DA. PROCES的一无限循环语句B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动C.当前进程中声明的变量不可用于其他进程D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成B.变量的赋值是立即完成的C.信号在整个结构体内的任何地方都能适用D.变量和信号的赋值符号不一样7.下列状态机的状态编码, 方式有“输出速度快、难以有效控制非法状态出现”这个特点。A.状态位直接输出型编码B. 一位热码编码C.顺序编码D.格雷编码8 . VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:DA. IEEE 库B. VI

4、TAL 库C. STD库D. WORKE作库9 .下列4个VHD所识符中正确的是: BA. 10#128#B. 16#E#E1C. 74HC124D. X_1610 .下列语句中,不属于并行语句的是: BA.进程语句B. CASE语句C.元件例化语句D. WHEN ELSE语句二、ED总词解释(10分)写出下列缩写的中文(或者英文)含义:1. ASIC专用集成电路2. FPGA现场可编程门阵列3. IP知识产权核(软件包)4. JTAG联合测试行动小组5. HDL硬件描述语言、VHD国序填空:(10分)以下程序是一个 BCD码表示099计数器的VHDL描述,试补充完整。library ieee

5、;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt100b isport( clk, rst, en : in std_logic;cq : out std_logic_vector(7 downto 0);- 计数输出cout: out std_logic);- 进位输出end entity cnt100b;architecture bhv of cnt100b isbeginprocess (clk, rst, en)variable cqi : std_logic_vector(7 downto

6、0); beginif rst = '1' then cqi := (others => 0');- 计数器清零复位elseifclk'event and clk = 1" then- 上升沿判断if en = '1' thenif cqi(3 downto 0) < "1001" then- 比较低 4 位cqi := cqi + 1;-计数加 1else if cqi(7 downto 4) < "1001" then- 比较高 4 位cqi := cqi + 16;else

7、cqi := (others => '0');end if;cqi (3 downto 0) := 0000”;- 低 4 位清零end if;end if;end if;end if;if cqi =10011001" then- 判断进位输出cout <= '1'elsecout <= '0'end if;cq <= cqi;end process;end architecture bhv;四、VHDLS序改错:(10分)仔细阅读下列程序,回答问题LIBRARY IEEE;- 1USE IEEE.STD_LO

8、GIC_1164.ALL;- 2ENTITY MOORE1 IS- 3PORT ( DATAIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);- 4CLK, RST: IN STD_LOGIC;- 5Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );- 6END MOORE1;- 7ARCHITECTURE BEHAV OF MOORE1 IS- 8SIGNAL ST_TYPE IS (ST0, ST1, ST2, ST3, ST4);- 9SIGNAL C_ST : ST_TYPE;-10BEGIN-11PROCESS (CLK, RST)-

9、12BEGIN-13IF RST = '1' THEN C_ST <= ST0; Q <= "0000"-14ELSIF CLK'EVENT AND CLK = '1' THEN-15CASE C_ST IS-16WHEN ST0 => IF DATAIN = "10" THEN C_ST <= ST1;-17ELSE C_ST <= ST0;-18END IF;Q <= "1001"- 19WHEN ST1 => IF DATAIN = "1

10、1" THEN C_ST <= ST2;- 20ELSE C_ST <= ST1;- 21END IF;Q <= "0101"- 22WHEN ST2 => IF DATAIN = "01" THEN C_ST <= ST3;- 23ELSE C_ST <= ST0;- 24END IF;Q <= "1100"- 25WHEN ST3 => IF DATAIN = "00" THEN C_ST <= ST4;- 26ELSE C_ST <= ST

11、2;- 27END IF;Q <= "0010"- 28WHEN ST4 => IF DATAIN = "11" THEN C_ST <= ST0;-29ELSEC_ST <= ST3;-30END IF;Q <= "1001"- 31END CASE;-32END IF;-33END PROCESS;-34END BEHAV;-351 .在程序中存在 两处错误,试指出,并说明理由:在Quartus II中编译时,其中一个提示的错误为:Error (Line 9): VHDL syntax error a

12、t MOORE1.vhd(9) near text "IS" expecting ":", or ","第9行,状态机数据类型声明错误,关键字应为TYPE第32行,case语句缺少 when others处理异常状态情况2 .修改相应行的程序(如果是缺少语句请指出大致的行数):错误1 行号:9 程序改为:SIGNAL改为TYPE错误2 行号:32 程序改为:之前添加一句 when others => c_st <= st0;2.看下面原理图,写出相应 VHDL描述五、阅读下列 VHD即序,画出相应RTL图:(10分)LIB

13、RARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY TRIS IS PORT ( CONTROL : IN STD_LOGIC;INN:IN STD_LOGIC;Q:INOUT STD_LOGIC;Y:OUT STD_LOGIC );END TRIS;ARCHITECTURE ONE OF TRIS ISBEGINPROCESS (CONTROL, INN, Q)BEGINIF (CONTROL = '0') THENY <= Q;Q <= 'Z'ELSEQ <= INN;Y <= 'Z&#

14、39;END IF;END PROCESS;END ONE;六、写VHD即序:(20分)1.试描述一个带进位输入、输出的8位全加器端口: A、B为加数,CIN为进位输入,S为加和,COUT为进位输出 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDER8 ISPORT (A, B : IN STD_LOGIC_VECTOR (7 DOWNTO 0);CIN : IN STD_LOGIC;COUT : OUT STD_LOGIC;S : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END ADDER8;ARCHITEC

15、TURE ONE OF ADDER8 ISSIGNAL TS : STD_LOGIC_VECTOR (8 DOWNTO 0); BEGINTS <= (0' & A) + (0' & B) + CIN;S <= TS(7 DOWNTO 0);COUT <= TS(8);END ONE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MYCIR ISPORT (A, CLK : IN STD_LOGIC;C, B : OUT STD_LOGIC );END MYCIR;ARCHITECTURE BE

16、HAV OF MYCIR ISSIGNAL TA : STD_LOGIC;BEGINPROCESS (A, CLK)BEGINIF CLK 'EVENT AND CLK =1 ' THENTA <= A;B <= TA;C <= A AND TA;END IF;END PROCESS;END BEHAV;七、综合题(20分)下图是一个A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:控制器(Control)、地址计数器(addrcnt)、内嵌双口 RAM (adram)。控制器(control)是一个状态机,完成 AD574的控制

17、,和adram的写入操作。adram是一个LPM_RAM_DP 单元,在 wren为T时允许写入数据。 试分别回答问题2.试画出control的状态机的状态图卜面列出了 AD574的控制方式和控制时序图:status = *Q*3.地址计数器每当 ClkInc时钟上升沿到达,输出地址加1,请对该模块进行VHDL描述。FPG聚集控制CECSRCK12_8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011X12位并行输出有效10100高8位并行输出有效10101低4位加上尾随4个0有效AD574逻辑控制真值表(X表示任意)RCSTATUS式嗜D丽 >

18、;T5有AD574工作时序问题:1.要求AD574工作在8位转换模式, K12_8、A0在control中如何设置?K12_8低电平A0高电平Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity cnt64 isPort ( ClkInc, Cntclr : in std_logic;- 时钟信号和清零信号输入Wraddr: out std_logic_vector (5 downto 0);End cnt64;Architecture one of cnt64 isBeginProces

19、s (clkinc, cntclr)Variable counter : std_logic_vector (5 downto 0);BeginIf cntclr =1 ' then counter := (others =>0');Elsif clkinc =1' and clkinc 'event then counter := counter + 1;End if;Wraddr <= counter;End process;End one;4.根据状态图,试对 control进彳V VHDL描述Library ieee;Use ieee.std

20、_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity control isPort ( CLK, STATUS : in std_logic;- 时钟信号和 AD专换状态信号输入ADDATA : in std_logic_vector (7 downto 0);-转换数据输入CS, CE, A0, RC, K12_8 : out std_logic;- AD574 控制信号ClkInc : out std_logic;-地址计数器时钟信号rddata : out std_logic_vector (7 downto 0);-转换数据输出5

21、.已知adram的端口描述如下ENTITY adram ISPORT( data:IN STD_LOGIC_VECTOR (7 DOWNTO 0);-wraddress: IN STD_LOGIC_VECTOR (5 DOWNTO 0);- rdaddress: IN STD_LOGIC_VECTOR (5 DOWNTO 0);-wren q END adram;:IN STD_LOGIC := '1'-写使能:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)-写入数据 写入地址 读地址读出数据);End control;Architecture behave

22、 of control isType sm_state is (s0, s1, s2, s3, s4);Signal c_st, n_st : sm_state;Signal lock : std_logic;Signal regdata : std_logic_vector(7 downto 0);BeginK12_8 <=0'A0 <=1 'Process (clk)If clk ' event and clk =1' thenEnd process;Process (c_st, status)BeginCase c_st isc_st <

23、= n_st; end if;When s0 => n_st <= s1; rc <=1 'ce <=0' ; cs <=1 ' lock <=0,When s1 => n_st <= s2; rc <=0 'When s2 => if status =0' then n_Rc <=1' ; ce <=1 'ce <=1' ; cs <=st <= s3; else n_st <= s2; cs <=0' ; lock &

24、lt;=0; lock <=0,;0"When s3 => n_st <= s4; rc <=1 'ce <=1' ; cs <=0' lock <=1'When s4 => n_st <= s0; rc <=1 'When others => n_st <= s0;End case;End process;Process (lock)BeginIf lock ' event and lock =1' thenRegdata <= addata;Clk

25、inc <=1 'ElseClkinc <=0'End if;End process;Rddata <= regdata;End behave;ce <=1' ; cs <=0' lock <=0,试用例化语句,对整个Library ieee;FPGA采集控制模块进行 VHDL描述Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity ADC574 isPort ( CLK, STATUS : in std_logic;ADDATA Cntclr R

26、daddr时钟信号和AD专换状态信号输入:in std_logic_vector (7 downto 0);-:in std_logic;-计数器清零信:in std_logic_vector (5 downto 0);CS, CE, A0, RC, K12_8 : out std_logic;rddata End ADC574;:out std_logic_vector (7 downto 0);Architecture one of adc574 iscomponent cnt64Port ( ClkInc, Cntclr WraddrEnd component; component control:in std_logic;Port (CLK, STATUSADDATA转换数据输入口V-adram读数地址-AD574控制信号-adram读数据输出时钟信号和清零信号输入:out std_logic_vector (5 downto 0);:in std_logic;:in std_logic_vector (7 downto 0);CS, CE, A0, RC, K12_8 : out std_logic;ClkInc rddataEnd compo

温馨提示

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

评论

0/150

提交评论