前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA、数字IC系列(1)——乐鑫科技2021数字IC提前批笔试(上)

FPGA、数字IC系列(1)——乐鑫科技2021数字IC提前批笔试(上)

作者头像
FPGA探索者
发布2021-03-15 10:25:51
1K0
发布2021-03-15 10:25:51
举报
文章被收录于专栏:FPGA探索者

整理乐鑫科技2021届招聘的数字IC提前批笔试题,并做了部分答案和解析,有问题的地方欢迎一起探讨。

一.单选题

1.关于跨时钟域电路的设计,以下说法正确的是:

A: 信号经两级D触发器同步后即可进行跨时钟域传递

B: 跨时钟域电路存在亚稳态风险,最好避免使用

C: 跨时钟域电路中一定存在亚稳态

D: 采用单一时钟的电路也可能产生亚稳态

答案:B 或 D(答案暂不确定)

解析:

4 种方法跨时钟域处理方法

(1)打两拍,两级触发器同步——单bit数据跨时钟域处理,适用于慢时钟域数据到快时钟域;

(2)异步双口RAM(异步FIFO可以实现同样效果)——多bit数据跨时钟域处理;

(3)格雷码转换;

(4)加握手信号。

A:不一定,跨时钟域时一般可以使用两级D触发器对信号“打两拍”,有时需要打多拍,但是并不能按照A的说法去说。(注:两级并不能完全消除亚稳态危害,但是提高了可靠性,减少其发生概率。总的来讲,就是一级寄存器发生亚稳态的概率很大,三级及以上改善不大。)

B:亚稳态出现场景:异步信号检测、跨时钟域信号传输以及复位电路,最好避免使用,但多数情况下无法避免;

C:概率问题,可能出现,并非一定。

D:只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。亚稳态产生原因是建立时间setup或保持时间hold不满足,单路时钟也有可能不满足,此处有争议。

2.若要将异或非门当作反相器(非门)使用,则输入端A B端的连接方式是()

A:A或B中有一个接“0”

B:A和B并联使用

C:A或B中有一个接"1”

D:不能实现

答案:A

解析:1与0异或非为0,0与0异或非为1,有一个接0后相当于非门;

1与1异或非为1,0与1异或非为0,有一个接1后相当于寄存器;

3.以下代码综合出来的D触发器的D端逻辑表达式为:

always @( posedge clk or negedge rst_n)

if(~rst n)

q<= 1'b0;

else if(set)

q<= 1'b1;

else if(wr)

q<= wdata;

A: ~set & (we & wdata) | q

B: set | (wr | wdata) & q

C: set | wr & wdata | ~wr & q

D: set & (~wr & q) | wr & wdata & (~set)

答案:C

4.ModuleA/ModuleB用的是同个Clock, Clock频率80MHz。ModuleA和ModuleB同时启动,ModuleA产生如下周期性的burst数据给ModuleB,一共产生8次burst. burst rate : 1280 Mbit/s,burst持续时间1us。burst内部速率均匀,burst周期5us,余下的4us内没有数据

ModuleB收到启动信号后,需要花10us做初始化,所以先把module A的数据缓存在ModuleB内部的同步FIFO中,同步FIFO位宽32bits,初始化结束后,ModuleB以640 Mbit/s的均匀速度从FIFO中读取数据。在满足功能需求的前提下,为了节省电路面积,要求FIFO size越小越好,以下四个选项的FIFO深度,选项()的FIFO深度符合要求:

A: 128

B: 64

C: 96

D: 160

答案:A

解析:考虑最大数据情况,在ModuleB启动的10us内,ModuleA一直在传输数据,一共2us有效数据,需要存储 1280Mbit/s * 2us = 2560 bit;在第11us,ModuleA传输数据 1280Mbit/s * 1us = 1280 bit,ModuleB读取 640 Mbit/s * 1us = 640 bit,需要存储 1280 - 640 = 640 bit,此时共需存储 2560 + 640 = 3200 bit。

考虑读取,前15us共写入 3 * 1280=3840,读取 5*640=3200,需要存储640。

综合考虑,最大需要存3200bit,深度需要 3200 / 32 = 100,选A的128较为合适。

5.欲产生序列信号11010111,则至少需要()级触发器

A: 3

B: 4

C: 2

D: 5

答案:A

解析:8位序列,2^3^=8。

二:多选题

1.以下方法哪些是进行面积优化( )。

A: 串行化

B: 资源共享

C: 流水线设计

D: 寄存器配平

E: 逻辑优化

F: 关键路径优化

答案:ABE

