码电路的小王
我主要从面试官角度说说吧,我们出题除了考基础,还会看你的代码风格和硬件思维。
高频题型除了你说的那些,还有几个点:
一是数据流控制类,比如设计一个带反压的FIFO接口,或者实现一个简单的握手协议(valid-ready信号交互)。这个很实用,很多公司爱考。
二是位操作和运算优化,比如让你用最少的资源实现一个乘法器(比如Booth算法),或者实现一个求平方根的近似计算。
三是有限状态机的复杂变种,比如Mealy和Moore型混合使用,或者状态机与数据通路分离的设计。
四是时钟域交叉的具体实现变种,比如从快时钟域到慢时钟域的多bit信号同步,可能会让你用握手或异步FIFO解决,并分析优缺点。
五是简单缓存或队列的实现,比如LRU算法的小型硬件实现,或者带优先级的队列。
建议你准备时不要只刷题,要理解每道题为什么这么考。比如序列检测考的是状态机设计能力,仲裁器考的是公平性和资源冲突解决。代码要整洁,注释清楚,信号命名规范,这往往比单纯功能正确更重要。
可以看看《硬件架构的艺术》这本书里的一些例子,或者去GitHub上找一些开源RTL项目学习代码风格。
