一、填空题 1. 现代电子技术经历了CAD、CAE 和 EDA 三个主要的发展阶段。
2. EDA技术包括大规模可编程器件、硬件描述语言HDL、EDA工具软件和实验开发系统四大要素。
3. 层次化设计是将一个大的设计项目分解为若干个子项目或若干个层次来完成的。先从底层的电路设计开始,然后在___高层次___的设计中逐级调用 低层次 的设计结果,直至实现系统电路的设计。
4. 用HDL设计的电路,既可以被高层次的系统调用,成为系统的一部分,也可以作为一个电路的功能块 独立存在 和 独立运行____。
5. FPGA两类配置下载方式是主动配置方式 和被动配置方式 。
6. Quartus II是EDA器件制造商Altera公司自己开发的___EDA工具___软件。 7. Quartus II工具软件安装成功后、第一次运行前,还必 授权 。 8. Quartus II支持原理图、文本和波形等不同的编辑方式。
9. 在Quartus II集成环境下,设计文件不能直接保存在计算机磁盘根目录中,因此设计者在进入设计之前,应当在磁盘根目录中建立保存设计文件的 工程目录(文件夹)
10. 指定设计电路的输入/输出端口与目标芯片引脚的连接关系的过程称为__引脚锁定____。
11. Quartus II中波形文件的扩展名是__ .vwf_______。
12. 在完成设计电路的输入/输出端口与目标芯片引脚的锁定后,再次对设计电路的仿真称为___时序仿真__或__后仿真___。
13. 以EDA方式实现的电路设计文件,最终可以编程下载到__ FPGA_ _或_ CPLD _芯片中,完成硬件设计和验证。
14. 在对设计文件编程下载时,需要选择的ByteBlaster(MV)编程方式,此编程方式对应计算机的 ___并行口 编程下载通道,“MV”是 混合电压 的意思。
二、选择题
1、Quartus II的波形文件类型是( A ).
A. . vwf B.. gdf C. . vhd D. . v
2、Quartus II的图形设计文件类型是( B ).
A. . scf B.. bdf C. . vhd D. . v
3、Quartus II是( C )
A.高级语言 B.硬件描述语言 C.EDA工具软件 D.综合软件
4、使用Quartus II工具软件实现原理图设计输入,应采用( A )方式. A.模块/原理图文件 B.文本编辑 C.符号编辑 D.波形编辑
5、在Quartus II集成环境下为图形文件产生一个元件符号的主要用途是( D ). A.仿真 B.编译 C.综合 D.被高层次电路设计调用
6、仿真是对电路设计的一种( B )检测方法.
A.直接的 B.间接的 C.同步的 D.异步的
7、建立设计项目的菜单是( C ). A.“File”→“New ” B.“Project”→“New Project Wizard” C.“File”→“New Project Wizard”
8、在MAX+plusⅡ工具软件中,包括门电路、触发器、电源、输入、输出等元件的元件库是( C )文件夹.
A.\\maxplus2\\max2lib\\mf B.\\quartus\\library\\mega_lpm C.\\quartus\\library\\primitives D.\\myeda\\mygdf
9、执行Quartus II的( A )命令,可以为设计电路建立一个元件符号。
A Create ∠ Update / Create Symbol Files for Current File B Simulator C Compiler D Timing Analyzer
10、 在下列器件中,不属于PLD的器件是(C )。
A PROM B PAL C SRAM D PLA
11、关于EDA技术的设计流程,下列顺序正确的是 ( A )
A 原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试 B 原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试; C 原理图/HDL文本输入→功能仿真→综合→编程下载→适配硬件测试; D 原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试
12、使用Quartus II的图形编辑方式输入的电路原理图文件必须通过( B )才能进行仿真验证. A.编辑 B.编译 C.综合 D.编程
13、Quartus II的波形文件当中设置仿真时间的命令是( B )
A.Edit/End Time B。Edit/ Time Bar C. View/End Time D. Edit/Insert Node or Bus…
14、 完整的IF语句,其综合结果可实现___B____。
A. 时序逻辑电路 B. 组合逻辑电路C. 双向电路 D. 三态控制电路
15、 一个项目的输入输出端口是定义在 A 。
A. 实体中 B. 结构体中 C. 任何位置 D. 进程体
16、 描述项目具有逻辑功能的是 B 。
A. 实体 B. 结构体 C. 配置 D. 进程
17、关键字ARCHITECTURE定义的是 A 。
A. 结构体 B. 进程 C. 实体 D. 配置
18、不属于顺序语句的是 C 。
A. IF语句 B. LOOP语句 C. PROCESS语句 D. CASE语句
19、综合是EDA设计流程的关键步骤,在下面对综合的描述中,_____D____是错误的。P15 A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程。 B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件。
C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。
D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。 20、大规模可编程器件主要有FPGA、CPLD两类,其中CPLD通过___A__实现其逻辑功能。P42
A. 可编程乘积项逻辑 B. 查找表(LUT) C. 输入缓冲 D. 输出缓冲
21、状态机编码方式中,其中__A__占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态。P221 A. 一位热码编码 B. 顺序编码 C. 状态位直接输出型编码 D. 格雷码编码
三、简答题
1、Verilog HDL语言进行电路设计方法有哪几种(8分) 1、自上而下的设计方法(Top-Down) 2、自下而上的设计方法(Bottom-Up)
3、综合设计的方法
2、specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。 1、.specparam语句只能在延时的格式说明块(specify块)中出现,而parameter语句则不能在延时说明块内出现
2、由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数则可以是任何数据类型的参数
3、由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明
3、简述下述Verilog语句的含义(所有信号均为1bit位宽;有时序信息时请同时说明时序含义,若需要用式子表达,可用X(t)表达“t时刻时X的值”;可均从0时刻描述)(本题10分,每个2分)
(1) assign #10 out = in1 & in2 ; out(10)=in1(10)&in2(10) (2) assign out = # 5 in1 | in2 ; out(5)=in1(0)&in2(0)
(3) or #(1,2,3) or_inst(o,in1,in2);
上升延时为1个单位,下降延时为2个单位,关断延时为3个单位,0=in1|in2;
(4) `timescale 1ns / 100ps
单位为纳秒,精度为100皮秒;
(5) reg [7:0] led_out; 代码片段:led_out[7:0] <= {led_out[6:0],led_out[7]}; 实现循环左移功能;
3. 简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?FSM的三段式描述风格中,三段分别描述什么?(本题10分)
Mearly型,Moore型;前者与输入与当前状态有关,而后者只和当前状态有关;Binary,Gray,One-Hot编码;分别为状态保存,状态切换,输出;
4. 基于FPGA的设计流程大体可分为:design设计-->synthesis综合-->fit适配-->配置FPGA,请简要描述综合、适配、配置过程的主要功能。(本题5分)
四、编程题
1. 根据下面的程序,画出产生的信号波形(8分) module para_bloc_nested_in_seri_bloc(A,B); output A,B; reg a,b; initial begin A=0; B=1; #10 A=1; fork B=0; #10 B=1; #20 A=0; join
#10 B=0; #10 A=1; B=1; end
endmodule
2. 根据下面的程序,画出产生的信号波形(8分)
module signal_gen1(d_out); output d_out; reg d_out; initial begin
d_out=0; #1 d_out=1; #2 d_out=0; #3 d_out=1; #4 d_out=0; end
endmodule
1. 试用verilog语言产生如下图所示的测试信号(12分)
clkin1in2051015202530354045ns
module signal_gen9(clk,in1,in2); output in1,in2,clk; reg in1,in2,clk; initial begin in1=0; in2=1; clk=0; end initial begin
#15 in1=1 #10 in1=0;