ScanDEF 由如下几部分组成(注:由于目前常用的是muxed scan style, 以下叙述都是基于muxed scan style, 关于LSSD scan style 如有兴趣,可私聊或穗拿。):
numScanChains:
表示ScanDEF 中chain 的数目;
ScanDEF 中族春chain 的数目跟设计中实际scan chain 的数目并不相同,ScanDEF 中每条chain上的所有寄存器必须由同一个clock 驱动,而且必须由同一个clock edge 触发;如果在插scan chain 的时候使能了mix clock 或mix clock edge, 则设计中一条实际scan chain 上可能有多个clock驱动的寄存器,也可能有多个clock edge 触发的寄存器,这样的chain 在写到ScanDEF 中时,会被拆分成多条scanDEF chain.
ScanDEF 并不包含设计中所有在scan chain 上的寄存器,它只包含可以reorder 或repartition的部分,不能优化的scan cell 或scan segment 被忽略。
chainName:
scanDEF chain 的名字,其格式为
PARTITION partition_name:
用于定义该ScanDEF chain 所属分组,partition_name 相同的ScanDEF chain 属于同一个分组,P&R工具只能对同一分组内ScanDEF chain 中的寄衫搭存器做位置交换(即所谓的Scan Chain Reorder )
partition name 的格式如下,在ScanDEF 中 1500 core wrapper segments有单独的ScanDFE chain, 有独立的partition name, 用关键词"EXTEST" 予以区分,但是不会对input和output bounding wrapper segments 进行区分。
MAXBITS maxBits
跟PARTITION 一起使用,用于设定该分组中chain 的最大长度,以寄存器的个数计,默认值是0, 表示以当前工具的设定值为准。
START { fixedInComp | PIN } outPin
指定ScanDEF chain reorder 的起点; fixedInComp outPin 指定某个component 的输出pin为起点; PIN outPin 指定 I/O pin 为起点。
STOP { fixedOutComp | PIN } inPin
指定ScanDEF chain reorder 的终点; fixedOutComp inPin 指定某个component 的输入pin为终点;
PIN inPin 指定 I/O pin 为终点。
FLOATING
Floating component 包含一个或多个寄存器,该字段包含的寄存器可以在chain 上被随意reorder.
ORDERED
Ordered component 由两个或多个互连的components 构成一个固定段( fixed segment ),在做reorder 时固定段整体作为可reorder 的对象,reorder 不可以改变固定段内components 的顺序;
固定段内的components 可以是扫描路径中的registers, buffers, inverters, muxes, other combinational cells.
示例:
no mixed clock, no mixed clock edges
4条由 clk1 驱动的chain, 每条chain 有75个上沿触发的寄存器;
1 条由 clk2 驱动的chain, 有100个下沿触发的寄存器;
未定义scan segments, 五条chain 都只有FLOATING 的section 没有ORDERED 的section.
共有两个partition, p_clk1_rising 和p_clk2_falling.
Segmentation Rules
将设计中实际scan chain 写到ScanDEF 中时,遵守如下规则:
如果scan chain 包含head / tail segment, 且定义成preserved 或fixed segment, 那head segment 最后一个寄存器的Q pin 被定义成ScanDEF chain 的START 点;tail segment 第一个寄存器的SI pin 被定义成ScanDEF chain 的STOP 点。
如果scan chain 包含head / tail segment, 且定义成floating segment,
那该segment会被写成有自己partition 的ScanDEF chain.
对于mixed edge scan chain, 且下降沿触发寄存器在前上沿触发的寄存器在后,无lockup latch, 则第一个上沿触发寄存器的SI pin 被定义成 falling edge-triggered segment 的STOP点;第一个上沿触发寄存器的Q pin 被定义成 rising edge-triggered segment 的START 点.
对于shared functional output scan chain, ScanDEF chain 的STOP
点是最后一个寄存器的SI pin 而不是shared mux 的输入pin.
ORDERED 段可能不被写入ScanDEF chain, 这取决于ORDERED segment 在scan chain中的位置以及该ORDERED segment 中是否有mixed clock / edge. 如果一段scan chain segment被定义为fixed 或preserve, 则会在ScanDEF chain 中写出ORDERDED segment.
如果Scan chain 中有abstract segment, 而且对应于logic abstract 或white box module, 那该abstract segment 不会被写入ScanDEF, 工具通过向前或向后trace 来确定对应的START 和STOP 点;如果abstract segment 对应于library componet, 则该abstract segment 可能被写到ScanDEF 中。
如果scan chain 是power domain 或library domain aware 的,那scan chain将会被拆分成多条ScanDEF chain. 如果scan data input 和output 跟scan chain上的寄存器不属于同一个power / library domain, 则该power domain 第一个寄存器的Q pin被定义为对应的START 点;该power domain 最后一个寄存器的SI pin 被定义为对应的STOP 点。
原文链接: 一文读懂 ScanDEF 相关的一切_NBA_kobe_24的博客-CSDN博客
1、ddc文件:由逻辑综合生成。用于在synopsys工具的后端设计,即使用在ICC2/ICC。包含Gate-level netlist、constraint.sdc和scan_def.def文件。
2、def文件:design exchange file。是各大EDA进行数据交互的文件格式。由DC(Design Compiler)生成。包含scan_chain的布局信息。要在ddc文件生成之前生成。
3、.lib &.db: All Synopsys tools use db file as library. All Cadence tools just use lib file as library
5、milkway库:
milkyway是后端设计时创建的库,包含tf文件/plib,reference_library,logical library,TLU plus。
参考文档:产生Milkyway参考库 - 豆丁网Docin https://www.docin.com/p-226356975.html
6、link library:用来实例化netlist 中的元件
target library:只有基本逻辑门(std cell、IO pads、macros)
7、lef文件尺则:library exchange file库交换文件。
描述库单元的物理属性,包括端口位置、层定笑敬义和通孔定义。它抽象了单元的底层几何细节,提供了足够的信息,以便允许布线器在不对内部单元约束来进行修订的基础上进行单元连接。包含了工艺的技术信息,如布线的层数、最小的线宽、线与线之间的最小距离以及每个被选用cell,BLOCK,PAD的大小和pin的实际位置。cell,PAD的这些信息由厂家提供的LEF文件给碰困慎出,自己定制的BLOCK的LEF文件描述经ABSTRACT后生成,只要把这两个LEF文件整合起来就可以了。[1]
8、GSR文件
9、spef文件:为数字后端实现后抽取RC用来跑STA的spef文件
原文链接:https://blog.csdn.net/hepiaopiao_wemedia/article/details/88696213
1 scandef通常用于定义新的计数器或长度山橘参数2 scandef的使用场景是在需要滑唯仔自定义一些计数器或长度参数时,使用该命令可信汪以方便地定义,并且可以使用LaTeX的计数器相关命令进行 *** 作
3 例如,我们可以使用scandef命令定义一个新的计数器,然后在文档中使用\the命令输出该计数器的值。
总之,scandef命令可以帮助我们方便地定义和 *** 作自定义的计数器和长度参数,提高LaTeX文档的灵活性和可扩展性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)