第一次测试题

英特尔FPGA脱产班周考试卷1(B卷)

一、单选题(每题2分,共11题) 

1. FPGA的可编程是主要基于什么结构

A. 查找表(LUT)

B. ROM可编程

C. PAL可编程

D. 与或阵列可编程

2. 下列的名字解释错误的是

A. CLB: Configurable Logic Block可配置逻辑模块

B. LUT: Look-Up Table查找表

C. RTL: Real Tri-State 三态寄存器(寄存器传输级)

D. ASIC : Application Specific Integrated Circuits 专用集成电路

3. 下列关于同步和异步复位描述正确的是

A. 同步复位不受时钟影响

B. 使用FPGA设计时芯片的异步复位和同步复位可随意替换使用

C. 同步复位需要在时钟沿来临的时候才会对整个系统进行复位

D. 同步复位最大的优点是, 数据通路可以不依赖于时钟而复位可用

4. 基于EDA软件的FPGA/CPLD设计流程为

A. 原理图/HDL文本输入-->功能仿真-->综合(分析综合)-->适配(布局布线)-->时序仿真-->编程下载-->测试。

B. 原理图/HDL文本输入-->时序仿真-->综合-->适配-->功能仿真-->编程下载-->测试。

C. 原理图/HDL文本输入-->功能仿真-->适配-->综合-->时序仿真-->编程下载-->测试。

D. 原理图/HDL文本输入-->功能仿真-->时序仿真-->综合-->适配-->编程下载-->测试。

5. 如果网线型变量说明后未使用,那么其缺省值为

A. 0

B. 1

C. X(未知无效,仅为占位符)

D. Z(高阻抗)

6. 以下代码描述的是( )

module test(Q,D,CLK)

input D,CLK;

output Q;

reg Q;

always @(posedge CLK)

begin Q <= D; end

endmodule

A. 基本D触发器

B. 锁存器

C. 加法器

D. 乘法器

7. 实现下列结果正确表达式为

A. assign out=sel?in1:in0

B. assign out=sel&&in1&&in0

C. assign out=sel||in1||in0

D. assign out=sel||in1&&in0

8. 在Verilog HDL的逻辑运算中,设A=8'b11010001,B=8'b00011001,则表达式“A&B”的结果为

A. 8'b00010001

B. 8'b11011001

C. 8'b11001000

D. 8'b00110111

9. 目前FPGA设计输入,即设计方法有多种,以下哪个不是开发FPGA的方法

A. 原理图式设计方法

B. VHDL语言描述设计方法

C. Verilog语言描述设计方法

D. 在非嵌入式开发中,利用纯C语言设计描述

10. 下列标识符中,不合法的标识符是

A. State0

B. 9moon

C. Not_Ack_0

D. signall

  1. 标识符必须以字母、下划线 “_” 、美元符号 “$” 开头
  2. 标识符其他部分可以说字母、下划线 “_” 、美元符号、数字的任意组合。

11. 关于阻塞赋值和非阻塞赋值描述正确的是

A. 设计组合逻辑电路时建议使用阻塞赋值

B. 设计时序电路时应尽量使用阻塞赋值方式

C. 可以在两个或者两个以上的always 过程中对同一变量赋值

D. 对同一个变量可以既进行阻塞赋值,又进行非阻塞赋值

阻塞赋值为:=

非阻塞赋值为:<=

二、多选题(每题2分,共4题)

1. 以下表示十进制155的是

A. 16'd155

B. 16'h9B(16进制16’b10011011)

C. 16'0233(8进制000010011011)

D. 16'b10011011

2. 请根据以下两条语句,变量A和B的值分别为
(1)reg [7:0] A; A = 2'hEF;(注意位宽只有2)所以A = 8’b0000_0001
(2) reg [7:0] B; B = 8'bz0;z为高阻抗所以前边全为z
 ① 8'b0000_0011  ② 8'he3  ③ 8'b1110_1111  ④ 8'bzzzz_zzz0

A. ①

B. ②

C. ③

D. ④

3. 在Verilog硬件描述语言中对运算符优先级描述正确的是

A. 合并运算符{}优先级最高(最低)

B. 条件判断符?:优先级低于逻辑运算符

C. 乘法运算符优先级高于&&逻辑与运算符

D. 算术运算符优先级最低(最高)

4. 用verilog实现异或逻辑功能,以下正确的是

A. C=A^B

B. C=A(~B) +(~A)B

C. C=AB

D. C=A+B

逻辑运算

与运算:全真为真,有假为假

或运算:全假为假,有真为真

非运算:真变假假变真

异或运算:相异为真,想同为假

同或运算:相同为真,相异为假

三、填空题(共8题,共16分)

1. (2分) 1. 数字电路一般包括    组合逻辑    电路和      时序逻辑      电路。

2. (2分) Verilog HDL常用两大数据类型:     线网类型        寄存器类型     

3. (2分) 如果ain=3'b011, bin=3'b110,则{ain,bin}为   6’b110_011       

