收藏 分销(赏)

EDA技术与VHDL考试试题.doc

上传人:a199****6536 文档编号:2301831 上传时间:2024-05-27 格式:DOC 页数:7 大小:44.05KB 下载积分:6 金币
下载 相关 举报
EDA技术与VHDL考试试题.doc_第1页
第1页 / 共7页
EDA技术与VHDL考试试题.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
杭州电子科技大学2005年EDA技术与VHDL考试试题 考试课程        EDA技术与VHDL        考试日期        年  月  日        成 绩        课程号        B0405010        教师号                任课教师姓名        曾  毓 考生姓名                学号(8位)                年级                专业        一、单项选择题:(20分) 1.        大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是_______。         A. CPLD是基于查找表结构的可编程逻辑器件;         B. CPLD即是现场可编程逻辑器件的英文简称;         C. 早期的CPLD是从GAL的结构扩展而来;         D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构; 2.        综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_________是正确的。 A.        综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件; B.        综合是纯软件的转换过程,与器件硬件结构无关; C.        为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为强制综合。 D.        综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的; 3.        IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为__________。 A.        提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路; B.        提供设计的最总产品----模型库; C.        以网表文件的形式提交用户,完成了综合的功能块; D.        都不是。 4.        基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→________→综合→适配→__________→编程下载→硬件测试。 ①功能仿真        ②时序仿真        ③逻辑综合        ④配置        ⑤引脚锁定         A.③①                B. ⑤②                C.④⑤                D. ①②        5.        下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的______。 A.        原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计; B.        原理图输入设计方法一般是一种自底向上的设计方法; C.        原理图输入设计方法无法对电路进行功能描述; D.        原理图输入设计方法也可进行层次化设计。 6.        在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是_______。 A.        PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。 B.        敏感信号参数表中,不一定要列出进程中使用的所有输入信号; C.        进程由说明部分、结构体部分、和敏感信号三部分组成; D.        当前进程中声明的变量不可用于其他进程。 7.        嵌套使用IF语句,其综合结果可实现________。 A.        带优先级且条件相与的逻辑电路; B.        条件相或的逻辑电路; C.        三态控制电路; D.        双向控制电路。 8.        电子系统设计优化,主要考虑提高资源利用率减少功耗----即面积优化,以及提高运行速度----即速度优化;指出下列那种方法不属于速度优化:___________。 A.        流水线设计                B. 串行化 C.        关键路径法                D. 寄存器配平 9.        在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的________。 A.        idata := 32; B.        idata <= 16#A0#; C.        idata <= 16#7#E1; D.        idata := B#1010#; 10.下列EDA软件中,哪一不具有逻辑综合功能:________。 A.        Max+Plus II B.        ModelSim C.        Quartus II D.        Synplify 第1页  共5页 二、EDA名词解释,写出下列缩写的中文(或者英文)含义:(14分) 1.        SOPC 2.        LUT 3.        JTAG 4.        GAL 5.        EAB 6.        IP 7.        HDL 三、VHDL程序填空:(10分) 下面程序是n输入与门的VHDL描述,试补充完整。 __________ ieee; use _____________________.all; entity andn is         ________ (n : integer);                                -- 类属参数声明         port (        a  : in   std_logic_vector( ______ downto 0);                     c  : out  std_logic); end; ________________ behav of ________ is        -- 结构体声明 begin         process (____)                 _____________ int : std_logic;        -- 变量声明         begin                 int := _____;                                                        -- 变量赋初值                 for I in a'length – 1 downto 0 loop        -- 循环判断                         if a(i) = '0' then                                 int := '0';                         end if;                 end loop;                 c <= ________;                                                -- 输出判断结果         end process; end behav; 四、VHDL程序改错:(10分) 本题程序为EDA实验中的示例程序sch.vhd,仔细阅读程序,回答问题。 1.对该程序进行编译时出现错误提示:“VHDL Design File “sch” must contain an entity of the same name.” 这是什么原因?如何修改? 2.修改问题1的错误后,如果编译时出现“Can’t open VHDL “WORK” ”这样的错误提示。 这又是什么原因,如何修改?        library ieee;                                                                                                                                        --1 use ieee.std_logic_1164.all;                                                                                                        --2 entity schk is                                                                                                                                        --3         port (din, clk, clr        : in std_logic;        -- 串行输入数据位/工作时钟/复位信号                        --4                         ab                        : out std_logic_vector(3 downto 0)        -- 检测结果输出                --5                 );                                                                                                                                                --6 end schk;                                                                                                                                                --7 architecture bhv of schk is                                                                                                                --8         signal q : integer range 0 to 8;                                                                                        --9         signal d : std_logic_vector(7 downto 0);        -- 8位待检测预置数                                --10 begin                                                                                                                                                        --11         d = "11100101";        -- 8位待检测预置数                                                                                        --12         process (clk, clr)                                                                                                                        --13         begin                                                                                                                                                --14                 if clr = '1' then q<= 0;                                                                                                --15                 else if clk'event and clk = '1' then                                                                        --16                                 case q is                                                                                                                --17                                         when 0 => if din = d(7) then q <= 1; else q <= 0;        end if;        --18                                         when 1 => if din = d(6) then q <= 2; else q <= 0;        end if;        --19                                         when 2 => if din = d(5) then q <= 3; else q <= 0;        end if;        --20                                         when 3 => if din = d(4) then q <= 4; else q <= 0;        end if;        --21                                         when 4 => if din = d(3) then q <= 5; else q <= 0;        end if;        --22                                         when 5 => if din = d(2) then q <= 6; else q <= 0;        end if;        --23                                         when 6 => if din = d(1) then q <= 7; else q <= 0;        end if;        --24                                         when 7 => if din = d(0) then q <= 8; else q <= 0;        end if;        --25                                         when others => q <= 0;                                                                                --26                                 end case;                                                                                                                --27                 end if;                                                                                                                                        --28         end process;                                                                                                                                --29         process (q)                                                                                                                                        --30         begin                                                                                                                                                --31                 if q = 8 then        ab <= "1010";                                                                                        --32                 else                        ab <= "1011";                                                                                        --33                 end if;                                                                                                                                        --34         end process;                                                                                                                                --35 end bhv;                                                                                                                                                --36 1.        在上述程序代码中存在两处错误,编译时出现如下提示,试修改错误: Error: Line 12: File f:\eda\schk.vhd: VHDL syntax error: unexpected signal “d” in Concurrent Statement Part Error: Line 29:File f:\eda\schk.vhd: VHDL syntax error: if statement must have END IF, but found PROCESS instead 错误1        行号:       程序改为: 错误2        行号:       程序改为: 第2页  共5页 五、VHDL程序设计:(16分) 设计一数据选择器MUX,其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。  (a) 用if语句。  (b) 用case 语句。  (c) 用when else 语句。 Library ieee; Use ieee.std_logic_1164.all; Entity mymux is         Port (        sel : in std_logic_vector(1 downto 0);                        -- 选择信号输入                         Ain, Bin : in std_logic_vector(1 downto 0);                -- 数据输入                         Cout : out std_logic_vector(1 downto 0) ); End mymux;         六、根据原理图写出相应的VHDL程序:(10分) 第3页  共5页 七、综合题(20分) 下图是一个A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。控制器(control)是一个状态机,完成AD574的控制,和adram的写入操作。Adram是一个LPM_RAM_DP单元,在wren为’1’时允许写入数据。试分别回答问题 下面列出了AD574的控制方式和控制时序图 AD574逻辑控制真值表(X表示任意) CE        CS        RC        K12_8        A0        工 作 状 态 0        X        X        X        X        禁止 X        1        X        X        X        禁止 1        0        0        X        0        启动12位转换 1        0        0        X        1        启动8位转换 1        0        1        1        X        12位并行输出有效 1        0        1        0        0        高8位并行输出有效 1        0        1        0        1        低4位加上尾随4个0有效 AD574工作时序: 问题: 1.        要求AD574工作在12位转换模式,K12_8、A0在control中如何设置?         2.        试画出control的状态机的状态图 3.        地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对该模块进行VHDL描述。 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity cnt10 is         Port (        ClkInc, Cntclr         : in std_logic;                -- 时钟信号和清零信号输入                         Wraddr                         : out std_logic_vector (9 downto 0) ); End cnt10; 第4页  共5页 4.        根据状态图,试对control进行VHDL描述 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity control is         Port (        CLK, STATUS        : in std_logic;                        -- 时钟信号和AD转换状态信号输入                         ADDATA                : in std_logic_vector (11 downto 0);        -- 转换数据输入                         CS, CE, A0, RC, K12_8 : out std_logic;                                -- AD574控制信号                         ClkInc                : out std_logic;                -- 地址计数器时钟信号                         rddata                 : out std_logic_vector (11 downto 0) );        -- 转换数据输出 End control;         5.        已知adram的端口描述如下         ENTITY adram IS         PORT         (        data        : IN STD_LOGIC_VECTOR (11 DOWNTO 0); -- 写入数据                 wraddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 写入地址                 rdaddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 读地址                 wren        : IN STD_LOGIC  := '1'; -- 写使能                 q                : OUT STD_LOGIC_VECTOR (11 DOWNTO 0)  -- 读出数据        ); END adram; 试用例化语句,对整个FPGA采集控制模块进行VHDL描述 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity ADC574 is         Port (        CLK, STATUS        : in std_logic;                        -- 时钟信号和AD转换状态信号输入                         ADDATA                : in std_logic_vector (11 downto 0);        -- 转换数据输入                         Cntclr                : in std_logic;                        -- 计数器清零信号                         Rdaddr                : in std_logic_vector (9 downto 0);                -- adram读数地址                         CS, CE, A0, RC, K12_8 : out std_logic;                                -- AD574控制信号                         rddata                 : out std_logic_vector (11 downto 0) );        -- adram读数据输出 End ADC574;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服