VHDL试题

更新时间:2023-11-13 11:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一. 选择填空(每题4分,共40分)

1..MAX7000结构中包含五个主要部分,即逻辑阵列块、宏单元、扩展乘积项(共享和并联)、可编程连线阵列、I/O控制块。

2.EDA的设计输入主要包括(原理图输入)、状态图输入、波形图输入和HDL文本输入。

3. 当前最流行的并成为IEEE标准的硬件描述语言包括具VHDL 和 Verilog 。

4. 常用EDA工具大致可分为 设计输入编辑器 、HDL综合器 、 仿真器、 适配器 和 下载器 5个模块。

5. CPLD结构特点为 以乘积项结构方式构成逻辑行为; FPGA结构特点为 以查表法结构方式构成逻辑行为 。

7. VHDL中最常用的库是 IEEE 标准库,最常用的程序包

是 STD-LOGIC-1164 程序包。常用的四种库是IEEE库、STD库、WORK库及VITAL库。IEEE库是VHDL设计中最常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。 8. VHDL程序的基本结构

9. 基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→功能仿真→综合→适配→时序仿真→编程下载→硬件测试。

10. 源文件保存时,建议文件名尽可能与该程序的实体名保持一致。 11. 资源优化可以分为资源共享,逻辑优化、串行化。速度优化分为流水线设计,寄存器配平和关键路径法。

12. 三类数据对象:变量、常量和信号。

13. 在VHDL中有逻辑操作符、关系操作符、算术操作符和符号操作符四类操作符,如果逻辑操作符左边和右边值的类型为数组,则这两个数组的尺寸,即位宽要相等。在一个表达式中有两个以上的算符时,需要使用括号将这些运算分组。如果一串运算中的算符相同,且是AND、OR、XOR这三个算符中的一种,则不需要使用括号。

14. 时序电路产生的条件:利用不完整的条件语句的描述。

15. 结构体中的可综合的并行语句主要有七种:并行信号赋值、进程、块语句、条件信号语句、元件例化语句、生成语句和并行过程调用语句。顺序语句有赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句。 16. 顺序语句只能出现在进程中,子程序包括函数和过程。并行语句不放在进程中。

17. 进程本身是并行语句,但其内部是顺序语句 2、本质区别:

18. P247—248自己解决去! 19. P248标志符的命名规则

20. 三种主要的状态编码为:状态位直接输出型号编码、一位热码编码和顺序编码。特点P215

21. 非法状态的产生原因:1、外界不确定的干扰2、随机上电的初始启动 22. VHDL要求赋值符“<=” 两边的信号的数据类型必须一致。

23. 综合的概念:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

二、名词解释

EDA:Electronic Design Automation 电子设计自动化 LPM:Library of Parameterized MODULES可编程模块库

JTAG:联合测试行动小组 HDL:硬件描述语言 LUT:查找表

PLD:可编程逻辑器件 RTL:寄存器传输级 EAB:嵌入式阵列块 SOC:单芯片系统

GAL:通用逻辑阵列器件

PCB:印刷电路板 FSM:有限状态机

UART:串口(通用异步收发器) ISP:在系统编程

IEEE:电子电气工程师协会

考的:VHDL:超高速集成电路硬件描述语言 ASIC:专用集成电路 IP:知识产权核 三.选择题

21.IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为__________。

a)提供用VHDL等硬件描述语言描述的功能块,b) 但不c) 涉及实现该功能块的具体电路;

d)提供设计的最总产品----掩膜;

e)以网表文件的形式提交用户,f) 完成了综合的功能块;

MAX7000结构中包含五个主要部分,即逻辑阵列块、宏单元、扩展乘积项(共享和并联)、可编程连线阵列、I/O控制块。

电子系统设计优化,主要考虑提高资源利用率减少功耗----即面积优化,以及提高运行速度----即速度优化;

1、IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。A A .软IP B.固IP C.硬IP D.都不是、

2、下列状态机的状态编码,_________方式有“输出速度快、难以有效控制非法状态出现”这个特点。A

A.状态位直接输出型编码记处 B.一位热码编码 C.顺序编码 D.格雷编码2

大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是__C__。

A.FPGA是基于乘积项结构的可编程逻辑器件; B.FPGA是全称为复杂可编程逻辑器件;

C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。 进程中的变量赋值语句,其变量更新是_________。A A. 立即完成;B.按顺序完成; C.在进程的最后完成;D.都不对。

VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。D B. 器件外部特性;B.器件的综合约束;

C.器件外部特性与内部功能;D.器件的内部功能。 下列标识符中,__________是不合法的标识符。B A. State0 B. 9moon C. Not_Ack_0 D. signall

关于VHDL中的数字,请找出以下数字中最大的一个:__________。A C. 2#1111_1110# B.8#276# C.10#170# D.16#E#E1

