| junmin's profileAmeng spacePhotosBlogLists | Help |
|
July 03 关于扫描链的一点体会set test_disable_find_best_scan_out "true"
这三句一定要加在脚本的最前面,千万不能省事的认为加载dc_setup文件中就可以了,事实证明是不行的。 加了这三句话,可以保证扫描链在串连时非常干净,中间都是上级输出直接连接到本级SI端,中间没有buf等。 还有要注意的是: 在dc的xg模式下,扫描链时钟的周期不用设置成100,如果是100,会引起串连后drc校验不过。从而引起 不能检查覆盖率,不能产生spf文件,tmax不能使用。 好像连扫描链的def文件都不能生成了。
具体原因还不清楚,以后慢慢摸索着补上。 成功解决 measure_sco 问题的DFT脚本流程Pls ans the following. ic610启动时X11问题不知道有没有大侠在Red hat enterprise 5下安装ic610的? at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1503) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834) at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Toolkit.loadLibraries(Toolkit.java:1437) at java.awt.Toolkit.<clinit>(Toolkit.java:1458) at com.khanpur.installer.gui.InstallerUI.main(InstallerUI.java:70) 然后就退出了,不知道如何解决? ************************************* 下载libXp.so.6安装可解决这个在RHEL5上安装ic610的问题! ************************************** 启动icfb时出现如下错误: 我遇到过相同的问题,好像是在xorg.conf里面加上下面一段就可以了,试试看 ***************************************** 果然,下载libxp ******************************************* 转自:http://bbs.stirf.com/viewthread.php?tid=12 Downloaded the Cadence IC Design - Virtuoso (Ver 6.10) from the following site: …/ic/tools/bin The problems I’ve met when I tried to run icfb: and Ignored the first problem first. [ 本帖最后由 castlerock 于 2008-8-1 18:08 编辑 ] July 02 关于DFT插入时,扫描链上传入很多BUF的问题最近研究DFT的时候发现在产生的def文件中有大量的BUF问题。这说明串连的时候不是从 前一个触发器的Q端直接到本触发器的SI端,而是中间进过了BUF。 在ASTRO中,网表读入后,总是会先删除BUF和成对出现的INV,因此, 在ASTRO串连的时候经常会出现 找不到触发器的下一级 的问题 经过研究,找到的解决办法如下 在脚本文件的开头,添加下面的参数
set test_disable_find_best_scan_out "true" ;#不允许寻找最佳的scan out点,直接串连触发器
完整的脚本如下 set test_disable_find_best_scan_out "true" set mdir /home/source read_file -format db $mdir/netlist/mapped/$Isp_rfilename.db source $mdir/script/nouse.tcl set_scan_configuration -style multiplexed_flip_flop -clock_mixing no_mix -internal_clocks false create_test_clock CLK -internal_clocks false -period 100 -waveform " 45 55" set_dft_signal test_mode -port SCAN_TEST -hookup IN02/D set_scan_signal test_scan_enable -port SCAN_ENA -hookup IN04/D set_signal_type test_asynch_inverted RESET_N set_scan_path chain1 -insert_terminal_lockup true set_scan_signal test_scan_in -port PIN_SI0 -chain chain1 -hookup IN05/D set_scan_path chain2 -insert_terminal_lockup true set_scan_signal test_scan_in -port PIN_SI1 -chain chain2 -hookup IN74/D set_scan_path chain3 -insert_terminal_lockup true create_test_protocol preview_dft insert_dft define_name_rules verilog -equal_ports_nets -inout_ports_equal_nets -remove_internal_net_bus -remove_port_bus write -hierarchy -f db -o $mdir/netlist/mapped/$Isp_wfilename.db remove_unconnected_ports -blast_buses [find cell -hierarchy * ] exit
June 22 关于时钟的定义在综合后仿真的时候,发现时钟2选1的输出为亚稳态, 在断开时钟输出以后,2选一输出正常。由此判断是因为 输出负载过重引起。 解决办法: 重新定义时钟起始点。 起始点重新定义在2选1的输出端Y上 create_clock –name “aclk” –period 18 –waveform { 0 9} systop/clkgen/aclk/Y 也许这种定义方法明确了时钟的起始点, 在定义复位等一类负载较大的线的时候应该也可以使用。 June 19 DC 配置输入输出管脚驱动问题命令为 v1999.10 PrimeTime Commands set_driving_cell Sets the port driving cell. SYNTAX string set_driving_cell [-lib_cell lib_cell_name] [-rise] [-fall] [-min] [-max] [library lib_name] [-pin pin_name] [-from_pin pin_name] [-multiply_by factor] [-dont_scale] [-no_design_rule] port_list stringlib_cell_name stringlib_name stringpin_name stringpin_name float factor float rtran float ftran list port_list ARGUMENTS -lib_cell lib_cell_name Specifies the name of the library cell used to drive the ports. If the cell has more than one output pin, -pin must be used. If different cells are needed for the rising and the falling cases, use separate commands with the -rise and -fall options. To choose between multiple input pins with arcs to this output pin, use -from_pin -rise Sets driving_cell information for the rising port transition only. -fall Sets driving_cell information for the falling port transition only. -min Sets driving_cell information for the minimum analysis only. This option is only valid in min-max mode. -max Sets driving_cell information for the minimum analysis only. This option is valid even when not in min-max mode. When not in min-max mode, the option is not required because this option is the default. -library lib_name Specifies the name of the library where to find library_cell_name; the library of the driving cell. By default, the libraries in link_library are searched for the cell. -pin pin_name Specifies the output pin whose drive is used; the driving pin name. If you do not specify -from_pin, an arbitrary pin arc ending at the specified pin is used. HOME CONTENTS / 452 v1999.10 PrimeTime Commands -from_pin pin_name Specifies an input pin on the specified cell so the drive of the timing arc from this pin to the specified pin is used. -multiply_by factor Multiplies the calculated transition time by the specified multiplier. Transition multiplier (Range: greater than or equla to 0). -dont_scale Prevents operating condition scaling. Indicates that the timing analyzer is not to scale the drive capability of the ports according to the current operating conditions. By default, the port drive capability is scaled for operating conditions exactly as the driving cell itself would have been scaled. -no_design_rule Specifies not to transfer design rules from the driving cell to the port. If you do not specify this option, the design rules (such as max_capacitance) of the library pin are applied to the port. -input_transition_rise rtranfp Specifies the input rising transition time associated with -from_pin. If this is not specified, the default value is 0. This and the -input_transition_fall option are used to capture the accurate transition time associated with from_pin, such that more acurate transition time and delay time at the output pin can be obtained. -input_transition_fall ftranfp Specifies the input falling transition time associated with -from_pin. If this is not specified, the default value is 0. port_list Provides a list of input ports. The list contains input or inout port names in the current design on which the driving cell information is set. DESCRIPTION Sets attributes on the specified input or inout ports in the current design to associate an external driving cell with the ports. The drive capability of the port is the same as if the specified driving cell were connected in the same context to allow accurate modeling of port drive capability for nonlinear delay models. Unless you specify -dont_scale, the drive capability of the port is scaled according to the current operating conditions. To view drive information on ports, use report_port -drive. The characterize_context command automatically sets driving cell information on subdesign ports based on their context in the entire design. Use the remove_driving_cell command to remove driving cell information from ports. Note: The set_driving_cell command removes any corresponding drive resistance or input transition attributes (from set_drive_resistance or set_input_transition) on the specified ports. If possible, always use set_driving_cell instead of HOME CONTENTS / 453 v1999.10 PrimeTime Commands set_drive_resistance, because set_driving_cell allows accurate calculation of port delay and transition time for library cells with nonlinear dependence on capacitance. EXAMPLES pt_shell> set_driving_cell -lib_cell AND [get_ports A] pt_shell> report_port -drive A **************************************** Report : port -drive Design : counter Version: 1997.08 Date : Tue 1996 **************************************** Resistance Transition Input Port Rise Fall Rise Fall A -- -- -- - Driving Cell Input Port Rise Fall Mult Attrs A AND AND - SEE ALSO all_inputs (2), characterize_context (2), remove_driving_cell (2), report_port (2), reset_design (2), set_drive_resistance (2), set_input_transition (2), set_capacitance (2). HOME CONTENTS / 454 实例为: set_driving_cell –lib_cell INVX8HS –pin Y –library sagehs_smic_013g_ss_1p08v_125c [all_inputs] June 14 终于解决了头痛的measure_sco必须在最后的问题了!!!注意: 我的dc版本是2007的,其他的不知道行不行。 我是才开始学习dft的设计。电路很简单,就是1万多触发器要穿起来,memory不用管,在测试模式下直接用测试向量测试。 机器用的是dell的755,4核cpu,8g内存。 系统用的是suse11.1 整个平台还可以,就是有时候容易不知不觉的死机,我估计和无线网络有关系。 在做dft的覆盖率测试的时候,碰到了下面的问题 dft_drc
尝试了很多办法,为了不耽误工作,甚至更换了各种linux系统, 还跑到unix下面用尝试了一下05版dc。 结果发现在工作站上用05版dc可以跑通。没有错误。可是无奈工作站非常慢,至少要20小时才能出结果。 只好在空闲的时候继续尝试在pc机的linux下面进行scan的插入。 经过多种尝试,今天终于跑通了。 下面说一下方法: 首先,要用dc的db模式,不能用xg模式。方法是在命令后面加-db_mode 其次,必须使用命令行模式,图形界面不太行(我也不太确定,毕竟没有其他的版本给我使用) 命令为 dc_shell-t –db_mode 最后,是各种命令的选择和搭配。 在dc的不同版本,不同模式下面支持的scan命令是不一样的。大家要注意命令的选择。 我使用的是下面的命令。scan用到得各种信号基本上都概括了。 推荐大家看看几个文档 第一个 Test Automation Quick Reference
类似于 dft中复位信号的高低有效定义就是在这里找到的。 第二个 这个文件没有名字 好像是cic的培训文档,大家可以找找看, 我也发过这个文档 连接是 http://edacn.net/bbs/viewthread.php?tid=152802 这个文档里面讲了各种问题的处理方法。缺点是给出的命令例子不一定适合你的dc版本,需要改动。 set_scan_configuration -style multiplexed_flip_flop -clock_mixing June 04 使用循环语句对模块进行处理set mdir /home/source read_file -format ddc $mdir/netlist/unmapped/$Dcs_rfilename.ddc foreach_in_collection itr [get_designs *] { #对所有的design进行下面的处理 } June 01 在DC综合中要求打散总线#设置名称规则 verilog 中打散总线。包括 模块内部总线 和 模块端口总线 define_name_rules verilog –remove_internal_net_bus –remove_port_bus #执行名称规则 verilog 在所有的层次中 change_names –rules verilog –hierarchy -verbose May 30 避免在综合后出现assign,脚本的顺序应该如下。#读入代码 1 read_verilog rtl.v #防止出现tir类型 2 set verilogout_no_tri true 3 set_fix_multiple_port_nets -all -buffer_constants [get_designs *]; #防止出现assign 7 write_file -f verilog -hierarchy -output rtl.vnet May 12 关于DFT的想法昨天看了一篇文档,突然有个想法。 如果把SCAN CLK的频率设置的低一点,会不会对插入scan以后的电路的时序要求会降低呢? 虽然用命令 set_dft_signal -view existing_dft -type ScanClock -port SCAN_CLK -timing {40 70} 设置了时钟的上升和下降沿,但是没有指定周期。本命令 默认的周期是100纳秒,但是还是不敢肯定, 所以更改为下面的不知道合适不 。 set_dft_signal -view existing_dft -type ScanClock -port SCAN_CLK -timing {50 100} -period 100 明确规定一下上升沿在50纳秒,下降沿在100纳秒位置,周期为100纳秒,频率为10兆,这样的时钟应该没有时序问题了。 在设置插入scan链的时候,只考虑了插入命令insert_scan,并没有考虑插入的具体形式, 试想 一下,电路中触发器大概有几万个,如果全靠软件自己插入的话,应该是一种无序的状态,有可能吧两个相隔 非常遥远的触发器穿在一起,这样有可能引起电路本身时序的不满足,即电路主时钟的时序不满足。 如果能够对每一条测试链的长度和所穿连的触发器进行规定。那么这种无序的状态就能得到改善。 May 05 set_input_delay/ set_output_delay之图解转贴: 来源 : http://blog.ednchina.com/codeman/198443/message.aspx set_input_delay/ set_output_delay 在与时钟选项定义的时钟相关的输入port上定义data arrival time,可将输入延时定义与上升沿或下降沿相关。 如果输入延时与简单的生成时钟相关,到生成时钟的clock arrival time要加到data arrival time上。 输入延时可以定义与时钟网络中的port相关,到参考port的clock arrival time要加到data arrival time上。 输入延时可以包含时钟源延时,默认条件下,相关的时钟源延时加到输入延时上;但是,当定义-source_latency_included选项时,时钟源延时不要相加,因为它并没有用作为input delay value的时序因素。 max用在时钟建立时间或恢复(recovery)校验上,min用于时钟保持时钟或移除(removal)校验上。 # Simple input delay with the same value for min/max and rise/fall: # 1) set on ports with names of the form myin* set_input_delay -clock clk 1.5 [get_ports myin*] # 2) set on all input ports set_input_delay -clock clk 1.5 [all_inputs] # Input delay with respect to the falling edge of clock set_input_delay -clock clk -clock_fall 1.5 [get_ports myin*] # Input delays for different min/max and rise/fall combinations set_input_delay -clock clk -max -rise 1.4 [get_ports myin*] set_input_delay -clock clk -max -fall 1.5 [get_ports myin*] set_input_delay -clock clk -min -rise 0.7 [get_ports myin*] set_input_delay -clock clk -min -fall 0.8 [get_ports myin*] ============================================ 以上内容摘自Quartus help,基本定义edn上很多仁兄已经讲的很清楚了。 看下面简单的例子,两级触发器,来自 http://www.altera.com.cn/support/examples/timequest/exm-timequest.html 设计图: 很简单的例子,仅仅加时钟周期约束的条件下,用TimeQuest分析仅会得到一路path的分析,reg1 to reg2,时序图如下: 这张图已经有人做过了仔细的分析,可以清楚地看到各个参数的大小。 set_input_delay -clock { clk_in } -add_delay 1.200 [get_ports {data_in}] set_output_delay -clock { clk_in } -add_delay 2.000 [get_ports data_out] 重新运行TimeQuest,可以看到3个path分析 可以看到,输入路径在data arrival time上加上了input delay;输出路径在data required time上减去了output delay;分别表现为对setup和hold时间的影响。 April 29 dft学习结果最近用了个小例子在学习dft,最后还是弄得不太清楚. 放上来,以后接着研究.不能放附件,所以只好贴代码了 下面是源代码 module dfttest(clk,reset, // SCAN PIN SCAN assign clkin = SCAN_TEST ? SCAN_CLK : clk; always @(posedge clkin or negedge reset) always @(posedge clkin) endmodule
下面是脚本文件 reset_design set_operating_conditions -min_library sagehs_smic_013g_ff_1p32v_0c -min sagehs_smic_013g_ff_1p32v_0c -max_library sagehs_smic_013g_ff_1p32v_0c -max sagehs_smic_013g_ff_1p32v_0c set bind_unused_hierarchical_pins true current_design dfttest #******************************* insert scan ************************************** set_scan_configuration -chain_count 1 set_dft_configuration -fix_clock enable -fix_reset enable -fix_set enable compile -scan create_test_protocol April 28 基于Astro工具的ASIC时序分析摘要:在目前的ASIC设计中,时钟信号的质量对同步数字电路的影响越来越大。如何避免时序问题给电路造成的不利影响成为设计中的重要挑战。本文主要介绍了逻辑设计中值得注意的重要时序问题,以及如何克服这些问题。最后介绍了利用Astro工具进行时序分析的方法。 引言 时钟偏斜 时序分析
解决时钟偏斜的常用方法 Astro工具的使用
结语 参考文献 April 09 比较郁闷的事情今天真是很郁闷阿,原来以为自己的英文水平还可以,结果今天要用了才发现完全不是那么回事。
唉,平时都是开着金山词霸看资料,现在要自己写点东西还真的写不出来。真是的,鄙视一下自己!!!
i am very upset today.
i think my english level is ok before.
but ,when i use it ,i find it is very poor .
usually ,when i read the english specific,i use the Xict.
but when i want to writing something ,i can't writing.!!! |
|
|