第一章 静态时序分析简单例程跑通

从一个简单的例程入手,尝试理解一下primetime静态时序分析过程和原理

1.环境准备

primetime2016

tsmc28标准单元库

一个简单的verilog文件

 

2.set path

启动pt_shell后,首先设置单元库路径,让工具知道使用哪个库的标准单元进行分析

set search_path  "$path"
set link_path  "$path"

解释一下这两个path的含义和区别:

search_path一般来讲是一个目录,通常会放入verilog文件或者约束文件,这样的话读这些文件不需要输入绝对路径,输入文件名,会去这个目录查找;

link_path是时序库的位置,通常会直接指定时序库,所以后面要求输入具体的文件,时序分析时会自动使用这些时序库文件的cell单元;

 

3.读入verilog文件

read_file -format verilog test.v

目前只试过读verilog文件,这里的.v文件需要在search_path中的目录里,如果没有,也可以直接使用绝对路径,比较直观

4.link

link的作用直接复制ai:

当你使用 read_verilog 读入一个门级网表时,PrimeTime 只是把它当作纯文本读进了内存,此时它并不知道网表中例化的子模块(如各种标准单元、SRAM 宏模块等)到底是什么。执行 link 指令后,PrimeTime 会去 link_path 指定的库文件中,寻找设计中所需要的元件定义,并将这些元件与网表中的实例一一对应起来,完成“例化”的过程。

可以用link+current_design来对指定的module进行操作,或者直接用link_design
 
完成link之后,会提示link结果:使用了多少个时序库中的cell,多少没有用,完成link的module,当前design的情况这些信息
注意一下design的情况:会显示多少Leaf cells,ports,hiers,以及多少nets。leaf cell在门级的电路设计里一般就是指基础逻辑单元
 
5.设置时钟create_clock
 给电路设置一个时钟,工具需要知道哪个信号是时钟信号,才能进行时序分析
create_clock -period 1 -name "clk_vir" -waveform {0 0.5} [get_ports clk_t]

这个指令需要用到的就是上面这几个属性,周期,占空比,名字,目标端口

 

6.时序分析进行

update_timing -full

更新时序信息,如果加上full,会更新所有时序信息,目前小的设计可以直接加上full

但这个命令有时不是必须的,通常来讲,如果直接使用report_timing,也会自动执行时序分析并输出timing信息,所以在简单的应用中,如果只需要查看一些arc或者timing信息,这个指令不是必要的,但可以选择加上,作为一个启动时序分析的指令(只是便于使用者理解)

 

7.report_timing

这个指令会报出timing信息,应该是入门时最重要的指令了,需要熟练使用,这个放到下一章节讲解,顺便整理arc的类型,timing信息里所有内容的含义,如何对当前设计debug,以及工具如何识别触发器

 
posted @ 2026-08-04 02:23  Raven_claw  阅读(2)  评论(0)    收藏  举报