Quantcast
Channel: Cadence Digital Implementation Forum
Viewing all 1455 articles
Browse latest View live

Constraining input signal in Encounter

$
0
0

I have a serial-to-parallel converter based on a shift register  and a bank of flip-flops that latches the data out. I synthesized this in dc_shell and p+r in Encounter.  My timing constraint file is below. clk is the serial clock and p_clk controls the output dffs. 

[CODE]

set_wire_load_model -name "TSMC8K_Lowk_Aggresive"
set_wire_load_mode top
set_drive 0.5 [all_inputs]
set_load 1 [all_outputs]
set_max_capacitance 0.1 [all_inputs]
set_max_fanout 8 [get_designs]
set_max_fanout 8 [all_inputs]
#set_max_delay  1 -from [all_inputs]

create_clock clk -period 5 -waveform {0 2.5}
create_clock p_clk -period 340 -waveform {0 170}

set_dont_touch_network [all_clocks]
set_false_path -from clk -to p_clk
set_clock_uncertainty 0.5 clk
set_clock_uncertainty 0.5 p_clk
[\CODE]
Is it safe to assume that not specifying input delay constraints tells the tool that the data and clock to each dff is aligned? I can't find any reference to this in the dc_shell manual or synopsys constraint manual but I would hope that Encounter parses the .sdc/constraints in a similar way.

I dont correct setup and hold violations in dc_shell, I do that in encounter. The final netlist that encounter outputs shows delay cells have been added to the data input ports and looking at the timing arcs for each input, the delays are also shown. The delays push the data edge back to the next clock edge to satisfy the setup time, this makes sense to me. 

[CODE]
Path 1: MET Setup Check with Pin sr_reg_0_/CP 
Endpoint:   sr_reg_0_/D    (^) checked with  leading edge of 'clk'
Beginpoint: serial_data_in (^) triggered by  leading edge of '@'
Path Groups:  {inclkSrc2reg}
Other End Arrival Time          0.131
- Setup                         0.035
+ Phase Shift                   5.000
- Uncertainty                   0.500
= Required Time                 4.596
- Arrival Time                  3.592
= Slack Time                    1.004
     Clock Rise Edge                      0.000
     + Input Delay                        0.000
     + Drive Adjustment                   0.024
     = Beginpoint Arrival Time            0.024
     Timing Path:
     +--------------------------------------------------------------------------------------------+ 
     |         Instance         |       Arc        |  Cell   |  Slew | Delay | Arrival | Required | 
     |                          |                  |         |       |       |  Time   |   Time   | 
     |--------------------------+------------------+---------+-------+-------+---------+----------| 
     |                          | serial_data_in ^ |         | 0.024 |       |   0.024 |    1.028 | 
     | FE_PHC68_serial_data_in  | I ^ -> Z ^       | DEL015  | 0.046 | 0.286 |   0.310 |    1.314 | 
     | FE_PHC362_serial_data_in | I ^ -> Z ^       | DEL005  | 0.026 | 0.066 |   0.376 |    1.380 | 
     | FE_PHC910_serial_data_in | I ^ -> Z ^       | CKBD2   | 0.019 | 0.040 |   0.416 |    1.420 | 
     | FE_PHC589_serial_data_in | I ^ -> Z ^       | DEL0    | 0.068 | 0.746 |   1.162 |    2.166 | 
     | FE_PHC500_serial_data_in | I ^ -> Z ^       | DEL0    | 0.066 | 0.759 |   1.921 |    2.925 | 
     | FE_PHC139_serial_data_in | I ^ -> Z ^       | DEL1    | 0.095 | 1.671 |   3.592 |    4.596 | 
     | sr_reg_0_                | D ^              | DFCNQD1 | 0.095 | 0.000 |   3.592 |    4.596 | 
     +--------------------------------------------------------------------------------------------+ 
     Clock Rise Edge                      0.000
     + Drive Adjustment                   0.012
     = Beginpoint Arrival Time            0.012
     Other End Path:
     +-------------------------------------------------------------------------+ 
     |  Instance  |     Arc     |  Cell   |  Slew | Delay | Arrival | Required | 
     |            |             |         |       |       |  Time   |   Time   | 
     |------------+-------------+---------+-------+-------+---------+----------| 
     |            | clk ^       |         | 0.012 |       |   0.012 |   -0.992 | 
     | clk__L1_I0 | I ^ -> ZN v | INVD24  | 0.014 | 0.013 |   0.025 |   -0.979 | 
     | clk__L2_I0 | I v -> ZN ^ | CKND24  | 0.028 | 0.037 |   0.062 |   -0.942 | 
     | clk__L3_I0 | I ^ -> ZN v | INVD24  | 0.020 | 0.033 |   0.095 |   -0.909 | 
     | clk__L4_I1 | I v -> ZN ^ | CKND24  | 0.040 | 0.033 |   0.128 |   -0.876 | 
     | sr_reg_0_  | CP ^        | DFCNQD1 | 0.040 | 0.003 |   0.131 |   -0.873 | 
     +-------------------------------------------------------------------------+

[\CODE]

Lastly, I simulate the p+r'd netlist in Virtuoso. The input serial data is changed at the rising clock edge and the circuit works fine. 

So my question is, it appears that not having an input delay constraint tells dc_shell, Encounter, etc that the input data is aligned to the positive clock edge. Is this correct?

I should add, the input to the shift register is coming from an off-chip FPGA that I can also constrain. Therefore, I see no problem with using no input delay constraints because I can align the data with the clock edge at the FPGA. 


clock tree synthesis

$
0
0

Hello all,

When designing the clock tree for a design in SoC Encounter, can I specify certain clock delays for certain gates ? (for example I need the clock of gate x to rise after 0.2ns from the I/O clock pin rise). Is it possible to do this in the clock tree specification file ? 

Thanks

SDF annotate

$
0
0

I synthesized the RTL code in RTL compiler. The SDF file was generated by using the command as write_sdf. Then i simulated the netlist by irun. The sdf annotation gives a warning such as following

ncelab: *W,SDFNET: Unable to annotate to non-existent timing check (RECREM (posedge CDN) (negedge CPN) (0) (0.363)) of instance tb.top_dbf_inst.dbf_32ch_inst.dbf_inst.debug_design_inst.\dbg_cd_dly_din0_reg[0] of module dfcfq1 <./delays.sdf, line 95617>.

could you help me to resolve this problem?

Site CORE doesn't exist in the search path

$
0
0

Hello all,

I am importing my design from Encounter13 to Virtuoso (IC.5) in order to apply DRC and LVS checks by Calibre. But before 'streaming in' my design, I imported the LEF files. In icfb, when I do File->Import->LEF, I receive the following warning for every macro in the lef file.
Processing Macro '<cellname>'. *WARNING* Site CORE doesn't exist in search path. Ignored.
How can I get rid of this warning?

Detail info:
First I imported the LEF files, including the header (tech-lef file), then the body-lef file including the macro's info. In the header file I have the following info of the site core:
#------------------------------------------
# site definition for P&R
#------------------------------------------
SITE core
    SYMMETRY y ;
    CLASS CORE  ;
    SIZE 0.400 BY 3.200 ;
END core

In the body-lef file, every macro starts with the lines below:


