1、主要知识点1、 从执行方式看 VHDL 的描述语句包括那些描述语句?用 VHDL 语言进行设计时,按描述语句的执行顺序进行分类,可将 VHDL 语句分为顺序执行语句(Sequential)和并行执行语句(Parallel) 。2、 目前流行的硬件描述语言有那些?常用的硬件描述语言有 ABEL-HDL AHDL.VHDL 和 Verilog-HDL.而 VHDL 和 Verilog-HDL 是当前最流行的并成为 IEEE 标准的硬件描述语言。3、 MAX+PLUS2 中各种文件的扩展名有哪些?*.vhd *.sym *.gdf *.scf 4、 基于 MAX+PLUS2 的设计流程设计输入、编译
2、处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程5、 目前较流行的 EDA 设计软件有那些?ALTERA 公司: MAX+PLUS II QUARTUS II(全新的 EDA 软件,正在逐步替代 MAX+PLUS)LATTICE 莱迪思公司: isp EXPERT SYSTEMisp DesignExpert SYSTEMXILINX 西林公司: FOUNDATION ISE(全新的 EDA 软件,正在逐步替代FOUNDATION)6、 可编程逻辑器件的分类?按照变成工艺分哪些类?SPLD 简单可编程逻辑器件CPLD 复杂可编程逻辑器件FPGA 现场可编程门阵列ISP 在系统(线)可
3、编程逻辑器件按编程工艺分为:熔丝开关(一次可编程,要求大电流)可编程低阻电路元件(多次编程,要求中电压)EPROM 型(紫外线擦除电可编程逻辑器件)E PROM 型(电可擦写编程器件)基于 SRAM 的编程元件7、 VHDL 程序设计中常用的库有那些?哪些库是显式(默认打开的)的,哪些是隐式的?P159VHDL 程序设计的常用库:IEEE 库、STD 库、WORK 库、VITAL 库、用户定义库。显示库:IEEE 库 用户定义库 VITAL 库隐式库:、STD 库、WORK 库 8、 程序包由那两部分组成?分别有什么作用? P161程序包由两部分组成:程序包首和程序包体,程序包首为程序包定义接
4、口,声明包中的类型、元件、函数和子程序。程序包体规定程序包的实际功能,存放说明中的函数和子程序。9、 常用的预定义程序包有哪些?如何调用?P163常用的预定义的程序包:STD_LOGIC_1164 程序包、STD_LOGIC_ARITH 程序包、STD_LOGIC_UNSIGNED 和STD_LOGIC_SIGNED 程序包、STANDARD 和 TEXTIO 程序包。10、 目前国际上较大的 EDA 器件制造公司有那些?ALTERA 公司、LATTICE 莱迪思公司、XILINX 西林公司11、 VHDL 常用的预定义数据类型有哪几种,分别在哪些程序包中?如何调用?答:布尔(BOOLEAN)
5、数据类型,位(BIT)数据类型,位矢量(BIT_VECTOR)数据类型 ,字符(CHARACTER)数据类型 。12、 数据类型的转换有哪几种方法?P114 函数转换法、类型标记转换法和常数转换法。13、 可以构成标识符的字符有?有效的字符:(1)包括 26 个大小写英文字母,数字09 以及下划线“_” 。 (2)任何标识符必须以英文字母开头。 (3)必须是单一下划线“_” ,且其前后都必须有英文字母或数字。 (3)标识符中的英文字母不分大小写。 (4)允许包含图形符号(如回车符、换行符等) ,也允许包含空格符。 (5)VHDL 的保留字不能用于作为标识符使用。14、 可编程器件(PLD)分为
6、哪两类?答:根据编程特性分为一次编程和重复编程两类15、 标准逻辑位数据类型常用的数值有哪几种?U-未初始化的, X-强未知的, 0-强0, 1-强 1, Z-高阻态, W-弱未知的, L-弱0, H-弱 1, -忽略。16、 完整的条件语句将产生什么电路,不完整的条件语句将产生什么电路?完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路17、 信号和变量有什么区别?P121(1)信号赋值至少有 延时,而变量赋值没有延时。(2)信号除当前值外有许多相关的信息,而变量只有当前值。(3)进程对信号敏感而对变量不敏感。(4)信号可以是多个进程的全 局 信 号 ; 而 变 量 只 在 定 义
7、 它 们 的 顺 序 域 可 见 ( 共 享 变 量 除 外 ) 。(5) 信 号 是 硬 件 中 连 线 的 抽 象 描 述 , 它 们 的功能是保存变化的数据和连接子元件,信号在元件的端口连接元件。变量在硬件中没有类似的对应关系,它 们 用 于 硬 件 特 性 的 高 层 次 建 模 所需 要 的 计 算 中 。(6)信 号 赋 值 和 变 量 赋 值 分 别 使 用 不 同 的 赋 值 符 号 “ 连接端口名,.);29、 试比较图形输入法和文本输入法有何优缺点?30、 结构体的语言格式与作用。ARCHITECTURE 结构体名 OF 实体名 IS (说明语句) 用来说明和定义数据对象,
8、类型等,可省略BEGIN (功能描述语句) 用来描述内部电路功能的,不可省略END ARCHITECTURE 结构体名;结构体用来描述设计实体的结构或行为,即描述一个实体的功能,把设计实体的输入和输出之间的联系建立起来。31、 写出 PROCESS 语句结构的一般表达格式?PROCESS 语句格式PROCESS 语句的表达格式如下:进程标号:PROCESS(敏感信号参数表) IS进程说明部分BEGIN顺序描述语句END PROCESS进程标号 ; 32、 进程语句的设计(或使用)要点?P140(1)虽然同一结构体中的进程之间是并行运行的,但同一进程中的逻辑描述语句则是顺序运行的,因而在进程中只
9、能设放置顺序语句。(2)进程的激活必须由敏感信号表中定义的任一敏感信号的变化来启动,否则必须有一显式的 WAIT 语句来激活。(3)结构体中多个进程之所以能并行同步运行,一个很重要的原因是进程之间的通信是通过传递信号和共享变量值来实现的。(4)进程是重要的建模工具。进程结构不但为综合器所支持,而且进程的建模方式将直接影响仿真和综合结果。33、 并行信号赋值语句有哪几种?其语句格式为何?1) 简单信号赋值语句 赋值目标 语句 A;WHEN 值 2= 语句 B;.WHEN OTHERS= 语句 C;END CASE注意事项:(1)WHEN 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内
10、。2)除非所有条件句中的选择值能完整覆盖 CASE 语句中表达式的取值,否则最后一个条件句中的选择必须用关键词OTHERS 表示以上已列的所有条件句中未能列出的其它可能的取值。(3)CASE 语句中的选择值只能出现一次,不允许有相同选择值的条件语句出现。(4)CASE 语句执行中必须选中,且只能选中所列条件语句中的一条。43、 试着比较 IF 和 CASE 语句的差异?P127与 IF 语句相比,CASE 语句组的程序可读性比较好,这是因为它把条件中所有可能出现的情全部列出来了,可执行条件比较清晰。而且 CASE 程序的执行过程不像 IF 语句中那样有一个逐项条件条件顺序比较的过程。CASE
11、语句中条件句的次序是不重要的,它的执行过程更接近于并行方式。但是在一般情况下,经过综合后,对相同的逻辑功能,CASE 语句比 IF 语句的描述耗用更多的硬件资源,而且有的逻辑功能 CASE 语句无法描述,只能使用 IF 语句来描述.44、 FOR 循环语句的一般形式?P127FOR 循环语句的一般形式为:循环标号: FOR 循环变量 IN 循环次数范围 LOOP顺序处理语句END LOOP循环标号;45、 VHDL 数据对象有哪几种?P101在 VHDL 中,数据对象有三种(1)常量(CONSTANT)(2)变量(VARIABLE) (3)信号(SIGNAL) 。46、 变量和信号的区别?P1
12、05同 18 题47、 赋值语句分哪些类,分别写出一句赋值语句。赋值语句分为信号赋值语句和变量赋值语句。变量赋值语句和信号赋值语句的语法格式如下:变量赋值目标 :=赋值源;信号赋值目标 =赋值源;48、 实现时序电路和逻辑组合电路分别用什么语句实现,分别写出他们的一般表式。完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路完整的条件语句格式:49、 写出实体、结构体的一般语句结构并说明其作用。50、 简述 VHDL 中顺序语句有哪些?1、赋值语句 2、转向控制语句 3.WAIT 语句 4、子程序调用语句 5、返回语句 6、 NULL 语句 7.其他语句51、 简述 VHDL 中并行语
13、句有哪些?1、进程语句 2、并行信号赋值语句 3、块语句结构(BLOCK)4、并行过程调用语句 5、元件例化 语句 6 、生成语句52、 试写出三种 IF 语句的语句结构。IF 语句是一种条件语句,它根据语句中所设置的一种或多种条件,有选择地执行指定的顺序语句,常见的 IF 语句有以下种形式。(1) IF 条件 THEN语句END IF; (2) IF 条件 THEN语句ELSE语句END IF;(3) IF 条件 THEN语句ELSIF 条件 THEN语句ELSE语句END IF;53 转向控制语句有哪几种? P123转向控制语句共有五种:(1)IF 语句(2)CASE 语句(3)LOOP
14、语句(4) next 语句(5) exit 语句54 什 么 是 重 载 操 作 符 ? 常 用 的 重 载 操 作 符 定 义 在 那 个 程序 包 中 ?为 了 方 便 各 种 不 同 数 据 类 型 间 的 运 算 , VHDL 允 许 用 户对 原 有 的 基 本 操 作 符 重 新 定 义 , 赋 予 新 的 含 义 和 功 能 , 从 而建 立 一 种 新 的 操 作 符 , 这 就 是 重 载 操 作 符 。 常 用 的 重 载 操 作符 程 序 包 :STD_LOGIC_UNSIGNED、 STD_LOGIC_ARITH、 STD_LOGIC_SIGNED55 什么是重载函数,
15、什么是重载过程同样名称的函数可以用不同的数据类型作为此函数的参数定义多次,以此定义的函数称为重载函数56 VHDL 设计的有限状态机从信号输出方式上分为哪两类?主要区别是什么?有限状态机从信号输出方式上分为 Mealy(米立)型和Moore(摩尔)型两种状态机。?57 一般有限状态机的的组成有哪几部分?一般的状态机通常包含说明部分、时序进程、组合进程、辅助进程等几个部分。58 VHDL 的描述风格有哪几种?行为描述、数据流描述和结构描述第四章习题答案2 VHDL 的基本结构是什么?各部分的功能分别是什么?答:参考课本 77 页,最下面一段。4、写出 3 输入与非门的实体描述。ENTITY na
16、nd_3 ISPORT (a , b, c: IN STD_LOGIC);q: OUT STD_LOGIC );END nand_3;5、例 4-1 是 2 选 1 的多路选择器的 VHDL 描述,在结构体的描述中使用了“WHEN-ELSE”语句,但也可以用其他语句来进行描述,试描述之。用 IF 语句描述:ENTITY mux21a ISPORT (a,b: IN BIT;s: IN BIT;q: OUT BIT);END mux21a;ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s=0 THENq y y y ynull;
17、END CASE;END PROCESS;END behave;7 试给出 1 位全减器的 VHDL 描述,要求首先设计 1 位半减器,然后用例化语句将它们连接起来。设 x 为被减数,y 为减数,sub_in 是借位输入,diff 是输出差,sub_out 是借位输出。-半减器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_sub ISPORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_sub ;ARCHITECTURE fh1 OF h_sub ISBEGINso diff d
18、iff diff diff diff diff diff diff NULL;END CASE;END PROCESS;END bhv ;数据流描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_sub ISPORT(x,y,sub_in:IN STD_LOGIC;sub_out,diff:OUT STD_LOGIC);END f_sub ;ARCHITECTURE rtl OF f_sub ISBEGINdiff0); elsif clkevent and clk=1 thenif ldn=0 thencnt:=data_in;else cnt:=cnt+1;end if;end if;case cnt iswhen “1111“= carry carryq1q1q1q1null;end case;elseq1q2q2q2q2null;end case;elseq2qqqqqq=“11011111“;