芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 |
---|
四社区联合力荐!近500篇数字IC精品文章收录! |
【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍 |
笔试
沐曦科技的笔试题目较难,除了常规的设计知识外,也会涉及到代码级的验证知识,脚本语言,电路结构等内容,有记录的题目如下
修正跨时钟域问题
扫描链哪一步加入
元件时延取决于什么
什么时序检查决定了设计的时钟频率
Sv时序图的断言怎么写
综合中敏感变量不全的后果
不完整的逻辑综合:综合工具可能无法正确地推导出设计的时序逻辑,从而导致逻辑综合不完整或不正确。这可能会影响电路的功能和性能,导致不符合预期的结果。
Fifo深度计算
Fork join/none/any区别
fork 和 join 用于创建并发块,在其中的语句和任务可以同时执行。
join 用于结束并发块并等待所有并发语句和任务执行完毕。
none 用于表示语句和任务不并发执行,而是按照顺序执行。
any 用于表示只要有一个并发执行的语句或任务满足条件,就可以继续执行
覆盖率都包含什么和理解
覆盖率是用于衡量测试用例对设计代码的覆盖程度的指标,它表示测试是否充分地覆盖了设计中的不同部分和情况。覆盖率提供了测试质量的评估,帮助验证工程师了解测试的完整性和效果。
覆盖率包含以下几个主要的指标:
- 语句覆盖率(Statement Coverage):
语句覆盖率表示测试用例执行过程中覆盖的代码语句的百分比。它用于衡量测试是否执行了设计中的每一条代码语句。对于每个语句,覆盖率工具会记录该语句是否被执行,从而计算覆盖率。- 分支覆盖率(Branch Coverage):
分支覆盖率表示测试用例执行过程中覆盖的条件分支的百分比。它用于衡量测试是否覆盖了所有可能的条件分支路径。对于每个条件分支,覆盖率工具会记录该分支是否被覆盖,从而计算覆盖率。- 条件覆盖率(Condition Coverage):
条件覆盖率表示测试用例执行过程中覆盖的条件表达式的百分比。它用于衡量测试是否覆盖了每个条件表达式的不同取值情况。对于每个条件表达式,覆盖率工具会记录该表达式是否被覆盖,从而计算覆盖率。- 翻转时序覆盖率(Toggle Coverage):
翻转覆盖率用于衡量测试用例中的信号或寄存器在仿真过程中的取值变化情况。它记录每个信号或寄存器的取值变化次数,从而计算覆盖率。理解覆盖率对于验证工程师来说非常重要,它可以帮助验证工程师评估测试的充分性和效果。通过覆盖率报告,验证工程师可以了解测试中哪些部分是被覆盖的,哪些部分是未被覆盖的,从而指导测试用例的优化和改进。提高覆盖率有助于发现潜在的设计问题和漏洞,增加设计的可靠性和稳定性。
Rtl代码风格的比较
脚本语言的正则变换
Virtual sequencer 和sequence的区别
Sequence 是具体的测试用例生成器,用于描述和生成特定的测试数据流程。
Virtual sequencer 是一个用于管理和调度多个 Sequence 的辅助类,用于实现测试用例的灵活组织和控制。
序列检测代码
Setup hold time 算最大频率
Uvm数据流向
无毛刺时钟切换电路