资源描述
一、 选择题:1、 以下关于信号和变量的描述中错误的是( )A. 信号是描述硬件系统的基本数据对象,它的性质类似于连接线B. 信号的定义范围是结构体、进程C. 除了没有方向说明以外,信号与实体的端口概念是一致的D. 在进程中不能将变量列入敏感信号列表中2、 以下关于状态机的描述中正确的是( )A. Moore型状态机其输出是当前状态和所有输入的函数B. 与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期C. Mealy型状态机其输出是当前状态的函数D. 以上都不对3、 下列标识符中,( )是不合法的标识符。A. PP0B. END C. Not_AckD. sig4、 大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是( )。A. CPLD即是现场可编程逻辑器件的英文简称B. CPLD是基于查找表结构的可编程逻辑器件C. 早期的CPLD是从GAL的结构扩展而来D. 在Altera公司生产的器件中,FLEX10K 系列属CPLD结构5、 综合是EDA设计流程的关键步骤,在下面对综合的描述中,( )是错误的。A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)6、 嵌套使用IF语句,其综合结果可实现( )。A. 带优先级且条件相与的逻辑电路 B. 条件相或的逻辑电路C. 三态控制电路 D. 双向控制电路7、 在VHDL语言中,下列对时钟边沿检测描述中,错误的是( )。A. if clkevent and clk = 1 then B. if falling_edge(clk) then C. if clkevent and clk = 0 then D. if clkstable and not clk = 1 then8、 下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程 A. 原理图/HDL文本输入适配综合功能仿真编程下载硬件测试B. 原理图/HDL文本输入功能仿真综合适配编程下载硬件测试C. 原理图/HDL文本输入功能仿真综合编程下载适配硬件测试;D. 原理图/HDL文本输入功能仿真适配编程下载综合硬件测试9、 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是( )。A. PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动B. 敏感信号参数表中,应列出进程中使用的所有输入信号C. 进程由说明部分、结构体部分、和敏感信号参数表三部分组成D. 当前进程中声明的变量也可用于其他进程10、 下列语句中,不属于并行语句的是( )A. 进程语句 B. CASE语句C. 元件例化语句 D. WHENELSE语句11、 VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库( )A. IEEE库 B. VITAL库 C. STD库 D. WORK库12、 VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述( )。A. 器件外部特性 B. 器件的综合约束C. 器件外部特性与内部功能 D. 器件的内部功能13、 嵌套的IF语句,其综合结果可实现( )。A. 条件相与的逻辑B. 条件相或的逻辑C. 条件相异或的逻辑D. 三态控制电路14、 在一个VHDL设计中,idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。A. idata = “00001111”;B. idata = b”0000_1111”;C. idata = X”AB”;D. idata = B”21”;15、 在VHDL语言中,下列对时钟边沿检测描述中,错误的是( )。A. if clkevent and clk = 1 thenB. if falling_edge(clk) then C. if clkevent and clk = 0 thenD. if clkstable and not clk = 1 then16、 请指出Altera Cyclone系列中的EP1C6Q240C8这个器件是属于( )A. ROM B. CPLD C. FPGA D. GAL17、 综合是EDA设计流程的关键步骤,在下面对综合的描述中,( )是错误的。A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。18、 大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( )。A. FPGA是基于乘积项结构的可编程逻辑器件;B. FPGA是全称为复杂可编程逻辑器件;C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。19、 进程中的变量赋值语句,其变量更新是( )。A. 立即完成;B. 按顺序完成;C. 在进程的最后完成;D. 都不对。20、 VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述( )。A. 器件外部特性;B. 器件的综合约束;C. 器件外部特性与内部功能;D. 器件的内部功能。21、 不完整的IF语句,其综合结果可实现( )。A. 时序逻辑电路B. 组合逻辑电路C. 双向电路D. 三态控制电路22、 下列标识符中,( )是不合法的标识符。A. State0B. 9moonC. Not_Ack_0D. signall23、 关于VHDL中的数字,请找出以下数字中最大的一个:( )。A. 2#1111_1110#B. 8#276#C. 10#170#D. 16#E#E124、 在VHDL中,用语句( )表示检测clock的下升沿A. clockEVENT B. clockEVENT AND clock1C. clock1 D. clockEVENT AND clock025、 在VHDL中,语句“FOR n IN 0 TO 7 LOOP”定义循环次数为( )次A. 1 B. 7 C. 16 D. 826、 在VHDL中,IF语句中至少应有1个条件句,条件句必须由( )表达式构成。A. BOOLEAN B. STD_LOGIC C. BIT D. 任意27、 在VHDL中,为目标信号的赋值符号是( )。A. = B. = C. := D. =:28、 在VHDL的端口声明语句中,用( )声明端口为输出方向。A. IN B. OUTC. INOUTD. BUFFER29、 在VHDL的端口声明语句中,用( )声明端口为输入方向。A. IN B. OUTC. INOUTD. BUFFER30、 在VHDL中,( )的数据传输是立即发生的,不存在任何延时的行为。A. 数据 B. 变量 C. 信号 D. 常量31、 在VHDL的IEEE标准库中,预定义的标准逻辑位数据STD_LOGIC有( )种逻辑值。A. 3 B. 8 C. 2 D. 932、 在VHDL的FOR_LOOP语句中的循环变量是一个临时变量,属于LOOP语句的局部变量,( )事先声明。A. 必须 B. 不必 C. 其类型要 D. 其属性要33、 在VHDL的并行语句之间,可以用( )来传送往来消息。A. 变量 B. 变量和信号 C. 信号 D. 常量34、 在VHDL中用( )来把特定的结构体关联一个确定的实体,为一个大型系统的设计提供管理和进行工程组织。A. 输入B. 输出C. 综合D. 配置35、 在VHDL中,45_234_278属于( )文字。A. 整数B. 以数制基数表示的C. 实数D. 物理量36、 在VHDL中,88_670.551_278属于( )文字。A. 整数B. 以数制基数表示的C. 实数D. 物理量37、 在VHDL中,16#FE# 属于( )文字。A. 整数B. 以数制基数表示的C. 实数D. 物理量38、 在VHDL中,100 m 属于( )文字。A. 整数B. 以数制基数表示的C. 实数D. 物理量39、 在下列标识符中,( )是VHDL合法的标识符。A. 4h_addeB. h_addeC. h_adderD. _h_adde40、 在下列标识符中,( )是VHDL错误的标识符。A. 4h_adde B. h_adde4C. h_adder_4D. h_adde41、 在VHDL中,( )不能将信息带出对它定义的当前设计单元。A. 信号B. 常量C. 数据D. 变量42、 在VHDL中,( )的数据传输是立即发生的,不存在任何延时的行为。A. 信号B. 常量C. 数据D. 变量43、 在VHDL中,( )的数据传输是不是立即发生的,目标信号的赋值需要一定的延时时间。A. 信号B. 常量C. 数据D. 变量44、 在VHDL中,定义信号名时,可以用( )符号为信号赋初值。A. = B. = C. := D. =:45、 在VHDL的IEEE标准库中,预定义的标准逻辑位STD_LOGIC的数据类型中的数据是用( )表示的。A. 小写字母B. 大写字母C. 大或小写字母D. 全部是数字二、 填空题1、 下列是EDA技术应用时涉及的步骤:A. 原理图/HDL文本输入; B. 适配; C. 时序仿真; D. 编程下载; E. 硬件测试; F. 综合请选择合适的项构成基于EDA软件的FPGA / CPLD设计流程: A _F_ _B_ _C_ D _E_2、 下列优化方法中那两种是速度优化方法:_B_、_D_A. 资源共享 B. 流水线 C. 串行化 D. 关键路径优化3、 传统的系统硬件设计方法采用 自底向上 设计方法,硬件描述语言设计方法采用 自顶向下 设计方法4、 VHDL的主要五部分构件是: 库 、 包 、 实体 、 结构体 以及 配置。5、 构造体描述方式分为: 行为描述 、 寄存器传输(RTL)描述方法或称数据流 和 结构描述 。6、 数据对象(DATA OBJECTS)主要包括 信号(SIGNAL)、变量(VARIABLE)和 常量(CONSTANT),它们是用来存放各种类型数据的容器。7、 在VHDL中最常用的库是 IEEE 标准库,最常用的程序包是STD_LOGIC_1164程序包。8、 VHDL的实体由 实体声明 部分和 结构体 组成。9、 VHDL中四类操作符分别是逻辑操作符(Logical Operator)、关系操作符(Relational Operator)、算术操作符(Arithmetic Operator)和符号操作符(Sign Operator)。10、 VHDL的7种基本逻辑操作符,它们是 与(AND)、或(OR)、与非(NAND)、或非(NOR)、异或(XOR)、异或非(XNOR)和非(NOT)。11、 实体 和 结构体 是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。12、 在VHDL的端口声明语句中,端口方向包括 IN(输入) 、 OUT(输出 ) 、 INOUT( 双向)和 BUFFER(缓冲) 。13、 VHDL的标识符名必须以 字母开头 ,后跟若干字母、数字或单个下划线构成,但最后不能为 下划线 。14、 为信号赋初值的符号是 := ;程序中,为变量赋值的符号是 := ,为信号赋值的符号是 = 15、 VHDL的数据类型包括 标量类型 、 复合类型 、 存储类型 和 文件类型 。16、 在VHDL中,标准逻辑位数据有 九 种逻辑值。17、 VHDL的操作符包括 逻辑 、 算术 、 关系 和 并置 四类。18、 一个完整的VHDL语言程序通常包含 库(library) 、包集合(package)、 实体(entity) 、 构造体(architecture)和 配置 各部分。19、 在一个实体的端口方向说明时,输入使用 in 表示,那么构造体内部不能再使用的输出是用 out 表示;双向端口是用 inout 表示;构造体内部可再次使用的输出是用 buffer 表示;20、 定义一个信号a,数据类型为4位标准逻辑向量 signal a : std_logic_vector(3 downto 0) 定义一个变量b,数据类型为2位位向量 variable b : bit_vector(1 downto 0) 。21、 =是 小于等于 关系运算符,又是 赋值运算 操作符。22、 VHDL语言中std_logic类型取值 Z 表示高阻,取值 X 表示不确定。23、 整型对象的范围约束通常用 range 关键词,位矢量用 downto/to 关键词。24、 位类型的初始化采用 字符 、位矢量用 字符串 。25、 进程必须位于 结构体 内部,变量必须定义于 进程/包/子程序 内部。26、 并置运算符 & 的功能是 把多个位或位向量合并为一个位向量 。27、 进程执行的机制是敏感信号 发生跳变 。28、 判断CLK信号上升沿到达的语句是 if clkevent and clk = 1 then .29、 任何时序电路都以 时钟 为驱动信号,时序电路只是在 时钟信号的边沿 到来时,其状态才发生改变。30、 Moore 状态机输出只依赖于器件的当前状态,与 输入信号 无关。31、 赋值语句是(并行/串行) 并行 执行的,if语句是(并行/串行) 串行 执行的。三、 判断题1、 判断下列VHDL标识符是否合法,如有错指出原因A. 16#0FA# ( )B. 10#12F# ( )C. 8#789# ( )D. 74HC245 ( )E. D100% ( )F. SIG-1N ( )G. NOT_#M ( )H. DATA_BUS_ ( )I. RETURN ( )J. STATE0 ( )2、 传统的系统硬件设计方法是采用自上而下(top down)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自下而上(bottom up)的设计方法。()传统的系统硬件设计方法是采用自下而上(bottom up)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自上而下(top down)的设计方法3、 VHDL可以采用层次化的设计,一个高层的结构体中可以调用低层的实体 ( )4、 一个VHAL程序中仅能使用一个进程(process)语句。 ()可以使用多个进程语句。5、 VHDL语言的预算操作包括了逻辑运算符、关系运算符、乘法运算符等,它们三者的优先级是相同的。 ( ) 逻辑运算符关系运算符乘法运算6、 进程语句中,不管在何时,process语句后面必须列出敏感信号 ()包含wait语句的进程语句可不列出敏感信号。7、 在结构体中定义一个全局变量(VARIABLES),可以在所有进程中使用。 ()“变量(VARIABLES)”改为“信号”。四、 EDA名词解释1、 ASIC:专用集成电路(Application Specific Integrated Circuits)2、 EDA:电子设计自动化(Electronic Design Automation)3、 PROM:可编程只读存储器(Programmable Read Memory)4、 IP:知识产权核()5、 SOC: 片上系统(System On Chip)6、 VHDL:超高速集成电路硬件描述语言(VHSIC Hardware Description Language)。7、 RTL: 寄存器传输级(Register Transport Level)8、 SOPC:可编程片上系统(System On Programmable Chip)9、 PLD:可编程逻辑器件(Programmable Logic Array)10、 GAL:通用阵列逻辑(Geniric Array Logic)11、 FPGA:现场可编程门阵列(Field Programmable Gate Array )12、 CPLD:复杂可编程逻辑器件(Complex Programmable Logic Device)五、 简答题1、 简述VHDL程序的基本结构。库、程序包、实体、结构体、配置2、 子程序分为那两类,其结构为什么。子程序有两种类型,即过程(PROCEDURE)和函数(FUNCTION)。FUNCTION 函数名(参数表) RETURN 数据类型 -函数首FUNCTION 函数名(参数表)RETURN 数据类型 IS - 函数体说明部分 BEGIN 顺序语句 ;END FUNCTION 函数名;PROCEDURE 过程名(参数表) - 过程首PROCEDURE 过程名(参数表) IS - 过程体说明部分BIGIN 顺序语句;END PROCEDURE 过程名;3、 信号与变量的赋值有何区别?。信号延时赋值,变量立即赋值;信号的代入使用=,变量的代入使用:=;信号在实际的硬件当中有对应的连线,变量没有4、 可编程器件分为哪些类?答:一类是集成度较低的,早期出现的PROM、PLD、PAL、GAL,可用的逻辑门数大约在500门以下,称为简单PLD。另一类是芯片集成度较高的,如现在大量使用的CPLD和FPGA器件,称为复杂PLD。5、 CASE语句使用当中的注意事项。(1)条件句中的选择值必在表达式的取值范围内。(2)除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用OTHERS”表示,它代表己给的所有条件句中未能列出的其它可能的取值。关键词OTHERS只能出现一次,目只能作为最后一种条件取值。使用OTHERS的目的是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必要的锁存器。这一点对于定义为STD_ LOGIC和STD_ LOGIC_VECTOR数据类型的值尤为重要,因为这些数据对象的取值除了1和0以外,还可能有其它的取值,如高阻态Z、不定态X等。(3) CASE语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。 (4) CASE语句执行中必须选中,目只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。6、 赋值语句分哪些类,分别写出一句赋值语句。信号赋值语句,S=变量赋值语句,V7、 数据对象有哪些种,分别写出定义这些数据对象的一般表述格式。Constant(常量)在程序中不可以被赋值Variable(变量)在程序中可以被赋值(用“:=”),赋值后立即变化为新值。Signal(信号)在程序中可以被赋值(用“=”),但不立即更新,当进程挂起后,才开始更新。8、 简述进程语句的使用要点?进程名:process(触发信号列表)定义语句;begin串行处理语句sequential statement;end processPROCESS.END PROCESS9、 写出VHDL常用的顺序语句的名称。赋值语句流程控制语句等待语句子程序调用语句返回语句空操作语句10、 VHDL语言中的逻辑操作符有那些?逻辑运算符AND、OR、NAND、NOR、XOR、XNOR及NOT11、 使用原理图输入设计功能的优势何优点?与传统的数字电路实验相比,Quartus提供原理图设计功能具有不可比拟的优势和先进性:设计者不必具备许多诸如编程技术、硬件描述语言等知识就能迅速设计入门,完成大规模的电路系统设计能进行任意层次的数字系统设计(传统的数字电路实验只能完成单一层次的设计);能对系统中的任一层次,或任一元件的功能进行精确的时序仿真通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正。能对设计方案进行随时更改,并储存设计工程中所有电路和测试文件入档;通过编译和下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证;如果使用FPGA和配置编程方式,将不会有损坏和损耗的问题符合现代电子设计技术规范。12、 VHDL的操作符有那几大类?每一类的操作符分别是什么?每一类操作符可以对那些数据进行操作(运算)?在VHDL中有四类操作符即逻辑操作符(Logical Operator)、关系操作符(Relational Operator)、算术操作符(Arithmetic Operator)和符号操作符(Sign Operator)。前三类操作符是完成逻辑和算术运算的最基本的操作符单元。13、 标准逻辑位数据类型常用的数值有哪几种?U-Uninitialized未初始化的X-Forcing Unknown强未知的0-Forcing 0强01-Forcing 1强1Z-High Impedance 高阻态W-Weak Unknown弱未知的L-Weak 0 弱0H-Weak 1弱1-Dont care忽略 14、 在VHDL语言中常见的数据类型有那些?VHDL中的数据类型可以分成四大类。标量型(Scalar Type)复合类型(Composite Type)存取类型(Access Type)文件类型(Files Type)15、 实体部分的端口模式有四个类型。IN模式:IN定义的通道确定为输入端口,并规定为单向只读模式,可以通过此端口将变量(Variable)信息或信号(Signal)信息读入设计实体中。OUT模式:OUT定义的通道确定为输出端口,并规定为单向输出模式,可以通过此端口将信号输出设计实体,或者说可以将设计实体中的信号向此端口赋值。INOUT模式:INOUT定义的通道确定为输入输出双向端口,即从端口的内部看,可以对此端口进行赋值,也可以通过此端口读入外部的数据信息;而从端口的外部看,信号既可以从此端口流出,也可以向此端口输入信号。INOUT模式包含了IN,OUT和BUFFER二种模式,因此可替代其中任何一种模式,但为了明确程序中各端口的实际任务,一般不作这种替代。BUFFER模式:BUFFER定义的通道确定为具有数据读入功能的输出端口,它与双向端口的区别在于只能接受一个驱动源。16、 VHDL语句中顺序描述语句有哪几种?赋值语句流程控制语句等待语句子程序调用语句返回语句空操作语句17、 用WAIT语句设置4种不同的条件分别是什么?对于不同的结束挂起条件的设置,WAIT语句有以下四种不同的语句格式。WAIT; - 第一种语句格式WAIT ON 信号表; - 第二种语句格式WAIT UNTIL 条件表达式; - 第三种语句格式WAIT FOR 时间表达式; - 第四种语句格式, 超时等待语句18、 常用的if语句有哪几种?写出其书写格式。A. 门闩IF条件句Then -第一种IF语句结构顺序语句END IFB. 二选一IF条件句Then -第二种IF语句结构顺序语句ELSE顺序语句END IFC. 多选择IF条件句Then -第三种IF语句结构顺序语句ELSIF条件句Then顺序语句.ELSE顺序语句END IFD. IF的嵌套IF条件句ThenIF条件句Then.END IFEND IF19、 如何描述时钟上升沿和下降沿?时钟脉冲的上升沿的条件可以写为:IF clock_signal=current_value AND clock_signalLAST_VALUE AND clock_signalEVENT也可以简写为:IF clock_signal= clock_signalEVENT AND current_value 时钟脉冲的下降沿的条件可以写为:IF clock_signal=current_value AND clock_signalLAST_VALUE AND clock_signalEVENT六、 回答题1、 指出信号和变量有哪些区别?简单的说,信号是全局的,用于结构体中并行语句间数据流的传递;变量则是局部的,他主要用于单个进程中中间变量的存储.主要用于对暂时数据进行局部存储。临时数据,没有物理意义只能在Process和Function中定义,并只在其内部有效要使其全局有效,先转换为Signal。用 := 进行赋值 variable result : std_logic := 0;变量说明的格式:VARIABLE 变量名:数据类型 约束条件:=表达式;例:VARIABLE X,Y:INTEGER; VARIABLE C:INTEGER RANGE 0 TO 255:=10;(表示变量C的数据类型是整型,变量范围从0到255,初始值为10。)变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,它不像信号那样,到了规定的仿真时间才进行赋值,变量是立即生效的。信号是抽象的电子电路内部硬件连接。它除了没有数据流动方向说明以外,其它性质几乎和前面所述的端口概念一致。信号通常在构造体、包集合和实体内说明。信号说明的格式:SIGNAL 信号名;数据类型 约束条件:=表达式;例:SIGNAL a,b,c:STD_LOGIC; SIGNAL COUNT_2:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL S_CLK:BIT:=0;信号(Signals)代表连线,Port也是一种信号。没有方向性,可给它赋值,也可当作输入在Entity中和Architecture中定义设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。用=进行赋值。信号和变量值的代入不仅形式不同,而且其操作过程也不同。在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。在执行下一条语句时,该变量的值就为上一句新赋的值。变量赋值符为“:=”。信号代入语句采用“=”代入符,该语句即使被执行也不会使信号立即发生代入。下一条语句执行时,仍使用原来的信号值。由于信号代入语句是同时进行处理的,因此,实际代入过程和代入语句的处理是分开进行的。2、 信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。信号赋值符号为“=”变量赋值用“:=”。信号赋值符号用于信号赋值动作,不立即生效。变量,赋值符号用于变量赋值动作,立即生效。3、 进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用? 进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。4、 什么是库、程序包、子程序、过程调用和函数调用?库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。若子程序调用的是一个过程,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。过程调用、函数调用都是子程序调用。5、 简述WHEN_ELSE条件信号赋值语句和IF_ELSE顺序语句的异同。答:WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中。6、 简述实体端口的模式A. 输入(Input):clk、reset、en、addr等B. 输出(Output):输出信号,不能内部引用C. 双向(Inout):可代替所有其他模式,用于设计双向总线D. 缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号 7、 进程语句是设计人员描述结构体时使用最为频繁的语句,简述其特点。A. 它可以与其它进程并发执行,并可存取结构体或实体中所定义的信号;B. 进程结构中的所有语句都是按顺序执行的;C. 为了启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句;D. 进程之间的通信是通过信号量的传递来实现的。8、 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系? 答: 利用 EDA 技术进行电子系统设计的最后目标是完成专用集成电路 ASIC 的设计和实现; FPGA 和 CPLD 是实现这一途径的主流器件。FPGA 和 CPLD 通常也被称为可编程专用 IC,或可编程 ASIC。FPGA 和 CPLD 的应用是 EDA 技术有机融合软硬件电子设计技术、SoC(片上系统)和 ASIC 设计,以及对自动设计与自动实现最典型的诠释。9、 与软件描述语言相比,VHDL 有什么特点? 答:编译器将软件程序翻译成基于某种特定 CPU 的机器代码,这种代码仅限于这种 CPU 而不能移植,并且机器代码不代表硬件结构,更不能改变 CPU 的硬件结构,只能被动地为其特定的硬件电路结构所利用。 综合器将 VHDL程序转化的目标是底层的电路结构网表文件,这种满足 VHDL 设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将 VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中, 具有明显的能动性和创造性,它不是机械的一一对应式的“翻译” ,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。10、 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? A. 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。B. 有哪些类型? 答:(1)从自然语言转换到 VHDL 语言算法表示,即自然语言综合。(2) 从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从 RTL 级表示转换到逻辑门(包括触发器)的表示, 即逻辑综合。 (4)从逻辑门表示转换到版图表示(ASIC 设计), 或转换到 FPGA 的配置网表文件,可称为版图综合或结构综合。C. 综合在电子设计自动化中的地位是什么? 答:是核心地位(见图 1-3) 。综合器具有更复杂的工作环境,综合器在接受 VHDL 程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的 工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将 VHDL 程序转化成电路实现的相关信息。11、 在 EDA 技术中,自顶向下的设计方法的重要意义是什么? 答:在 EDA 技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。12、 IP 在 EDA 技术的应用和发展中的意义是什么? 答:IP 核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。13、 叙述 EDA 的 FPGA/CPLD 设计流程。答: 1.设计输入(原理图/HDL 文本编辑); 2.综合; 3.适配; 4.时序仿真与功能仿真; 5.编程下载; 6.硬件测试。14、 IP 是什么?IP 与 EDA 技术的关系是什么? A. IP 是什么? 答:IP 是知识产权核或知识产权模块,用于 ASIC 或 FPGA/CPLD 中的预先设计好的电路功能模块。B. IP 与 EDA 技术的关系是什么? 答:IP 在 EDA 技术开发中具有十分重要的地位;与 EDA 技术的关系分有软 IP 、固 IP 、硬 IP :软 IP 是用 VHDL 等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软 IP通常是以硬件描述语言 HDL 源文件的形式出现。固 IP 是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬 IP 提供设计的最终阶段产品:掩模。15、 叙述 ASIC 的设计方法。答:ASIC 设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。全定制方法是一种基于晶体管级的,手工设计版图的制造方法。半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。16、 FPGA/CPLD 在 ASIC 设计中有什么用途? 答: FPGA/CPLD 在 ASIC 设计中, 属于可编程 ASIC 的逻辑器件; 使设计效率大为提高, 上市的时间大为缩短。17、 简述在基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具,及其在整个流程中的作用。答:基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工具有:设计输入编辑器(作用:接受不同的设计输入表达方式,如原理图输入方式、状态图输入方式、波形输入方式以及 HDL 的文本输入方式。 ) ;HDL 综合器(作用:HDL 综合器根据工艺库和约束条件信息,将设计输入编辑器提供的信息转化为目标器件硬件结构细节的信息,并在数字电路设计技术、化简优化算法以及计算机软件等复杂结体进行优化处理) ;仿真器(作用:行为模型的表达、电子系统的建模、逻辑电路的验证及门级系统的测试);适配器(作用:完成目标系统在器件上的布局和布线);下载器(作用:把设计结果信息下载到对应的实际器件,实现硬件设计)。18、 OLMC(输出逻辑宏单元)有何功能?说明 GAL 是怎样实现可编程组合电路与时序电路的。 OLMC 有何功能? 答:OLMC 单元设有多种组态,可配置成专用组合输出、专用输入、 组合输出双向口、寄存器输出、寄存器输出双向口等。说明 GAL 是怎样实现可编程组合电路与时序电路的? 答:GAL(通用阵列逻辑器件)是通过对其中的 OLMC(输出逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模式) ,实现组合电路与时序电路设计的。19、 什么是基于乘积项的可编程逻辑结构? 答:GAL、CPLD 之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵列的 PAL(可编程阵列逻辑)器件构成。20、 什么是基于查找表的可编程逻辑结构? 答:FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。21、 FPGA 系列器件中的 LAB 有何作用? 答:FPGA(Cyclone/Cyclone II)系列器件主要由逻辑阵列块 LAB、嵌入式存储器块(EAB) 、I/O 单元、嵌入式硬件乘法器和 PLL 等模块构成;其中 LAB(逻辑阵列块)由一系列相邻的 LE (逻辑单元)构成的;FPGA 可编程资源主要来自逻辑阵列块 LAB。22、 与传统的测试技术相比,边界扫描技术有何优点? 答:使用 BST(边界扫描测试)规范测试,不必使用物理探针,可在器件正常工作时在系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对 IC 内部节点无法测试的难题。23、 解释编程与配置这两个概念。答:编程:基于电可擦除存储单元的 EEPROM 或 Flash 技术。CPLD 一股使用此技术进行编程。CPLD 被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。配置:基于 SRAM 查找表的编程单元。编程信息是保存在 SRAM 中的,SRAM 在掉电后编程信息立即丢失, 在下次上电后, 还需要重新载入编程信息。 大部分 FPGA 采用该种编程工艺。 该类器件的编程一般称为配置。 对于 SRAM型 FPGA 来说,配置次数无限,且速度快;在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。24、 请参阅相关资料, 并回答问题: 按本章给出的归类方式, 将基于乘积项的可编程逻辑结构的 PLD 器件归类为CPLD ; 将基于查找表的可编程逻辑结构的 PLD 器什归类为 FPGA, 那么, APEX 系列属于什么类型 PLD 器件? MAXII 系列又属于什么类型的 PLD 器件?为什么? 答:APEX(Advanced Logic Element Matrix)系列属于 FPGA 类型 PLD 器件;编程信息存于 SRAM 中。MAX II系列属于 CPLD 类型的 PLD 器件;编程信息存于 EEPROM 中。七、 综合题1、 完成A. 解释带有下划线的语句。B. 画出该程序的原理图符号。C. 说明该程序逻辑功能。D. 改用WITH_SELECT_WHEN语句编写下列程序。Library ieee; Use ieee.std_logic_1164.all; 定义元件库 entity qk_11 isport( a,b,c,d,en:in std_logic; s:in std_logic_vector(1 downto 0); 输入信号s是两位的输入总线 op:out std_logic );end qk_11;architecture ar_1 of qk_11 is signal f:std_logic_vector(2 downto 0);beginfopopopop=d; 其他情况,将输入信号d赋值给opend case;end process;end ar_1;逻辑功能是:带有使能端en的四选一数据选择器。用WITH_SELECT_WHEN语句编写上述程序:Library ieee; Use ieee.std_logic_1164.all;entity qk_11 isport( a,b,c,d,en:in std_logic; s:in std_logic_vector(1 downto 0); op:out std_logic );end qk_11;architecture ar_1 of qk_11 is signal f:std_logic_vector(2 downto 0);beginf=en&s; with f select op=a when 100, b when 101, c when 110, d when others; end ar_1;2、 以下是一个模为24(023)的8421BCD码加法计数器VHDL描述,请补充完整LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tb IS PORT ( CLK : IN STD_LOGIC ; SHI, GE : OUT INTEGER RANGE 0 TO 9 ) ; END ; ARCHITECTURE bhv OF tb ISSIGNAL SHI1,GE1 : INTEGER RANGE 0 TO 9; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK=1 then IF GE1 = 9 THEN GE1 = 0 ; SHI1=SHI1+1; ELSIF SHI1=2 AND GE1=3 THEN SHI1=0; GE1=0; ELSE GE1 = GE1+1; END IF; END IF; END PROCESS ; GE = GE1; SHI =SHI1;END bhv;3、 下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。- N-bit Up Counter with Load, Count Enable, and- Asynchronous Resetlibrary ieee;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all;entity counter_n isgeneric (width : integer := 8);port(data : in std_logic_vector (width-1 downto 0);load, en, clk, rst : in std_logic;q : out std_logic_vector (width - 1 downto 0);end counter_n;architecture behave of counter_n issignal count : std_logic_vector (width-1 downto 0);beginprocess(clk, rst)beginif rst = 1 thencount 0); 清零elsif clkevent and clk = 1 then 边沿检测if load = 1 thencount = data;elsif en = 1 thencount = count + 1;end if;end if;end process;q = cou
展开阅读全文