4. (2分) 1. 在时序逻辑电路中一般使用   非阻塞赋值     赋值,在组合逻辑电路中一般使用   阻塞    赋值。

5. (2分) 1. 在Verilog编程中,有一个变量类型,相对与电路的导线可以将两个或多个信号连接到一起,这个变量类型是   线网类型        

6. (2分) 1. 在Quartus中,将硬件描述语言转换为一些由与、或、非,触发器, RAM等基本逻辑单元组成的逻辑网表这个过程是    综合/布网布线          

7. (2分) 1. FPGA的基本可编程逻辑单元是由    查找表           寄存器      组成的,查找表完成纯组合逻辑功能。

  • 可编程的I/O口
  • LAB(逻辑阵列块):16个LE(逻辑单元)1个LE由1个4输入的LVT(原理是查找表)(SRAM的一种)+可编程寄存器
  • M9K(嵌入式存储单元)
  • DSP(嵌入式乘法单元):用于复杂运算
  • PLL(锁相环):用于时钟的分频,时钟的倍频,时钟的相位调节和占空比调节
  • 可编程物理连线

8. (2分) a=5'b11001; b=3'b101;则c=a&b的结果为       5’00001       

四、问答题(共4题,共24分)

1. (6分) FPGA基于什么结构的可编程逻辑器件?其基本结构由哪几部分组成?

 查找表

  • 可编程的I/O
  • LAB(逻辑阵列块):16LE(逻辑单元)1LE14输入的LVT(原理是查找表)(SRAM的一种)+可编程寄存器
  • M9K(嵌入式存储单元)
  • DSP(嵌入式乘法单元):用于复杂运算
  • PLL(锁相环):用于时钟的分频,时钟的倍频,时钟的相位调节和占空比调节
  • 可编程物理连线

2. (6分) 简述if-else语句和case语句的区别?

 If..else语句特点:具有优先级。If不满足时,才执行else语句。Case语句特点:没有优先级。

一般类别少的用if..else,类别多用case

If..else语句基本上可以处理所有的复杂判定条件,但是在实际电路中占用更多的资源。所以如果可以用case语句的话尽量用case语句。

3. (6分) 简述查找表的原理与结构?

 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

  1. (6分) 结合您的理解,简述Verilog语句中阻塞赋值与非阻塞赋值的含义与区别,已经各自的适用的场景。

符号:

塞赋值语句(“=”)和非阻塞赋值语句("<=”)。

定义:

阻塞就是执行的时候在某个地方卡住了,等这个操作执行完在继续执行下面的语句。

非阻塞就是不管执行完没有,我不管执行的结果是什么,反正我继续下面的事情。

用法:
在时序逻辑电路中一般使用非阻塞赋值。

在组合逻辑电路中一般使用阻塞赋值。

在assign语句中必须使用阻塞赋值语句

参考答案

一、单选题

1. A 2. C 3. C 4. A 5. D 6. A 7. A 8. A 9. D 10. B 11. A

二、多选题

1. ABCD 2. AD 3. BC 4. AB

三、填空题

1.  组合逻辑   时序逻辑  2.  线网类型   寄存器类型   3.  6'b011110  4.  非阻塞   阻塞  5.  wire型  6.  综合  7.   查找表   寄存器  8.  5'b00001  

四、问答题

1.  FPGA是基于SRAM查找表的可编程结构。(1分)

PGA内部结构组成部分一般分为三部分:可编程逻辑块LAB、可编程1/0模块、可编程内部连线。(3分)

其中逻辑阵列块(Logic Array Block,也简称为LAB):每个LAB由16个LE(Logic Element)组成,每个LE由左边一个蓝色LUT和右边一个红色寄存器组成。(2分)

2.  If..else语句特点:具有优先级。If不满足时,才执行else语句。Case语句特点:没有优先级。

一般类别少的用if..else,类别多用case

If..else语句基本上可以处理所有的复杂判定条件,但是在实际电路中占用更多的资源。所以如果可以用case语句的话尽量用case语句。

3.  查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。目前 FPGA 中多使用4输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 16x1 的RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

4.  在Verilog中有两种类型的赋值语句:阻塞赋值语句(“=”)和非阻塞赋值语句("<=”)。正确地使用这两种赋值语句对于Verilog的设计和仿真非常重要。 Verilog语言中讲的阻塞赋值与非阻塞赋值,但从字面意思来看。

阻塞就是执行的时候在某个地方卡住了,等这个操作执行完在继续执行下面的语句。

非阻塞就是不管执行完没有,我不管执行的结果是什么,反正我继续下面的事情。

而Verilog中的阻塞赋值与非阻塞赋值正好也是这个意思。

阻塞与非阻塞语句的使用:

(1)在时序逻辑电路中一般使用非阻塞赋值。非阻塞赋值在块结束后才完成赋值操作,此赋值方式可以避免在仿真出现冒险和竞争现象。

(2)在组合逻辑电路中一般使用阻塞赋值。使用阻塞方式对一个变量进行赋值时,此变量的值在在赋值语句执行完后就立即改变。

(3)在assign语句中必须使用阻塞赋值语句。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值