首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
康迪
哈尔滨工程大学 嵌入式工程师
发布于广西
关注
已关注
取消关注
@IC修真院:
笔试题-2023-诺瓦星云-FPGA(第2套)附答案及解析
一、不定项选择题(部分题有丢失)1、以下哪种编码方式或传输序列不适合在接收调使用DFE进行均衡处理?( )A.64b/66b编码+扰码B.3.125Gbps下的8b/10b编码C.6.25Gbps下的8b/10b编码D.PRBS31答案:D解析*:D. PRBS31。PRBS31序列是一个伪随机序列,无法通过编码方式或扰码来进行处理。DFE均衡器处理的是在传输过程中产生的失真和噪声,而PRBS31序列是一种理论上完美的随机序列,没有噪声和失真。因此,DFE均衡器无法对PRBS31序列进行有效处理。而A、B、C选项提到的编码方式和传输序列中,都可以采用适当的方法进行均衡处理。2、多时钟域设计中,如何处理跨时钟域( )A.单bit:两级触发器同步(适用于慢到快)B.多bit:采用异步FIFO,异步双口RAMC.加握手信导D.格雷码转换答案:B解析*:B. 多bit:采用异步FIFO,异步双口RAM。在多时钟域设计中,可能出现时钟频率不同步的情况,导致数据在时钟域之间传输时出现问题,如数据混乱或丢失等。为了解决这个问题,可以采用异步FIFO或异步双口RAM的方式进行数据传输,保证数据的正确性和同步性。这两种方法都可以缓存数据,使其在两个时钟域之间进行传输,同时进行同步和控制,确保数据正确和可靠。A选项提到的单bit触发器同步方法适用于时钟频率慢到快的情况,但对于多bit的数据传输来说效率有限。C选项中的加握手信道可以在两个时钟域之间进行通信,但相对于异步FIFO和异步双口RAM来说,它的复杂度更高,而且需要更多的硬件资源。D选项中的格雷码转换更多用于数字信号处理和数字电路设计中,不适用于跨时钟域的数据传输。3、FPGA动态功耗主要消耗在哪里( )A.普通IO全部使用B.BRAM全部使用C.时钟管理单元全部使用D.GT全部使用答案:C解析*:C. 时钟管理单元全部使用。FPGA的动态功耗主要来自于翻转逻辑、时钟管理单元和I/O缓冲器等电路的开关和充电/放电过程。其中,时钟管理单元通常是FPGA动态功耗的主要来源,因为FPGA中的各个模块都需要时钟信号进行同步和控制,时钟信号的频率越高,时钟管理单元的功耗就越大。此外,IO强度也会对FPGA功耗产生一定影响,但相对于时钟管理单元来说,其功耗是次要的。因此,选项中A、B、D都只涉及特定部件的使用情况,并不能代表FPGA的总动态功耗,只有C选项中时钟管理单元全部使用才是最能反映FPGA动态功耗的选项。4、以下说法正确的是( )A.同步复位增加了时序收敛的难度;B.同步化异步复位可以保证逻辑正确复位;C.从使用资源的角度看,应候使用异步复位;D.异步复位可能会导致逻辑错误;答案:B解析*:B. 同步化异步复位可以保证逻辑正确复位。选项中,只有B选项的说法是正确的。异步复位和同步复位各有其优缺点。异步复位适用于简单电路和时序要求相对宽松的电路,但它也容易破坏同步和时序稳定性,造成数据错误。而同步复位适用于复杂电路和需要时序严格控制的电路,它确保所有的电路都在同一个时钟周期内停止工作,因此可以在复位后确保系统正确复位。C选项错误,从资源的角度看,应该尽可能使用同步复位,因为同步复位可以利用现有的时钟信号,不需要额外的硬件支持。A选项也是错误的,同步复位虽然增加了时序收敛的难度,但也确保了系统在复位期间的同步和稳定性。D选项也不完全正确,异步复位可能导致逻辑错误,但不是必然的,取决于具体的电路设计和实现。5、如果wire [99: 0]b; reg[99: ] a; 于下面语法正确的是( )A.assign b[0 +: 100] = a99: 0] ;B.assign b[100-: 100]= al0 +: 100] :C.assign a[99-: 100]= b[0 +: 100] ;assign a[0 +: 100] = br99: 01 ;答案:A解析*:A. assign b[0 +: 100] = a[99:0]; 选项A中使用了SystemVerilog中的part select和slice notation,取出reg类型变量a的前100个二进制位,并分别赋值给wire类型变量b的前100个二进制位,语法正确。B选项也使用了slice notation,但其中的语法不正确,应该是“assign b[100 -: 100] = a[99 -: 100] ;”,C选项中也存在语法错误,应该是“assign a[99 -: 100] = b[0 +: 100] ;”,D选项中的语法错误更为明显,应该是“assign a[99 -: 0] = b[99 -: 0] ;”。6、一个大型的组合电路总延时为100ns,采用流水线将它分为两个较小的组合电路(最小精度为1ns),理论上电路最高的工作频率可达到0MHZ;( )A.10B.20C.100D.1000答案:B解析*:B. 20。采用流水线将大型的组合电路分为两个较小的组合电路,可以提高组合电路的时钟频率,提高系统的运行速度。根据流水线的原理,每个流水段的延迟时间要小于时钟周期,否则会出现数据错误。根据题目中的数据,总延时为100ns,因此每个流水段的延迟时间为50ns,最大时钟频率为1/50ns=20MHz。因此,理论上电路最高的工作频率可达到20MHz。7、下列属于FPGA时钟资源的是? ( ) A.D B津阿谤FGB.O PLLC.D DCMD.MMCM答案:C解析*:C. DCM 和 D. MMCM 都是 FPGA 的时钟资源。DCM (Digital Clock Manager) 和 MMCM (Mixed-Mode Clock Manager) 都是 FPGA 中常见的时钟资源,用于时钟频率的锁相和调整。DCM 主要用于低速时钟,对时钟频率的鉴定和调整更加粗略,而 MMCM 则适用于高速时钟,可以针对更高的精度要求进行时钟频率的锁相和调整。OPLL (Output Phase-Locked Loop) 是一种输出锁相环,用于产生 FPGA 输出的时钟信号,DDB (Digital Delay Block) 用于提供可编程的小型延迟,不是 FPGA 的时钟资源。8、时间尺度定义为 timescale 10ns/100ps,选择正确答案( )A.时间精度10nsB.时间单位100psC.时间精度100psD.时间精度不确定答案:B解析*:B. 时间单位为100ps。timescale 语句用于定义 Verilog 模型中时间单位的精度和粒度,它设置了仿真模拟时间的基本单位和产生时钟的基本精度。在这个例子中,时间尺度设置为 10ns/100ps,说明时间单位为 100ps,时间精度为 10ns,即模拟器在仿真时会将时间分成以100ps为单位的时间片,并且最小时间单位为 100ps。所以时间单位为100ps。9、关于建立时间与保持时间,以下描述正确的是( )A.触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的时间为建立时间B.触发器在时钟上升沿到来之前,其数据输出端的数据必须保持不变的时间为建立时间C.触发器在时钟上升沿到来之后,其数据输出端的数据必须保持不变的时间为保持时间D.触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的时间为保持时间答案:A解析*:A. 触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的时间为建立时间,这是建立时间的定义。在建立时间内,输入端的信号要能够被稳定地传播到触发器内部。如果在建立时间内输入信号持续变化,则可能会导致触发器无法正确地识别输入信号,从而导致输出信号错误。保持时间是指触发器在时钟上升沿到来之后,保持其输出稳定的时间。在保持时间内,输出信号必须保持不变,在此期间发生任何变化都会导致输出信号错误。因此,B、C、D 描述都不正确。二、判断题10、在并联和串联的石英晶体震荡电路中,石英晶体均充当电感的作用( )A.正确B.错误答案:B解析*:错误。石英晶体震荡电路中的石英晶体通常充当谐振器的作用,不是电感。在电路中,电感主要用于存储电能和限制电流变化率,而石英晶体作为无源元件,本身不能存储电能,也不具有电感的特性。在石英晶体震荡电路中,其作用是通过反馈电路提供稳定的振荡频率。11、竞争和冒险只在组合逻辑中出现( )A.正确B.错误答案:B解析*:B. 错误。竞争和冒险不仅可以在组合逻辑中出现,也可以在时序逻辑中出现。竞争出现在具有多个输入的逻辑门中,因为输入信号的传输延迟不同而导致输出不确定的现象。而冒险则是指在时序逻辑中由于信号的传播延迟和时序关系而导致的错误的输出。在设计数字电路时,需要考虑竞争和冒险的问题,以尽可能避免这些潜在的问题。12、PN节的单向导电性只有在外加电压时才能体现出来( )A.正确B.错误答案:B解析*:B. 错误。PN结的单向导电性是其内在的特性,与外加电压无关。PN结中由于材料掺杂导致的正负离子浓度不同,从而形成了电子云和空穴云,在其结面处形成空间电荷区域。当 PN 结正向偏置时,电流能够流过 PN 结,因为外加电压会减小空间电荷区域的宽度,改变电子和空穴的扩散方向。而反向偏置时,空间电荷区宽度增加,禁带宽度增大,因此只有非常小的反向电流。因此,PN结的单向导电性是内在的,与外加电压无关。13、组合逻辑中若if语句不完整会产生锁存器( )A.正确B.错误答案:B解析*:B. 错误。在组合逻辑中,if语句并不常用。一般而言,组合逻辑的输出只与输入有关,不存在状态存储的问题。锁存器是由时序逻辑实现的状态存储器件,其可以用于存储状态、延迟信号,以及实现时序逻辑功能。组合逻辑不存在状态,不涉及时序问题,也就不会造成锁存器的问题。因此,组合逻辑中if语句不完整也不会导致锁存器的产生。14、用三段式状态机和二段式状态机写法描述同一个电路,最终综合实现后的电路是样的( )A.正确B.错误答案:A解析*:A. 正确。三段式状态机和二段式状态机都是时序逻辑的一种设计方法,它们都可以用于描述同一个电路,并且最终综合实现后的电路也是相同的。三段式状态机一般采用状态、输入和输出三个部分来描述一个时序逻辑,而二段式状态机则采用状态和输出两个部分来描述。两种方法的主要区别在于状态转换的方式,三段式状态机可以描述复杂的状态转换关系,而二段式状态机则更加简洁、直观。但是,无论采用哪种方法,最终实现的电路都应该是相同的,只是具体的实现细节可能会略有不同。三、简答题15、FPGA芯片内有哪两种存储器资源?答案及解析*:FPGA芯片内有两种常见的存储器资源——查找表存储器(LUTRAM)和片上存储器(Block RAM)。1.查找表存储器(LUTRAM)是FPGA中最小的寄存器单元,其中的逻辑可以通过LUT的编程来实现。当LUT用来存储逻辑表时,其就是一种存储器。但相较于片上存储器,LUTRAM 的存储密度更低。它的寄存器单元通常被用来存储状态寄存器和配置信息等较少的数据。2.片上存储器(Block RAM)是一种可编程的、分布式的、双端口 RAM 存储器。它集成了多个 RAM 存储单元组成一个规模较大的存储器模块,通常可以以多种模式(如单端口、双端口)访问和配置。片上存储器的容量和速度要优于 LUTRAM,因此其在实现数字信号处理(DSP)和 FPGA 中存储深度学习/神经网络时具有广泛的使用。16、什么是亚稳态,出现了亚稳态应该如何解决?答案及解析*:亚稳态(metastable state)指的是系统在达到平衡状态之前,暂时停留在一个接近稳定状态的状态。在这个状态下,系统所处的能量较低,但并不是最低能量状态,稍微扰动一下,系统就会跃迁到更低能量的状态。例如,电子在原子中的瞬时跃迁就是一种亚稳态现象。在工程和技术领域中,亚稳态问题一般是指材料或结构物的长时间失稳现象,例如金属结构的疲劳损伤、晶格缺陷、蠕变等。解决亚稳态问题需要对系统中的微观机理进行研究和分析,找出导致亚稳态现象的原因,并采取相应的措施加以解决,以避免长时间的失稳现象。常用的措施包括改进材料的制备工艺,增强材料的强度和韧性,加强结构的支撑等。(答案仅供参考)17、有限状态机FSM分为哪两类?以及两类的区别答案及解析*:有限状态机(FSM)按照状态个数分为两类:Moore型有限状态机和Mealy型有限状态机。Moore型有限状态机的输出只与当前状态有关,其输出不依赖于输入。具体来说,Moore型有限状态机是指与状态序列相关联的输出序列由两部分组成的有限状态机,即输出函数只与当前状态值有关。在Moore型有限状态机中,输出由当前状态决定,形式化为“输出Y等于当前状态Q的函数值Y = f(Q)”。Moore型有限状态机可以被看作是对输入的同步响应,即外部信号的变化对其状态机的状态产生同步响应。Mealy型有限状态机的输出与当前状态和输入都有关。具体来说,可以看作是一类输出函数有因数Q的有限状态机,它的输出是由输入和状态的组合值来决定的,形式化为“输出Y等于输入X和当前状态Q的函数值Y = f(X, Q)”。在Mealy型有限状态机中,输出函数同时考虑了输入和状态,因此输出来自输入的异步响应,即对输入的变化立刻做出响应。由此可见,Moore型有限状态机和Mealy型有限状态机的区别在于输出函数的不同,Moore型有限状态机只将输出与当前状态相关联,而Mealy型有限状态机将输出与当前状态和输入同时相关联。18、时序约束的概念和基本策略?答案及解析*:时序约束是在数字电路设计中用来描述时序要求的约束条件。时序约束可以限制同步电路中输入和输出信号的时序关系,使其满足设计要求,并通过时序分析来保证时序要求得到满足。常见的时序约束包括时钟周期时间、时钟上升沿和下降沿时间、输出延迟、时序路径等。基本的时序约束策略包括:时钟约束:确定时钟的开启时间、持续时间、上升沿和下降沿的时间等,以保证时钟信号的正确性和同步性。输入约束:确定所有输入信号的到达时间,并且保证在时钟上升沿之前,所有输入信号都能被稳定地采样到。输出约束:确定所有输出信号的时间,包括延迟、设置时间等,以保证输出信号的正确性和稳定性。时序路径约束:确定时序路径长度和延迟,以保证时序路径的传输时间不会超出时钟周期的限制。约束的优化和调整:根据时序分析结果优化和调整约束,以保持时序要求得以满足的同时最大化时钟频率。时序分析:使用时序分析工具来检查时序约束是否满足,并提供可视化和分析工具来帮助用户识别时序违规问题。19、请简述FIFO使用格雷码的原因答案及解析*:FIFO(First-In-First-Out,先进先出)是一种常用于缓冲区的存储器结构。在FIFO中,当数据进入队列时,它被加入到队列末尾,并在适当的时候从队列前面删除。为了正确管理FIFO的读写操作,需要使用计数器来追踪队列中的数据数量。这个计数器将作为FIFO状态机的一部分来实现。在FIFO实现中,计数器的位数与队列缓冲区的大小有关。当计数器比较大时,会因信号传输延迟和连接线路导致较长的启动时间,从而影响FIFO的性能。为了最小化延迟和功耗,设计人员可以采用格雷码计数器来实现FIFO状态机。格雷码是一种特殊的二进制编码方式,在格雷码上每次只有一个比特位发生变化。与普通二进制计数器相比,使用格雷码计数器可以实现平滑的计数器过渡,从而减少了FIFO在计数器溢出时的启动时间和能量消耗。此外,格雷码计数器还可以避免计数器上的不稳定状态,从而提高了FIFO的可靠性和数据完整性。四、编程题20、某个系统中,存在两个时钟,分别为150M和50M,在150M时钟域下,每隔1s左右有一个脉冲(单时钟宽度,高脉冲),现在需要将此脉冲同步到50M时钟域下,同样是1个高脉冲,模块接口如下,请补全代码。答案及解析*:使用同步器可以将一个时钟域的信号同步到另一个时钟域中。在Verilog中,可以使用“always @(posedge clk)”的方式来实现同步器。以下是将150M时钟域下的脉冲信号同步到50M时钟域下的代码实现:在上述代码中,使用了一个寄存器SyncPulse50M来存储同步后的50M时钟下的脉冲信号。在150M时钟上升沿时,判断是否有脉冲信号,有则将同步后的50M脉冲信号设为高电平,否则设为低电平。最后将同步后的50M脉冲信号直接输出即可。21、写一个64位的计数器,由于器件和时钟频率的限制,当计数器位宽大于17位时时序无法收敛。因此内部每一个计数器的位宽不能超过17位。可以采用拆分加法器的方式实现。计数器的使能信号为CntEn,高电平时开始计数,低电平时计数值保持。模块接口如下,请补全代码。答案及解析*:为了实现一个64位的计数器,可以将其拆分成4个16位的计数器,并将它们级联起来。每个16位计数器的计数范围是[0, 2^16-1],当它加到其最大计数值时,将会递增到更高位的计数器中。下面给出一个采用拆分加法器的实现:module Counter ( input InClk, input InRst, input CntEn, output reg [63:0] Cnt);reg [15:0] cnt0, cnt1, cnt2, cnt3;reg [3:0] carry; //级联时需要传递的进位信号always @(posedge InClk) begin if (InRst) begin //复位信号清零计数器 cnt0 <= 0; cnt1 <= 0; cnt2 <= 0; cnt3 <= 0; carry <= 0; Cnt <= 0; end else if (CntEn) begin //使能信号为高电平时计数器计数 cnt0 <= cnt0 + 1'b1; if (cnt0 == 16'b0000000000000000) begin //如果当前计数器已经加到最大值,则将进位信号送到更高位的计数器中 carry <= carry + 1'b1; end cnt1 <= cnt1 + carry; if (cnt1 == 16'b0000000000000000) begin carry <= carry + 1'b1; end cnt2 <= cnt2 + carry; if (cnt2 == 16'b0000000000000000) begin carry <= carry + 1'b1; end cnt3 <= cnt3 + carry; if (cnt3 == 16'b0000000000000000) begin carry <= carry + 1'b1; end Cnt <= {cnt3, cnt2, cnt1, cnt0}; //将每个计数器的值级联起来形成一个64位的计数器 endendendmodule[诶嘿]整理不易,如果觉得对你有帮助的话,可以收藏下来慢慢刷!回顾往期精彩笔试真题:数字IC前端笔试常见大题整理(简答+手撕)笔试题-2023-禾赛-FPGA(附答案及解析)笔试题-2023-复睿微-数字芯片设计【附解析】笔试题-2023-锐捷-FPGA(附答案及解析)笔试题-2023-星宸-数字IC设计(附答案及解析)笔试题2023-燧原-数字IC设计(附答案及解析)收藏不易,如果觉得对你有帮助的话,可以收藏下来慢慢刷!
点赞 2
评论 8
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
08-08 12:00
江苏科技大学 Java
oppo笔试
只对一道题还有机会吗
投递OPPO等公司10个岗位
点赞
评论
收藏
分享
昨天 17:45
门头沟学院 Java
这公司太牛了,同事都在劝我跑路
上班差不多一个月,从刚开始一个同事劝我跑路,到现在差不多所有人都劝我跑路这公司真是厉害了,如何做到让同事们都不满意的😂
实习的内耗时刻
点赞
评论
收藏
分享
08-09 09:15
已编辑
百度_FE研发部_软件开发工程师
我又被卡背景了兄弟们
京东二面过了,因为空窗期被刷掉了美团二面过了,因位空窗期被刷掉了我顶不住了兄弟们,人生为何如此艰难啊,大厂我面了好多了,一轮又一轮,一茬又一茬,简历不断更新,技术不断全面,算法不断深化,面试官都很满意,最后给我干掉,我不甘心啊。最新消息,上岸百度了,8.13去上班了。
大佬们救救我8:
中国人不允许有gap
面试问题记录
点赞
评论
收藏
分享
08-08 11:08
门头沟学院 Java
天呐 双非学院本真的没救了吗
笔试做的很自信 都ac了 感觉自己可以面试的几率很大。没想到挂了 求大佬指点学院本秋招该如何进个好点中厂
zakzz:
有一段4个月的实习经历 现在真的只看学历了吗
点赞
评论
收藏
分享
08-13 17:07
门头沟学院 嵌入式软件开发
实习生别责任心太强
大三时在某中厂实习,初来乍到对业务代码完全不熟。为了尽快上手、力求“完美”完成任务,我每天主动加班到十点多,甚至躺在床上还在反复梳理代码逻辑,几乎完全放弃了个人生活。现在回头想想,其实技术能力提升有限,反而把自己搞得很疲惫,实在不值。毕竟,我当时并没有强烈的转正意愿,何必如此在意呢?当然,用现在的职场思维去苛责当时的自己也不公平。那时只是个初入陌生环境的大三学生,本能地想证明自己、获得认可,那种“尽力表现”的心态完全可以理解。想对正在或即将实习的大二大三同学说:实习固然重要,但请务必保持适度! 不必像我当初那样过度消耗自己,牺牲生活和健康去追求所谓的“完美”。合理分配精力,把学习和体验放在首位...
投递完美世界等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
总结常用的拖offer的几种话术
2.3W
2
...
8月份面经整理的算法高频题集合
7096
3
...
美团二笔还没发邮件
5233
4
...
快手 秋招 一面
3605
5
...
快手秋招-后端一面
3393
6
...
8.13快手秋招Java后端二面记录
3365
7
...
家里人一直跟我说要给领导买点东西,搞好关系
3332
8
...
救救孩子吧
2959
9
...
大家离职都怎么开口的啊?
2844
10
...
字节算法没做出来还有戏吗
2599
创作者周榜
更多
正在热议
更多
#
给26届的秋招建议
#
29044次浏览
812人参与
#
应届生初入职场,求建议
#
239066次浏览
2681人参与
#
实习的内耗时刻
#
44549次浏览
523人参与
#
发工资后,你做的第一件事是什么
#
71773次浏览
241人参与
#
工作上你捅过哪些篓子?
#
18287次浏览
120人参与
#
秋招投递记录
#
26558次浏览
299人参与
#
在职场上,你最讨厌什么样的同事
#
27236次浏览
192人参与
#
我的秋招“寄”录
#
37235次浏览
476人参与
#
网易求职进展汇总
#
112763次浏览
1063人参与
#
秋招,不懂就问
#
10263次浏览
108人参与
#
我的国央企投递进展
#
51792次浏览
312人参与
#
查收我的offer竞争力报告
#
195602次浏览
1291人参与
#
我的AI电子员工
#
12695次浏览
102人参与
#
你最近一次加班是什么时候?
#
79464次浏览
420人参与
#
独居后,你的生活是更好了还是更差了?
#
12015次浏览
167人参与
#
你上一次给父母打电话是什么时候
#
11664次浏览
111人参与
#
如果校招重来我最想改变的是
#
278206次浏览
2896人参与
#
规定下班时间vs实际下班时间
#
19194次浏览
152人参与
#
运营每日一题
#
90484次浏览
798人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
32356次浏览
488人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务