Matrix
Klarke's C/C++ Home
posts - 61,comments - 0,trackbacks - 0
SPEF Stands for Standard Parasitic Extraction Format.

SPEF file is generated by parasitic extractors like CALIBRE XRC.SPEF is fed to STA tool to do post layout Static Timing Analysis.

SDF stands for Standard Delay Format

SDF is widely used for transferring the Delay information between tools.Normally SDF is used in Pre Layout Static Timing Analysis.


SPEF file describes spice netlist and RC infromation.
After running LVS(LVS correctly), you can generate SPEF file from RC extraction tool(Xcalibre,Calibre-XRC--Mentor Star-RCXT--synopsys) or APR tool.

As for SDF file, it describes cell delay(from synthesis library) and interconnect delay(from SPEF file).
You can generate it from APR tool and PrimeTime(STA analysis tool).
If you want to get accuracy SDF file to do STA analysis.
I recommend you can use rc extraction tool to generate SPEF file and load into PrimeTime to generate SDF file to do STA analysis.
posted @ 2012-05-09 15:35 Klarke 阅读(957) | 评论 (0)编辑 收藏
Static timing analysis is a critical step in design of any digitalintegrated circuit. Technology and design trends have ledto significant increase in environmental and process variationswhich need to be incorporated in static timing analysis.This paper presents a new, efficient and accurate block-basedstatic timing analysis technique considering uncertainty.This new method is more efficient as its modelsarrival times as cumulative density functions (CDFs) anddelays as probability functions (PDFs). Computationallysimple expression are presented for basic static timing operations.The techniques are valid for any form of the probabilitydistribution, though the use piecewise linear modelingof CDFs is highlighted in this paper. Reconvergent fanoutsare handled using a new technique that avoids path tracing.Variable accuracy timing analysis can be performed byvarying the modeling accuracy of the piecewise linearmodel. Regular and statistical timing on different parts ofthe circuit can be incorporated into a single timing analysisrun. Accuracy and efficiency of the proposed method is demonstratedfor various ISCAS benchmark circuits.

1. ideal

2. latency

3. skew= Tmax-Tmin

4. clock uncertainty

5. jitter (y轴 振幅)

6. glitch(值变化,波形上有个毛刺,x轴)

7. launch and the capture clock paths

posted @ 2012-05-09 10:05 Klarke 阅读(181) | 评论 (0)编辑 收藏

set path [ report_timing -collection -from $name -max_points 1 ] set st_flag 1 set end_flag 0 foreach_in_collection path_x $path {

  set timing_points [ get_property $path_x timing_points ]

  set end_flag [ sizeof_collection $timing_points ]

  foreach_in_collection timing_points_x $timing_points {

    if {$st_flag == $end_flag} {

      set arrival_end [ get_property $timing_points_x arrival ]

    }

    if {$st_flag == 1 } {

      set arrival_start [ get_property $timing_points_x arrival ]

    }

    incr st_flag ;

    }

set data_delay [ expr $arrival_end - $arrival_start ] puts $data_delay }






Perhaps -tcl_list can also be used. Traverse the data in tcl list.

 

set tarpt [report_timing -net -max_paths 100000 -tcl_list]      

set banner [lindex $tarpt 0]

set paths [lrange $tarpt 1 end]

foreach path $paths {

      foreach {path_num path_all} $path {

         foreach attrVal $path_all {

            foreach {attr val} $attrVal {

               if {$attr=="slack_calc"} {

                  set WNS [lindex [lindex $val end] end]

               }

               if {$attr=="Endpoint"} {

                  set endPoint [lindex $val 0]

               }

               if {$attr=="Beginpoint"} {

                  set startPoint [lindex $val 0]

               }

           }

       }

    }

    Puts "$endPoint $startPoint $WNS"

}



