嵌入式开发小白
这个问题确实高频。我站在面试官角度说说他想要什么:首先,是看你知不知道验证这类系统的‘套路’。比如,通常会采用分层验证策略——先验协议接口(用assertion和UVC),再验子系统(比如一个cluster内的核),最后全系统集成。重点考察你制定验证计划的能力:怎么提取feature list,怎么定义场景(比如多核同时读写同一cache line,或dma和cpu访问的一致性)。其次,是技术实现细节:你的testbench里reference model怎么建?cache一致性协议状态多,参考模型要能预测所有cache和内存的最终状态,这很考验设计。还有coverage怎么收集——光代码覆盖不行,要功能覆盖,比如各种transaction类型组合、各状态转换路径。难点除了并发问题,还有性能验证(latency、带宽)和功耗相关验证(比如cache flush操作),不过面试可能不深问。你没实际项目,就突出学习能力:我看了ARM的官方协议文档,用Excel整理了所有可能的访问场景,并思考了如何用UVM约束随机生成这些场景。也可以提一下业界常用工具,比如Synopsys的VIP,但强调理解原理更重要。资料推荐:ARM的ACE/CHI specification(官网下),还有DVCon上的一些相关论文,搜一下就有。