解析:

面积优化,提高资源利用率以降低功耗要求:串行化,资源共享,逻辑优化;

速度优化,提高运行速度:流水线设计,寄存器配平,关键路径优化。

2.下面哪些属于动态验证范畴( ).

A: 形式验证

B: Modelsim仿真

C: 后仿

D: STA

答案:BC

解析:

A,形式验证是一种静态的验证手段,它根据电路结构静态地判断两个设计在功能上是否等价,常用来判断一个设计在修改前和修改后其功能是否保持一致。它运行时无须测试向量,但是必须有一个参照设计和一个待验证的设计;

B,Modelsim仿真中既可以功能仿真(静态),也可以时序仿真(动态),时序仿真时利用网表文件”.vo”和延时文件”.sdo”;

C,后仿,时序仿真加入布局布线的连线延时,属于动态时序分析;

D,Static Timing Analysis,静态时序分析;

前仿是针对RTL的功能验证,

后仿是针对是综合后(加入约束,延时等信息)的网表文件,在前仿的基础上加入了延时信息的功能仿真,同时验证了设计的时序以及功能都正确。

3.在异步设计中的对跨时钟处理的信号,功能验证时一般需要考虑以下哪些因素()

A: 信号变化的最小宽度

B: 信号高电平有效还是低电平有效

C: 时钟频率

D: 相位和抖动

答案:ABC

解析:相位和抖动是考虑时序仿真所用,其他都是正常的功能仿真时要考虑的,比如在Modelsim的功能仿真(前仿)时,TestBench需要考虑ABC内容。

4.可综合的verilog语法包括( )

A: for

B: wait

C: assign

D: initial

E: time

F: always

G: generate

答案:ACFG

解析:无。

5.在高速的系统设计中,下列哪种优化方案的可以提高系统的工作频率()

A:树型结构

B:迟置信号后移

C:流水线

D:资源共享

答案:ABC

解析:D是资源优化,树形结构、迟置信号后移、流水线均能提高系统工作频率。

三.填空题

1.assign重写一段代码,此题暂时略过。

2.将2004个叫1"异或起来的结果为(0)。

解析:偶数个1异或为0.

3.用2048x12的ROM芯片,最多能实现()个输入 ()个 输出的组合逻辑的数。

答案:11,12

解析:2048=2^11^,2048深度,是11位地址位,2048*12表示11位输入地址、12位输出数据(ROM只能输出)。

4.一个4bits的输入A,AE= 4'b0, A中从MSB开始出现的第个1的位置表示为B。e.g.: A= 4'b0111. B= 2'b10 (从MSB开始,第一个1出现在A的bi2)

B[1]= () B[0]= ().

5.某个SRAM共12根地址线A11 -A0,32根数据线D31-D0, 如果要实现20Dytes的Memory,需要()块这样的SRAM?

6.已知R1= R2 = R3 = R4 = R5 = R6 = R,下图从电源两端向右看去的等效电阻为(2R)。

7. 一批IC样品在测试中发现有setup或者hold时序问题 现取A B. C、D四颗样品进行测试A降温后停止工作,则很可能是()问题: B升温后停止工作,则很可能是()问题; C降压后停止工作,则很可能是()问题,D升压后停止工作,则很可能是()问题。

8.下图表示几进制计数器

9. OOP的三大特征是(封装性、继承性、多态性)。

10.NAND和NOR Flash的主要区别是1.(NAND)中常存在坏块, 2.(NAND)容量可以做到很大,3.(NAND)写入速度比较快, 4.(NOR Flash)读出速度比较快。

四.问答题

1.请根据下面的设计描述,尽可能多的列出你所能想到的测试点。

如下图所示异步FIFO, rdata和wdata均为8位数据,FIFO深度为16.当rst_n输入为低时,FIFO被复位,当wclk的上升沿采样到wr为高时,数据被写入

FIFO;当rclk的上升沿采样到rd为高时,FIFO输出数据。此外,当FIFO为空时,empty信号输出为高,当FIFO满时, full信号输出为高。

2.请实现对4*4矩阵式键盘的按键识别,假设每次都是单按键输入,需要有去抖功能(持续20 ms以上被认为是有效键值) ,模块时钟频率为1 kHZ.

要求用状态机实现,定义状态,画出状态转移图,并用Verilog完整描述该识别模块。

矩阵式键盘盘电路结构参见下图,其中行线1-4由识别模块控制输出,列线5~8为识别模块的输入。

3.Verilog实现串行CRC-8,G(D)=D8+D2+D+1。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA探索者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档