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

delay between 2 signals

$
0
0

Hello, i am beginner rtl compiler user. I have a question about synthesis with rtl compiler.

For example, i have 2 signals sig1 and sig2. In verilog code:

assign #10 sig2=sig1;

Can I to synthesis some delay between 2 signals by rtl compiler commands such 'path_delay' or others?


Missing VDD and VSS Connections in SoC Encounter Layout

$
0
0

I am trying to generate a layout using SoC Encounter. After importing all required files and going through process, I couldn't see the VDD and VSS are connected. They are left unconnected in the layout. I tried to figureout if somewhere I gone wrong but steps are followed stringenlty. I have simplified to understand the issue and generated D FF using SoC. Kidnly check the attachment and help me out in understanding the issue.

Thank You. 

Gate array

$
0
0

Where can I find a template for gate array style layout using Encounter? Any pointer/hint/help is appreciated. Pardon me if this is not a proper forum. Thanks.

Spacing several instances of one standard cell using implant spacing rule

$
0
0

Well this is my very first post here so first of all good afternoon!

Here is my problem :

I'm using Encounter to place and route an IP in which i want to space somes instances of the same standard cell by a fixed value.

What i've found in the lefdef reference manual (version 5.8) is to use the SPACING attribute of an IMPLANT layer as explained in pages from 154 to 156.

I've defined a rectangle which is not covering the whole standard cell in the horizontal direction (to avoid the abutment case) in the OBS section by using the implant1 layer i've created in the technology lef. My spacing rule is set but it looks like Encounter is not taking this into account as the cells are still very close one to another.

What i want is to have what is described in the lefdefref manual in Figure 1-75 on page 156.

I've read about the honorImplantSpacing option but this is quite different as it requires to have at least two implant layers.

Thanks a lot if anybody here can help!

Best Regards.

 

Timing constraine problem in synthesis

$
0
0

i had design a divider and a up/down counter for a section of my project.Input frequency of clock is 50mhz and it is divided by 50(1mhzclock) to clock up/down counter.but after synthesis their exist a timing problem to registers define for up/down counter

timing problem is

THE FOLLOWING SEQUENTIAL CLOCK PIN HAVE NO CLOCK WAVEFORM DRIVING THEM.NO TIMING CONSTRAINE WILL BE DERIVED FOR PATH LEADING TO AND FROM THESE PINS(which is registers define in up/down counter)

so how can i define clock(1mhz) to up/down counter(which is divided from input clock of 50mhz)? 

K-i-t-c-h-e-n- ---Units Nottingham

$
0
0

K-i-t-c-h-e-n- -U-nits Nottingham. Thirty Ex Display K-i-t-c-h-e-n-s- -To Clear. w-w-w-.-e-x-d-i-s-p-l-a-y-k-i-t-c-h-e-n-s-1-.-c-o-.-u-k- -£- 595 Each with appliances.

Connecting Global power to Pins of instances

$
0
0
Sometimes I noticed when you do operation of connecting global power to pins of instances and then do Check operation it says that power is not connected to some instances. 

I am curious is it something normal? Does it mean that specific instances are kind of optimized? Or should I be worried about it?

All my instances have VDD! and GND! power pins, and I defined global VDD! and GND! power. In some designs for example, when I choose that operation and then do the Check, it says nothing. i.e. everything is connected, but on another designs (it actually depends on a code) it gives warning that some pins were not connected.

How does that thing usually work out?

SOC Encounter producing functionality error

$
0
0

Hi all,

 

I've ran into a particularly a troublesome error while running SOC Encounter.  

I'm currently implementing a design starting from behavioral verilog, synthesizing using Design Compiler

and then running place and route using SOC Encounter.

 

The problem is that the verilog netlist produced by  SOC Encounter does not seem to match functionally with the

behavioral verilog and synthesized verilog. The synthesized verilog works fine, but the place and routed design

produced by encounter is functionally incorrect when simulted under the same conditions.

 

Has anybody experienced anything like this, and does anybody know how to ensure that Encounter produce a functionally

correct design? My guess is that encounter does something wrong while re-synthesizing during timing optimization. This is an important issue. 

 


postRoute in EDI13.2

$
0
0

Hello All,

I am trying update the script for DEI13.2, and have some issue while doing postRoute optimization. The old script line is as following:

optDesign -postRoute

The following error shows up in the report:

**ERROR: (ENCOPT-7016): use setDelayCalMode -engine [feDC | signalStorm] -SIAware false before running optDesign -postRoute -si [-hold].

 

I changed the command to:

 setDelayCalMode -engine feDC -SIAware false

 optDesign -postRoute -si  

