欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    3套练习题答案版last.ppt

    • 资源ID:2146933       资源大小:454.01KB        全文页数:31页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    3套练习题答案版last.ppt

    练习题,1、VHDL的设计文体可以被高层次的系统( ),成为系统的一部分。 A. 输入 B. 输出 C. 仿真 D. 调用 2、 一个能为VHDL综合器接受,并能作为一个独立的设计单元的完整的VHDL程序成为( ) A. 设计输入 B. 设计输出 C. 设计实体 D. 设计结构 3、在VHDL中用( )来把特定的结构体关联到一个确定的实体,为一个大型系统的设计提供管理和进行工程组织。 A. 输入 B. 输出 C. 综合 D. 配置 4、在VHDL标识符命名规则中,以( )开头的标识符是正确的。 A. 字母 B. 数字 C. 字母或数字 D. 下划线 5、在下列标识符中,( )是VHDL合法的标识符。 A4h_add B. h-adde C. h_adder D. _h_adde,6、在VHDL中,( )不能将信息带出对它定义的当前设计单元。 A. 信号 B. 常量 C. 数据 D. 变量 7、在VHDL中,乘“*”和除“/”算术运算的操作数据是( )数据类型 A. 整型 B. 实型 C. 整型和实型 D. 任意类型 8、VHDL中条件信号赋值语句WHEN_ELSE属于( )语句。 A. 并行兼顺序 B. 顺序 C. 并行 D. 不存在的 9、在VHDL中,为了使已声明的数据类型、子程序、元件能被其他设计实体调用或共享,可以把他们汇集在( )中。 A. 设计实体 B. 程序包 C. 结构体 D. 程序库 10、嵌套的IF语句,其综合结果可实现( )。 A. 条件相与的逻辑 B. 条件相或的逻辑 C. 条件相异或的逻辑 D. 三态控制电路,11、大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是( ) A. CPLD是基于查找表结构的可编程逻辑器件; B. CPLD即是现场可编程逻辑器件的英文简称; C. 早期的CPLD是从GAL的结构扩展而来; D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构。 12、在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的( ) A. idata := 32; B. idata = 16#A0#; C. idata = 16#7#E1; D. idata := B#1010# 13、FPGA的可编程是主要基于什么结构( )。 A. 查找表(LUT); B. 与阵列可编程; C. 或阵列可编程; D. 与或阵列可编程。,14、在VHDL语言中,下列对时钟边沿检测描述中,错误的是( ) A. if clkevent and clk = 1 then B. if rising_edge(clk) then C. if not clkevent and clk =0 then D. if not clkstable and clk = 1 then 15、嵌套使用IF语句,其综合结果可实现( ) A. 带优先级且条件相与的逻辑电路 B. 双向控制电路 C. 条件相或的逻辑电路 D. 三态控制电路 16、不完整的IF语句,其综合结果可实现( ) A. 时序电路 B. 双向控制电路 C. 条件相或的逻辑电路 D. 三态控制电路,17、可以进行在系统编程的器件是( ) AEPROM B. PAL C. GAL D. CPLD 18、VHDL语言程序结构中必不可少的部分是( ) A库 B. 程序包 C. 配置 D. 实体和结构体 19、能反馈输出信号至内部的端口模式是( ) AIN B. OUT C. BUFFER D. INOUT 20、VHDL语言优先级最高的运算符是( ) AAND B. OR C. NOT D. XOR 21、a已定义为信号,b已定义为变量,下面正确的表达是( ) Aa:=b B. a=b C. b:=a D. b=a,22、signal a, b:bit; signal y: bit_vector (1 downto 0);下面正确的表达式是( ) Ay=a B. y=b C. y=b and a D. y=b&a 23、进程内不能定义( ) A常量 B. 变量 C. 信号 D. 子程序 24、在VHDL的IEEE标准库中,预定义的标准逻辑位数据STD_LOGICE的Z表示的意思是( ) A强未知 B. 强0 C. 强1 D. 高阻 25、在VHDL中,用语句( )表示检测clock的下降沿。 A clockEVENT B. clockEVENT AND clock=1 C. clock=1 D. clockEVENT AND clock=0,26、在VHDL的CASE 语句中,条件语句中的“=”不是操作符,它只相当于( )的作用。 AIF B. THEN C. AND D. OR 27、在自顶向下设计过程中,描述器件总功能的模块一般称为( )。 A底层设计 B. 顶层设计 C. 部分设计 D. 局部设计,3、填空,1. ASIC的中文含义是: 专用集成电路 。 2. FPGA的一般采用 sram 工艺。 3. VHDL提供了四种端口模式: IN 、 OUT 、 INOUT 、 BUFFER。 4. 结构体的描述方式主要有 行为描述 、 数据流描述 和 结构化的描述 。 5. VHDL的数据对象有: 常数 、 变量 、 信号 。 6. 位类型(BIT)的取值只有 0 和 1 。 7. SIGNAL b:BIT_VECTOR(6 TO 0),信号b被定义为 7 位位宽。 8. 进程由 敏感信号参数表、进程说明 、顺序描述语句 三部分构成。 9. 选择信号赋值语句的每一子句后是 , 号,最后一句是 ; 。 10. 一个完整的VHDL程序包含: 实体 、 结构体 、 配置 、 包集合 、 库 五个部分。 11.编译可以检查的错误有 语法错误 和 逻辑 。 12.QuratusII仿真主要分为 时序 、 功能 。 13. BLOCK内的语句是 并行 语句。,1. VHDL程序改错,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 if din = d(6) then q if din = d(5) then q if din = d(4) then q if din = d(3) then q if din = d(2) then q if din = d(1) then q if din = d(0) then q 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,在上述程序代码中存在两处错误,编译时出现如下提示,试修改错误: Error: Line 12: File f:edaschk.vhd: VHDL syntax error: unexpected signal “d” in Concurrent Statement PartError: Line 29:File f:edaschk.vhd: VHDL syntax error: if statement must have END IF, but found PROCESS instead 错误1 行号: 错误2 行号:,错误1 行号:12 程序改为:d = “11100101“; 错误2 行号: 16 程序改为:elsif clk'event and clk = '1' then,2、根据原理图写出相应的VHDL程序,设计一数据选择器MUX,其系统模块图和功能表如下图所示。描述该数据选择器MUX的结构体。,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;,方法一: IF语句,ARCHITECTURE ONE of mymux IS BEGIN PROCESS ( sel, Ain, Bin ) BEGIN IF sel=”00” THEN Cout = Ain OR Bin; ELSIF sel=”01” THEN Cout = Ain NAND Bin; ELSIF sel=”10” THEN Cout = Ain XOR Bin; ELSE Cout = NOT Bin; END IF; END PROCESS; END ONE;,方法二:CASE语句,ARCHITECTURE TWO of mymux IS BEGIN PROCESS ( sel, Ain, Bin ) BEGIN CASE sel IS WHEN=”00” = Cout Cout Cout Cout NULL; END CASE; END PROCESS; END TWO;,方法三:WHEN-ELSE语句,ARCHITECTURE THREE of mymux IS BEGIN Cout = Ain OR Bin WHEN sel=”00” ELSE Ain NAND Bin WHEN sel=”01” ELSE Ain XOR Bin WHEN sel=”10” ELSE; NOT Bin; END THREE,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY LX3_4 IS; PORT( CLK:IN STD_LOGIC; J,K:IN STD_LOGIC; Q:OUT STD_LOGIC); END LX3_4; ARCHITECTURE struc OF LX3_4 IS SIGNAL Q_TEMP:STD_LOGIC:=0; SIGNAL JK:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN JK=J PROCESS(CLK,J,K),BEGIN IF CLKEVENT AND CLK=0 THEN CASE JK IS WHEN “00”=Q_TEMPQ_TEMPQ_TEMPQ_TEMPQ_TEMP=X; END CASE; END IF; Q=Q_TEMP; QN=NOT Q_TEMP; END PROCESS; END struc;,1. 分析下面的VHDL源程序,说明设计电路的功能.,库和程序包 std_logic_1164, IEEE的标准库,仅定义了std_ulogic, std_ulogic_vector, std_logic, std_logic_vector等类型以及他们的逻辑操作(and, or, xor, not, nand, nxor, nor) std_logic_arith 是synopsys的一个扩展,定义了unsigned, signed与integer, std_ulogic之间的算术运算、关系运算(, =, =, =, /=)算术运算返回类型可以是signed, unsigned或std_logic_vector。还定义了unsigned, signed, integer, std_logic_vector几种类型之间的转换函数,std_logic_unsigned 是synopsys的一个扩展,定义了基于std_logic_vector与std_logic_vector、std_logic_vector与integer之间的算术运算, , =, =, =, /=。返回类型是std_logic_vector或boolean注意这里面的function的运算都是基于unsigned,就是说std_logic_vector和integer都变成unsigned之后再用std_logic_arith库中的function完成。 std_logic_signed跟std_logic_unsigned类似,唯一的差别是,这里面的function都是先把操作数(std_logic_vector或integer类型)都转换成signed之后再用std_logic_arith库中的function完成。 在用这些库的时候,基本原则是要知道你想要EDA软件实现什么样的运算。大部分情况下,std_logic_vector应该作为unsigned参与运算。,VHDL程序填空 1、下面程序是一个16位数控分频器的VHDL描述,试补充完整。 _LIBRARY_ IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE _IEEE.STD_LOGIC_UNSIGNED.ALL _; ENTITY PULSE16 IS PORT ( CLK : IN STD_LOGIC; LOAD : IN STD_LOGIC; D : IN _STD_LOGIC_VECTOR(15 DOWNTO 0)_; FOUT : OUT STD_LOGIC ); END ENTITY; _ARCHITECTURE _ one OF PULSE16 IS SIGNAL FULL : STD_LOGIC; BEGIN,P_REG: PROCESS(CLK) Variable_ CNT16 : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK = '1' THEN IF _load=1_ THEN - LOAD高电平置数 CNT16 := D; FULL = '0' ELSE IF CNT16 = “1111111111111111“ THEN CNT16 := D; FULL = '1' ELSE CNT16 := _ cnt16+1_; - 计数加1 FULL = '0' END IF; END IF; _END IF _; END PROCESS P_REG;,P_DIV: PROCESS(_FULL _) - 溢出信号为敏感信号 VARIABLE CNT2 : STD_LOGIC; BEGIN IF _FULLevent and full=1 _ THEN - FULL上升沿判断 CNT2 := NOT CNT2; FOUT = CNT2; END IF; END PROCESS P_DIV; END;,其实所谓“条件信号赋值语句”,不过是if语句与信号赋值语句的结合而已。一个并行的条件信号赋值语句是可以用一个进程来代替的:这个进程体是由if语句和信号赋值语句构成的。 而所谓“选择信号赋值语句”,则是case语句与信号赋值语句的结合。一个并行的选择信号赋值语句也可以用一个进程来代替:这个进程体是由case语句和信号赋值语句构成的。 看一下下面的例子: 4选1多路选择器,4选1多路选择器,4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT(in0,in1,in2,in3:IN STD_LOGIC; sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0); q:OUT STD_LOGIC ); END mux4;,ARCHITECTURE behav1 OF mux4 IS BEGIN mux4_p1:PROCESS(in0,in1,in2,in3,sel) BEGIN IF sel = 00 THEN q = in0; ELSIF sel = 01 THEN q = in1; ELSIF sel = 10 THEN q = in2; ELSE q = in3; END IF; END PROCESS mux4_p1; END behav1;,ARCHITECTURE behav2 OF mux4 IS BEGIN q = in0 WHEN sel = 00 ELSE in1 WHEN sel = 01 ELSE in2 WHEN sel = 10 ELSE in3; - 这个条件信号赋值语句与进程mux4_p1等价 END behav2;,ARCHITECTURE behav3 OF mux4 IS BEGIN mux4_p2:PROCESS(in0,in1,in2,in3,sel) BEGIN CASE sel IS WHEN 00 = q q q q = in3; END CASE; END PROCESS mux4_p2; END behav3;,ARCHITECTURE behav4 OF mux4 IS BEGIN WITH sel SELECT q = in0 WHEN 00, in1 WHEN 01, in2 WHEN 10, in3 WHEN OTHERS; - 这个选择信号赋值语句与进程mux4_p2等价 END behav4;,STD_LOGIC_1164程序包 :它是IEEE中最常用的程序包,是IEEE的标准程序包。其中包含了一些数据类型、子类型和函数的定义,这些定义将VHDL扩展为一个能描述多值逻辑的硬件描述语言,很好地满足了实际数字系统的设计需求。其中应用最多最广的是满足工业标准的数据类型STD_LOGIC和 STD_LOGIC_VECTOR。 STD_LOGIC_ARITH程序包:在STD_LOGIC_1164程序包的基础上扩展了三个数据类型UNSIGNED、SIGNED和SMALL_INT,并为其定义了相关的算术运算和转移运算。 STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包:这两个程序包是Synopsys公司的程序包,预先编译在IEEE库中。STANDARD和TEXTIO程序包:STANDARD中定义了许多基本的数据类型、子程序和函数。TEXTIO程序包中定义了支持文件输入输出操作的许多类型和子程序。,

    注意事项

    本文(3套练习题答案版last.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开