大学MOOC FPGA原理与应用(北京信息职业技术学院)1207051814 最新慕课完整章节测试答案
1认识可编程逻辑器件
第1周作业
1、单选题:
在SPLD的结构图中,在阵列横线和竖线的交叉点上画“X”,表示横线与竖线是()。
选项:
A: 未连接
B: 可编程连通
C: 固定连接
D: 悬空
答案: 【 可编程连通】
2、单选题:
FPGA是指( )。
选项:
A: 可编程逻辑阵列
B: 复杂可编程逻辑器件
C: 只读存储器
D: 现场可编程门阵列
答案: 【 现场可编程门阵列】
3、单选题:
主流FPGA都采用了基于( )工艺的( )结构。
选项:
A: SRAM,查找表
B: 熔丝,与或阵列
C: flash,查找表
D: 反熔丝,与或阵列
答案: 【 SRAM,查找表】
4、单选题:
EDA的中文含义是( )。
选项:
A: 计算机辅助计算
B: 计算机辅助制造
C: 计算机辅助教学
D: 电子设计自动化
答案: 【 电子设计自动化】
5、单选题:
下列那个流程是基于EDA软件的FPGA / CPLD一般设计流程( )。
选项:
A: 设计输入->逻辑设计->逻辑综合->功能仿真->布局布线->时序仿真->编程下载
B: 逻辑设计->设计输入->逻辑综合->功能仿真->布局布线->时序仿真->编程下载
C: 逻辑设计->设计输入->逻辑综合->时序仿真->布局布线->功能仿真->编程下载
D: 逻辑设计->设计输入->逻辑综合->布局布线->功能仿真->时序仿真->编程下载
答案: 【 逻辑设计->设计输入->逻辑综合->功能仿真->布局布线->时序仿真->编程下载】
6、多选题:
下列关于查找表LUT的说法正确的是( )。
选项:
A: LUT本质就是一个RAM,保存了逻辑电路的所有可能结果。
B: 一个4输入的查找表包含8个存储单元。
C: 查找表是FPGA实现逻辑函数的基本逻辑单元,由若干个存储单元和数据选择器构成。
D: FPGA的基本逻辑块内包含LUT、数据选择器和触发器,只能实现组合逻辑功能。
答案: 【 LUT本质就是一个RAM,保存了逻辑电路的所有可能结果。;
查找表是FPGA实现逻辑函数的基本逻辑单元,由若干个存储单元和数据选择器构成。】
7、多选题:
下列哪些器件属于非易失性器件( )。
选项:
A: FPGA
B: PROM
C: CPLD
D: flash
答案: 【 PROM;
CPLD;
flash】
8、判断题:
CPLD和FPGA实现逻辑函数的原理是相同的。
选项:
A: 正确
B: 错误
答案: 【 错误】
9、判断题:
FPGA的基本组成包括可配置的逻辑块、可编程的I/O块、可编程布线资源等。
选项:
A: 正确
B: 错误
答案: 【 正确】
10、判断题:
由于包含上千个可编程逻辑资源,一片可编程逻辑器件可以实现多片通用型逻辑器件才能实现的功能,改变了传统数字系统的设计方法。
选项:
A: 正确
B: 错误
答案: 【 正确】
11、填空题:
可编程逻辑器件从集成密度上可分为 和 。
答案: 【 低密度 高密度】
12、填空题:
电路设计人员与EDA工具之间的语言称为 。
答案: 【 HDL##%_YZPRLFH_%##硬件描述语言】
13、填空题:
包含延时信息的仿真称为 仿真。
答案: 【 时序】
14、填空题:
现场可编程逻辑阵列FPGA技术由 公司首创。
答案: 【 Xilinx##%_YZPRLFH_%##赛灵思##%_YZPRLFH_%##xilinx】
2 FPGA开发平台的使用
第2周作业
1、单选题:
Quartus II是( )公司的用于开发可编程逻辑器件的软件。
选项:
A: XILINX
B: Altera
C: LATTICE
D: ATMEL
答案: 【 Altera】
2、单选题:
在Quartus II软件中,下面命名的工程名字哪个是不合法的( )。
选项:
A: 12_test
B: test_12
C: test
D: test12
答案: 【 12_test】
3、单选题:
在Quartus II集成环境下为图形文件产生一个元件符号的主要作用是( )。
选项:
A: 综合
B: 编译
C: 仿真
D: 被高层次电路设计调用
答案: 【 被高层次电路设计调用】
4、单选题:
Quartus II软件把逻辑综合、布局布线等软件集成在一起,称为( )工具。
选项:
A: 编辑
B: 综合
C: 编程
D: 编译
答案: 【 编译】
5、单选题:
在线调试状态下,选择将配置数据装入FPGA中的下载方式应为( )。
选项:
A: AS
B: PS
C: JTAG
D: AS 或 JTAG
答案: 【 JTAG】
6、单选题:
当程序调试完成后,应选择( )下载方式将程序配置到FPGA芯片中。
选项:
A: AS
B: PS
C: JTAG
D: AS 或 JTAG
答案: 【 AS 或 JTAG】
7、单选题:
应用Quartus II自带仿真工具进行仿真,需要创建( )文件,用于编写测试激励信号。
选项:
A: Block diagram / Schematic File
B: University Program VWF
C: Verilog HDL File
D: VHDL File
答案: 【 University Program VWF】
8、多选题:
应用Quartus II 软件开发FPGA器件,生成的编程文件包括下列哪些文件( )。
选项:
A: .sof
B: .qpf
C: .bdf
D: .pof
答案: 【 .sof;
.pof】
9、多选题:
Analysis & Synthesis 主要完成以下哪些任务( )。
选项:
A: 进行布局布线
B: 对设计文件进行语法检查、设计规则检查
C: 把原理图或HDL代码翻译成逻辑表达式
D: 用目标芯片中的逻辑元件来实现逻辑表达式
答案: 【 对设计文件进行语法检查、设计规则检查;
把原理图或HDL代码翻译成逻辑表达式;
用目标芯片中的逻辑元件来实现逻辑表达式】
随堂测验
1、单选题:
3.如果要采用原理图描述的方式进行设计输入,应创建( )文件。
选项:
A: Block Diagram/Schematic File
B: State Machine File
C: Verilog HDL File
D: VHDL File
答案: 【 Block Diagram/Schematic File 】
2、单选题:
4.常见的基本逻辑函数在Quartus II 自带的( )库中。
选项:
A: megafunctions
B: others
C: primitives
D: 无法确定
答案: 【 primitives】
3、多选题:
2.下面对Quartus II工程命名正确的是( )。
选项:
A: nand_2
B: 2nand
C: nand_2_lx
D: nand_test
答案: 【 nand_2;
nand_2_lx;
nand_test】
4、判断题:
1.应用Quartus II软件创建工程,为方便查找,工程可以直接存放在根目录下。
选项:
A: 正确
B: 错误
答案: 【 错误】
3 Verilog HDL语言基础
小测验
1、判断题:
数据流建模使用门级原语而不是表达式来描述设计。
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
应用连续赋值语句assign赋值时,要求赋值符号的两边都必须是wire线网型变量。
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
assign x=y & z; 只要y或z的值发生变化,表达式就立刻重新计算,并把计算结果赋值给x。
选项:
A: 正确
B: 错误
答案: 【 正确】
小测验:模块实例引用语句
1、多选题:
Adder_dataflow U0_FA(S[0],C0,A[0],B[0],C_1);对这句话理解正确的是( )。
选项:
A: 这是一个模块实例引用语句。
B: 被引用的子模块名为Adder_dataflow。
C: 子模块在父模块中的引用名为U0_FA。
D: 子模块和父模块之间的端口信号的关联方式是位置关联。
答案: 【 这是一个模块实例引用语句。;
被引用的子模块名为Adder_dataflow。;
子模块在父模块中的引用名为U0_FA。;
子模块和父模块之间的端口信号的关联方式是位置关联。】
2、多选题:
fulladd fa0( .sum(sum[0]), .cout(c1), .a(a[0]), .b(b[0]), .cin(cin));对这句话理解正确的是( )。
选项:
A: 这是一个元件实例引用语句。
B: 子模块名为fulladd,在父模块中的引用名为fa0。
C: 子模块和父模块的端口连接关系采用了名称关联的方式。
D: sum是子模块的端口名,sum[0]是父模块中的信号名,两个信号连接到一起。
答案: 【 这是一个元件实例引用语句。;
子模块名为fulladd,在父模块中的引用名为fa0。;
子模块和父模块的端口连接关系采用了名称关联的方式。;
sum是子模块的端口名,sum[0]是父模块中的信号名,两个信号连接到一起。】
3、判断题:
当一个模块被其它模块实例引用时,就形成了层次化结构。被引用的模块是父模块。
选项:
A: 正确
B: 错误
答案: 【 错误】
4、判断题:
模块只能以实例引用的方式嵌套在其它设计模块中。
选项:
A: 正确
B: 错误
答案: 【 正确】
数据类型小测验
1、单选题:
一个常数是3位二进制数101,在Verilog语言中表示为( )。
选项:
A: 3'h101
B: 3'o101
C: 3'd101
D: 3‘b101
答案: 【 3‘b101】
2、单选题:
整数型常量12’habc表示的意思是( )。
选项:
A: 该常量的二进制位宽是12,用十六进制数表示为abc
B: 该常量的二进制位宽是3,用二进制数表示为abc
C: 该常量的二进制位宽是12,用八进制数表示为abc
D: 该常量的二进制位宽是3,用十六进制数表示为abc
答案: 【 该常量的二进制位宽是12,用十六进制数表示为abc】
3、多选题:
parameter DATA_W=16;wire [DATA_W-1:0] PWdata,PRdata;对这两句话理解正确的是( )。
选项:
A: 声明了两个wire线网型变量PWdata、PRdata。
B: PWdata和PRdata都是wire线网型变量,位宽是17.
C: 声明了一个参数常量DATA_W,代表16。
D: PWdata和PRdata的位宽都是16,最高位标号是15,最低位的标号是0.
答案: 【 声明了两个wire线网型变量PWdata、PRdata。;
声明了一个参数常量DATA_W,代表16。;
PWdata和PRdata的位宽都是16,最高位标号是15,最低位的标号是0.】
4、多选题:
reg [15:0] music [19:0];这句话表示为( )。
选项:
A: 声明了一个存储器变量music。
B: music变量由16个reg型变量组成。
C: music变量由20个reg型变量组成。
D: music的每一个reg型变量都是16位。
答案: 【 声明了一个存储器变量music。;
music变量由20个reg型变量组成。;
music的每一个reg型变量都是16位。】
5、判断题:
用parameter声明的参数通常出现在module内部,可以多次对参数赋值。
选项:
A: 正确
B: 错误
答案: 【 错误】
6、判断题:
reg型变量只能在initial或always语句内部被赋值。
选项:
A: 正确
B: 错误
答案: 【 正确】
7、判断题:
reg[3:0] cnt;//这句话表示定义了一个4位的reg型变量cnt,等效于4个变量:cnt[3]、cnt[2]、cnt[1]、cnt[0]。
选项:
A: 正确
B: 错误
答案: 【 正确】
第3周作业
1、单选题:
根据下图所示的4位并行移位寄存器的IO引脚,关于该模块的定义代码( )是正确的。
![]()
选项:
A: module shifit_reg4;input reg_in,clock;output reg_out;... ...endmodule
B: module shifit_reg4;input [3:0] reg_in,clock;output[3:0] reg_out;... ...endmodule
C: module shifit_reg4(reg_in,clock,reg_out)input [3:0] reg_in;input clock;output[3:0] reg_out;... ...endmodule
D: module shifit_reg4(reg_in,clock,reg_out);input [3:0] reg_in;input clock;output[3:0] reg_out;... ...endmodule
答案: 【 module shifit_reg4(reg_in,clock,reg_out);input [3:0] reg_in;input clock;output[3:0] reg_out;... ...endmodule】
2、单选题:
接上题,编写对这个4位并行移位寄存器的仿真激励模块,那么对这个设计模块进行实例引用,实例名为sr1,按位置关联正确的是( )。module stimulus;reg [3:] REG_IN;reg CLK;wire REG_OUT;......
选项:
A: shift_reg4 sr1(REG_IN,CLK,REG_OUT);
B: shift_reg4 sr1(reg_in,clock,reg_out);
C: shift_reg4 sr1(REG_OUT,CLK,REG_IN);
D: shift_reg4 sr1(reg_out,reg_in,clock);
答案: 【 shift_reg4 sr1(REG_IN,CLK,REG_OUT);】
3、单选题:
接上题,编写对这个4位并行移位寄存器的仿真激励模块,那么对这个设计模块进行实例引用,实例名为sr1,按名称关联正确的是( )。module stimulus;reg [3:] REG_IN;reg CLK;wire REG_OUT;......
选项:
A: shift_reg4 sr1( .REG_IN(reg_in), .CLK(clock), .REG_OUT(reg_out) );
B: shift_reg4 sr1( .reg_in(REG_IN), .reg_out(REG_OUT), .clock(CLK) );
C: shift_reg4 sr1( .REG_IN(reg_in), .CLOCK(clk), .REG_OUT(reg_out) );
D: shift_reg4 sr1( .reg_in(reg_in), .clk(clock), .reg_out(reg_out) );
答案: 【 shift_reg4 sr1( .reg_in(REG_IN), .reg_out(REG_OUT), .clock(CLK) );】
4、单选题:
在代码中声明了端口,例如:input a,b; 则a和b的数据类型是( )。
选项:
A: reg寄存器型
B: memory存储器型
C: wire线网型
D: input型
答案: 【 wire线网型】
5、单选题:
选用下列( )整数型常量形式表示二进制数101。
选项:
A: 3'd101
B: 3’b101
C: 3' b101
D: 101
答案: 【 3’b101】
6、单选题:
wire [7:0] Databus;//关于这个变量的声明说法正确的是( )。
选项:
A: 声明了一个名为Databus的wire型变量,是一个7位向量,它的最低位表示为Databus[0]。
B: 声明了一个名为Databus的wire型变量,是一个8位向量,它的低4位表示为Databus[4:1]。
C: 声明了一个名为Databus的wire型变量,是一个8位向量,它的最高位表示为Databus[7]。
D: 声明了一个名为Databus的wire型变量,是一个7位向量,它的最高位表示为Databus[7]。
答案: 【 声明了一个名为Databus的wire型变量,是一个8位向量,它的最高位表示为Databus[7]。】
7、单选题:
实例引用门级原语nand完成二输入与非门设计,其中连接其输入端口的信号为a和b,连接其输出端口的信号为f,以下正确的表述为( )。
选项:
A: nand2 u1(a,b,f);
B: nand u1(a,b,f);
C: nand2 u1(f,a,b);
D: nand u1(f,a,b);
答案: 【 nand u1(f,a,b);】
8、单选题:
( )用来持续监视一个或多个信号发生改变的情况。
选项:
A: $display
B: $monitor
C: $monitoron
D: $monitoroff
答案: 【 $monitor】
9、单选题:
应用( )系统任务使仿真暂停执行,使设计者可以调试。
选项:
A: $monitor
B: $stop
C: $pause
D: $finish
答案: 【 $stop】
10、单选题:
除了endmodule语句外,Veriog HDL语言的语句和数据定义的最后必须有( )符号。
选项:
A: ,
B: .
C: :
D: ;
答案: 【 ;】
11、多选题:
下面( )是Verilog HDL模块的必须组成部分。
选项:
A: module 和 endmodule
B: 模块名
C: 端口列表和端口声明
D: 模块功能描述
答案: 【 module 和 endmodule;
模块名;
模块功能描述】
12、多选题:
关于Verilog语言的数据类型的说法正确的是( )。
选项:
A: wire线网型表示硬件电路元件之间的物理连线。
B: 当没有明确模块的输入、输出变量的数据类型时,默认其为位宽为1位的reg型变量。
C: reg型变量表示一个抽象的数据存储单元,只能在initial、always块内部被赋值。
D: 存储器变量是由reg变量组成的数组。
答案: 【 wire线网型表示硬件电路元件之间的物理连线。;
reg型变量表示一个抽象的数据存储单元,只能在initial、always块内部被赋值。;
存储器变量是由reg变量组成的数组。】
13、多选题:
关于下面这段代码说法正确的是( )。`timescale 1ns/1psmodlule full_add_test();reg A,B,Cin;wire cout,sum;......full_add i1 ( .A(A), .B(B), .Cin(Cin), .cout(cout), .sum(sum));......
选项:
A: 指定了仿真时间单位1ps,时间精度为1ns
B: 模块名为full_add_test
C: 实例引用了一个名为i1的模块
D: 这是一段用于仿真激励的代码
答案: 【 模块名为full_add_test;
这是一段用于仿真激励的代码】
14、多选题:
( )是Verilog HDL语言规定的逻辑值,用来表示数字逻辑电路的逻辑状态。
选项:
A: 1 逻辑高电平
B: 0 逻辑低电平
C: x/X 不确定的值
D: z/Z 高阻态
答案: 【 1 逻辑高电平;
0 逻辑低电平;
x/X 不确定的值;
z/Z 高阻态】
15、判断题:
模块的端口类型包括input输入端口和output输出端口。
选项:
A: 正确
B: 错误
答案: 【 错误】
16、判断题:
自底向上的设计方法是指将一个复杂的系统设计分割成多个简单的功能模块单元,对这些小模块设计验证后,再调用它们嵌套在更大的功能单元模块进行设计验证,最后组合为一个完整的电路系统。
选项:
A: 正确
B: 错误
答案: 【 错误】
17、判断题:
在Verilog语言中,12是用十进制数表示的整数型常量。
选项:
A: 正确
B: 错误
答案: 【 正确】
18、判断题:
在层次化设计中,将已设计存在的Verilog HDL模块作为当前电路模块设计的一个组件,这种方法称为实例引用。
选项:
A: 正确
B: 错误
答案: 【 正确】
第4周作业
1、单选题:
由连续赋值语句assign赋值的变量必须定位为( )数据类型。
选项:
A: wire
B: reg
C: memory
D: integer
答案: 【 wire】
2、单选题:
逻辑非运算符用于对操作数取反,是( )运算符。
选项:
A: 单目运算符
B: 双目运算符
C: 三目运算符
D: 多目运算符
答案: 【 单目运算符】
3、单选题:
阅读、分析这段代码:module INST2( yout, addr);output [7:0] yout;input [2:0] addr;assign yout[0]=((~addr[2]) & (~addr[1]) & (~addr[0]) );assign yout[1]=((~addr[2]) & (~addr[1]) & (addr[0]) );assign yout[2]=((~addr[2]) & (addr[1]) & (~addr[0]) );assign yout[3]=((~addr[2]) & (addr[1]) & (addr[0]) );assign yout[4]=((addr[2]) & (~addr[1]) & (~addr[0]) );assign yout[5]=((addr[2]) & (~addr[1]) & (addr[0]) );assign yout[6]=((addr[2]) & (addr[1]) & (~addr[0]) );assign yout[7]=((addr[2]) & (addr[1]) & (addr[0]) );endmodule可以判断这个模块的功能是( )。
选项:
A: 8选1多路选择器
B: 3-8译码器
C: 8-3编码器
D: 8位数据比较器
答案: 【 3-8译码器】
4、单选题:
10%3”的结果是( )。
选项:
A: 3
B: 2
C: 1
D: 0
答案: 【 1】
5、单选题:
若A=8’b11001010,B=8’b00001111,则A&B=( )。
选项:
A: 8’b00110101
B: 8’b00001010
C: 8’b11001111
D: 8’b11000101
答案: 【 8’b00001010】
6、单选题:
逻辑相等运算符“==“进行比较时,对两个操作数逐位比较,某些位是x或z,比较结果为x;条件全等运算符”===“进行比较时,两个操作数必须完全一致结果才为1。若A=8’b1100010x,B=8’b1100010x,则A==B和A===B的运算结果分别为( )。
选项:
A: 0,x
B: x,0
C: 1,x
D: x,1
答案: 【 x,1】
7、单选题:
如果变量A=4’b1101,则A>>2执行的结果是( )。
选项:
A: 4‘b0111
B: 4’b0011
C: 4'b0100
D: 4'b0111
答案: 【 4’b0011】
8、单选题:
reg [3:0] m;m=4'b1010;则:{2{m}}的二进制值是( )。
选项:
A: 8’b10101010
B: 8'b00101010
C: 8'b10100010
D: 6'b001010
答案: 【 8’b10101010】
9、单选题:
假设m=4‘b0101,执行^m的结果是( )。
选项:
A: 1‘b1
B: 1’b0
C: --
D: --
答案: 【 1’b0】
10、单选题:
编写三人表决器设计,根据少数服从多数原则,以下代码设计合理的是( )。注:1-赞成/通过 0-反对/否决
选项:
A: assign result=d0+d1+d2; assign u=(result>=2)?1’b1:1’b0;
B: assign result=d0+d1+d2; assign u=(result>=2)?1’b0:1’b1;
C: assign u=((d0+d1+d2)>2)?1’b0:1’b1;
D: assign u=((d0+d1+d2)>2)?1’b1:1’b0;
答案: 【 assign result=d0+d1+d2; assign u=(result>=2)?1’b1:1’b0; 】
11、多选题:
下列( )是并行执行的。
选项:
A: 连续赋值语句
B: initial块语句
C: always块语句
D: 块语句中begin。。。end之间的语句
答案: 【 连续赋值语句;
initial块语句;
always块语句】
12、多选题:
关于连续赋值语句的说法正确的是( )。
选项:
A: assign语句一般用来描述组合逻辑电路。
B: 这里的“连续”是指等号右端的任一信号发生变化,该语句立即重新计算并刷新赋值结果。
C: 连续赋值语句应在过程块内使用。
D: assign语句是数据流建模常用语句。
答案: 【 assign语句一般用来描述组合逻辑电路。;
这里的“连续”是指等号右端的任一信号发生变化,该语句立即重新计算并刷新赋值结果。;
assign语句是数据流建模常用语句。】
13、多选题:
关于逻辑运算符、按位运算符和缩位运算符的说法,正确的是( )。
选项:
A: 缩减运算符执行逻辑操作,运算的结果是一个逻辑值:1(真)或0(假) 或X(不确定)。
B: 按位运算符是两个操作数按位运算,运算结果的位宽由操作数的位宽决定。
C: 逻辑运算符是对一个操作数的所有位逐位从左到右进行运算。
D: 由于使用的符号容易混淆,区分这三种运算符的重点在于分清操作数的数目和计算规则。
答案: 【 按位运算符是两个操作数按位运算,运算结果的位宽由操作数的位宽决定。;
由于使用的符号容易混淆,区分这三种运算符的重点在于分清操作数的数目和计算规则。】
14、多选题:
应用assign语句设计一个半加器,代码如下:module h_adder(sum,co,a,b);input a,b;output sum,co;assign sum= ;assign co= ;endmodule下面选项描述正确的是( )。
选项:
A: a^b
B: a&b
C: a|b
D: a^~b
答案: 【 a^b ;
a&b 】
15、判断题:
由于Verilog语言设置了运算符的优先级,在书写表达式时不需要使用小括号分开表达式。
选项:
A: 正确
B: 错误
答案: 【 错误】
16、判断题:
+或-作为单目运算符时,表示一个操作数的正、负。与作为双目运算符执行加、减相比,优先级要低。
选项:
A: 正确
B: 错误
答案: 【 错误】
17、判断题:
数据流建模提供了用逻辑表达式描述电路的一种方式,不必考虑电路的组成以及元件之间的连接。
选项:
A: 正确
B: 错误
答案: 【 正确】
18、判断题:
表达式有操作数和运算符构成,根据运算符的含义计算出一个结果值。表达式中不包含等号。
选项:
A: 正确
B: 错误
答案: 【 正确】