I got two errors shown as following: (similar results while using signalStorm option.)

**ERROR: (ENCOPT-7071):    The distributed optimization engine is obsolete and has been replaced by the GigaOpt optimization engine which is default in this release. Please update your scripts to remove any explicit settings of 'setDelayCalMode -engine feDc' or 'setDelayCalMode -engine signalStorm' so you get the default Advanced Analysis Engine (AAE) delay calculator to enable the GigaOpt engine.
**ERROR: (ENCSYT-6692):    Invalid return code while executing 'encounter.tcl' was returned and script processing was stopped. Review the following error in 'encounter.tcl' then restart.

Taking that  AAE is enable by default, I tried directly

  optDesign -postRoute -si 

This time I got two errors  

 **ERROR: (ENCOPT-7016): use setDelayCalMode -engine [feDC | signalStorm] -SIAware false before running optDesign -postRoute -si [-hold].
**ERROR: (ENCOPT-6080): AAE-SI Optimization can only be turned on when the timing analysis mode is set to OCV.
 To run optimization while taking into account on chip variation, set an MMMC environment with the right operating condition.

Looks like I cannot do -si analysis without turning on the OCV. I checked in the user guide, and turned on the OCV mode as following (I have set a BC lib and a WC lib in the operating conditions):

setAnalysisMode -analysisType onChipVariation -cppr both
optDesign -postRoute -si

 I got the following errors:

**ERROR: (ENCOPT-7016): use setDelayCalMode -engine [feDC | signalStorm] -SIAware false before running optDesign -postRoute -si [-hold].

 **ERROR: (ENCSP-2002):  Density too high (100.0%), stopping detail placement.
 **ERROR: (ENCSP-9022):  Command 'refinePlace' completed with some error(s).

The first error shows up again! The last two errors are new, and I guess they are related to the OCV mode, which I might not used properly.

 To summarize, I have two questions:

 1) Does the   **ERROR: (ENCOPT-7016)  for the old script mean NO postRoute optimization is done? 

 2) As suggested, AAE delay calculator is by default, why does the **ERROR: (ENCOPT-7016): show up for the old script?

 3) How important is it to run   optDesign -postRoute -si? Is it a common practice to run it in EDI13 or newer level?

 4) Can I do  optDesign -postRoute -si option without turning on OCV mode?

 5) If I have to turn on the OCV mode to run optDesign -postRoute -si, what is the correct way to do it? (I tried the example script in user guide, but I got some new errors as shown above.)

 

Sorry for so many questions, I am not very familiar to this flow. Any comments are highly appreciated.

 

 

 

[Help] Warnings about metal layers in .map file

$
0
0

Hello All,

I need your suggestions the warnings I got in the report after P&R with Encounter. The warning information is as following:

Parse map file...

**WARN: (ENCOGDS-399):   Only 2 layer(s) (M2 M3) of a VIAFILL object is(are) specified in map file 'tsmc090.map'. A VIAFILL object needs 3 layers (M2 VIA2 M3) being specified at the same time in the map file. Add VIAFILL contruct(s) to the map file for the following layer(s): VIA2 or remove VIAFILL construct(s) from the map file for the following layer(s): M2 M3.
 **WARN: (ENCOGDS-399):   Only 2 layer(s) (M2 M3) of a VIAFILLOPC object is(are) specified in map file 'tsmc090.map'. A VIAFILLOPC object needs 3 layers (M2 VIA2 M3) being specified at the same time in the map file. Add VIAFILLOPC contruct(s) to the map file for the following layer(s): VIA2 or remove VIAFILLOPC construct(s) from the map file for the following layer(s): M2 M3
.

As the warning suggested, I should add  Add VIAFILL contruct(s) to the map file for the following layer(s): VIA2. I don't know how to add VIAFILL only to VIA2. I tried to change VIA1 with ALL layers, shown with underline. The warning information for M1 and M2 went away.

#-------------------------------------------------------------------------------
#SOC Layer Name   SOC Layer Type   GDS Layer Number   GDS Layer Type
#==============   ==============   ================   ==============

 #VIA1              VIA              51                 0   

VIA1              ALL              51                 0

 

Question: I am nor sure whether the way I updated the .map file is correct or not although the warning information does disappear. Could you please tell me how to do this correctly, or any reference to generate correct .map file? 

 

Thank you, and the .map file I am using is as following:

 

The information in the .map file: (tsmc90)

#-------------------------------------------------------------------------------
#SOC Layer Name   SOC Layer Type   GDS Layer Number   GDS Layer Type
#==============   ==============   ================   ==============

