1.定义
全称:硅知识产权(Silicon Intellectual Property)
用于ASIC或FPGA的预先设计好的电路功能模块,经验证可以重复使用的,能完成某些功能的组块。
2.分类
①软核
在逻辑IC设计的过程中,IC设计者会在系统规格指定完成后,利用Verilog或者VHDL等硬件描述语言,将系统所需要的功能写错寄存器传输级(RTL)的程序。RTL文件就被称为软核。
②固核
RTL程序经过仿真验证后,如果没有问题就会进入下一个流程——综合,设计者可以借助EDA工具,从单元库中选取相对应的逻辑门,将RTL文件转换成以逻辑们单元形式呈现的网表文件,网表文件即所谓的固核。
固核是软核和迎合的折中,比软核的可靠性高,比硬核的灵活性强,允许用户重新定义关键的性能参数,内部连线有的也可以重新优化。
③硬核
网表文件经过检验后,则可以进入实体设计的步骤,先进行功能模块的位置配置设计,再进行布局布线设计,做完实体的布局布线设计后所产生的GDSⅡ文件,称为硬核。
硬核的设计与工艺已经完成而且无法修改,用户得到的硬核仅是产品功能而不是产品设计。
图1 按照差异化程度的IP划分
3.设计流程
图2 用于软核和固核的基于RTL综合的设计流程
图3 硬核设计流程
表1 IP产品需要提交的文件
4.IP验证策略
①兼容性验证
这种测试主要用来验证设计是否复合设计规范的要求,对于符合工业标准的设计,比如PCI接口,兼容性测试要验证是否与工业接标准相兼容。
②边界验证
主要是找到一些复杂的状态或者边界情况进行验证。
边界情况:是指最有可能使设计运行崩溃的情况,比如子模块间进行交互复杂的部分,以及在设计规范中没用明确定义的部分。
③随机验证
兼容性验证和边界验证主要使针对设计人员期望出现的情况而进行的验证
随机验证可以展现一些设计人员没用预计到的情况,同时会暴露出设计中一些很难发现的错误。
④应用程序验证
设计验证中一个最重要的部分就是用真正的应用程序进行验证。对于设计人员来说,很有可能错误地理解了设计规范,并且导致设计上的错误,或者使用了错误的测试环境,应用程序测试可以有效地发现这些错误。
⑤回归验证
所有的验证程序都应该添加到回归验证中,在项目的验证阶段就可以执行回归验证程序集。在验证过程中,典型的问题是,当修复一个错误的时候,很有可能引入另一个新的错误。回归验证可以帮助验证当新的功能引入到设计中时或者旧的错误被修复时,不会有新错误被引入。