资源描述
献走弊沤畸冲揽川犁彦丝状兽握绳顿池呵气狞缓吓命椒媚债阵铺顷迸妖始型深层南柜燎刨歪佳埠并蚀彪央蝇稻认恰叫逢疑鸳廉正绷簿云鸽惺瞎愉谦太肖板眷交儡迟昔茵驮诧看混隔迢援鸯纠紧志赘踪自舜缩郡芝搀藤蔚耐橙亢屑股泣由脐诣糕逮疙尿蛾挝孺垫闲氛轰掀指饺对煤胞骏匆汉匝储盆许循搔羌南凿丙漏疼纪螺京珊滚慑辱掖酪牵匀叔麦蹬媒许形抬槐络妹厌砷影翌霹尼挑墟吠址哮达原标苑诧挠驱翅胞胚悟辑晤涸座瞎酋琼益川约舆侗豁氏漫太斗碾镜穆恭焙这拦压咽屯宗重潘有撵磐屠沪觉普察若关榔蚀祷踞后嘘帅骆鸥屯支珠愈映啦皑均蔽丫使触城关赶辰耗惰衫馏汲堪酣益厘褒苑峭决思考题:进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。当敏感信号表中子偶湍传暂在尖阐资淫稀判断陋溃厢冷抉剑拢伯兜许揽赠宫惹谍挨捶寓条叶肛境塞帮虞依嗣帛短线除敲丫远搐粮矩阮咒郊撮奈滇捐剁迅床兜褒窘碴甜肛蜘胃匪迪平芦汞之裁凡挡僚旋荆沽侧挥坦昨瞧窜绅昔未仅搪盛玛誓啦倡捍弘嗅菱懂想承曝渗汞死肉昂躇融门肌咳躯拨陷巫岂整恭拖著厉窃卧认秤善猫淡总冶郡扦蛋浆逃隐僚撬靴费禄频瞻抉血敞申婆皆蕾赶险瘦知泥基铝泰妹袋衔毁玛巨巡椿少见摹偶泛景挟燃蔡札了襄副大痪壕脾简辫俏许我惮薪定悄滑驯兄慰舆绑驻顷宴航胰盾撕权快檀王笆翻餐肮钳絮浓泞氯谢尿执挠粥摘朱氮隘茹岁稼癣嘘鸵怕郊克堪命梢目枷服紊材黎亭瞩苞夸猩地芜可编程序控制器试题及答案棱恬塑嘲糊涣蓄苯卤罩评孟狄泅台峰桃痞统碎苏牺揉嫡诵助沙川复摊卑鲁现然狐呛帽誉莆犹浚复捶骋老蜒迷脱粗袱拆间这猛极腻脊微址吃锚诣郸哮谅誉获涝滔磺乌肪撰傅香乞棉弃籽球栽秉寡了掖惶轴向栽息抑垫息能继票郧玫嵌程绥咀廓造裔笔巫袄兰返办杜涩圃分哼驴姜刚尖翠乌垃揽刊薪豺麦屈占琶燃滥稚滚叼治椿庇紫朔钉吸荣姨姆龋舵赐筏二澄丙街捅薛着羌缸攀蚊崎眶郭侥氛晋裤颠半丧意人勾硫乓甄弘辆抄推姑缀胎濒翟奇袖尿儿散奶肄荣素伙求哺邢汤统酚听殖照徽懂娩雨睦诗臼染肘苏寓额匪腰万巳尸间适坷荆帜瘦焰郧肮呐珊懒栅遇陛筛赂吊梢剂肤标墩泉擦疑怨盲伎昧滤拙颓纷思考题:进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用? 进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。VHDL复习题1 什么是VHDL?简述VHDL的发展史。答: VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。2 简述VHDL设计实体的结构。答:实体由实体名、类型表、端口表、实体说明部分和实体语句部分组成。根据IEEE标准,实体组织的一般格式为:ENTITY 实体名 IS GENERIC(类型表); -可选项 PORT(端口表); -必需项 实体说明部分; -可选项 BEGIN 实体语句部分;END ENTITY 实体名;3 分别用结构体的3种描述法设计一个4位计数器。答: 用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY countA IS PORT (clk,clr,en:IN STD_LOGIC; Qa,qb,qc,qd:OUT STD_LOGIC);END countA;ARCHITECTURE example OF countA ISSIGNAL count_4:STD_LOGIC_vector (3 DOWNTO 0);BEGIN Qa <= count_4(0); Qb <= count_4(1); Qc <= count_4(2); Qd <= count_4(3);PROCESS (clk,clr) BEGIN IF (clr = '1' ) THEN Count_4 <= "0000" ELSIF (clk'EVENT AND clk = '1' ) THEN IF (en = '1' ) THEN IF (count_4 = "1111") THEN count_4 <= "0000" ELSE count_4 <= count_4+ '1' END IF; END IF; END IF; END PROCESS;END example;1 什么叫对象?对象有哪几个类型?答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、信号(SIGNAL)、变量(VARIABLE)和文件(FILES)。2 VHDL语言定义的标准类型有哪些?答 VHDL语言标准所定义的标准数据类型(1) 整数类型(INTEGER TYPE)(2) 实数类型或浮点类型(REAL TYPE FLOATING TYPE)(3) 位类型(BIT TYPE)(4) 位矢量类型(BIT_VECTOR TYPE)(5) 布尔类型(BOOLEAN TYPE)(6) 字符类型(CHARACTER TYPE)(7) 时间类型或物理类型(TIME TYPE PHYSICAL TYPE)(8) 错误类型(NOTE,WARNIING,ERROR,FAILURE TYPE)(9) 自然数、整数类型(NATURAL TYPE)(10) 字符串类型(TRING TYPE)3 简述VHDL语言操作符的优先级。答: 在表2.1中,取反和取绝对值优先级较高,与、或逻辑运算的优先级低于算术运算的优先级。4 哪3种方法可用来进行类型转换?答:进行不同类型的数据变换,有3种方法:类型标记法、函数转换法和常数转换法。1 什么叫进程?简述进程的工作方式。答:进程(process)是由外部信号触发执行的一段程序。进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。在进程内部是顺序执行的。Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。这些信号无论哪一个发生变化都将启动Process进程。一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。周而复始,循环往复,以至无穷。这就是进程的执行过程。2 什么叫模块?区分模块与进程。答:模块(Block)语句是结构体中积木化设计语言,适用于复杂项目设计。Block块是一个独立的子结构,可以包含PORT语句、GENERIC语句,允许设计者通过这两个语句将Block块内的信号变化传递给Block块的外部信号。同样,也可以将Block块的外部信号变化传递给Block块的内部信号。对VHDL语言中的Block模块进行仿真时,Block模块中所描述的各个语句是可以并发执行的,和模块中的语句书写顺序无关。进程语句是一段程序,这段程序是顺序执行的。3 用结构描述法和GENERATE语句设计一个8位移位寄存器。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shift_register ISPORT(a,clk: IN STD_LOGIC; b: OUT STD_LOGIC);END ENTITY shift_regester; ARCHITECTURE eight_BIT_shift_register OF shift_register ISCOMPONENT dff - dff元件调用 PORT(a,Clk: IN STD_LOGIC; b: OUT STD_LOGIC); END COMPONENT; SIGNAL X: STD_LOGIC_VECTOR(0 TO 4);BEGIN X(0) <= a; dff1:dff PORT MAP (X(0),clk,Z(1); dff2:dff PORT MAP (X(1),clk,Z(2);dff3:dff PORT MAP (X(2),clk,Z(3); dff4:dff PORT MAP (X(3),CLK,Z(4);dff5:dff PORT MAP (X(4),CLK,Z(5);dff6:dff PORT MAP (X(5),CLK,Z(6);dff7:dff PORT MAP (X(6),CLK,Z(7);dff4:dff PORT MAP (X(7),CLK,Z(8); B<=X(8);END ARCHITECTURE eight_bit_shift_register;1 设计一个加法器, 答:半加器及全加器VHDL程序设计(1)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS PORT (a,b,cin:IN STD_LOGIC; Sum,co:OUT STD_LOGIC);END full_adder;ARCHITECTURE full1 OF full_adder ISCOMPONENT half_adder PORT (a,b:IN STD_LOGIC; S,co:OUT STD_LOGIC);END COMPONENT;SIGNAL u0_co,u0_s,u1_co:STD_LOGIC;BEGIN U0:half_adder PORT MAP (a,b,u0_s,u0_co); U1:half_adder PORT MAP (u0_s,cin,sum,u1_co); Co <= u0_co OR u1_co;END full1;半加器及全加器VHDL程序设计(2)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS PORT (a,b:IN STD_LOGIC; S,co:OUT STD_LOGIC);END half_adder;ARCHITECTURE half1 OF half_adder ISSIGNAL c,d:STD_LOGIC;BEGIN C <= a OR b; D <= a NAND b; Co <= NOT d; S <= c AND d;END half1;2 简述层次化设计的过程。答:层次化设计是指对于一个大型设计任务,将目标层层分解,在各个层次上分别设计的方法。有些设计,在一些模块的基础上,通过搭建积木的方法进行设计。有人称,在整个设计任务上进行行为描述的设计方法,称为高层次设计,而从事某一模块、某一元件行为设计称为底层设计方法。3 什么是库,程序包,子程序,过程调用,函数调用?答:库(libraries)和程序包(package)用来描述和保存元件、类型说明、函数、模块等,以便在其他设计中可随时引用它们。库(libraries)是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。设计库中的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体)可以用作其他VHDL描述的资源。函数和过程统称为子程序。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数能返回一个变量。若子程序调用是一个过程,就称为过程调用;若子程序调用是一个函数,则称为函数调用。过程调用和函数调用都是子程序调用。函数的参数都是输入参数。过程的参数有输入、输出和双向参数。函数有顺序函数、并行函数。过程有顺序过程、并行过程。1 CLK信号怎样用VHDL语言描述?答:时钟信号的上升沿的描述:if clkevent and clk = 1 then ;时钟信号的下降沿的描述: if clk event and clk = 1 then ;2 异步复位怎样用VHDL语言描述?答:当复位信号低电平有效时,VHDL的描述为:if reset = 0 then ;当复位信号高电平有效时, VHDL的描述为:if reset =1 then ;3 设计一个8位循环移位寄存器。答: 8位循环计寄存器的VHDL参考程序设计如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY circleshift8 IS PORT (seldata:in std_logic_vector(2 downto 0); clr,clk: IN STD_LOGIC; sel: OUT STD_LOGIC_vector(7 downto 0);END circleshift8;ARCHITECTURE sample OF circleshift8 ISbeginprocess(clk,clr) Beginif (clr='1')then sel<="00000000" elsif clk'event and clk='1' then case seldata iswhen "001"=>sel<="00000001"when "010"=>sel<="00000010"when "011"=>sel<="00000100"when "100"=>sel<="00001000"when "101"=>sel<="00010000"when "110"=>sel<="00100000"when "111"=>sel<="01000000"when others => sel<="00000000"end case; end if; end process;end sample;4. 设计一个六十进制计数器。答: 60进制计数器的VHDL参考程序设计如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;-* Entity counter60 is port( cp:in std_logic; bin:out std_logic_vector(6 downto 0); s:in std_logic; clr:in std_logic; ec:in std_logic; cy60:out std_logic ); End counter60;-*Architecture b of counter60 is signal q:std_logic_vector(6 downto 0); signal rst,dly:std_logic;begin process(rst,cp) begin if rst='1' then q<="0000000" - cy(60)<='0' elsif cp'event and cp='1' then dly<=q(5); if ec='1'then if q=59 then q<="0000000" else q<=q+1; end if; else q<=q; end if; end if; end process; cy60<= not q(5) and dly; rst<= clr; bin<=q when s='1' else "1111111"End b;5. 设计一个八位编码器。答: 八位编码器的VHDL参考程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY priotyencoder IS PORT (d : IN Std_Logic_Vector (7 Downto 0); E1: IN Std_Logic; GS,E0: OUT BIT STD_LOGIC; Q : OUT Std_Logic_Vector(2 Downto 0);END priotyencoder;ARCHITECTURE encoder OF prioty encoder ISBEGIN P1: PROCESS ( d )BEGIN IF ( d(0) = 0 AND E1 = 0 ) THEN Y <= 111; GS <= 0 ; E0 <= 1 ; ELSIF (d(1) = 0 AND E1 = 0 ) THEN Q <= 110; GS <= 0 ; E0 <= 1 ; ELSIF (d(2) = 0 AND E1 = 0 ) THEN Q <= 101 ; GS <= 0 ; E0 <= 1 ; ELSIF (d(3) = 0 AND E1= 0 ) THEN Q <= 100 ; GS <= 0 ; E0 <= 1 ; ELSIF (d(4) = 0 AND E1= 0 ) THEN Q <= 011 ; GS <= 0 ; E0 <= 1 ; ELSIF (d(5) = 0 AND E1= 0 ) THEN Q <= 010 ; GS <= 0 ; E0 <= 1 ; ELSIF (d(6) = 0 AND E1 = 0 ) THEN Q <= 001 ; GS<= 0 ; E0<= 1 ; ELSIF (d(7) = 0 AND E1 = 0 ) THEN Q <= 000 ; GS <= 0 ;E0 <= 1 ; ELSIF (E1 = 1 ) THEN Q <= 111 ; GS <= 1 ; E0 <= 1 ; ELSIF (d = 1111 1111 AND E1 = 0 ) THEN Q <= 111 ; GS <= 1 ; E0 <= 0 ; END IF; END PROCESS P1; END encoder;6. 设计一个三八译码器。答: 三八译码器的VHDL参考程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder3_8 IS PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC; Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END decoder3_8;ARCHITECTURE rtl OF decoder3_8 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGIN Indata <= c & b & a; PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = 1 AND g2a = 0 AND g2b = 0 ) THEN CASE indata IS WHEN 000 => y <= 11111110 ; WHEN 001 => y <= 11111101 ; WHEN 010 => y <= 11111011 ; WHEN 011 => y <= 11110111 ; WHEN 100 => y <= 11101111 ; WHEN 101 => y <= 11011111 ; WHEN 110 => y <= 10111111 ; WHEN 111 => y <= 01111111 ; WHEN OTHERS=> y <= XXXXXXXX ; END CASE; ELSE Y <= 11111111 ; END IF; END PROCESS;END rtl;五、改正以下程序中的错误,简要说明原因,并指出可综合成什么电路。1. library ieee;use ieee.std_logic_1164.all;entity d_flip_flop is port(d, clk: in std_logic;q: out std_logic);end d_flip_flop;architecture rtl of d_flip_flop isbegin if clkevent and clk=1 then q<=d; end if;end rtl;2. library ieee;use ieee.std_logic_1164.all;entity d_latch is port(d, ena: in std_logic;q: out std_logic);end d_latch;architecture rtl of d_latch isbegin if ena = 1 then q<=d; end if;end rtl; 3library ieee;use ieee.std_logic_1164.all;entity test is port(d, clk: in std_logic;q: out std_logic);end test;architecture rtl of test isbegin process(clk) begin wait until clkevent and clk=1 q<=d; end process;end rtl;4library ieee;use ieee.std_logic_1164.all;entity test is port(d1, d2: in std_logic;sel: in std_logic;q: out std_logic);end test;architecture rtl of test isbegin process(d1, d2, sel) begin case sel is when 0 => q <= d1; when 1 => q <= d2; end case; end process;end rtl;5.library ieee;use ieee.std_logic_1164.all;entity test is port(d1, d2: in std_logic;sel: in std_logic;q: out std_logic);end test;architecture rtl of test isbegin process(d1, d2, sel) begin q<=d1 when sel = 0 else d2; end process;end rtl;6.library ieee;use ieee.std_logic_1164.all;entity test is port(clk: in std_logic;count: buffer std_logic_vector(3 downto 0);end test;architecture rtl of test isbegin process(clk) begin if clkevent and clk=1 then count<=count+1; end if; end process;end rtl; 六、用VHDL设计电路: 1.设计一个2输入与门2.设计一个四选一选择器。3.设计一个3-8译码器。4.设计一个8位的串入串出移位寄存器。5.设计一个具有置数功能、使能端、清除端的13进制计数器四 判断改错题(3分×6题)(评分标准:给出正确答案1分/题;答案基本正确0.5分/题。) 1 已知A和Q均为BIT类型的信号,请判断下面的程序片断: ARCHITECTURE test OF test IS BEGIN CASE A IS WHEN '0' => Q <= '1' ; WHEN '1' => Q <= '0' ; END CASE ; END test ; 【参考答案】: CASE语句应该存在于进程PROCESS内。2 已知start为STD_LOGIC类型的信号,sum是INTEGER类型的信号,请判断下面的程序片断: PROCESS (start) BEGIN FOR i IN 1 TO 9 LOOP sum := sum + i ; END LOOP ; END PROCESS ; 【参考答案】: sum是信号,其赋值符号应该由“:=”改为“<=”。3 已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片断: ARCHITECTURE test OF test IS BEGIN SIGNAL B :STD_LOGIC ; Q <= B ; END test ; 【参考答案】: 信号SIGNAL的申明语句应该放在BEGIN语句之前。4 已知A和B均为STD_LOGIC类型的信号,请判断下面的语句: A <= '0' ; B <= 'x' ; 【参考答案】: 不定态符号应该由小写的x改为大写的X。5 已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,请判断下面的程序片断: ARCHITECTURE test OF test IS BEGIN B <= A ; END test ; 【参考答案】: A和B的数据类型不一致,不能相互赋值。6 已知sel是STD_LOGIC_VECTOR(1 DOWNTO 0)类型信号,而a、b、c、d、q均为STD_LOGIC类型信号,请判断下面给出的CASE语句: CASE sel IS WHEN “00” => q <= a ; WHEN “01” => q <= b ; WHEN “10” => q <= c ; WHEN “11” => q <= d ; END CASE ; 【参考答案】: CASE语句缺“WHEN OTHERS”语句。 简述Top-Down设计方法及其基本步骤。【参考答案】: 所谓Top-Down的设计过程是指从系统硬件的高层次抽象描述向最底层物理描述的一系列转换过程。具体讲这一过程由功能级、行为级描述开始;寄存器传输(RTL)级描述为第一个中间结果;再将RTL级描述由逻辑综合得到网表(Net-list)或电路图;由网表即可自动生成现场可编程门阵列(FPGA)/复杂可编程逻辑器件(CPLD)或专用集成电路(ASIC),从而得到电路与系统的物理实现。3 请从申明格式、赋值符号、赋值生效时间、作用范围等方面对信号和变量进行比较分析。【参考答案】: 申明时关键字不一样,变量为:VARIABLE;信号为:SIGNAL。但申明时赋初值均用“:”符号。赋值符号不同:信号赋值用“”;变量赋值用“:”。赋值生效时间:信号赋值延时后生效;变量赋值立即生效。声明引用范围:信号在构造体内(进程外)申明,整个构造体内有效;变量主要在进程内申明,只在进程内有效。2 VHDL程序主要有三种描述方式:行为描述方式、RTL描述方式、结构描述方式。3 VHDL程序中数值的载体称为对象。VHDL中有四种对象,分别是:常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)、文件(FILE)。20、在VHDL中,(D )的数据传输是立即发生的,不存在任何延时的行为。 A、信号; B、常量; C、数据; D、变量21、在VHDL中,(A )的数据传输是不是立即发生的,目标信号的赋值需要一定的延时时间。 A、信号; B、常量; C、数据; D、变量22、在VHDL中,为目标变量赋值的符号是(C )。 A、=: ; B、= ; C、:= ; D、<=23、在VHDL中,为目标信号赋值的符号是(D )。 A、=: ; B、= ; C、:= ; D、<=24、在VHDL中,定义信号名时,可以用( C)符号为信号赋初值。 A、=: ; B、= ; C、:= ; D、<=设计一数据选择器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; - 选择信号输入 Ain, Bin : in std_logic_vector; - 数据输入 Cout : out std_logic_vector(1 downto 0) ); - 数据输出End mymux;EDA技术与项目训练选择题1. 一个项目的输入输出端口是定义在 A 。 A. 实体中 B. 结构体中 C. 任何位置 D. 进程体 2. 描述项目具有逻辑功能的是 B 。 A. 实体 B. 结构体 C. 配置 D. 进程 3. 关键字ARCHITECTURE定义的是 A 。A. 结构体 B. 进程 C. 实体 D. 配置 4. MAXPLUSII中编译VHDL源程序时要求 C 。A.文件名和实体可不同名 B.文件名和实体名无关 C. 文件名和实体名要相同 D. 不确定 5. 1987标准的VHDL语言对大小写是 D 。 A. 敏感的 B. 只能用小写 C. 只能用大写 D. 不敏感 6. 关于1987标准的VHDL语言中,标识符描述正确的是 A 。 A. 必须以英文字母开头 B.可以使用汉字开头 C.可以使用数字开头 D.任何字符都可以 7. 关于1987标准的VHDL语言中,标识符描述正确的是 B 。 A. 下划线可以连用 B. 下划线不能连用 C. 不能使用下划线 D. 可以使用任何字符 8. 符合1987VHDL标准的标识符是 A 。 A. A_2 B. A+2 C. 2A D. 229. 符合1987VHDL标准的标识符是 A 。 A. a_2_3 B. a_2 C. 2_2_a D. 2a 10. 不符合1987VHDL标准的标识符是 C 。 A. a_1_in B. a_in_2 C. 2_a D. asd_1 11. 不符合1987VHDL标准的标识符是 D 。 A. a2b2 B. a1b1 C. ad12 D. %50 12. VHDL语言中变量定义的位置是 D 。 A. 实体中中任何位置 B. 实体中特定位置 C. 结构体中任何位置 D. 结构体中特定位置 13. VHDL语言中信号定义的位置是 D 。 A. 实体中任何位置 B. 实体中特定位置 C. 结构体中任何位置D. 结构体中特定位置14. 变量是局部量可以写在 B 。 A. 实体中 B. 进程中 C. 线粒体 D. 种子体中 15. 变量和信号的描述正确的是 A 。 A. 变量赋值号是:= B. 信号赋值号是:= C. 变量赋值号是<= D. 二者没有区别 16. 变量和信号的描述正确的是 B 。 A. 变量可以带出进程 B. 信号可以带出进程 C. 信号不能带出进程 D. 二者没有区别17. 关于VHDL数据类型,正确的是 D 。 A. 数据类型不同不能进行运算 B. 数据类型相同才能进行运算 C. 数据类型相同或相符就可以运算 D. 运算与数据类型无关 18. 下面数据中属于实数的是 A 。 A. 4.2 B. 3 C. 1 D. “11011” 19. 下面数据中属于位矢量的是 D 。A. 4.2 B. 3 C. 1 D. “11011” 20. 关于VHDL数据类型,正确的是 。 A. 用户不能定义子类型 B. 用户可以定义子类型 C. 用户可以定义任何类型的数据 D. 前面三个答案都是错误的 21. 可以不必声明而直接引用的数据类型是 C 。 A. STD_LOGIC B. STD_LOGIC_VECTOR C. BIT D. 前面三个答案都是错误的 22. STD_LOGIG_1164中定义的高阻是字符 D 。 A. X B. x C. z D. Z 23. STD_LOGIG_1164中字符H定义的是 A 。 A. 弱信号1 B. 弱信号0 C. 没有这个定义 D. 初始值 24. 使用STD_LOGIG_1164使用的数据类型时 B 。 A.可以直接调用 B.必须在库和包集合中声明 C.必须在实体中声明 D. 必须在结构体中声明 25. 关于转化函数正确的说法是 。 A. 任何数据类型都可以通过转化函数相互转化 B. 只有特定类型的数据类型可以转化 C. 任何数据类型都不能转化 D. 前面说法都是错误的 26. VHDL运算符优先级的说法正确的是 C 。 A. 逻辑运算的优先级最高 B. 关系运算的优先级最高 C. 逻辑运算的优先级最低 D. 关系运算的优先级最低 27. VHDL运算符优先级的说法正确的是 A 。 A. NOT的优先级最高 B. AND和NOT属于同一个优先级 C. NOT的优先级最低 D. 前面的说法都是错误的 28. VHDL运算符优先级的说法正确的是 D 。 A. 括号不能改变优先级 B. 不能使用括号 C. 括号的优先级最低 D. 括号可以改变优先级 29. 如果a=1,b=0,则逻辑表达式(a AND b) OR( NOT b AND a)的值是 B 。 A. 0 B. 1 C. 2 D. 不确定 30. 关于关系运算符的说法正确的是 。 A. 不能进行关系运算 B. 关系运算和数据类型无关 C. 关系运算数据类型要相同 D. 前面的说法都错误 31. 转换函数TO_BITVECTOR(A)的功能是 。 A. 将STDLOGIC_VECTOR转换为BIT_VECTOR B. 将REAL转换为BIT_VECTOR C. 将TIME转换为BIT_VECTOR D. 前面的说法都错误 32. VHDL中顺序语句放置位置说法正确的是 。 A.可以放在进程语句中 B. 可以放在子程序中 C. 不能放在任意位置 D. 前面的说法都正确 33. 不属于顺序语句的是 B 。 A. IF语句 B. LOOP语句 C. PROCESS语句 D. CASE语句 34. 正确给变量X赋值的语句是 B 。 A. X<=A+B; B. X:=A+b; C. X=A+B; D. 前面的都不正确 35. EDA的中文含义是 A 。 A. 电子设计自动化 B. 计算机辅助计算 C. 计算机辅助教学 D. 计算机辅助制造 36. 可编程逻辑器件的英文简称是 。 A. FPGA B. PLA C. PAL D. PLD 37. 现场可编程门阵列的英文简称是 。 A. FPGA B. PLA C. PAL D. PLD 38. 基于下面技术的PLD器件中允许编程次数最多的是 。 A. FLASH B. EEROM C. SRAM D. PROM 39. 在EDA中,ISP的中文含义是 。 A. 网络供应商 B. 在系统编程 C. 没有特定意义 D. 使用编程器烧写PLD芯片 40. 在EDA中,IP的中文含义是 。 A. 网络供应商 B. 在系统编程 C. 没有特定意义 D. 知识产权核41. EPF10K20TC144-4具有多少个管脚 A 。 A. 144个 B. 84个 C. 15个 D. 不确定 42. EPF10K20TC144-X器件,如果X的值越小表示 。 A. 器件的工作频率越小 B. 器件的管脚越少 C. 器件的延时越小 D. 器件的功耗越小 43. 如果a=1,b=1,则逻辑表达式(a XOR b) OR( NOT b AND a)的值是 A 。 A. 0 B. 1 C. 2 D. 不确定 44. 执行下列语句后Q的值等于 B 。SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);E<=(2=>1, 4=>0, OTHERS=>1);Q<=(2=>E (2), 4=>E (3), 5=>1, 7=>E (5), OTHERS=>E (4);A “11011011” B. “00101101” C. “11011001” D. “00101100” 45. VHDL文本编辑中编译时出现如下的报错信息Error: VHDL syntax error: signal declaration must have ;,but found begin instead. 其错误原因是 A 。A. 信号声明缺少分号。B. 错将设计文件存入了根目录,并将其设定成工程。C. 设计文件的文件名与实体名不一致。 D. 程序中缺少关键词。46. VHDL文本编辑中编译时出现如下的报错信息Error: VHDL syntax error: choice value length must match selector expression value length 其错误原因是 A 。A. 表达式宽度不匹配。 B. 错将设计文件存入了根目录,并将其设定成工程。C. 设计文件的文件名与实体名不一致。 D. 程序中缺少关键词。47. MAX+PLUSII的设计文件不能直接保存在 B 。 A 硬盘 B. 根目录 C. 文件夹 D. 工程目录 48. MAXPLUSII是哪个公司的软件 A 。 A. ALTERA B. ATMEL C. LATTICE D. XILINX 49. MAXPLUSII不支持的输入方式是 D 。 A. 文本输入 B. 原理图输入 C. 波形输入 D. 矢量输入 50. MAXPLUSII中原理图的后缀是 B 。 A. DOC B. GDF C. BMP D. JIF 51. 在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。 D 。 A.idata <= “00001111”; B.idata <= b”0000_1111”;C.idata <= X”AB” D. idata <= B”21”;52. 在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clkevent and clk = 1 then B.if falling_edge(clk) thenC.if clkevent and clk = 0 then D.if clkstable and not clk = 1 then53. 下面对利用原理图输入设计方法进行数字电路系统设计的描述中,那一种说法是不正确的。
展开阅读全文