M1                NET              31                 0
M1                SPNET            31                 0
M1                PIN              31                 0
M1                LEFPIN           31                 0
M1                FILL             31                 0
M1                FILLOPC          31                 0
M1                VIA              31                 0
M1                VIAFILL          31                 0
M1                VIAFILLOPC       31                 0
M1                LEFOBS           31                 0
NAME              M1/NET           31                 0
NAME              M1/SPNET         31                 0
NAME              M1/PIN           31                 0
NAME              M1/LEFPIN        31                 0
#M1                ALL              31                 0
#NAME              M1/NET           31                 0
#NAME              M1/SPNET         31                 0
#NAME              M1/PIN           131                0
#VIA1              VIA              51                 0
VIA1              ALL              51                 0

M2                ALL              32                 0
NAME              M2/NET           32                 0
NAME              M2/SPNET         32                 0
NAME              M2/PIN           132                0
VIA2              VIA              52                 0
M3                ALL              33                 0
NAME              M3/NET           33                 0
NAME              M3/SPNET         33                 0
NAME              M3/PIN           133                0
VIA3              VIA              53                 0
M4                ALL              34                 0
......

WARNING(SPMHNI-184): Device library warning detected.

$
0
0

Hi,

 I encountered below error, how should this be solved?

#1   WARNING(SPMHNI-184): Device library warning detected.

 WARNING(SPMHNI-198): Problems with device 'PIC16F1829-SOIC20,MICROCHIP TEA'. Pinname'CCP2/P2A/T1CKI/SD02/T1OSI/OSC1/CLKIN/RA5' is replaced by '$0': 'Pin name is not legal.'. [help] 

 Thanks,

Mabel 

why my ELC internal power result so large???

$
0
0
Hi, all

I am characterizing a std library using encounter library characterizer, after the result comes out, the timing is almost the same with my reference lib, however, the internal power is much larger than the reference.

Here is the ref lib example of inv:

