




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章的英文全称及其中文含义是什么?,其中文含义是“电子设计自动化”答: EDA是 Electronic Design Automation2 .什么叫EDA技术?简述EDA技术的发展历程。答:EDA技术有狭义和广义之分,狭义EDAa术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真, 直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子
2、系统或专用集成芯片的一门新技术,或称为IES/ASIC 自动设计技术。3 .简述用EDA技术设计电路的设计流程。答 EDA 设计流程包括:设计准备、设计输入、设计处理、设计校验、器件编程、器件测试和设计验证。4 . 什么叫”综合”和”网表文件”?答 : (A) 在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。(1) 从自然语言转换到VHDL 语言算法表示, 即 自然语言综合。(2) 从算法表示转换到寄存器传输级 (RegisterTransport Level ,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL
3、级表示转换到逻 辑门(包括触发器 ) 的表示, 即逻辑综合。(4) 从逻辑门表示转换到版图表示(ASIC 设计 ) , 或转换到FPGA的配置网表文件,可称为版图综合或结构综合。综合在电子设计自动化中处于核心地位。(B) 网表文件是描述电路的连接关系的文件,一般以文本文件的形式存在。英文为netlist file 格式有 cdl, spice, aucdl.等5 .从使用的角度来讲,EDA技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?答:EDA技术的学习主要应掌握 4个方面的内容: 大规模可编程逻辑器件; 硬件描述 语言; 软件开发工具; 实验开发系统。6 .目前
4、流行的主流厂家的EDA的软件工具有哪些?比较这些EDA软件的差异。答:(1)目前比较流行的主流厂家的EDA的软件工具有 Altera的MAX+plusII、Quartus II 、Lattice 的 ispEXPERT、 Xilinx 的 Foundation Series 。(2) Max+plus II 是A1tera公司推出的一个使用非常广泛的EDA软件工具,它支持原理图、VHDLL Verilog语言的文本文件,以及波形图与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。它具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。在适配之后,Max+plus
5、II生成供时序仿真用的Edif、VHDL和Verilog3 种不同格式的网表文件。Max+plus II 界面友好,使用便捷,被誉为业界最易学易用的EDA软件,并支持主流的第三方EDAX具,支持除APEx20K系歹U之外的所有 A1tera公司的FPGA/CPLD大规模逻辑器件。Quartus II是A1tera公司新近推出的 EDAtU牛工具,其设计工具完全支持 VHDLF口 Verilog 的设计流程,其内部嵌有VHDL、 Verilog 逻辑综合器。第三方的综合工具,如LeonardoSpectrum 、 Synplify pro 和 FPGA Compiler II 有着更好的综合效果
6、,Quartus II 可以直接调用这些第三方工具,因此通常建议使用这些工具来完成VHDL/Verilog 源程序的综合。同样,Quartus II 具备仿真功能,也支持第三方的仿真工具,如Modelsim 。此外, Quartus II为Altera DSP开发包进行系统模型设计提供了集成综合环境,它与MATLAB DSP Builder结合可以进行基于 FPGA勺DSP系统开发,是DSP硬件系统实现的关键 EDAX具。Quartus II 还可与SOPC Builder结合,实现 SOPC(统开发。ispExPERT是Lattice 公司的主要集成环境。通过它可以进行 VHDL Veril
7、og 及ABEL语言 的设计输入、综合、适配、仿真和在系统下载。ispExPERT是目前流行的EDA次件中最容易掌握的设计工具之一,它界面友好、操作方便、功能强大,并与第三方EDA工具兼容良好。Foundation Series是Xilinx 公司较成熟的集成开发EDAX具。它采用自动化的、完整的集成设计环境。Foundation 项目管理器集成Xilinx 实现工具,并包含了强大的书馆SynopsysFPGA Express综合系统,是业界最强大的EDA设计工具之一。7.简要阐述EDA技术的发展趋势和应用领域答:从目前的EDAa术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软
8、件功能强大。EDA的范畴包括:机械、电子、通信、航空航天、化工、矿产、生物、医学、 军事等各个领域,都有 EDA的应用。第二章VHDL硬件描述语言1、简述实体(ENTITY)、结构体(ARCHITECTUREE与原理图的关系。答:结构来说实体就是原理图的外观,结构体中的具体程序就是原理图中的具体实现。2、子程序调用与元件例化有何区别,函数与过程在具体使用上有何不同。答:从硬件角度讲,一个子程序的调用类似于一个元件模块的例化,VHDL综合器为子程序的每一次调用都生成一个电路逻辑块。所不同的是,元件的例化将产生一个新的设计层次,而子程序调用只对应于当前层次的一部分。函数和过程的不同在于:函数只有一
9、个输出,只能通过函数体内的 RETURNS句来实现,函数体内不能有信号赋值语句;而过程却可以有不止一个输出,而且是通过过程体内的信号赋值语句或者变量赋值语句来实现的,过程体内的RETURNS句没有用处,因此不少过程都将其省略了。函数的调用只能通过表达式来实现,过程的调用则是通过过程调用语句来实现的。3、什么是重载函数?重载算符有何用处?如何调用重载算符函数。答: ( 1 )什么是重载函数? 根据操作对象变换处理功能。( 2) 重载算符有何用处? 用于两个不同类型的操作数据自动转换成同种数据类型,并进行运算处理。( 3)如何调用重载算符函数?采用隐式方式调用,无需事先声明。4、在VHDL程序中配
10、置有何用处?答: 配置可以把特定的结构体关联到一个确定的实体,正如配置一词本身的含义一样。配置语句就是用来为较大的系统设计提供管理和工程组织的。配置也是VHDL 设计实体中的一个基本单元,在综合或仿真中,可以利用配置语句为确定整个设计提供许多有用信息。总之用于设置VHDL的工作参数以及工作模式。配置用来选择实体的多个结构体的哪一个被使用。5. 嵌套 BLOCK 的可视性规则是什么?以嵌套BLOCK 的语句方式设计三个并列的3 输入或门。答:BLOC愿VHD中具有的一种划分机制,这种机制允许设计者合理地将一个模块分为数个区域,在每个块都能对其局部信号、数据类型和常量加以描述和定义。任何能在结构体
11、的说明部分进行说明的对象都能在BLOCK说明部分中进行说明。相关参考代码:LIBRARY IEEE;USE triple_input ISPORT (A :IN STD_LOGIC;B :IN STD_LOGIC;C :IN STD_LOGIC;OUTA :OUT STD_LOGIC);END triple_input;ARCHITECTURE ADO OF triple_input ISBEGINOUTA<= A AND B AND C;END ADO;6. 简述函数与过程的异同点,过程与进程的异同点。答:子程序有两种类型,即过程( PROCEDURE)函数(FUNCTION)函数和过
12、程都是串行的。它们的区别在于:过程的调用可以通过其界面获得多个返回值,而函数只能返回一个值;在函数入口中,所有参数都是输入参数,而过程有输入参数、输出参数和双向参数;过程一般被看作一种语句结构,而函数通常是表达式的一部分;过程可以单独存在,而函数通常作为语句的一部分调用。过程和进程的相同点:只能使用顺序语句,可以单独存在。不同点:过程不能像进程那样可以从本结构体的其他块或进程结构中直接读取信号值或者信号赋值。7. 判断下列VHDL 标识符是否合法,如果不合法则指出原因:16#0FA#, 10#12F#, 8#789#,8#356#, 2#0101010#, 74HC245, CLR/RESET
13、,D100%。答:识符用法规定:( 1)只能包含英文字母,数字,下划线(2)标识符的首字符只能是字母。故:(1) 16#0FA擀昔在首字符是数字,且包含非法字符" # "。10#12F#、8#789#, 8#356# ,2#0101010#, 74HC245也是犯同一错误。(2) 74HC574,CLR/RESET,IN4/SCLK,D100% 都是非法,包含非法字符.8、讨论数据对象信号与变量间的异同处,说明它们的使用对所形成的硬件结构有何影响。答:在VHDL中,对象是指用来保持数据的一些客体单元。信号跟变量是 VHDL中的重要客体。信号是指在设计实体中数据交换的一种手段
14、,采用信号对象可以把设计实体连接在一起形成模块。 在硬件电路中代表一条硬件连线,有时信号会被综合成一个寄存器。变量主要是对暂时数据进行局部存储,它是一个局部量。信号与变量在使用前都必需先声明后使用,否则会产生编译错误。信号可以architecture 、 package、 entitiy 中声明,是全局量可以在全局使用。变量可以process 、 function 、 procedure 中声明,也只能在process 、 function 、procedur中使用不是全局变量。他们之间而主要区别有:信号赋值至少要有8延时;而变量赋值没有。信号除当前值外有许多相关的信息,如历史信息和投影波形;
15、而变量只有当前值。 进程对信号敏感而不对变量敏感。信号可以是多个进程的全局信号;而变量只在定义他们的顺序域可见(共享变量除外)。信号是硬件中连线的抽象描述,他们的功能是保存变化的数据值和连接子元件,信号在元件的端口连接元件。变量在硬件中没有类似的对应关系,他们用于硬件特性的高层次建模所需要的计算中。从综合后所对应的硬件电路结构来看,信号一般将对应更多的硬件结构,但在许多情况下, 信号和变量并没有什么区别。例如在满足一定条件的进程中,综合后它们都能引入寄存器。这时它们都具有能够接受赋值这一重要的共性,而VHD夕合器并不理会它们在接受赋值时存在的延时特性。9. 运算符重载函数通常要调用转换函数,以
16、便能够利用已有的数据类型。下面给出一个新的数据类型AGE, 并且下面的转换函数已经实现:function CONV_INTEGER(ARG:AGEre)turnINTEGER请仿照本章中的例子,利用此函数编写一个“ +”运算符重载函数,支持下面的运算: SIGNALa, c : AGE ;c <= a + 20答:function “ +” (L : AGE, R: integer) return AGE isBeginreturn CONV_AGE(L + CONV_INTEGER(R);End;10、设计16位比较器,比较器的输入是 2个待比较的16位数:A=A1"A0,
17、B=B15- B0, 输出是D、E、F。当A=B时,D=1 ;当A>B时,E=1 ;当A<B时,F=1 (参考方法:用常 规的比较器设计方法,即直接利用关系操作符进行编程设计,或者利用减法器来完成,通过减法运算后的符号和结果来判别两个被比较值的大小)。答:略library ieee;use use entity compare is port(a:in std_logic_vector(16 downto 0);b: in std_logic_vector(16 downto 0);X,Y,Z: out std_logic);end compare;architecture beh
18、ave of compare is beginprocess(a,b)beginif (a > b) thenX <='1'Y <='0'Z <='0'elsif(a < b) thenX <='0'Y <='1'Z <='0'ELSEX <='0'Y <='0'Z <='1'end if;end process;end behave;11. 在 VHDL 编程中,为什么应尽可能使用子类
19、型对类型的取值范围给予限定。答:由于子类型与其基本数据类型属同一数据类型,因此属于子类型的和属于基本数据类型的数据对象间的赋值和被赋值可以直接进行,不必进行数据类型的转换。利用子类型定义数据对象的好处是,除了使程序提高可读性和易处理外,其实质性的好处还在于有利于提高综合的优化效率,这是因为综合器可以根据子类型所设的约束范围,有效地推知参与综合的寄存器的最合适的数目。12、判断下面3 例 VHDL 程序中是否有错误,若有错误则指出错误原因:程序 1Signal A, EN : std_logic; Process (A, EN) Variable B : std_logic; Begin if
20、EN = 1 then B <= A; end if;end process;程序 2Architecture one of sample is variable a, b, c : integer; begin c <= a + b;end;程序 3 library ieee;use mux21 isport ( a, b : in std_logic;sel : in std_logic;c : out std_logic;);end sam2; architecture one of mux21 isbegin if sel = '0' then c := a
21、;else c := b;end if;end two; 答:程序1:将“B<=A改成"B:=A”程序 2:-将"c<=a+b"改成"c:=a+b”程序3 :将“)”改成“)” 将“sam? 改成“entitymux21' 增加“ process(a,b,sel) begin if sel= '0' then c:=a; else c:=b; end if;- 应改成“ ifsel= 'O' then c<=a; else c<=b; end if;“ 增力口 "end proce
22、ss;" 将 "two" 改成“ architecture one ”13、分别用CASE 语句和 IF 设计 3-8 译码器。答:CASE 句:LIBRARY IEEE;USE decoder38 ISPORT (EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY decoder38;ARCHITECTUR bhv OF decoder38 ISSIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINS<=A2&
23、amp;A1&A0;PROCESS (EN,S)BEGINIF (EN= 1 ) THENCASE S ISWHEN “000” =>Y<=” 00000001”WHEN “001” =>Y<=” 00000010”WHEN “010” =>Y<=” 00000100”WHEN “011” =>Y<=” 00001000”WHEN “100” =>Y<=” 00010000”WHEN “101” =>Y<=” 00100000”WHEN “110” =>Y<=” 01000000”WHEN “111”
24、=>Y<=”;WHEN OTHERS=>NULL;END CASE;END IF;END PROCESS;END ARCHITECTURE bhv;IF 语句:LIBRARY IEEE;USE decoder38 ISPORT (EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY decoder38;ARCHITECTUR bhv OF decoder38 ISBEGINPROCESS (EN,A2,A1,A0)BEGINIF (EN= 1 ) THENIF(A
25、2= 0 ) THENIF(A1=0) THENIF(A0=0 ) THENY<=00000001;ELSEY<=00000010;ELSIF(A1=1 ) THENIF(A0=0 ) THENY<=00000100;ELSEY<=00001000;END IF;END IF;) THEN) THEN0 ) THEN 00010000001000001 ) THEN 0 ) THEN 01000000;ELSIF(A2=1IF(A1=0IF(A0=Y<=ELSEY<=END IF;ELSIF(A1=IF(A0=Y<=ELSEY<=END IF;E
26、ND IF;END IF;END IF;END PROCESS;END ARCHITECTUREbhv;library ieee;use sss isport (a: in std_logic_vector(2 downto 0);cout:out std_logic_vector(7 downto 0);end ;architecture one of sss isbeginprocess(a)beginif a="000" then cout <=""elsif a="001" then cout <="&q
27、uot;elsif a="010" then cout <=""elsif a="011" then cout <=""elsif a="100" then cout <=""elsif a="101" then cout <=""elsif a="110" then cout <=""elsif a="111" then cout <=&q
28、uot;01111111"end if;end process;end;14、若在进程中加入WAIT 语句,应注意哪几个方面的问题。答:应注意以下问题:已列出敏感信号的进程中不能使用任何形式的WAIT语句;一般情况下,只有WAITUNTIL格式的等待语句可以被综合器所接受,其余语句格式只能在VHDL仿真器中使用;在使用WAIT ON句的进程中,敏感信号量应写在进程中的WAIT ON句后面;在不使用WAITON句的进程中,敏感信号量应在开头的关键词PROCESS面的敏感信号表中列出。15、图中的f_adder 是一位全加器,cin 是输入进位,cout 是输出进位。试给出此电路的VHD
29、L苗述。图 习题 15 图答:library ieee;use entity ff isport (x,y,clock:in std_logic;sum:out std_logic);end;architecture one of ff iscomponent f_adder port(a,b,ci:in std_logic; su,co:out std_logic); end component; component df port(d,cl:in std_logic;q1:out std_logic);end component;signal cout,tmp:std_logic; beg
30、inu1:f_adder port map(a=>x,b=>y,ci=>tmp,su=>sum,co=>cout);u2:df port map(d=>cout,cl=>clock,q1=>tmp); end architecture one;- - 底层文件1: D 触发器library ieee;use entity df isport (d,cl:in std_logic;q1:out std_logic);end;architecture two of df is signal qq:std_logic; begin process(cl
31、,qq) begin if cl 'event and cl='1' then qq<=d;end if;end process;q1<=qq;end architecture two;- - 底层文件2:全加器library ieee;use entity f_adder isport (a,b,ci:in std_logic;su,co:out std_logic);end;architecture three of f_adder iscomponent h_adderport(a1,b1:in std_logic;so,cou:out std_log
32、ic);end component;component or2aport(a1,b1:in std_logic;c:out std_logic);end component;signal d,e,f:std_logic;beginu1:h_adder port map(a1=>a,b1=>b,cou=>d,so=>e);u2:h_adder port map(a1=>e,b1=>ci,cou=>f,so=>su);u3:or2a port map(a1=>d,b1=>f,c=>co);end architecture three
33、;- - 底层文件2-1 :半加器library ieee;use entity h_adder isport (a1,b1:in std_logic;so,cou:out std_logic);end;architecture four of h_adder isbeginso<=not(a1 xor(not b1);cou<=a1 and b1;end architecture four;- - 底层文件2-2:或门library ieee;use entity or2a isport (a1,b1:in std_logic;c:out std_logic);end;archi
34、tecture five of or2a isbeginc<=a1 or b1;end architecture five;16. 设计 5 位可变模数计数器。设计要求:令输入信号M1 和 M0 控制计数模,即令(M1,M0)=(0, 0)时为模 19 加法计数器,(M1, M0)=(0, 1)时为模 4计数器,(M1, M0) =(1 , 0) 为模 10 加法计数器,(M1, M0)=(1 , 1)时为模 6 计数器。答: Entity mod_cal isPort(M1,M0:in bit;Count:out std_logic_vector(4 downto 0);Clk:in
35、std_logic);End entity;Architecture behav of mod_cal isSignal count1:std_logic_vector(4 downto 0);BeginProcess(clk,M1,M0)Variable sel is bit_vector(1 downto 0);BeginSel:=M1&M0;If clk event and clk= 1 thenCount1<=Count1+1;Case sel isWhen“ 00” =>if Count1= ” 10011” then Count1<= ” 00000”;E
36、nd if;When“ 01 ” =>if Count1= ” 00100” then Count1<= ” 00000”;End if;When“ 10” =>if Count1= ” 01010” then Count1<= ” 00000”;End if;When“ 11 ” =>if Count1= ” 00110” then Count1<= ” 00000”;End if;End case;End if;End process;Count<=count1;End behav;17. 什么是 VHDL 结构体的行为描述风格,叙述行为描述的优缺
37、点。答: 如果 VHDL 的结构体只描述了所希望电路的功能或者说电路行为,而没有直接指明或涉及实现这些行为的硬件结构,包括硬件特性、连线方式、逻辑行为方式,则称为行为风格的描述或行为描述。优点:抽象程度最高,最能体现VHDL苗述高层次结构和系统的能力。缺点:只表示输入与输出间转换的行为,它不包含任何结构信息。18结构化描述与调用子程序有何异同点, 描述需要哪些语句?VHDL程序中是如何进行结构化描述的?结构化答:略19 .试举一例,在一个结构体中同时含有3种不同描述风格的 VHDL语句结构。答:略20 . 以数据流的方式设计一个2 位比较器,再以结构描述方式将已设计好的比较器连接起来构成一个8
38、 位比较器答:略21 .采用VHDLLS行数字系统设at有哪些特点?答:HDL系统设计的基本点:(1)与其他硬件描述语言相比,VHDLM有以下特点:( 2)功能强大、设计灵活。( 3)强大的系统硬件描述能力。( 4)易于共享和复用。22 . VHDL 的基本程序结构由几部分组成?各部分的功能是什么?答:由 5 个部分组成,包含实体、结构体、配置、程序包和库。实体作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述。结构体(ARCHITECTURE)是设计实体的一个重要部分,结构体将具体实现一个实体。在利用VHDL 进行工程设计中,为了提高设计效率以及使设计遵循某些统一的语言
39、标准或数据格式,有必要将一些有用的信息汇集在一个或几个库中以供调用,这些信息可以是预先定义好的数据类型、子程序等设计单元的集合体(程序包)或预先设计好的各种设计实体(元件库程序包)。因此可以把库看成是一种用来存储预先完成的程序包、数据集合体和元件的仓库。已在设计实体中定义的数据类型、子程序或数据对象对于其它设计实体是不可用的,或者说是不可见的。为了使已定义的常数、数据类型、元件调用说明以及子程序能被更多的VHDL 设计实体方便地访问和共享,可以将它们收集在一个VHDL 程序包中,多个程序包可以并入一个VHDL 库中, 使之适用于更一般的访问和调用范围,这一点对于大系统开发多个或多组开发人员同步
40、并行工作显得尤为重要。配置可以把特定的结构体关联到一个确定的实体,正如配置一词本身的含义一样。配置也是VHDL 设计实体中的一个基本单元,在综合或仿真中,可以利用配置语句为确定整个设计提供许多有用信息。23 .说明端口模式 BUFFER INOUT有何异同点?答:INOUT为输入输出双向端口,即从端口内部看,可以对端口进行赋值,即输出数据。也可以从此端口读入数据,即输入。BUFFE时缓冲端口,功能与INOUT类似,区别在于当需要读入数据时,只允许内部回读内部产生的输出信号,即反馈。举个例子,设计一个计数器的时候可以将输出的计数信号定义为BUFFER这样回读输出信号可以做下一计数值的初始值。24
41、 .用VHD计一个实现三输入的多数表决器。答: library ieee;useentity bjq3 isport(a,b,c:in std_logic;y:out std_logic);end;architecture x of bjq3 issignal ty:std_logic_vector(2 downto 0);beginty<=a&b&c;with ty selecty<='0' when "000",'0' when "001",'0' when "01
42、0",'1' when "011",'0' when "100",'1' when "101",'1' when "110",'1' when "111",'X' when others;end;JK 触发器。25 .用PROCES第句描述带同步复位的答: library ieee;useentity jk_ff isport(clk,reset,j,k:in std_logic;q,qb:
43、out std_logic);end;architecture behave of jk_ff issignal tq,tqb:std_logic;beginq<=tq;qb<=tqb;process(clk,reset)beginif (clk'event and clk='1') thenif (reset='0') thentq<='0'tqb<='1'elsif (j='0')and(k='0') then tq<=tq;tqb<=tqb;elsi
44、f (j='0')and(k='1') then tq<='0'tqb<='1'elsif (j='1')and(k='0') then tq<='1'tqb<='0'elsif (j='1')and(k='1') thentq<=not tq;tqb<=not tqb;end if;end if;end process;end;26 . 用并行信号赋值语句设计8 选 1 数据选择器。答: libra
45、ry ieee;useentity xzq8 isport(x:in std_logic_vector(7 downto 0);sel:in std_logic_vector(2 downto 0);f:out std_logic);end;architecture a of xzq8 isbeginf<=x(0) when sel="000" elsex(1) when sel="001" elsex(2) when sel="010" elsex(3) when sel="011" elsex(4) wh
46、en sel="100" elsex(5) when sel="101" elsex(6) when sel="110" elsex(7) when sel="111" else'X'end;27 .用VHDL设计一个三态输出的双 4选1数据选择器。其地址信号共用,且各有个低电平有效的使能端答:LIBRARY IEEE;USE DUAL_MUX_41 ISPORT(A,B,C,D:IN STD_LOGIC;ENA_N,ENB_N:IN STD_LOGIC;S :IN STD_LOGIC_VECTOR
47、(1 DOWNTO 0);OUTA,OUTB:OUT STD_LOGIC);ENDARCHITECTURE A OF DUAL_MUX_41 ISSIGNAL P,Q:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINP<=ENA_N & S;Q<=ENB_N & S;WITH P SELECTOUTA<=A WHE“N000”,B WHEN ” 001”,C WHE” N 010”,D WHE” N 011”, Z WHEN OTHERS;WITH Q SELECTOUTB<= A WHE” N000”,B WHE”N 001”,C
48、WHE” N 010”,D WHE” N 011”, Z WHEN OTHERS;END A;28 .用VHDL设计实现由两输入端与非门构成的1位全加器。答:略29 .用VHDL设计实现一百进制的计数器。答: LIBRARY IEEE;USE counter ISGENERIC( count_value: INTEGER:=9);PORT (clk,clr,en: IN STD_LOGIC;co: OUT STD_LOGIC;count: OUT INTEGER RANGE 0 TO count_value);END counter;ARCHITECTURE a OF counter ISSI
49、GNAL cnt: INTEGER RANGE 0 TO count_value;BEGINPROCESS (clk, clr)BEGINIF clr = '1' THENcnt <= 0;ELSIF (clk'EVENT AND clk = '1') THENIF en = '1' THENIF cnt = count_value THENcnt <= 0;ELSEcnt <= cnt + 1;END IF;END IF;END IF;END PROCESS;co<= 1 WHEN cnt=count_value
50、 ELSE 0;count <= cnt;END a;library ieee;useuseuseentity counter1 isport( clk,clr,en: in std_logic;co:out std_logic;count1: out integer range 0 to 9;count2: out integer range 0 to 9);end counter1;architecture rtl of counter1 is signal en1: std_logic;component counter isgeneric( count_value: intege
51、r);port (clk,clr,en: in std_logic; co: out std_logic;count: out integer range 0 to count_value);end component;beginaa: counter generic map( count_value => 9)port map(clk,clr,en, en1, count1);bb: counter generic map( count_value=>9)port map(clk=>clk,clr=>clr, en=>en1, co=>co,count=&
52、gt;count2); end rtl;30 .比较CASE句与WITH_SELEC语句,叙述它们的异同点。答:相同点:CASEBg句中各子句的条件不能有重叠,必须包容所有的条件;WITH_SECLECT语句也不允许选择值有重叠现象,也不允许选择值涵盖不全的情况。另外, 两者对子句各选择值的测试都具有同步性,都依赖于敏感信号的变化。不同点:CASE语句只能在进程中使用,至少包含一个条件语句,可以有多个赋值目标; WITH_SECLECT句根据满足的条件,对信号进行赋值,其赋值目标只有一个,且必须是信 号。31、将以下程序段转换为 WHEN_ELSE句:PROCES( Sa,b,c,d )BEG
53、INIF a= '0' AND b='1' THENnext1 <= "1101"ELSIF a='0' THEN next1 <= dELSIF b='1' THEN next1 <= cELSENext1<= "1011"END IF;END PROCES; S答:原程序转换如下:ARCHITECTURE one OF mux ISBEGINPROCESS(a,b,c,d)BEGINNEXT1 <="110"1WHEN a= 0 AND
54、b= 1 ELSEd WHEN a= 0 ELSEc WHEN b= 1 ELSE"1011"END one;END PROCESS;32 .以下为一时序逻辑模块的VHDL结构体描述,请找出其中的错误:ARCHITECTURE one OF com1BEGINVARIABLE a,b,c,clock:STD_LOGIC ;pro1:PROCESSBEGINIF NOT(clock'EVENT AND clock='1')THEN x<= a xor b or cEND IF;END PROCESS;END;答:33 . VHDL程序设计中用 W
55、ITH_SELECT_WH*描述4个16位至1个16位输出的4选1 多路选择器。答: LIBRARY IEEE;USE mux ISPORT( dina : IN STD_LOGIC_VECTOR(0 to 15);dinb : IN STD_LOGIC_VECTOR(0 to 15);dinc : IN STD_LOGIC_VECTOR(0 to 15);dind : IN STD_LOGIC_VECTOR(0 to 15);sel: IN STD_LOGIC_VECTOR(0 to 1);dout : OUT STD_LOGIC_VECTOR(0 to 15);END mux;ARCHIT
56、ECTURE rtl OF mux ISBEGINwith sel selectdout<=dina WHEN "00",dinb WHEN "01",dinc WHEN "10",dind WHEN "11", "ZZZZZZZZZZZZZZZZ" when others;END rtl;34、哪些情况下需要用到程序包STD_LOGIC_UNSIGNED式举一例。答:调用数据类型变换函数或重载运算符函数时;定义UNSIGNED1型的数据时。举例如下:LIBRARY IEEE;USE US
57、EIF TEMP=" THEN TEMP:= 00000000';ELSE TEMP:=TEMP+ 16;END IF; 35 .为什么说一条并行赋值语句可以等效为一个进程,如果是这样的话,怎样实现敏感信 号的检测。答:因为信号赋值语句的共同点是赋值目标必须都是信号,所以赋值语句与其它并行语句一样,在结构体内的执行是同时发生的,与它们的书写顺序没有关系,所以每一信号赋值语句都相当于一条缩写的进程语句。由于这条语句的所有输入信号都被隐性地列入此缩写进程的 敏感信号表中,故任何信号的变化都将相关并行语句的赋值操作,这样就实现了敏感信号的检测。36 .给出1位全减器的VHDL苗述,
58、要求:(1)类似于1位全加器的设计方法,首先设计1位半减器,然后用例化语句将它们连接起来,图 中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in 借位输入; (2)直接根据全减器的真值表进行设计;(3)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句和生成语句来完成此项设计(减法运算是x - y - sun_in =diffr) 。图36题图表全减器真值表答:(1)先设计一个半减器X y00011011diff0110S_out0100Library ieee;use h_suber is port (x,y : in std_logic;diff,s_out : out std_logic);end entity ;arch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程机械设备租赁合同范例
- 医院感染控制绩效考核标准
- 油漆表面缺陷识别指南
- 企业财务管理规范与风险防控
- 四年级语文教学计划实施方案
- 互联网新媒体内容运营方案及实操案例
- 细胞组成元素与化合物教案设计
- 幼儿园中班家长沟通总结范文
- 医生手术记录及病历质量考核标准
- 船舶安全检查流程标准手册
- 2025年西藏公开遴选公务员笔试试题及答案(A类)
- 急性重症胰腺炎个案护理
- GB/T 23985-2009色漆和清漆挥发性有机化合物(VOC)含量的测定差值法
- 卓乐对刀仪说明书
- 拆房协议书模板
- 《斐波那契数列》课件
- 带式电磁除铁器检修作业指导书
- 生命体征测量操作流程及评分标准
- 美术学院 本科培养方案 - 清华大学 - Tsinghua University
- 部编版道德与法治小学四年级上册同步配套教案(全册)
- 突发环境事件危险废物专项应急预案
评论
0/150
提交评论