FPGA/IC秋招面试题 1(解析版)

    分享个人觉得遇到还不错的题,后续有会继续补充。。。

    以下题目均来自网络平台,用于学习交流如有侵权立马删除!!!

1. Verilog语言中,下面哪些语句不可被综合()

A. #delay语句             B. initial语句
C. always语句            D. 用generate语句产生的代码

考察可综合和不可综合语句。

答案AB, 可综合是指通过语句描述出对应的电路,所有综合工具都不支持的结构 time,defparam,$finish,fork,join,initial,delays,UDP,wait

容易认为不可综合的:for,generate,function(函数),在IP核中有使用

2.`timescale 1ns/100ps,下面正确的是()
A. 时间单位是ps               B. 时间单位是100ps
C. 时间精度是1ns            D. 时间精度是100ps

考察:时间尺度预编译指令timescale。

答案D, 前面是单位, 后面是精度

3. 假设输入信号X位宽为12bit,A位宽为6bit,B位宽为17bit,实现 Y=X*A+B 的功能,并要求不损失精度,那么输出信号Y的位宽应该不小于()
A. 29bit           B. 24bit
C. 19bit           D. 15bit

考察数据位宽的合理分配。

答案C, 注意这里不损失精度的含义是指数据没有溢出,需要使用足够的位数来存储运算的结果。X位宽为12bit,A位宽为6bit,假设A的值为最大值(所有位都为1)。X和A相乘需要将X的值左移5位,得到乘积的结果为18位,加上17bit的B(假设全为1),故至少需要19bit来保存结果。

4. 以下关于Latch与Flip_flop特性描述正确的是()

A. Latch与Flip_flop, 都属于时序逻辑
B. Flip_flop只会在时钟触发沿采样当前输入, 产生输出
C. Latch无时钟输入
D. Latch输出可能产生毛刺

考察:锁存器和寄存器特性

答案A、B、D,

Latch: 锁存器, 是一种对脉冲电平敏感的存储单元电路, 它们可以在特定输入脉冲电平作用下改变状态。锁存, 就是把信号暂存以维持某种电平状态。
 Flip-flop: 触发器, 是时钟边沿触发, 可存储1bit数据, 是register的基本组成单位。
A.门电路是构建组合逻辑电路的基础, 而锁存器和触发器是构建时序逻辑电路的基础。
B.锁存器能根据输入端把结果自行保持;触发器是指由时钟边沿触发的存储器单元, 同步设计, 不容易受毛刺的影响。
D.锁存器是电平触发, 非同步设计, 受布线延迟影响较大, 很难保证输出没有毛刺产生

5. 假设一个3bit计数器(计数范围为0~6)工作在38M时钟域下,要把此计数器的值传递到另一个异步100M时钟域,以下不正确的是()
A. 使用异步FIFO
B. 锁存+握手信号
C. 使用格雷码
D. 使用DMUX电路解析

考察处理跨时钟域时数据传递的常用方法:握手、打两拍、转为独热码或格雷码、异步FIFO

答案:C
 A.异步FIFO:在读写时钟不相同的情况下,进行数据处理。
 B.握手: 在数字电路中(如计算机),设备甲和设备乙交换信息(通讯)双方采用某个通讯规范(协议)来交换数据,它们的联络过程就叫“握手”,用来联络的信号就叫“握手信号“。
 C. 格雷码: 在一组数的编码中, 若任意两个相邻的代码只有一位二进制数不同的数。本题的计数器计数范围为0~6, 当数值6跨越至0时变换了2bit, 因此不能形成闭环,所以该题不能使用格雷码进行跨时钟域。如果计数范围为0~7则可以形成闭环( 直接使用格雷码做跨时钟域需要2n个连续的计数才可以)

7. 二输入与非门当输入变化为()时,输出可能有竞争冒险?

A.00→10             B.10→00
C.01→10             D.11→01

答案:C

2输入我们假设为AB, AB变化过程分析如下:
二输入与非情况如下所示:

A B ~(A&B)
0 0 1
0 1 1
1 0 1
1 1 0

A: 00→10变化的过程中, 只有A发生变化
如果A正常变化为1, A为1, B为0, 则输出为1。
如果A变化有延迟则会出现, A为0, B为0, 则输出为1。
B: 10→00变化的过程中, 只有A发生变化
如果A正常变化为0, A为0, B为0, 则输出为1。
如果A变化有延迟则会出现, A为1, B为0, 则输出为1。
C: 01→10变化过程中, A和B都发生变化
如果AB均正常变化, A的值为1, B的值为0, 则输出为1。
如果A, B在变化过程中有延迟, 就会出现
01、 00、 10、 11四种状态, 输出本应该为1,
但是以上情况会有输出为0的情况, 输出冒险。
D: 11→01变化过程中只有A发生变化
如果A正常变化, 则A的值为0, B的值为1, 输出结果为1。
如果A变化过程中有延时会出现
11、 01两种状态, 不会有中间态产生。

7.下列关于FIFO的描述正确的是()
A. 外部可以直接操作FIFO的读写地址
B. FIFO可以分为同步FIFO和异步FIFO
C. 空信号是在写时钟域产生的, 满信号是在读时钟域产生的
D. FIFO是先进先出的存储器

考察FIFO功能
答案:B、D
A.FIFO与普通的存储器的区别是没有外部读写地址, 用起来很方便, 但是缺点是只能顺序写入和读出, 数据地址由内部写指针自动加1 完成
B.FIFO按工作时钟域的不同分为: 同步FIFO和异步FIFO, 同步FIFO的读写时钟为同一时钟,FIFO内部所有逻辑都是同步逻辑, 常用于数据缓冲; 异步FIFO读写时钟为异步时钟,FIFO内部的读写逻辑需要异步处理, 常用于跨时钟域交互。
C.空信号是在读时钟域产生的; 满信号是在写时钟域产生的。

8. 状态机有冗余状态时,必须有default ()

考察状态机工作条件
答案:对
状态机复位之后每个时刻都处于某个明确的状态。
如果one-hot或者binary状态没用满, 甚至就算用满, 也需要一个default状态,用来保证预期之外的错误状态转移( 比如亚稳态) 时, 能回到一个稳定已知的状态。

9. 无符号数二进制除法1110111B/1001B 的结果()

A. 商: 1101B, 余数: 110B        B. 商: 110B, 余数: 110B
C. 商: 1101B, 余数: 10B          D. 商: 101B, 余数: 10B

考察码制运算

答案:C,  法一 如下图,法二转为十进制在除:1110111B→119D    1001B→9D     商13D, 余数2D

10.在verilog中执行以下代码,assign din[31:0]=32'hFF00ABC4; assign dout[31:0]=(din<<2)>>4, 最后dout的值为多少 ()
A. 32'h03C02AF1
B. 32'h0FC02AF1
C. 32'h00FF00AB
D. 32'hFFFF00AB

考察数据移位

答案: B, 不能单纯的认为左移两位, 右移四位的实质为右移两位。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小源8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值