FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
登录
首页-所有问题-其他-正文

芯片公司笔试中的“手撕代码”环节,除了 FIFO 和分频器,还常考哪些 Verilog/SystemVerilog 题目?

电子工程学生电子工程学生
其他
2小时前
0
0
1
准备秋招笔试,刷题时发现很多经验贴都提到 FIFO 和时钟分频。想了解除了这些经典题,近一两年芯片公司(尤其是大厂和 AI 芯片公司)的数字 IC/FPGA 笔试中,还经常出现哪些需要手写代码的题目?比如状态机设计、仲裁器、异步处理、或者一些结合特定应用场景的模块?求分享高频题型和解题思路。
电子工程学生

电子工程学生

这家伙真懒,几个字都不愿写!
323800
分享:
数字 IC 设计中的“可测性设计 (DFT)”岗位是做什么的?前景和门槛如何?上一篇
回答列表总数:11
  • 数字电路学习者

    数字电路学习者

    总结一下:

    高频题型:状态机、跨时钟域同步、仲裁器、序列检测/发生、数据流控制(带握手)、简单运算单元。

    准备方法:每个类型找2-3道经典题,在纸上或纯文本编辑器手写,计时。写完对比标准答案,注意细节(复位、默认赋值、信号命名)。

    笔试时先理清题意,画框图或时序图,再写代码。时间紧的话写核心逻辑,注释补全。

    2小时前
  • 逻辑电路新手

    逻辑电路新手

    近两年一些公司考SystemVerilog的比例增加了。可能会考:

    1. 用SV写一个简单的类(class)或者随机化测试。
    2. interface的使用,简化连接。
    3. 断言(assertion)写个简单的时序检查。

    虽然手撕代码可能还是Verilog为主,但SV的特性最好了解,尤其是interface和package,写起来更简洁。

    2小时前
  • 单片机入门生

    单片机入门生

    大厂笔试可能结合应用场景,比如:

    “设计一个模块,从接口接收不定长数据包,提取包头中的长度字段,然后根据长度接收数据体,并输出。” 这综合了状态机、计数器、数据流控制。

    解题思路:定义状态(IDLE、HEAD、BODY),用计数器控制接收长度,注意边界条件。代码模块化,写好注释。

    2小时前
  • 硅农预备役2024

    硅农预备役2024

    分享我的刷题列表:

    1. 仲裁器(固定优先级、轮询)
    2. 跨时钟域同步(单比特、多比特、脉冲同步)
    3. 状态机(三段式序列检测)
    4. 数据对齐与打包(如字节对齐)
    5. 简单计数器与分频(奇数分频、小数分频)
    6. 乘法器与加法器(结构描述)
    7. FIFO(同步、异步)
    8. 时钟切换与门控

    每个类型自己手写一遍,记关键点。

    2小时前
  • 硅农预备役2024

    硅农预备役2024

    除了模块设计,有时会出一些代码改错或分析题。比如给一段有综合问题的代码(锁存器、异步复位问题、敏感列表不全),让你指出错误并改正。或者分析电路面积、时序。

    所以手写代码不仅要会写,还要懂背后电路。平时练习用Vivado或Quartus综合一下,看RTL图。

    2小时前
  • 芯片设计预备役

    芯片设计预备役

    我遇到过一个题:设计一个参数化的时钟门控单元。考查对低功耗设计和同步电路的理解。代码不长,但要注意避免毛刺。

    还有一次考了异步FIFO的指针比较和空满判断(格雷码转换、同步)。不一定要写完整FIFO,但关键部分要熟练。

    建议把《Verilog编程艺术》里的小例子过一遍,很多笔试原题。

    2小时前
  • 电子爱好者小陈

    电子爱好者小陈

    补充几个常考题:

    1. 边沿检测:上升沿、下降沿、双边沿,同步和异步的写法都要会。

    2. 按键消抖:虽然简单,但有时会考,用计数器实现。

    3. 奇偶校验:计算数据奇偶校验位。

    这些题目短小,适合笔试限时。写的时候注意代码风格,用assign和always块合理分配。

    2小时前
  • 单片机入门生

    单片机入门生

    AI芯片公司可能会考一些矩阵操作相关的小模块,比如简单的累加器(accumulator)、定点数乘法加法(涉及溢出处理)。或者数据流控制,比如实现一个带反压的简单流水线。

    建议复习一下AXI Stream接口的基本握手代码(tvalid/tready),笔试可能让你写个A Stream到B Stream的转换桥接。

    2小时前
  • 电路板玩家阿明

    电路板玩家阿明

    去年面了七八家,手撕代码除了经典题,出现过高频的有:

    1. 脉冲检测与同步:检测输入脉冲,在另一个时钟域产生同步脉冲。考跨时钟域和边沿检测结合。

    2. 序列发生器:比如用移位寄存器或状态机产生特定序列。

    3. 数据位宽转换:如8位转32位,带valid信号握手。考查对数据流和握手协议的理解。

    思路都是先画时序图,再写代码,valid/ready信号不能漏。

    2小时前
  • FPGA学员5

    FPGA学员5

    从面试官角度说几句。我们确实爱考仲裁器(Round Robin、Fixed Priority),尤其是带请求、授权信号的。让你写一个固定优先级的仲裁,或者轮询仲裁。关键点是处理好请求撤销和授权切换,代码要简洁。

    还会考一些基础运算单元,比如无符号乘法器(写个简单booth或Wallace树思路)、加法器(超前进位)。不一定写全,但结构要清楚。

    2小时前
  • 逻辑设计初学者

    逻辑设计初学者

    秋招刚上岸的来答一下。除了FIFO和分频,状态机绝对是必考,尤其是米勒和摩尔型的区别,以及三段式写法。题目可能是序列检测(比如检测1011),或者简单交通灯控制。手写时一定注意状态编码(二进制、独热码选择)、现态次态逻辑分开。建议直接默写三段式模板,不容易出错。

    另外异步处理常考,单比特信号跨时钟域打两拍,多比特用异步FIFO或握手。笔试可能让你写个打两拍的代码,或者分析为什么不能直接打两拍。

    2小时前
我要回答answer.notCanPublish
回答被采纳奖励100个积分
FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
请先登录