MACRO <cellname>
    CLASS CORE ;
    FOREIGN <cellname> 0.000 0.000 ;
    ORIGIN 0.000 0.000 ;
    SIZE 2.400 BY 3.200 ;
    SYMMETRY x y   ;
    SITE core ;
    ....
    ....




  

Cadence RTLCompiler, how to prevent re-synthesis of the same module

$
0
0

Hi ,

Say, in my top level verilog netlist i have a decoder module and it instantiates four instances of the same module DECODER. 

After RTLCompiler has done elaborate and synthesis, they becomes instances of four differently-named modules, DECODER, DECODER_1667, DECODER_1668, and DECODER_1669 and each one has a different logic gate implementation.

How do I prevent the same module been renamed and re-synthesized to different implementations? 

Later in hierarchical P&R, how do i handle this?  do I need to make one of the four copies as master partition, what is the command to make the other three into clones of the master partition?

can someone provide me a solution to this asap ...

How to set different max transition for the different sub modules in design.

$
0
0

hi,

i want to use set_max_transition to set transition for my design.
but my design hierarchy 

top_design --> 16 slavecontroller -->syn_decoder, level gen, counter
now i want to set max_trans for syn_decoder and counter of 0.3 and for rest of the design as 0.7 how can i do this ?

pls if you can provide me quick help on this.

Regards,
Priyankar
                                                       

Voltus power analysis

$
0
0

Hi All,

        I have a whole design of test chip which has analog block as a hard macro. While trying to do power analysis of the whole design, I got an error for the included macro.

I think it is because of the input file required. It requires spice subcircuit file. Is this extracted netlist? or some other thing. Please clarify.


And the power pin for which I am going to analyze power is in Macro level only It is not connected to any top level pins. So is it possible to do power analysis for this macro in VOLTUS environment?

If it is possible How can I do this?

Thanks.

ERROR: (IMPVL-375) while netlist import into Innovus

$
0
0

Hi,


I have sythesized (syn_map) my design with loaded technology (read_physical -lef $lef_list) files in Genus. Now I want to import the design into Innovus to generate a floorplan, but I get

ERROR: (IMPVL-375):    Keyword (xor) is not currently supported.


Is there any idea how to synthesize without using xor cell or how to load the design anyway?

Regards,

Eike Hahn


Inserting a PIN definition in the SPECIALNETS section instead of the PINS section

$
0
0

Inserting a PIN definition in the SPECIALNETS section instead of the PINS section.

Here is a sample syntax that I tried in the SPECIALNETS section, but got nowhere.

SPECIALNETS 2 ;

...

+ LAYER m0 WIDTH 22 SPACING 18

...

END SPECIALNETS

Exclude one clock from clock tree synthesis

$
0
0

Hello all,

My digital system uses a multiphase clock. Each phase is defined as a independent clock. I have four phases defined in my .sdc file: CK1 CK2 CK3 and CK4. These 4 phases are generated with a custom IC design.

In order to meet the timing requirement, I need to avoid to have a clock tree for CK4. The buffer from the custom IC design will have the sufficient strenght to drive the clock line. Do you know which command I can use to avoid the placement of any buffer on the CK4 line? I'm using Enconter 14.26 and ccopt flow -integration native

Thanks!

Clock tree synthesis (ccopt): where set_clock_latency has been defined?

$
0
0

Hello,

for my clock tree synthesis, I use the ccopt flow, and I source the following commands:

setCTSMode -engine ccopt

create_ccopt_clock_tree_spec -file ccopt.spec

The .spec file should be based on my .sdc. However, in the generated .spec file I can read something like the following:

# Clock tree offset inferred from set_clock_latency -source assertions:
set_ccopt_property source_latency -delay_corner corner_max_125c -late -rise -clock_tree CK_4 -0.273
set_ccopt_property source_latency -delay_corner corner_max_125c -late -fall -clock_tree CK_4 -0.276
set_ccopt_property source_latency -delay_corner corner_min_m55c -early -rise -clock_tree CK_4 -0.125
set_ccopt_property source_latency -delay_corner corner_min_m55c -early -fall -clock_tree CK_4 -0.126

However I don't have any set_clock_latency command in my .sdc!!!

Where do these numbers come from? And why they're negative?

I hope you can help me understand. Thanks!!!

Genus cannot find ICG cells, although lib file provides one

$
0
0

Hi there,

building a digital design with clock gating fails with  Cadence Genus 16.12-s027_1 due to the lack of ICG in the provided libs:

genus@root:> syn_generic

Error   : Cannot find any usable integrated clock-gating cell. [POPT-78] [syn_generic]
        : The provided library does not have a usable integrated clock-gating cell.

