|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
刚接触Primetime这个软件,在看网上AM2910那个例子的时候对他里面建立起的quick timing model有很多疑问,想请教一下大家
先把这个例子贴上来,
read_db pt_lib.db
create_qtm_model STACK
set_qtm_technology -library pt_lib -wire_load_model 10x10
create_qtm_path_type path1 -lib_cell NR3 -fanout 3
create_qtm_load_type load1 -lib_cell IVA
create_qtm_drive_type drive1 -lib_cell ND3
set_qtm_global_parameter -param setup -lib_cell FD1 -clock CP -pin D
set_qtm_global_parameter -param hold -value 0.0
set_qtm_global_parameter -param clk_to_output -lib_cell FD1 \
-clock CP -pin Q
create_qtm_port {CLOCK} -type clock
create_qtm_port {OPERATION[1:0] VALUE[1:12]} -type input
create_qtm_port {OUTPUT_VALUE[1:12] OVERFLOW} -type output
set_qtm_port_load {CLOCK} -type load1 -factor 3
set_qtm_port_load {OPERATION[1:0] VALUE[1:12]} \
-type load1 -factor 2
set_qtm_port_drive {OUTPUT_VALUE[1:12] OVERFLOW} -type drive1
create_qtm_constraint_arc -setup -from CLOCK -to OPERATION \
-path_type path1 -path_factor 9 -edge rise
create_qtm_constraint_arc -setup -from CLOCK -to VALUE \
-path_type path1 -path_factor 1 -edge rise
create_qtm_delay_arc -from CLOCK -to OUTPUT_VALUE \
-path_type path1 -path_factor 4 -edge rise
create_qtm_delay_arc -from CLOCK -to OVERFLOW \
-path_type path1 -path_factor 6 -edge rise
首先,QTM这个模型的运用场景不是很明白,似乎是在只拥有库的情况下找出库中的几个cell来把它作为搭电路的标准,从中获取他们cell内以及wire的负载,算出一个时间?
第二,这里的path定义了一个由特定原件组成的一个path1,后面生成delay arc的时候都是这个类型的path,不知道这样做的目的是什么?是因为以后设计中都是这个类型的path来看她的delay么?
第三,为什么要乘以这些factor?是因为设计者在估算这条路的时候觉得应该要乘以这些factor来满足以后设计的要求么?当然例子中有很多乘以这个factor,不知道他们的作用和目的是不是都是如此?
第四,对于delay_arc我的理解就是要看这两个arc的delay,应该不难,但是在他上面的两条constraint就很不清楚,一条是CLOCK到输入的VALUE,一条是CLOCK到驶入的OPERATION,都是setup,我的timing知识很匮乏请不要见笑,我不理解的是setup为什么会有两个?是因为两个不同输入所以CLOCK会有与两个输入不同的时间setup么?那么如果是这样,前面设置setup的值(global_parameter)好像和这里又没有什么关系。可否解释一下呢?
由于刚刚接触这些东西,看东西不全面,有什么没有表达清楚还请见谅
谢谢! |
|