3套练习题答案版last

上传人:女**** 文档编号:243798152 上传时间:2024-09-30 格式:PPT 页数:31 大小:451.50KB
返回 下载 相关 举报
3套练习题答案版last_第1页
第1页 / 共31页
3套练习题答案版last_第2页
第2页 / 共31页
3套练习题答案版last_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,练习题,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,合法的标识符。,A,4h_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,、可以进行在系统编程的器件是(,),A,EPROM B. PAL C. GAL,D. CPLD,18,、,VHDL,语言程序结构中必不可少的部分是(,),A,库,B.,程序包,C.,配置,D.,实体和结构体,19,、能反馈输出信号至内部的端口模式是(,),A,INB. OUT,C. BUFFER,D. INOUT,20,、,VHDL,语言优先级最高的运算符是(,),A,ANDB. OR,C. NOT,D. XOR,21,、,a,已定义为信号,,b,已定义为变量,下面正确的表达是(,),A,a:=b,B. a=b,C. b:=aD. b=a,22,、,signal a, b:bit; signal y: bit_vector (1 downto 0);,下面正确的表达式是,( ),A,y=aB. y=bC. y=b and a,D. y”,不是操作符,它只相当于,( ),的作用。,A,IF,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 if din = d(7) then q = 1; else q if din = d(6) then q = 2; else q if din = d(5) then q = 3; else q if din = d(4) then q = 4; else q if din = d(3) then q = 5; else q if din = d(2) then q = 6; else q if din = d(1) then q = 7; else q if din = d(0) then q = 8; else q q = 0; - -26,end case;-27,end if;-28,end process;-29,process (q)-30,begin-31,if q = 8 thenab = 1010;-32,elseab = 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 clkevent 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 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,JKQ_TEMPQ_TEMPQ_TEMPQ_TEMPQ_TEMP=X;,END CASE;,END IF;,Q=Q_TEMP;,QN, =, , =, =, =, /=,。返回类型是,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 CLKEVENT 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,多路选择器,sel,q,00,in0,01,in1,10,in2,11,in3,4,选,1,多路选择器,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY mux4 ISPORT,(,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 ISBEGINmux4_p1,:,PROCESS,(,in0,,,in1,,,in2,,,in3,,,sel,),BEGINIF 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 ISBEGINq q q q q = in3,;,END CASE,;,END PROCESS mux4_p2,;,END behav3,;,ARCHITECTURE behav4 OF mux4 ISBEGINWITH sel SELECTq = 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,程序包中定义了支持文件输入输出操作的许多类型和子程序。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!