When looking at the lib file (see below .lib-excerpt) there is one ICG named CGATE available, so why isn' it recognized probely?

 cell (CGATE_X1) {
    area : 4.6512;
    cell_leakage_power : 0.202986;
    pg_pin (gnd) {
      pg_type : primary_ground;
      voltage_name : "gnd";
    }
    pg_pin (gnds) {
      pg_type : primary_ground;
      voltage_name : "gnds";
    }
    pg_pin (vdd) {
      pg_type : primary_power;
      voltage_name : "vdd";
    }
    pg_pin (vdds) {
      pg_type : primary_power;
      voltage_name : "vdds";
    }
    leakage_power () {
      value : 0;
      when : "(CLK * E * CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * E * CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.202589;
      when : "(CLK * E * CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(CLK * E * CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * E * !CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * E * !CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.193102;
      when : "(CLK * E * !CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(CLK * E * !CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * !E * CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * !E * CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.212276;
      when : "(CLK * !E * CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(CLK * !E * CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * !E * !CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(CLK * !E * !CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.200839;
      when : "(CLK * !E * !CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(CLK * !E * !CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      when : "(!CLK * E * !CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(!CLK * E * !CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.200262;
      when : "(!CLK * E * !CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(!CLK * E * !CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      when : "(!CLK * !E * !CLKG)";
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      when : "(!CLK * !E * !CLKG)";
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.208775;
      when : "(!CLK * !E * !CLKG)";
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      when : "(!CLK * !E * !CLKG)";
      related_pg_pin : vdds;
    }
    leakage_power () {
      value : 0;
      related_pg_pin : gnd;
    }
    leakage_power () {
      value : 0;
      related_pg_pin : gnds;
    }
    leakage_power () {
      value : 0.202974;
      related_pg_pin : vdd;
    }
    leakage_power () {
      value : 1.21658e-05;
      related_pg_pin : vdds;
    }
    pin (CLKG) {
      direction : output;
      function : "CLK";
      power_down_function : "(!vdd) + (gnd)";
      related_ground_pin : gnd;
      related_power_pin : vdd;
      max_capacitance : 0.028;
      timing () {
        related_pin : "CLK";
        sdf_cond : "E";
        timing_sense : positive_unate;
        timing_type : combinational_fall;
        when : "E";
        cell_fall (delay_template_clk_load1) {
          index_1 ("0.003, 0.01, 0.04, 0.08, 0.16, 0.35, 0.7, 1.4, 2.1, 4.2, 5.5");
          index_2 ("0.0002, 0.0018, 0.0035, 0.007, 0.014, 0.028");
          values ( \
            "0.0294879, 0.0398205, 0.0487314, 0.0659852, 0.0997817, 0.166978", \
            "0.0347069, 0.0450079, 0.0539224, 0.0711992, 0.105011, 0.17221", \
            "0.0573068, 0.0674414, 0.0763555, 0.0936854, 0.127599, 0.19488", \
            "0.0827644, 0.0935472, 0.102639, 0.119997, 0.153925, 0.221266", \
            "0.121645, 0.133974, 0.143449, 0.161033, 0.195035, 0.262336", \
            "0.188922, 0.20501, 0.215964, 0.234338, 0.268168, 0.335341", \
            "0.279023, 0.300261, 0.314115, 0.33507, 0.369837, 0.436259", \
            "0.412766, 0.441102, 0.459355, 0.485753, 0.524264, 0.590974", \
            "0.522671, 0.555589, 0.577107, 0.607928, 0.651148, 0.719878", \
            "0.793975, 0.835413, 0.864009, 0.904889, 0.960684, 1.03998", \
            "0.941375, 0.986205, 1.01809, 1.06391, 1.12607, 1.21278" \
          );
        }
        fall_transition (delay_template_clk_load1) {
          index_1 ("0.003, 0.01, 0.04, 0.08, 0.16, 0.35, 0.7, 1.4, 2.1, 4.2, 5.5");
          index_2 ("0.0002, 0.0018, 0.0035, 0.007, 0.014, 0.028");
          values ( \
            "0.0048524, 0.011077, 0.0178069, 0.0320752, 0.0609086, 0.11869", \
            "0.0048523, 0.0110798, 0.0178097, 0.0320727, 0.0609186, 0.118598", \
            "0.0049441, 0.011142, 0.0178398, 0.0320772, 0.0609039, 0.11869", \
            "0.0060777, 0.0118288, 0.0182344, 0.0321534, 0.060917, 0.118618", \
            "0.0084359, 0.0135443, 0.0194119, 0.0328451, 0.0612401, 0.118648", \
            "0.0133468, 0.0182387, 0.023092, 0.0347269, 0.0619731, 0.119299", \
            "0.020275, 0.025843, 0.03036, 0.039962, 0.063993, 0.120029", \
            "0.030526, 0.037527, 0.042541, 0.051512, 0.071082, 0.122183", \
            "0.038593, 0.04674, 0.052327, 0.061738, 0.079695, 0.125872", \
            "0.058078, 0.0684, 0.07566, 0.086808, 0.105286, 0.143345", \
            "0.068312, 0.079434, 0.087614, 0.099809, 0.119355, 0.156112" \
          );
        }
        receiver_capacitance1_rise (delay_template_clk_load1) {
          index_1 ("0.003, 0.01, 0.04, 0.08, 0.16, 0.35, 0.7, 1.4, 2.1, 4.2, 5.5");
          index_2 ("0");
          values ( \
            "0.00101277", \
            "0.00107731", \
            "0.00111709", \
            "0.00113738", \
            "0.00115087", \
            "0.00116475", \
            "0.00117439", \
            "0.0011856", \
            "0.00119271", \
            "0.00120462", \
            "0.00120931" \
          );
        }
        receiver_capacitance2_rise (delay_template_clk_load1) {
          index_1 ("0.003, 0.01, 0.04, 0.08, 0.16, 0.35, 0.7, 1.4, 2.1, 4.2, 5.5");
          index_2 ("0");
          values ( \
            "0.00125816", \
            "0.00139447", \
            "0.00155052", \
            "0.00170294", \
            "0.00199777", \
            "0.00233997", \
            "0.00293755", \
            "0.00291149", \
            "0.00289583", \
            "0.00286674", \
            "0.0028518" \
          );
        }
        output_current_fall () {
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.0002");
            index_3 ("0.0246521, 0.0294609, 0.0307928, 0.0332411, 0.0344262, 0.0356106, 0.0386795, 0.0402228, 0.0417247, 0.0425176, 0.0437401, 0.0458277, 0.047597, 0.0509265, 0.0559515");
            values ( \
              "-0.00237731, -0.0142754, -0.0157612, -0.0170134, -0.0167729, -0.0160253, -0.00790806, -0.00462428, -0.00260775, -0.00193246, -0.00121756, -0.000616405, -0.000380630, -0.000174872, -0.000111978" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.0018");
            index_3 ("0.0271955, 0.0304305, 0.0353129, 0.0381565, 0.0408834, 0.0435783, 0.0462722, 0.0476278, 0.0577542, 0.0617993, 0.0643354, 0.0693825, 0.0753371, 0.0823776, 0.0907041");
            values ( \
              "-0.00773306, -0.0479933, -0.0615546, -0.0651273, -0.0669155, -0.0667825, -0.0647750, -0.0622375, -0.0255678, -0.0150468, -0.0105742, -0.00510329, -0.00210180, -0.000676775, -0.000170739" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.0035");
            index_3 ("0.0271981, 0.0322474, 0.0348815, 0.0384363, 0.0417851, 0.0472971, 0.052493, 0.0580799, 0.0617319, 0.0758324, 0.0798893, 0.0868814, 0.0940256, 0.100999, 0.108969, 0.112152");
            values ( \
              "-0.00702388, -0.0623686, -0.0706010, -0.0773701, -0.0805144, -0.0820614, -0.0807076, -0.0753592, -0.0680004, -0.0299576, -0.0220295, -0.0123716, -0.00665919, -0.00364192, -0.00170055, -0.00151154" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.007");
            index_3 ("0.0295021, 0.0319286, 0.0348596, 0.0385301, 0.0448101, 0.0469122, 0.0538317, 0.0620373, 0.0697375, 0.0777714, 0.0865582, 0.110917, 0.119516, 0.130838, 0.138739, 0.148055, 0.163423, 0.180764");
            values ( \
              "-0.0495943, -0.0660748, -0.0772033, -0.0854117, -0.0914176, -0.0923290, -0.0930038, -0.0918835, -0.0895854, -0.0848331, -0.0745245, -0.0345353, -0.0243132, -0.0146287, -0.0101458, -0.00651709, -0.00306924, -0.00140530" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.014");
            index_3 ("0.0295039, 0.0339847, 0.0389381, 0.0443878, 0.0501932, 0.056869, 0.0745651, 0.0889135, 0.105133, 0.111398, 0.118804, 0.13553, 0.169308, 0.186938, 0.203309, 0.215663, 0.229175, 0.251352, 0.264749, 0.28006, 0.310682, 0.35717, 0.414118");
            values ( \
              "-0.0473509, -0.0777602, -0.0906955, -0.0968044, -0.0991109, -0.0996649, -0.0985788, -0.0969332, -0.0938705, -0.0920507, -0.0890961, -0.0780940, -0.0465386, -0.0326125, -0.0227284, -0.0170694, -0.0123734, -0.00717509, -0.00515275, -0.00350324, -0.00156326, -0.000406454, -6.84710e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.00375;
            index_1 ("0.003");
            index_2 ("0.028");
            index_3 ("0.0322277, 0.0488888, 0.0510915, 0.0579664, 0.0631652, 0.10052, 0.141952, 0.15221, 0.170801, 0.185197, 0.200497, 0.23062, 0.299758, 0.332462, 0.365874, 0.39, 0.416336, 0.448813, 0.463773, 0.486472, 0.516737, 0.577268, 0.621434");
            values ( \
              "-0.100917, -0.101909, -0.102581, -0.103316, -0.103367, -0.101985, -0.0995768, -0.0987034, -0.0967594, -0.0946230, -0.0914002, -0.0811303, -0.0472814, -0.0337326, -0.0231584, -0.0174064, -0.0126414, -0.00841076, -0.00697336, -0.00523618, -0.00355603, -0.00157196, -0.00101145" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.0002");
            index_3 ("0.03877, 0.04343, 0.0447619, 0.0472102, 0.0483952, 0.0495796, 0.0526508, 0.0541894, 0.0556956, 0.0564878, 0.0577098, 0.0597938, 0.0615596, 0.0648967, 0.076876");
            values ( \
              "-0.00285961, -0.0143250, -0.0157129, -0.0169676, -0.0168187, -0.0159812, -0.00790493, -0.00462650, -0.00260736, -0.00193011, -0.00121870, -0.000618126, -0.000380047, -0.000175876, -2.45523e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.0018");
            index_3 ("0.0414679, 0.043151, 0.0443499, 0.0492478, 0.0520917, 0.0548199, 0.0575157, 0.0603404, 0.0629393, 0.0717955, 0.0745018, 0.0780114, 0.0833143, 0.0898945, 0.0949351");
            values ( \
              "-0.000253436, -0.0425896, -0.0476241, -0.0613492, -0.0652104, -0.0667664, -0.0668894, -0.0644948, -0.0585554, -0.0252564, -0.0178138, -0.0109803, -0.00510327, -0.00190320, -0.00133453" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.0035");
            index_3 ("0.0414688, 0.0453748, 0.0511818, 0.0557606, 0.0610863, 0.0642419, 0.0695285, 0.073119, 0.0895101, 0.0954383, 0.102348, 0.106979, 0.112295, 0.125064, 0.154027");
            values ( \
              "-0.00568081, -0.0590594, -0.0754883, -0.0805355, -0.0821065, -0.0816641, -0.0785505, -0.0735589, -0.0305110, -0.0194204, -0.0109686, -0.00722781, -0.00452255, -0.00135716, -1.00000e-22" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.007");
            index_3 ("0.0414692, 0.0488241, 0.0530941, 0.057034, 0.0608846, 0.0650032, 0.0721977, 0.0815575, 0.0917343, 0.0998593, 0.127141, 0.135387, 0.145652, 0.161975, 0.184664, 0.185267");
            values ( \
              "-0.0180213, -0.0772603, -0.0864812, -0.0905619, -0.0923941, -0.0930411, -0.0926196, -0.0904309, -0.0846692, -0.0755646, -0.0315101, -0.0224323, -0.0140474, -0.00649633, -0.00209957, -0.00207480" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.014");
            index_3 ("0.0439502, 0.0479667, 0.0529167, 0.0582683, 0.0641239, 0.0708269, 0.0885441, 0.102892, 0.121112, 0.132784, 0.148243, 0.184801, 0.202012, 0.216618, 0.22714, 0.246148, 0.260817, 0.27626, 0.288117, 0.311833, 0.356186, 0.40893");
            values ( \
              "-0.0616995, -0.0778589, -0.0907548, -0.0967803, -0.0991384, -0.0997003, -0.0986127, -0.0969664, -0.0933461, -0.0890977, -0.0791558, -0.0452255, -0.0318725, -0.0230858, -0.0181030, -0.0115110, -0.00802808, -0.00548581, -0.00407844, -0.00221428, -0.000628555, -0.000126329" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.0125;
            index_1 ("0.01");
            index_2 ("0.028");
            index_3 ("0.0440023, 0.0495735, 0.0547585, 0.0600224, 0.0671909, 0.0736851, 0.0844426, 0.128358, 0.165666, 0.184783, 0.204122, 0.214487, 0.235217, 0.24701, 0.315156, 0.349753, 0.378489, 0.39903, 0.436208, 0.465018, 0.49545, 0.518834, 0.565602, 0.629145");
            values ( \
              "-0.0596128, -0.0852450, -0.0961841, -0.100857, -0.103000, -0.103393, -0.103241, -0.101317, -0.0987482, -0.0967585, -0.0937108, -0.0913968, -0.0849001, -0.0800261, -0.0466098, -0.0325216, -0.0235124, -0.0184471, -0.0117435, -0.00818322, -0.00558204, -0.00414727, -0.00224229, -0.00107300" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.0002");
            index_3 ("0.097896, 0.103404, 0.104799, 0.10731, 0.108512, 0.109714, 0.112987, 0.114382, 0.115819, 0.116624, 0.117855, 0.119989, 0.121802, 0.129011, 0.12954");
            values ( \
              "-0.00105330, -0.0134823, -0.0151948, -0.0167212, -0.0165853, -0.0158834, -0.00741501, -0.00453972, -0.00263574, -0.00193841, -0.00122579, -0.000614056, -0.000370212, -8.92145e-05, -8.51531e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.0018");
            index_3 ("0.101291, 0.102568, 0.105841, 0.109994, 0.111985, 0.115768, 0.117452, 0.119711, 0.12114, 0.132495, 0.135911, 0.139525, 0.144881, 0.151303, 0.167812");
            values ( \
              "-0.0201748, -0.0363736, -0.0509316, -0.0614579, -0.0642368, -0.0665269, -0.0665092, -0.0650189, -0.0628363, -0.0230518, -0.0146403, -0.00880545, -0.00404681, -0.00155012, -0.000101116" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.0035");
            index_3 ("0.101367, 0.10388, 0.105839, 0.108601, 0.113364, 0.117765, 0.121838, 0.126367, 0.129985, 0.132442, 0.14998, 0.154528, 0.160311, 0.169085, 0.179839, 0.191411, 0.205211");
            values ( \
              "-0.00704689, -0.0487557, -0.0584359, -0.0683388, -0.0776748, -0.0810760, -0.0818445, -0.0806283, -0.0779012, -0.0745378, -0.0294390, -0.0207504, -0.0129008, -0.00605567, -0.00229276, -0.000730702, -0.000171713" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.007");
            index_3 ("0.101351, 0.105601, 0.108657, 0.111082, 0.115444, 0.120846, 0.127594, 0.132997, 0.141657, 0.147601, 0.151721, 0.159846, 0.176462, 0.187351, 0.200971, 0.210998, 0.218594, 0.226484, 0.244613, 0.260574");
            values ( \
              "-0.00387028, -0.0620807, -0.0747660, -0.0814943, -0.0884843, -0.0920026, -0.0928594, -0.0923560, -0.0902860, -0.0876475, -0.0847651, -0.0754687, -0.0473346, -0.0313039, -0.0174320, -0.0110371, -0.00769849, -0.00529390, -0.00217212, -0.00109667" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.014");
            index_3 ("0.10477, 0.116657, 0.120243, 0.124405, 0.132556, 0.145408, 0.16298, 0.179231, 0.185623, 0.192871, 0.209592, 0.242526, 0.260262, 0.271173, 0.282811, 0.297981, 0.307931, 0.327494, 0.338959, 0.361889, 0.402594, 0.450532");
            values ( \
              "-0.0813672, -0.0948594, -0.0975163, -0.0989256, -0.0995592, -0.0988131, -0.0968742, -0.0938630, -0.0919981, -0.0890958, -0.0780942, -0.0472817, -0.0331281, -0.0261348, -0.0200452, -0.0140357, -0.0110445, -0.00682875, -0.00513326, -0.00285483, -0.000922541, -0.000228765" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.05;
            index_1 ("0.04");
            index_2 ("0.028");
            index_3 ("0.103862, 0.109783, 0.114204, 0.120179, 0.123799, 0.127262, 0.133855, 0.156173, 0.188528, 0.227099, 0.244953, 0.259352, 0.274649, 0.304772, 0.373916, 0.406614, 0.424825, 0.440022, 0.464151, 0.490494, 0.522967, 0.537924, 0.560617, 0.590874, 0.651387, 0.74131, 0.851534");
            values ( \
              "-0.0549688, -0.0841819, -0.0944700, -0.100576, -0.102109, -0.102841, -0.103293, -0.102747, -0.101244, -0.0986385, -0.0967592, -0.0946227, -0.0914000, -0.0811304, -0.0472784, -0.0337324, -0.0275674, -0.0231597, -0.0174067, -0.0126406, -0.00841049, -0.00697331, -0.00523653, -0.00355689, -0.00157254, -0.000424633, -7.01601e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.0002");
            index_3 ("0.171947, 0.175472, 0.179594, 0.182765, 0.184223, 0.185672, 0.187277, 0.190365, 0.191848, 0.193465, 0.19556, 0.196905, 0.198698, 0.199912");
            values ( \
              "-0.00398928, -0.00780102, -0.0115816, -0.0135680, -0.0139440, -0.0136863, -0.0112426, -0.00485276, -0.00287435, -0.00162801, -0.000807401, -0.000554617, -0.000368420, -0.000295457" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.0018");
            index_3 ("0.172499, 0.178025, 0.180488, 0.184368, 0.187648, 0.190659, 0.193555, 0.196439, 0.199323, 0.20943, 0.212806, 0.216993, 0.221114, 0.228329");
            values ( \
              "-0.000215574, -0.0323536, -0.0408252, -0.0516647, -0.0579531, -0.0614873, -0.0629057, -0.0619857, -0.0566346, -0.0216394, -0.0138234, -0.00766014, -0.00421524, -0.00164495" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.0035");
            index_3 ("0.172507, 0.18235, 0.186165, 0.192551, 0.196038, 0.2, 0.204391, 0.207148, 0.211171, 0.22816, 0.233922, 0.240844, 0.247577, 0.257626");
            values ( \
              "-0.00152639, -0.0541346, -0.0655267, -0.0761273, -0.0785234, -0.0793439, -0.0784023, -0.0762465, -0.0696428, -0.0257135, -0.0162430, -0.00904613, -0.00502879, -0.00241630" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.007");
            index_3 ("0.17251, 0.186066, 0.193167, 0.198004, 0.206867, 0.212284, 0.218212, 0.223577, 0.228036, 0.236823, 0.255307, 0.26426, 0.277346, 0.287257, 0.294879, 0.302869, 0.321259, 0.343729, 0.370364");
            values ( \
              "-0.00304928, -0.0719719, -0.0857725, -0.0895231, -0.0918169, -0.0914941, -0.0900836, -0.0877883, -0.0847596, -0.0744693, -0.0432622, -0.0305752, -0.0174011, -0.0110632, -0.00772001, -0.00528542, -0.00214345, -0.000635911, -0.000130471" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.014");
            index_3 ("0.177068, 0.18295, 0.188607, 0.19219, 0.197559, 0.205821, 0.211962, 0.224964, 0.24328, 0.251233, 0.259335, 0.269203, 0.285941, 0.316378, 0.335911, 0.345416, 0.356279, 0.366195, 0.377863, 0.39342, 0.40354, 0.419118, 0.439888, 0.481375, 0.529829");
            values ( \
              "-0.0309044, -0.0644374, -0.0828015, -0.0896075, -0.0950882, -0.0984709, -0.0991203, -0.0984860, -0.0962948, -0.0948542, -0.0928265, -0.0891007, -0.0780939, -0.0495104, -0.0336276, -0.0273901, -0.0214298, -0.0170205, -0.0128989, -0.00881747, -0.00687719, -0.00467168, -0.00274781, -0.000867504, -0.000207526" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.1;
            index_1 ("0.08");
            index_2 ("0.028");
            index_3 ("0.180955, 0.2, 0.205536, 0.214867, 0.224167, 0.264917, 0.306848, 0.321337, 0.351074, 0.365318, 0.381597, 0.454793, 0.484113, 0.514989, 0.535531, 0.572709, 0.601519, 0.631948, 0.655329, 0.702091, 0.766286");
            values ( \
              "-0.0865964, -0.0996182, -0.101926, -0.103078, -0.103042, -0.101244, -0.0983328, -0.0967592, -0.0914086, -0.0872180, -0.0809058, -0.0451844, -0.0332927, -0.0235112, -0.0184493, -0.0117418, -0.00818531, -0.00558430, -0.00414577, -0.00224459, -0.00104937" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.0002");
            index_3 ("0.304425, 0.305706, 0.313129, 0.319512, 0.323648, 0.325586, 0.327521, 0.330909, 0.332737, 0.334652, 0.336321, 0.338596, 0.340457, 0.344179, 0.350051");
            values ( \
              "-0.00167272, -0.00207909, -0.00604365, -0.00897125, -0.0102864, -0.0103982, -0.00927656, -0.00464154, -0.00268445, -0.00143473, -0.000836781, -0.000457788, -0.000317946, -0.000190477, -0.000140403" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.0018");
            index_3 ("0.305689, 0.313807, 0.322861, 0.330627, 0.333982, 0.335453, 0.337221, 0.34115, 0.35136, 0.354658, 0.358022, 0.363496, 0.370118, 0.377813, 0.387022");
            values ( \
              "-0.000201056, -0.0207701, -0.0398041, -0.0520461, -0.0550621, -0.0557495, -0.0558028, -0.0508440, -0.0199386, -0.0130809, -0.00830137, -0.00386497, -0.00149921, -0.000464948, -0.000106861" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.0035");
            index_3 ("0.305689, 0.325563, 0.328369, 0.33379, 0.33819, 0.343473, 0.348182, 0.353209, 0.367785, 0.373929, 0.379511, 0.38352, 0.388905, 0.399786, 0.40731, 0.407753");
            values ( \
              "-0.000159722, -0.0541995, -0.0600195, -0.0685417, -0.0727668, -0.0746487, -0.0730027, -0.0657100, -0.0292422, -0.0182934, -0.0115863, -0.00826489, -0.00517020, -0.00193575, -0.00100154, -0.000980865" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.007");
            index_3 ("0.305689, 0.33161, 0.336999, 0.34134, 0.345207, 0.353131, 0.361053, 0.368976, 0.372607, 0.378073, 0.405387, 0.414494, 0.427838, 0.439029, 0.453024, 0.458554");
            values ( \
              "-0.00105284, -0.0743744, -0.0821265, -0.0858855, -0.0877483, -0.0890488, -0.0877497, -0.0838060, -0.0805710, -0.0737488, -0.0311752, -0.0212912, -0.0116677, -0.00687998, -0.00351453, -0.00282729" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.014");
            index_3 ("0.315601, 0.323057, 0.331165, 0.340484, 0.346245, 0.351385, 0.358685, 0.365826, 0.385175, 0.396843, 0.410399, 0.417545, 0.427058, 0.46066, 0.477891, 0.497757, 0.51833, 0.532901, 0.550594, 0.562557, 0.586482, 0.628397, 0.678089");
            values ( \
              "-0.0536812, -0.0570146, -0.0786259, -0.0917632, -0.0952127, -0.0966870, -0.0973146, -0.0972218, -0.0952913, -0.0931634, -0.0889725, -0.0851219, -0.0781200, -0.0467530, -0.0330618, -0.0212872, -0.0131250, -0.00919821, -0.00595108, -0.00441476, -0.00238479, -0.000738885, -0.000169671" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.2;
            index_1 ("0.16");
            index_2 ("0.028");
            index_3 ("0.319635, 0.333016, 0.340414, 0.345862, 0.3507, 0.358745, 0.367714, 0.410047, 0.443426, 0.462405, 0.494292, 0.507197, 0.524648, 0.590236, 0.624006, 0.663886, 0.702376, 0.729632, 0.767518, 0.793079, 0.844203, 0.89501");
            values ( \
              "-0.0822840, -0.0851674, -0.0952043, -0.0988149, -0.100538, -0.101651, -0.101906, -0.100873, -0.0987408, -0.0967569, -0.0908536, -0.0869416, -0.0800375, -0.0478145, -0.0337647, -0.0214790, -0.0135351, -0.00964993, -0.00599836, -0.00433207, -0.00220511, -0.00126919" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.0002");
            index_3 ("0.59527, 0.60412, 0.614866, 0.619265, 0.626432, 0.629586, 0.632608, 0.635626, 0.64313, 0.644985, 0.646821, 0.648241, 0.651192, 0.655125, 0.68911");
            values ( \
              "-6.66447e-05, -0.00177101, -0.00413040, -0.00497679, -0.00613423, -0.00652657, -0.00673716, -0.00642643, -0.00180612, -0.00108798, -0.000637825, -0.000429178, -0.000206678, -0.000112431, -1.57886e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.0018");
            index_3 ("0.599325, 0.607152, 0.613197, 0.6162, 0.632759, 0.637913, 0.642523, 0.646802, 0.651006, 0.655199, 0.662266, 0.664263, 0.666888, 0.669641, 0.671501, 0.674109, 0.675167, 0.677282, 0.681512, 0.68438");
            values ( \
              "-0.00352489, -0.00751199, -0.0128384, -0.0157536, -0.0325911, -0.0372683, -0.0408950, -0.0431551, -0.0426899, -0.0364673, -0.0203984, -0.0164659, -0.0121281, -0.00866814, -0.00684691, -0.00489897, -0.00427164, -0.00325969, -0.00187799, -0.00143651" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.0035");
            index_3 ("0.602026, 0.607158, 0.616061, 0.637449, 0.641449, 0.647748, 0.653465, 0.658963, 0.664445, 0.666132, 0.676107, 0.682461, 0.688915, 0.691796, 0.695637, 0.701814, 0.705958, 0.713639");
            values ( \
              "-0.00565073, -0.00871717, -0.0184814, -0.0474683, -0.0523754, -0.0590034, -0.0631812, -0.0645471, -0.0605981, -0.0579334, -0.0361078, -0.0236046, -0.0144400, -0.0114698, -0.00835758, -0.00497662, -0.00348891, -0.00179697" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.007");
            index_3 ("0.607201, 0.617402, 0.644943, 0.654665, 0.663432, 0.67186, 0.680287, 0.684194, 0.688163, 0.716243, 0.724066, 0.735652, 0.742829, 0.748924, 0.757108, 0.76802, 0.788408");
            values ( \
              "-0.0104639, -0.0224506, -0.0667173, -0.0773062, -0.0824637, -0.0837405, -0.0812429, -0.0782909, -0.0739954, -0.0315809, -0.0228929, -0.0137401, -0.00987031, -0.00742410, -0.00504292, -0.00296232, -0.00102976" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.014");
            index_3 ("0.61156, 0.622274, 0.643821, 0.651888, 0.660933, 0.674463, 0.685001, 0.690777, 0.705706, 0.713226, 0.721159, 0.735875, 0.776673, 0.794667, 0.815298, 0.826104, 0.840511, 0.855544, 0.875, 0.907173, 0.932258");
            values ( \
              "-0.0203106, -0.0319943, -0.0714586, -0.0823695, -0.0900761, -0.0947612, -0.0951247, -0.0947927, -0.0927597, -0.0909229, -0.0880066, -0.0791586, -0.0424182, -0.0292888, -0.0183845, -0.0142626, -0.0100443, -0.00694643, -0.00428122, -0.00197406, -0.00130240" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.4375;
            index_1 ("0.35");
            index_2 ("0.028");
            index_3 ("0.620547, 0.640227, 0.650012, 0.658642, 0.66745, 0.672751, 0.680627, 0.688238, 0.716021, 0.74136, 0.76112, 0.772913, 0.794896, 0.802782, 0.818029, 0.835389, 0.897075, 0.932015, 0.961633, 0.985603, 1.00818, 1.03829, 1.05784, 1.07987, 1.10926, 1.16803, 1.25277, 1.35601");
            values ( \
              "-0.0501181, -0.0685516, -0.0842687, -0.0931210, -0.0978672, -0.0993501, -0.100504, -0.100863, -0.100282, -0.0989547, -0.0974208, -0.0961944, -0.0927483, -0.0909979, -0.0865648, -0.0798012, -0.0496805, -0.0348380, -0.0250361, -0.0188881, -0.0143914, -0.00990315, -0.00775527, -0.00587774, -0.00403579, -0.00183877, -0.000542679, -0.000111377" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.0002");
            index_3 ("1.10437, 1.10896, 1.11345, 1.11815, 1.13657, 1.1478, 1.15403, 1.15886, 1.16345, 1.16801, 1.17142, 1.17862, 1.18209, 1.18581, 1.18901, 1.19473, 1.22678");
            values ( \
              "-0.000234689, -0.000348780, -0.000568967, -0.000893795, -0.00274723, -0.00364113, -0.00402865, -0.00427204, -0.00442854, -0.00437025, -0.00374963, -0.00132821, -0.000620107, -0.000260324, -0.000124739, -4.50124e-05, -2.62477e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.0018");
            index_3 ("1.11196, 1.12313, 1.13109, 1.14056, 1.16126, 1.17528, 1.18132, 1.18711, 1.19289, 1.20345, 1.20814, 1.21098, 1.21476, 1.21759, 1.21958, 1.22355, 1.2315, 1.24194, 1.27139");
            values ( \
              "-0.00175840, -0.00469042, -0.00781762, -0.0122524, -0.0225283, -0.0287138, -0.0307638, -0.0315616, -0.0284798, -0.0142193, -0.00896851, -0.00659289, -0.00426601, -0.00307359, -0.00244159, -0.00154735, -0.000661607, -0.000302117, -4.35217e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.0035");
            index_3 ("1.12081, 1.13534, 1.14874, 1.18147, 1.18914, 1.19624, 1.2032, 1.21014, 1.22511, 1.23061, 1.23839, 1.24234, 1.24809, 1.25575, 1.26647");
            values ( \
              "-0.00715299, -0.0116596, -0.0204250, -0.0434230, -0.0478318, -0.0506739, -0.0501054, -0.0428227, -0.0195764, -0.0133135, -0.00740026, -0.00543700, -0.00344361, -0.00185498, -0.000809868" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.007");
            index_3 ("1.1252, 1.13608, 1.13967, 1.18943, 1.20023, 1.21008, 1.2196, 1.23117, 1.26181, 1.27172, 1.28172, 1.29764, 1.31293");
            values ( \
              "-0.0130703, -0.0135393, -0.0161468, -0.0609305, -0.0686703, -0.0733141, -0.0741891, -0.0665708, -0.0257758, -0.0169999, -0.0108990, -0.00520998, -0.00267877" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.014");
            index_3 ("1.13361, 1.15087, 1.18536, 1.19648, 1.21368, 1.22943, 1.24488, 1.26031, 1.2652, 1.2777, 1.3083, 1.32984, 1.34158, 1.35484, 1.36962, 1.39181, 1.40347, 1.41903, 1.45014, 1.46941");
            values ( \
              "-0.0221185, -0.0273370, -0.0652275, -0.0758695, -0.0868657, -0.0908790, -0.0906698, -0.0868600, -0.0846751, -0.0766087, -0.0492690, -0.0323630, -0.0251202, -0.0185739, -0.0131315, -0.00766132, -0.00575030, -0.00389472, -0.00171727, -0.00117826" \
            );
          }
          vector (ccs_template) {
            reference_time : 0.875;
            index_1 ("0.7");
            index_2 ("0.028");
            index_3 ("1.14457, 1.17409, 1.19457, 1.20908, 1.22567, 1.25111, 1.28244, 1.30482, 1.32435, 1.34134, 1.36914, 1.3742, 1.43356, 1.47256, 1.50176, 1.52366, 1.54921, 1.58329, 1.60476, 1.64067, 1.67184, 1.72803, 1.75, 1.8648");
            values ( \
              "-0.0385137, -0.0563741, -0.0797946, -0.0910269, -0.0973496, -0.0995073, -0.0981130, -0.0963521, -0.0939023, -0.0905824, -0.0816401, -0.0795083, -0.0506294, -0.0341526, -0.0246663, -0.0190889, -0.0140373, -0.00917471, -0.00701457, -0.00445009, -0.00298496, -0.00140621, -0.00106269, -0.000245656" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.0002");
            index_3 ("2.08926, 2.10323, 2.11097, 2.13672, 2.14652, 2.15503, 2.17006, 2.17705, 2.18392, 2.18906, 2.20251, 2.20718, 2.21115, 2.21823, 2.22676, 2.25475");
            values ( \
              "-0.000188397, -0.000384935, -0.000630221, -0.00185922, -0.00222324, -0.00248224, -0.00281907, -0.00291477, -0.00291593, -0.00262284, -0.000563973, -0.000249473, -0.000122585, -3.59400e-05, -2.26333e-05, -1.68669e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.0018");
            index_3 ("2.10244, 2.11942, 2.13224, 2.18152, 2.19991, 2.20827, 2.2166, 2.21725, 2.23691, 2.24372, 2.24841, 2.25212, 2.25954, 2.27115, 2.32599");
            values ( \
              "-0.00271550, -0.00374641, -0.00637249, -0.0178286, -0.0211733, -0.0220452, -0.0209604, -0.0206611, -0.00669091, -0.00354983, -0.00221567, -0.00149983, -0.000655619, -0.000206115, -5.26100e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.0035");
            index_3 ("2.11085, 2.13373, 2.15163, 2.18626, 2.19855, 2.20939, 2.2193, 2.22882, 2.23831, 2.25464, 2.26155, 2.2673, 2.27555, 2.28082, 2.28684, 2.29889, 2.3152, 2.33555");
            values ( \
              "-0.00518175, -0.00818684, -0.0139956, -0.0264482, -0.0306239, -0.0339575, -0.0364443, -0.0373625, -0.0336131, -0.0179373, -0.0121214, -0.00842131, -0.00477742, -0.00329196, -0.00213582, -0.000893495, -0.000324023, -0.000107376" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.007");
            index_3 ("2.11839, 2.14173, 2.16176, 2.22281, 2.23579, 2.24783, 2.25972, 2.27158, 2.29762, 2.30869, 2.32383, 2.34259, 2.35913, 2.36202");
            values ( \
              "-0.00918096, -0.0122420, -0.0210538, -0.0513402, -0.0565257, -0.0596706, -0.0583356, -0.0493376, -0.0225367, -0.0145394, -0.00760147, -0.00322961, -0.00147464, -0.00134565" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.014");
            index_3 ("2.1258, 2.14885, 2.16535, 2.23811, 2.25693, 2.27429, 2.29132, 2.30832, 2.36221, 2.38436, 2.40062, 2.42937, 2.46181, 2.4987");
            values ( \
              "-0.0143628, -0.0165372, -0.0253944, -0.0702879, -0.0785266, -0.0826539, -0.0820738, -0.0748284, -0.0320441, -0.0197760, -0.0135828, -0.00678620, -0.00300610, -0.00115665" \
            );
          }
          vector (ccs_template) {
            reference_time : 1.75;
            index_1 ("1.4");
            index_2 ("0.028");
            index_3 ("2.13414, 2.15946, 2.23803, 2.25122, 2.27761, 2.29167, 2.31164, 2.34102, 2.35807, 2.37141, 2.39809, 2.40455, 2.46556, 2.50573, 2.52503, 2.54543, 2.56289, 2.58229, 2.60073, 2.63688, 2.65705, 2.6974, 2.76418, 2.85396");
            values ( \
              "-0.0209999, -0.0232615, -0.0780083, -0.0851472, -0.0937279, -0.0954423, -0.0960131, -0.0943640, -0.0921818, -0.0896293, -0.0815030, -0.0788924, -0.0498301, -0.0332484, -0.0268704, -0.0212485, -0.0172877, -0.0136847, -0.0109111, -0.00694347, -0.00538427, -0.00319264, -0.00128846, -0.000342855" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.0002");
            index_3 ("3.05593, 3.072, 3.08351, 3.11498, 3.12718, 3.1379, 3.15692, 3.1658, 3.17452, 3.18106, 3.19714, 3.20256, 3.20717, 3.21557, 3.239, 3.29983");
            values ( \
              "-0.000215402, -0.000282823, -0.000506893, -0.00149168, -0.00177385, -0.00196896, -0.00221902, -0.00229247, -0.00229870, -0.00210766, -0.000484763, -0.000223506, -0.000117186, -3.42061e-05, -9.21249e-06, -1.17584e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.0018");
            index_3 ("3.07175, 3.09846, 3.14866, 3.16869, 3.18062, 3.19158, 3.20199, 3.2123, 3.22003, 3.2364, 3.24428, 3.25191, 3.26063, 3.27336, 3.27426");
            values ( \
              "-0.00216397, -0.00377217, -0.0115169, -0.0143352, -0.0158128, -0.0169592, -0.0177144, -0.0172395, -0.0144817, -0.00575657, -0.00301938, -0.00150965, -0.000610087, -0.000159827, -0.000154386" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.0035");
            index_3 ("3.07176, 3.09208, 3.10756, 3.13088, 3.18875, 3.20214, 3.21435, 3.22599, 3.2376, 3.26655, 3.27693, 3.28511, 3.29177, 3.30509, 3.32293, 3.37364");
            values ( \
              "-0.00313736, -0.00375757, -0.00627547, -0.0112880, -0.0248289, -0.0275481, -0.0296338, -0.0307124, -0.0284816, -0.00940499, -0.00503952, -0.00296402, -0.00188133, -0.000719960, -0.000259477, -5.99722e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.007");
            index_3 ("3.08023, 3.1042, 3.11095, 3.12199, 3.13688, 3.14935, 3.20776, 3.23297, 3.24736, 3.26135, 3.27528, 3.29929, 3.31204, 3.31826, 3.32656, 3.33314, 3.34024, 3.3497, 3.36849, 3.39388, 3.42487");
            values ( \
              "-0.00513490, -0.00655590, -0.00802051, -0.0108004, -0.0151655, -0.0191954, -0.0393451, -0.0469632, -0.0501345, -0.0503191, -0.0437356, -0.0240118, -0.0153973, -0.0121470, -0.00874310, -0.00662195, -0.00490587, -0.00328993, -0.00135519, -0.000411198, -5.70076e-05" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.014");
            index_3 ("3.09097, 3.11975, 3.13007, 3.15875, 3.2428, 3.25637, 3.27615, 3.295, 3.3138, 3.31637, 3.36876, 3.39076, 3.40803, 3.43654, 3.46821, 3.50831, 3.55491");
            values ( \
              "-0.00830896, -0.0111522, -0.0144172, -0.0255251, -0.0629144, -0.0679301, -0.0735463, -0.0754574, -0.0706689, -0.0693063, -0.0315696, -0.0197671, -0.0133412, -0.00674657, -0.00306486, -0.00102667, -0.000269764" \
            );
          }
          vector (ccs_template) {
            reference_time : 2.625;
            index_1 ("2.1");
            index_2 ("0.028");
            index_3 ("3.10525, 3.13878, 3.24874, 3.28342, 3.31458, 3.34496, 3.37528, 3.39455, 3.51117, 3.55756, 3.5988, 3.66063, 3.72153");
            values ( \
              "-0.0148569, -0.0185491, -0.0743878, -0.0871141, -0.0923230, -0.0924396, -0.0885895, -0.0835443, -0.0331359, -0.0196132, -0.0119525, -0.00551965, -0.00270438" \
            );
          }
          vector (ccs_template) {
            reference_time : 5.25;
            index_1 ("4.2");
            index_2 ("0.0002");

Post CTS analysis without creating clock tree in innovus

$
0
0

Hello,

I'm working on a very small block in which I would like to design "clock tree" (a couple of buffers) manually as it is really important for me to maintain symmetry and balance between several branches. I decided to go for manual design because I did not manage to constrain ccopt to do what I wanted.

Is it possible to make post CTS analysis without explicitly creating clock tree in innovus? I noticed that even if I do post route analysis, delays of the pre-placed cells on clock signals are not taken into account if ccopt was not launched. The only solution which I found so far is to generate sdf timing file and do a transient simulation. Could you recommend any trick or workaround which would allow me to do STA in innovus?

Best regards,
Szymon

SOC encounter: short drc error on a particular cell

$
0
0

Hi there

I find 3 short errors after nanoroute. They are always detected on a particular CKBUF cell. One of the error is as following:

SHORT: Regular Via of Net a25_simple_alu/FE_OFN343_o__rhs_18_ & Blockage of Cell a25_simple_alu/FE_OFC343_o__rhs_18_ ( M1 )


Below left figure is the cell with via (M1 in blue) in p&r and right shows its layout (M1).

The problem is reported on the bottom via in the left which connects to pin Z.

After measurement, no short should happen btw this via to internal different nets.

I didn't make any blockage for the cell. And no use even applying "fixvia -short".

Can anyone share the experience on this issue? 

INNOVUS: turned of during import design

$
0
0

When I try to import synthesis files, (based on tsmc180 echnology) , innovus turned . Error is :

ERROR: Cpp Exception catched in CTI.

What could be the reason for this and probable solution.

Windoes dialogue  in detail:

Extraction setup started

Initializing multi-corner RC extraction with 1 active RC Corners...

Captable file(s) not specified in multi-corner setup. PreRoute extraction will use technology file. For postRoute extraction, default value for effort level would be 'medium' and effort level 'low' would not be allowed.

ERROR: Cpp Exception catched in CTI.

*** Memory Usage V#1 (Current mem = 570.828M, initial mem= 173.195M) ***

*** Message summary: 169 warning(s), 0 error(s)

--- Ending "Innovus" (totcpu=0:00:19.8, real=0:01:46, mem=570.8M) ---


Is there any way to convert .tf file into .tch file?

$
0
0

I need *.tch file for creating RC corner in tsmc180 technology file. But they provide me with .tf file ? 
Is there any way to convert it ? 
If not, what format of file I should search for which could be used instead of *.tch file.

FYI: I tried to use .tf file instead of .tch file which is causing error. So I'm guessing  wrong format is the reason behind this. 

ELC Output Library Timing Resolution

$
0
0

The time_unit of the output library file (.lib) of ELC is in "ns". How I can change the time unit from "ns" to "ps"?

ELC output library timing resolution

$
0
0

The time_unit of the output library file (.lib) of ELC is in "ns". How I can change the time unit from "ns" to "ps"?

Forcing Encounter to run specific command in specific shell

$
0
0

Hi all,

We are using Encounter Foundation Flow to design our digital blocks.
It works good so far, but we had some struggles with the foundrys delivered hotcode/tech files.
After closing on these, we still got stuck with issues the foundry support could not help us:

The flow runs ok so far, until at the end at extractRC command, we get:

...
Exit code 0.
Cadence Quantus QRC Extraction completed successfully at 2017-Jul-26
15:12:44 (2017-Jul-26 13:12:44 GMT).
sh: 1: Syntax error: Bad fd number
sh: 1: Syntax error: Bad fd number

And the job is stuck there.
We were looking for quite a while now, but could not resolve it, neither we really got to the point to know what actually happened.

Is there a chance to run a very verbose flow, to see what happened? Or something where we can add "breakpoints", or specific commands while executing FF, to check what happens?
Or is the solution maybe quick and simple and you know it?

Please let us know what you think about it!

Thank you very much,
Adrian

Number of Non Equivalence Points after comparison in LEC Conformal

$
0
0

Hi

I am comparing a RTL(with old memory IP) vs RTL(28 nm memory IP) using Conformal, after the comparison stage, 128 DFF's are reported non equivalent and reported warning like below mentioned.

                 Warning: 3120 DFFs/DLATs have 1 disabled clock port: skipped data cone comparison. 

I May I know How to give pin constraint for clock.

Viewing all 1455 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>