发新话题
打印

[DICDER原创] 什么是一个好IP?

什么是一个好IP?

前几天,有位朋友问我什么是一个好的IP?好IP应该具备哪些方面的特征呢?5 _) ~/ J" Q+ s) k" V6 T: ^

/ x( ~5 U, U9 B6 p& I& G* n: Q总结来说,一个好的IP有很好的可读性,移植性,易于修改更新,它具有完整的文档说明,具有完善验证的信息,还提供必要的脚本。下面一点点来解释:
' s! x* o; ^5 Y. l0 J4 Z1 _
8 w8 r/ c5 Q/ h  g+ M0 u& Z$ A/ K$ O1 可读性& N# i. A% r7 g6 \% v6 S' J+ N- N
   可读性,一方面是指RTL的可读性,比如完整的注释,易于理解的信号名字命名,规则的代码结构等;另一方面是指对于实现功能架构的易于理解,比如模块之间的功能划分,模块层次结构等等。% i" f: ]1 f# C4 I. _) J
2 F9 J1 }4 [. V+ ]  |& L6 \
2 可移植性% N! s. q3 H6 o* Q6 d! X# O6 }! d! ~
   一个IP要容易地适应于不同的应用场合,比如不同的总线,修改固定几个文件就可以适应于不同的总线架构。
. s  u0 n- ~; e" V7 E- B
* Z; y$ R# G0 H3 易于修改更新9 _1 ^6 B4 b2 v; m! b6 M
   由于IP会有一些新的要求或者发现BUG,需要修改或者更新,这就要求IP能比较简单地完成这些需求。
0 B: a/ K  V3 E
) M4 y9 q/ o  i" M) n0 Y' m4 完整地文档说明
. N( T9 i' p# ]: C   一个IP如果没有完整的文档说明,就没有很好的继承性,使得复用代价变高,周期变长。而这个完整二字包括提供给内部版本和客户版本的手册,提供给做整合人员的说明,提供给验证人员的验证说明,提供给设计开发人员的设计说明以及电器特性文档。
0 m  _: s. t/ q- \
% L5 P% s) i# m4 k9 ^: v' g! \5 辅助验证信息
5 h+ a+ @7 n9 N) y7 L  Q& J6 j   完整的验证平台,包括验证的所有TESTCASE文件,使用的脚本,提供一个仿真模型来模拟该设备的实际情况,测试COVERAGE所用的文件以及结果的备份文档。
0 @# P5 b4 j: O" I
* ~5 n; w7 Y2 O, R' T6 脚本信息. R$ @" T% R4 b% C/ d" H. N
   脚本信息包括所有的产生测试激励的程序,模块综合的脚本,做LEC的脚本,以及一些设计过程中的各种各样的脚本。# \; [' o, e, n: Z" s$ Y3 }5 O

8 C- E9 p; t0 |/ l5 ~4 ?7 }具有了以上的这些信息可以称之为好IP,当然如果有更详细的FPGA测试信息或者实际的VALIDATION的信息将更加的完备。" H/ d  f" I- X7 T
- |9 N* M8 v- c( c) b; `
以上为个人的理解和总结,有疑问或者疏漏的地方希望大家不吝提出。
With your idea, Carry out together.

TOP

发新话题