HDLBits总结

地址:https://hdlbits.01xz.net/

题号题目名称注意点
72Bcdadd4这道题目主要是在要了解BCD码以及理解题目的要求,其实就是4位BCD码的加法器,且1位BCD码加法器模块已提供,只需例化,实现起来非常简单
73-80卡诺图相关题这些题目其实重点不在写代码,还是做题前先整明白题目的卡诺图表达的真值
105countbcd和72题相比,需要自己实现1位BCD码加法器,主要难点是计数和进位的条件
106count clock这道题主要难点同105,但是更复杂,时间是60进位和12进位的,同时还要注意pm12:59:59的下一个时刻是am00:00:00。
119-158状态机题目在开始写代码之前最好都先画个状态图,整理思路。写状态机代码的时候要有一个合理的代码结构,尽量一个always块只实现一个功能,增加代码的可读性。
159-163代码改错题这些题目中的问题其实也是自己写代码的时候容易犯的错误,比如不同位数的数据相与,导致高位数据丢失;例化时参数顺序未对应;wire位宽定义错误。
174-178testbench题要对tb有一个基础的了解,比如时钟信号怎么生成,怎么延时等。

芯片开发流程 & 验证流程

芯片开发流程
此图片的alt属性为空;文件名为image.png

数字芯片验证的基本概念

概念芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前确认芯片的设计:
1)是否符合客户的原始需求,
2)是否符合芯片定义的规格,
3)是否发现并更正了所有的缺陷。
目标是缺陷零,不是跑完所有的用例或者覆盖到所有测试点:
(1)BT无缺陷遗漏至IT,
(2)IT无缺陷遗漏至ST,
(3)ST无缺陷遗漏至FPGA/EMU,
(4)整体无缺陷遗漏至Tapeout。
核心是测试点分解,不是跑用例:
SPEC —> TEST FEATURE —> TEST POINT

测试点分为场景类、功能类、性能类、白盒测试点(设计人员提供)、接口类、异常类等维度。
全面、明确、细致,无歧义的将所有验证特性细化为一个个不可分割的小点,每个点明确激励策略、检查策略,采用directtest还是coverage还是assertion确保覆盖。
功能覆盖需要细化覆盖范围,比如典型值、边界值、异常值、cross。测试点也不是一次分解完成,在整个验证过程中会进行多次分解和review,直至完善。

数字芯片验证流程