分享个人觉得遇到还不错的题,后续有会继续补充。。。
以下题目均来自网络平台,用于学习交流如有侵权立马删除!!!
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, 不能单纯的认为左移两位, 右移四位的实质为右移两位。