6.下列EDA软件中,哪一个不具有逻辑综合功能:________。B Max+Plus II B.ModelSim Quartus II D.Synplify

7.IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为__________。

A. 提供用VHDL等硬件描述语言描述的功能块,B. 但不C. 涉及实现该功能块的具体电路;

D. 提供设计的最总产品----模型库;

C.以网表文件的形式提交用户,完成了综合的功能块; D.都不是。

8.下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的_C__。

A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计; B.原理图输入设计方法一般是一种自底向上的设计方法; C.原理图输入设计方法无法对电路进行功能描述; D.原理图输入设计方法也可进行层次化设计。

9.下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:__________B

A.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计 B.原理图输入设计方法一般是一种自底向上的设计方法 C.原理图输入设计方法无法对电路进行功能描述 D.原理图输入设计方法不适合进行层次化设计

10.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的________。 E. idata := 32; B.idata <= 16#A0#; C.idata <= 16#7#E1;D.idata := B#1010#;

11.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:___D__

A. CPLD是基于查找表结构的可编程逻辑器件 B. CPLD即是现场可编程逻辑器件的英文简称

C. 早期的CPLD是从FPGA的结构扩展而来

D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构

12.基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:_________D A.①②③④ B.②①④③ C.④③②① D.②④③①

13.IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于固IP的正确描述为:__________D

A.提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路

B.提供设计的最总产品——模型库

C.以可执行文件的形式提交用户,完成了综合的功能块 D.都不是

14.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是_______。

A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。

B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号; C.进程由说明部分、结构体部分、和敏感信号三部分组成; D.当前进程中声明的变量不可用于其他进程。

15.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:_______D A.PROCESS为一无限循环语句

B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 C.当前进程中声明的变量不可用于其他进程

D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成 16.对于信号和变量的说法,哪一个是不正确的:_________A A.信号用于作为进程中局部数据存储单元 B.变量的赋值是立即完成的

C.信号在整个结构体内的任何地方都能适用 D.变量和信号的赋值符号不一样

17.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:_______D

A.IEEE库 B.VITAL库 C.STD库 D.WORK工作库 18.下列4个VHDL标识符中正确的是:_______B A.10#128# B.16#E#E1 C.74HC124 D.X_16

19.下列语句中,不属于并行语句的是:_______B A.进程语句 B.CASE语句

C.元件例化语句 D.WHEN?ELSE?语句

20.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是__C__。

F. FPGA全称为复G. 杂可编程逻辑器件; H. FPGA是基于乘积项结构的可编程逻辑器件;

I. 基于SRAM的FPGA器件,J. 在每次上电后必须进行一次配置;

D在Altera公司生产的器件中,MAX7000系列属FPGA结构。 21.进程中的信号赋值语句,其信号更新是___C____。 K. 按顺序完成;B.比变量更快完成; C.在进程的最后完成;D.都不对。

22.不完整的IF语句,其综合结果可实现________。A A. 时序逻辑电路 B. 组合逻辑电路 C. 双向电路 D. 三态控制电路

23.嵌套的IF语句,其综合结果可实现___D___。 A. 条件相与的逻辑B. 条件相或的逻辑 C. 条件相异或的逻辑D. 三态控制电路

26.在状态机的具体实现时,往往需要针对具体的器件类型来选择合适的状态机编码。

对于A. FPGA B. CPLD 两类器件:

一位热码 状态机编码方式 适合于 ____A____ 器件; 顺序编码 状态机编码方式 适合于 ____B____ 器件;

28.在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。D

A. idata <= “00001111”; B. idata <= b”0000_1111”; C. idata <= X”AB”; D. idata <= B”21”;

29.在VHDL语言中,下列对时钟边沿检测描述中,错误的是__D___。 A. if clk’event and clk = ‘1’ then B. if falling_edge(clk) then

C. if clk’event and clk = ‘0’ then

D.if clk’stable and not clk = ‘1’ then

30.请指出Altera Cyclone系列中的EP1C6Q240C8这个器件是属于__C___ A. ROM B. CPLD C. FPGA D.GAL

IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。D A .瘦IP B.固IP C.胖IP D.都不是 综合是EDA设计流程的关键步骤,在下面对综合的描述中,_________是错误的。D

A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程; B.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;

C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束; D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。 综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_________是正确的。 A.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;

B.综合是纯软件的转换过程,与器件硬件结构无关; C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为强制综合。