posted @ 2012-04-22 22:02 Klarke 阅读(364) | 评论 (0)编辑 收藏
dbGetHInstByName i_rgx_dusta
dbGetInstByName i_rgx_dusta/i_rgx_usc0
taGetTermFullName(TNetTerm)
posted @ 2012-04-20 13:25 Klarke 阅读(182) | 评论 (0)编辑 收藏
chmod 777 fe/obj/64bit/mib/*
run case...
lcov...
posted @ 2012-04-17 17:16 Klarke 阅读(218) | 评论 (0)编辑 收藏

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`

linux sed 批量替换多个文件中的字符串

sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

例如:替换/home下所有文件中的www.admin99.net为admin99.net

sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`

1. vi 方法
参见vim用户手册26.

*26.3*  改动多个文件

假定你有个变量名为 "x_cnt" 而你要把他改为 "x_counter"。
这个变量在多个 C 文件都被用到了。你需要在所有文件中作此改动。你得这么做。
把所有相关文件放进参数列表:

:args *.c

这个命令会找到所有的 C 文件并编辑其中的第一个。
现在你可以对所有这些文件执行置换命令:

:argdo %s/\<x_cnt\>/x_counter/ge | update

命令 ":argdo" 把另一个命令当作其参数。而后者将对参数列表内所有的文件执行。
作为参数的替换命令 "%s" 作用于所有文本行。它用 "\<x_cnt\>" 来查找"x_cnt"。
"\<" 和 "\>" 用来指定仅匹配那些完整的词,而不是 "px_cnt" 或"x_cnt2"。

替换命令的标记中包含 "g",用以置换同一行文本内出现的所有的匹配词 "x_cnt"。
标记 "e" 用于避免因文件中找不到 "x_cnt" 而出现错误信息。
否则 ":argdo" 命令就会在遇到第一个找不到 "x_cnt" 的文件时中断。
字符 "|" 分隔两条命令。后面的 "update" 命令将那些有改动的文件存盘。
如果没有 "x_cnt" 被改成 "x_counter",这个命令什么也不做。

还有一个 ":windo" 命令,用于在所有视窗内执行其参数所规定的命令。
以及 ":bufdo"命令,对所有缓冲执行其参数所规定的命令。
使用中要小心,因为你在缓冲列表中的文件数量可能超过你能想像的。
请用 ":buffers" 命令 (或 ":ls") 来检查缓冲列表。


2. perl方法
可以在命令行下进行替换,
仍然以vi方法中的例子进行讲解,把c文件中的"x_cnt" 改为 "x_counter"。
可以执行以下命令:
find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/x_cnt/x_counter/g'

xargs 把find命令的结果作为perl的参数。
find的参数-print0和xargs的参数-0是防止文件名中有空格或新行造成错误,可以man xargs获得帮助。

注意: 如果替换的字符包括 ()[]/"'!? 等等这样的特殊字符,你必须在字符前加上反斜杠\ 。

这种方法的好处是不用启动编辑器,比较迅速。缺点是容易出现不想要的替换,例如:把px_cnt替换成了px_counter。

3. sed
仍以上面的例子讲解:
find . -name "*.c" -print0 | xargs -0 sed -i 's/x_cnt/x_counter/g'
优缺点和perl方法相同。

posted @ 2012-03-28 13:37 Klarke 阅读(930) | 评论 (0)编辑 收藏

To: sjfarm
Cc: Xinghui Shen; Zhenxiang Hu
Subject: Can you help add access right?

 

Hi

Can anyone help add access right?

 

sjfnl793:.../kenyu>/grid/sfi/script/scratch mk -s 200 -d scrach_disk

ERROR: you have not been registered with the scratch setup pls email sjfarm



I have added you in scratch storage, please review the usage info as attached and following policy.

 

1) There is no high-availability setup - data can become unavailable.

2) There is no data backup - data can't be recovered after deletion.

3) It should not be used for critical data and there should not be escalation on scratch data issue.

4) There are specific retention periods and data will be deleted upon expiration.

5) Users should not run UNIX "rm" to delete their data, but rather run "scratch release dirName" to release the data for admin's daily collection.

6) users should frequently release their unused dirs to help preserve the space.

7) Users should act properly and promptly upon notification email from the scratch admin

 

posted @ 2012-03-27 17:15 Klarke 阅读(176) | 评论 (0)编辑 收藏

set count 0
dbForEachCellInst [dbgTopCell] inst {
  set cell [dbInstCell $inst]
  if {[mib::isCellFlexFiller [dbCellName $cell]]} {
    dbForEachInstTerm $inst term {
      if {[dbIsTermTieHi $term] || [dbIsTermTieLo $term]} {
        incr count
      }
    }
  }
}

Puts "Test : There is $count flexFiller connected to tieHi or TieLo"

 

posted @ 2011-10-11 13:50 Klarke 阅读(229) | 评论 (0)编辑 收藏

createActiveLogicView -type module -hInst <hinst name>


dbForEachHInstTreeHInst [dbCellHInst [dbgTopCell]] hinst {

 set name [dbHInstName $hinst]

 createActiveLogicView -type module -hinst $name

 set total 0

 set count 0

 dbForEachHInstTreeInst $hinst inst {

    if {[dbIsInstUnused $inst]} {

      incr count

    }

    incr total

 }

 Puts "YQ $name : $count/$total"

}

 

--- > All hinsts have 0 internal instance.

posted @ 2011-10-10 17:33 Klarke 阅读(264) | 评论 (0)编辑 收藏
    36  dbGetHTermByInstTermName
    37  dbGetHTermByInstTermName ChipTop/VdispCap_0/VDISP1/D0ack64x
    38  dbHTermNet 0x29d0b878
    39  dbNetName 0x2adcac88b8
    40  report_net ChipTop/n_car_l1_mbus2axi_0_ox_mrdack_2
    41  report_net -net ChipTop/n_car_l1_mbus2axi_0_ox_mrdack_2
    42  history
    43  *case*
    44  report_case_analysis -help
    45  dbGetNetByName ChipTop/n_car_l1_mbus2axi_0_ox_mrdack_2
    46  dbForEachNetOutputTerm 0x2adcac88b8 term {
        set inst [dbTermInst $term]
        Puts "[dbInstName $inst $inst]/[dbTermName $term]"
        }
    47  history
    48  dbForEachNetOutputTerm 0x2adcac88b8 term {
                set inst [dbTermInst $term]
                Puts "[dbInstName $inst ]/[dbTermName $term]"
                }
    49  report_case_analysis -help
    50  report_case_analysis ChipTop/CAR_L1_MBUS2AXI_0/CAR_L2_MBUS2AXIR_0/CAR_L2_MBUS2AXIR_MBUSIF_0/U518/YB
    51  report_case_analysis -all
posted @ 2011-09-27 15:40 Klarke 阅读(151) | 评论 (0)编辑 收藏
仅列出标题
共7页: 1 2 3 4 5 6 7