芯片测试初学者
从面试官角度聊两句吧。我们出仲裁器题目时,确实越来越倾向考公平算法,因为能看出候选人有没有实际项目经验。
笔试程度通常是:给一个算法描述(比如“WRR要求按权重比例分配带宽”),然后让你设计硬件架构或分析时序。偶尔会让写Verilog片段,比如权重计数器的代码。重点考察的是能否把算法转换成硬件结构——比如你是否知道权重计数器可以用递减或查找表实现,LS的服务量记录可以用饱和计数器防止溢出。
验证方面,除了功能,我们特别关注“边界条件”:权重和突然变化、所有通道同时请求、连续请求与间歇请求混合的场景。公平性指标常用“最大服务差”(所有通道中,实际服务量与理想服务量的最大偏差)来衡量。
推荐两个学习资源:一是IEEE论文《Arbiters: Design Ideas and Coding Styles》,讲得很透;二是GitHub上搜索“arbiter verilog”,有个叫“axis_arbiter”的项目实现了多种算法。练习时建议自己搭个UVM测试环境,用覆盖率确保所有权重组合和请求模式都测到。