E1 --(十六进制数表示,等于 2#11100000#,=14×161 =224) 6:变量:变量不能用于存储元件。变量赋值和初始化赋值赋号都用“:=”表示。变量赋的初值不是预设的,某一时刻只能有一个值。变量不能用于在进程间的传递数据。仿真时,变量用于建模;综合时,充当数据的暂存。

信号:”:=“表示对信号直接赋值,信号获得初始值不产生延时。”<=“表示对

信号代入赋值,这种方式允许产生延时。仿真时,要保证信号在初始化时能设定在指定值上。综合时,信号应在实体和结构体中被清楚地描述。 变量、常量、信号三者的使用比较:

从硬件电路系统来看,常量相当于电路中的恒定电平,如GND或VCC接口,而变量和信号则相当于组合电路系统中门与门间的连接及其连线上的信号值。

从行为仿真和VHDL语句功能上看,信号和变量的区别主要表现在接受和保持信息的方式、信息保持与传递的区域大小上。如: 信号可以设置传输延迟量,而变量则不能;

变量在进程、函数和过程中声明,只能作为局部的信息载体,而信号在结构体中声明,可作为模块间的信息载体; 变量的设置有时只是一种过渡,最后的信息传输和界面间的通信都靠信号来完成。 变量用“:=”号赋值,其值立即被使用(无时间延迟),而信号用“<=”赋值,其赋值过程附加有时间延迟,只在信号声明语句中用“:=”号赋初值 。

从综合后所对应的硬件电路结构来看,信号一般将对应更多的硬件结构,但在许多情况下,信号和变量并没有什么区别。

虽然VHDL仿真器允许变量和信号设置初始值,但在实际应用中,VHDL综合器并不会把这些信息综合进去

7:最小项的特点:在变量的任何取值下必有一个最小项,而且仅有一个最小项的值为1; 全体最小项之和为1 ;任意两个最小项的乘积为0; 最大项的特点:在变量的任何取值下必有一个最大项,而且仅有一个最大项的值为0 ;全体最大项之积为0 ;任意两个最大项之和为1。

8、在状态机设计中,不管使用何种编码,总是不可避免地出现大量剩余状态,即未被使用的编码组合,称为非法状态。如果不对这些非法状态进行处理,在外界不确定的干扰或随机上电的初始启动后,状态机都有可能进入不可预测的非法状态,导致失控。解决的方法是利用OTHERS语句对未提到的状态作统一处理,即CASE语句最后一个条件为:WHEN OTHERS=> next state<=st0; 9、四种上升沿表达形式:

状态机例题:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例8-11描述的电路完成对序列数

“11100101”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。 LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS

PORT(DIN,CLK,CLR : IN STD_LOGIC; --串行输入数据位/工作时钟/复位信号

AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --检测结果输出 END SCHK;

ARCHITECTURE behav OF SCHK IS

SIGNAL Q : INTEGER RANGE 0 TO 8 ;

SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); --8位待检测预置数(密码=E5H) BEGIN

D <= \位待检测预置数 PROCESS( CLK, CLR ) BEGIN

IF CLR = '1' THEN Q <= 0 ;

ELSIF CLK'EVENT AND CLK='1' THEN --时钟到来时,判断并处理当前输入的位

CASE Q IS

WHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ; END PROCESS ;

PROCESS( Q ) --检测结果判断输出 BEGIN

IF Q = 8 THEN AB <= \序列数检测正确,输出 “A” ELSE AB <= \序列数检测错误,输出 “B” END IF ; END PROCESS ; END behav ;

设计一个序列检测器。要求检测器连续收到串行码{1101}后,输出检测标志1,否则输出0。状态机设计步骤:① 分析设计要求,列出全部可能状态;② 画出状态转移图;③ 用VHDL语言描述状态机(1) 分析设计要求,列出全部可能状态:

未收到一个有效位(0) :S0 收到一个有效位(1):S1

连续收到两个有效位(11) :S2 连续收到三个有效位(110) :S3

连续收到四个有效位(1101):S4(2) 状态转移图:

(3)用VHDL语言描述状态机:定义状态机—枚举类型 状态转换描述 输出信号描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITYmooreIS PORT( clk, data:

IN STD_LOGIC; zo :OUT STD_LOGIC);ENDmoore;ARCHITECTURE a OFmooreIS TYPESTATEIS (S0,S1,S2,S3,S4); SIGNAL pstate :STATE;BEGIN PROCESS(clk) BEGIN IF (clk’EVENT AND clk=‘1’)THEN CASE pstate is WHENS0=> IF data=‘1’THEN pstate<=S1; ELSE pstate<=S0; END IF; WHENS1=> IF data=‘1’THEN pstate<=S2; ELSE pstate<=S0; END IF; WHENS2=> IF data=‘0’THEN pstate<=S3; ELSE pstate<=S2; END IF;WHENS3=> IF data=‘1’THEN pstate<=S4; ELSE pstate<=S0; END IF; WHENS4=> IF data=‘1’THEN pstate<=S1; ELSE pstate<=S0; END IF; END CASE; END IF; END PROCESS; zo<=‘1’WHENpstate=s4 ELSE ‘0’; END a;

本文来源:https://www.bwwdw.com/article/e4ev.html

Top