internal_power() {
related_pin : "I";
fall_power(energy_template_7x7) {
index_1 ("0.1500, 0.1950, 0.2850, 0.4650, 0.8250, 1.5450, 3.0000");
index_2 ("0.0275, 0.0358, 0.0524, 0.0856, 0.1520, 0.2848, 0.5500");
values("0.0146, 0.0143, 0.0139, 0.0137, 0.0135, 0.0134, 0.0133", \
"0.0177, 0.0172, 0.0165, 0.0152, 0.0146, 0.0140, 0.0137", \
"0.0263, 0.0247, 0.0229, 0.0202, 0.0178, 0.0160, 0.0148", \
"0.0485, 0.0454, 0.0403, 0.0340, 0.0280, 0.0225, 0.0186", \
"0.1052, 0.0980, 0.0873, 0.0732, 0.0574, 0.0426, 0.0314", \
"0.2376, 0.2253, 0.2054, 0.1763, 0.1414, 0.1049, 0.0729", \
"0.5292, 0.5112, 0.4801, 0.4300, 0.3606, 0.2807, 0.2020");
}
rise_power(energy_template_7x7) {
index_1 ("0.1500, 0.1950, 0.2850, 0.4650, 0.8250, 1.5450, 3.0000");
index_2 ("0.0275, 0.0358, 0.0524, 0.0856, 0.1520, 0.2848, 0.5500");
values("0.1132, 0.1125, 0.1118, 0.1109, 0.1107, 0.1104, 0.1110", \
"0.1177, 0.1163, 0.1148, 0.1144, 0.1120, 0.1112, 0.1109", \
"0.1302, 0.1277, 0.1250, 0.1210, 0.1177, 0.1140, 0.1121", \
"0.1589, 0.1547, 0.1488, 0.1403, 0.1315, 0.1236, 0.1180", \
"0.2244, 0.2176, 0.2069, 0.1912, 0.1719, 0.1527, 0.1368", \
"0.3664, 0.3568, 0.3398, 0.3128, 0.2774, 0.2350, 0.1952", \
"0.6688, 0.6550, 0.6313, 0.5917, 0.5317, 0.4535, 0.3648");
}

Here is my result from ELC:

internal_power() {
related_pin : "I";
rise_power(energy_template_7x7) {
index_1 ("0.15, 0.195, 0.285, 0.465, 0.825, 1.545, 3");
index_2 ("0.0275, 0.0358, 0.0524, 0.0856, 0.152, 0.2848, 0.55");
values ( \
"0.250143, 0.294332, 0.384242, 0.564545, 0.926109, 1.64877, 3.09253", \
"0.25458, 0.298545, 0.387506, 0.566799, 0.926855, 1.6491, 3.09263", \
"0.266756, 0.309973, 0.397712, 0.575173, 0.932731, 1.65136, 3.09405", \
"0.296662, 0.33773, 0.42031, 0.592889, 0.945036, 1.66245, 3.10148", \
"0.361799, 0.400121, 0.480181, 0.642851, 0.985232, 1.68859, 3.12031", \
"0.499045, 0.533272, 0.606913, 0.762445, 1.08822, 1.77142, 3.18192", \
"0.795337, 0.826922, 0.893386, 1.03452, 1.33868, 1.97731, 3.34011");
}
fall_power(energy_template_7x7) {
index_1 ("0.15, 0.195, 0.285, 0.465, 0.825, 1.545, 3");
index_2 ("0.0275, 0.0358, 0.0524, 0.0856, 0.152, 0.2848, 0.55");
values ( \
"0.137081, 0.182511, 0.273648, 0.454886, 0.816747, 1.5399, 2.98395", \
"0.134285, 0.180146, 0.271656, 0.45348, 0.815519, 1.53916, 2.98357", \
"0.12622, 0.172893, 0.265303, 0.448603, 0.812201, 1.53658, 2.98196", \
"0.104768, 0.153176, 0.248546, 0.434988, 0.802701, 1.52955, 2.97739", \
"0.047762, 0.099884, 0.202154, 0.396617, 0.773335, 1.51029, 2.96357", \
"0.078644, 0.021338, 0.089133, 0.298237, 0.692397, 1.44976, 2.92269", \
"0.364571, 0.300658, 0.17897, 0.045831, 0.480675, 1.28133, 2.80204");
}

Anyone knows why?

Thanks in advance!

Can someone help me figure out where does power analysis of Cadence Encounter RTL Compiler comes from

$
0
0

Hi all,

 New to this area, I have two questions that need your help. 

1st, when I get the power analysis from Cadence Encounter RTL Compiler, It automatically shows Leakage, Internal, Net and Switching Power of the generated schematic. But then I get comfused, under which input pattern does the Compiler infer all the power values, especially switching power, since it's directly related to the frequency of input?

 2nd, what's the difference between Leakage Power and Internal Power? And does Net Power means power consumed from the interconnect? I get confusion about these terms

 Thank you very much for your notice and help!

Best 

Via array is missing when importing DEF into Virtuoso

$
0
0

Hi,

I am doing some digital design now. After finishing PnR with Encounter, I exported a DEF file. But when I import this DEF file into Virtuoso, the via array is mssing. Only the VIA ARRAY which is on power ring is missing, other single via is fine. How to fix it? 

could anyone help me?  Thanks in advance!

[Q] Edit Rules for SoC Encounter Stream-out Layer Map

$
0
0
Hi all,

I need some details about how to modify the stream out layer map file generated by Encounter according to technology mapping file. (i.e. which layer stream number/datatype to use, which layer  purpose to be modified, ...). I am using TSMC 65nm GP.

Thanks in advance,

how to add a global net

$
0
0

 Hi,

I have a requirement add dummy power net which has to conected to macro pins.

with "addNet  -physical only "   I could  able to create the net. But it is not created as global net.

When I do a globalnetconnection to the macro pins I am getting an error that the net created is not a global net.

can any one suggest me to  add a global net and conect it to a pin    in encounter.

Thanks and Regards, Anil

Tool is hanging while capacitance extraction in QRC 13.10.302 version

$
0
0

Hi,

    When we are trying to do parasitic extraction with the QRC 13.10.302 version, tool is getting hanged at capacitance extraction stage & not going to the output generation stage.

   We have even tried by using distributed processing also. Still it is of no use.

  Your quick response is appreciable.

 

Thanks & Regards,

Sanath

ostrich comparision issue

$
0
0

Can someone tell me what exactly it meant by "NF GOLDEN"

          I got this as comment when i tried to generate the difference in XCAP between to spefs (the difference here shows as 999 and 99.99%)

 

Please help me in this issue

 

Thanks in advance

Regarding Domain crossing Net optmisation

$
0
0

 Hi All ,

 Can any one give solution for the following issue ,

There are three power domains in my block , while doing optimisation the domain crossing nets (clock and signal) are not optimising.

I am using EDI11.0 version , what are the sollutions to optimise domain crossign nets.

Using RTL compiler PLE with DEF flow

$
0
0

I would like to adapt DEF flow with RTL compiler PLE.

 

Is there any user guide or manual I can reference with?

 

And should I get a detailed DEF from backend or I can just take a rough DEF (only information about memory, hard macro, and some high level hierarchical design)?

 

thanks!

 

 

Viewing all 1459 articles
Browse latest View live


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