您好,欢迎访问三七文档
1/27这是一份vhdl的复习题,考试题大多数都来自此处,一、EDA名词解释1、ASIC:专用集成电路(ApplicationSpecificIntegratedCircuits)2、EDA:电子设计自动化(ElectronicDesignAutomation)3、PROM:可编程只读存储器(ProgrammableReadMemory)4、IP:知识产权核(IntellectualProperty)5、SOC:片上系统(SystemOnChip)6、VHDL:超高速集成电路硬件描述语言(VHSICHardwareDescriptionLanguage)。7、RTL:寄存器传输级(RegisterTransportLevel)8、SOPC:可编程片上系统(SystemOnProgrammableChip)9、PLD:可编程逻辑器件(ProgrammableLogicArray)10、GAL:通用阵列逻辑(GeniricArrayLogic)11、FPGA:现场可编程门阵列(FieldProgrammableGateArray)12、CPLD:复杂可编程逻辑器件(ComplexProgrammableLogicDevice)2/27二、简答题1、简述VHDL程序的基本结构。库、程序包、实体、结构体、配置2、子程序分为那两类,其结构为什么。子程序有两种类型,即过程(PROCEDURE)和函数(FUNCTION)。FUNCTION函数名(参数表)RETURN数据类型--函数首FUNCTION函数名(参数表)RETURN数据类型IS--函数体[说明部分]BEGIN顺序语句;ENDFUNCTION函数名;PROCEDURE过程名(参数表)--过程首PROCEDURE过程名(参数表)IS--过程体[说明部分]BIGIN顺序语句;ENDPROCEDURE过程名;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语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。3/27(4)CASE语句执行中必须选中,目只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。6、赋值语句分哪些类,分别写出一句赋值语句。信号赋值语句,S=变量赋值语句,V≔7、数据对象有哪些种,分别写出定义这些数据对象的一般表述格式。Constant(常量)在程序中不可以被赋值Variable(变量)在程序中可以被赋值(用“:=”),赋值后立即变化为新值。Signal(信号)在程序中可以被赋值(用“=”),但不立即更新,当进程挂起后,才开始更新。8、简述进程语句的使用要点?[进程名:]process[(触发信号列表)][定义语句;]begin[串行处理语句sequentialstatement;]endprocessPROCESS...ENDPROCESS9、写出VHDL常用的顺序语句的名称。赋值语句流程控制语句等待语句子程序调用语句返回语句空操作语句10、VHDL语言中的逻辑操作符有那些?逻辑运算符AND、OR、NAND、NOR、XOR、XNOR及NOT11、使用原理图输入设计功能的优势何优点?与传统的数字电路实验相比,Quartus提供原理图设计功能具有不可比拟的优势和先进性:○1设计者不必具备许多诸如编程技术、硬件描述语言等知识就能迅速设计入门,完成大规模的电路系统设计○2能进行任意层次的数字系统设计(传统的数字电路实验只能完成单一层次的设计);○3能对系统中的任一层次,或任一元件的功能进行精确的时序仿真○4通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正。4/27○5能对设计方案进行随时更改,并储存设计工程中所有电路和测试文件入档;○6通过编译和下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证;○7如果使用FPGA和配置编程方式,将不会有损坏和损耗的问题○8符合现代电子设计技术规范。12、VHDL的操作符有那几大类?每一类的操作符分别是什么?每一类操作符可以对那些数据进行操作(运算)?在VHDL中有四类操作符即逻辑操作符(LogicalOperator)、关系操作符(RelationalOperator)、算术操作符(ArithmeticOperator)和符号操作符(SignOperator)。前三类操作符是完成逻辑和算术运算的最基本的操作符单元。13、标准逻辑位数据类型常用的数值有哪几种?'U'--Uninitialized未初始化的'X'--ForcingUnknown强未知的'0'--Forcing0强0'1'--Forcing1强1'Z'--HighImpedance高阻态'W'--WeakUnknown弱未知的'L'--Weak0弱0'H'--Weak1弱1'-'--Don'tcare忽略14、在VHDL语言中常见的数据类型有那些?VHDL中的数据类型可以分成四大类。标量型(ScalarType)复合类型(CompositeType)存取类型(AccessType)文件类型(FilesType)15、实体部分的端口模式有四个类型。IN模式:IN定义的通道确定为输入端口,并规定为单向只读模式,可以通过此端口将变量(Variable)信息或信号(Signal)信息读入设计实体中。OUT模式:OUT定义的通道确定为输出端口,并规定为单向输出模式,可以通过此端口将信号输出设计实体,或者说可以将设计实体中的信号向此端口赋值。INOUT模式:INOUT定义的通道确定为输入输出双向端口,即从端口的内部看,可以对此端口进行赋值,也可以通过此端口读入外部的数据信息;而从端口的外部看,信号既可以从此端口流出,也可以向此端口输入信号。INOUT模式包含了IN,OUT和BUFFER二种模式,因此可替代其中任何一种模式,但为了明确程序中各端口的实际任务,一般不作这种替代。5/27BUFFER模式:BUFFER定义的通道确定为具有数据读入功能的输出端口,它与双向端口的区别在于只能接受一个驱动源。16、VHDL语句中顺序描述语句有哪几种?赋值语句流程控制语句等待语句子程序调用语句返回语句空操作语句17、用WAIT语句设置4种不同的条件分别是什么?对于不同的结束挂起条件的设置,WAIT语句有以下四种不同的语句格式。WAIT;--第一种语句格式WAITON信号表;--第二种语句格式WAITUNTIL条件表达式;--第三种语句格式WAITFOR时间表达式;--第四种语句格式,超时等待语句18、常用的if语句有哪几种?写出其书写格式。A.门闩IF条件句Then--第一种IF语句结构顺序语句ENDIFB.二选一IF条件句Then--第二种IF语句结构顺序语句ELSE顺序语句ENDIFC.多选择IF条件句Then--第三种IF语句结构顺序语句ELSIF条件句Then顺序语句...ELSE顺序语句ENDIFD.IF的嵌套IF条件句ThenIF条件句Then...ENDIFENDIF6/2719、如何描述时钟上升沿和下降沿?时钟脉冲的上升沿的条件可以写为:IFclock_signal=current_valueANDclock_signal’LAST_VALUEANDclock_signal’EVENT也可以简写为:IFclock_signal=clock_signal’EVENTANDcurrent_value时钟脉冲的下降沿的条件可以写为:IFclock_signal=current_valueANDclock_signal’LAST_VALUEANDclock_signal’EVENT20、指出信号和变量有哪些区别?简单的说,信号是全局的,用于结构体中并行语句间数据流的传递;变量则是局部的,他主要用于单个进程中中间变量的存储.主要用于对暂时数据进行局部存储。临时数据,没有物理意义只能在Process和Function中定义,并只在其内部有效要使其全局有效,先转换为Signal。用:=进行赋值variableresult:std_logic:='0';变量说明的格式:VARIABLE变量名:数据类型约束条件:=表达式;例:VARIABLEX,Y:INTEGER;VARIABLEC:INTEGERRANGE0TO255:=10;(表示变量C的数据类型是整型,变量范围从0到255,初始值为10。)变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,它不像信号那样,到了规定的仿真时间才进行赋值,变量是立即生效的。信号是抽象的电子电路内部硬件连接。它除了没有数据流动方向说明以外,其它性质几乎和前面所述的端口概念一致。信号通常在构造体、包集合和实体内说明。信号说明的格式:SIGNAL信号名;数据类型约束条件:=表达式;例:SIGNALa,b,c:STD_LOGIC;SIGNALCOUNT_2:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALS_CLK:BIT:='0';信号(Signals)代表连线,Port也是一种信号。没有方向性,可给它赋值,也可当作输入在Entity中和Architecture中定义设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。用=进行赋值。信号和变量值的代入不仅形式不同,而且其操作过程也不同。在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。在执行下一条语句时,该变量的值就为上一句新赋的值。变量赋值符为“:=”。信号代入语句采用“=”代入符,该语句即使被执行也不会使信号立即发生代入。下一条语句执行时,仍使用原来的信号值。由于信号代入语句是同时进行处理的,7/27因此,实际代入过程和代入语句的处理是分开进行的。21、信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。信号赋值符号为“=”变量赋值用“:=”。信号赋值符号用于信号赋值动作,不立即生效。变量,赋值符号用于变量赋值动作,立即生效。22、进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。23、什么是库、程序包、子程序、过程调用和函数调用?库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。若子程序调用的是一个过程,就称为过程
本文标题:EDA技术复习题
链接地址:https://www.777doc.com/doc-6451763 .html