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

Conflict between bus notation in Verilog ('[ ]') and Cadence ('')

$
0
0

I'm having an issue arising from the difference in bus notation between Verilog language and Cadence tools.

I have two leafs cells comprising of a structural System Verilog netlist and corresponding layout that were generated by Synopsys PnR tools for a digital implementation using standard cells. I imported the DEF file from the PnR output to generate the layout of the leaf cells and ran the LVS with the corresponding Verilog netlist. To pass LVS, I had to rename the bus terminal names in the layout containing angular brackets '< >' to match the terminal names in Verilog containing square brackets '[ ]'. If I don't take this step, then LVS reports that the pin names in the layout don't match those in the schematic. 

I generated the symbols of the leaf cells using the behavioral System Verilog netlist that was used for synthesis. These generated symbols use the angular bracket for bus notation. 

Then I take those leaf cells and interconnect them in a top level schematic and generate the layout using Generate from Source in Layout XL. The problem now is that Layout XL does not 'see' connectivity of the busses that are connected between the two cells because in the layout the terminals have the square bracket notation (to pass LVS). The following info message occurs:

INFO (LX-1013): Instance terminal 'bus_name<0>' is missing from layout instance '|leaf_cell_name'.

How should I proceed in this situation? I know that one possible solution is to import the verilog netlist into a schematic which will have all the bus terminals with angular brackets, then the LVS issues will be solved. But unfortunately due to a bug in Cadence when importing verilog with global signals http://support.cadence.com/public/docs/content/20261177.html , I cannot use this option because I don't have write access to the standard cell libraries at the moment. 


problem with loading a DEF file

$
0
0

Hi,

I've run a placement algorithm and now I want to calculate the delay of the specific path in design.

I'm using the same LEF file but when I want to load the DEF file to SoC, it shows the error: SOCSYT-16302.

In general, is it possible to load a DEF file that hasn't been generated by SoC?

Regards

Milad

INNOVUS: how to do add_buffer_on_route for a multi fanout net at every 300u distance with a BUFX8 ?

$
0
0

how to do add_buffer_on_route for a multi fanout net at every 300u distance with a BUFX8 ?

AC limit fixing in Innovus - what data is needed in the ICT (and hence compiled qrcTech) files?

$
0
0

When running verifyACLimit in Innovus I get the warnings:

**ERROR: (IMPVAC-96): Check QRC tech file if it doesn't contain EM rule or incorrect layer stacking information.
Type 'man IMPVAC-96' for more detail.
**WARN: (IMPVAC-116): Signal EM checking continue even No EM rule found in QRC tech or ICT EM file.

Can someone share an example of how this information would be described in the ICT file so I can check for it?

Message loop: **DIAG The master object on page 3 does not exist.

$
0
0

Hi,


When running a placement, cts, route or optimization, I am having the following message:

**DIAG[/icd/cm_t1nb_003/EDI142/Rel/14.21/main/lnx86_64_opt/14.21-s062_1/include/dbDRArray.h:158:addNewPage]: The master object on page 3 does not exist. So dense annotaton can not be added yet.


This message appears repeatedly and sometimes crashes the process running.

Did you see this message before? What could be the problem?

Thanks

Cadence Innovus help

$
0
0

Hi,

I'm new to innovus. From where I can get the help which are related to innovus tool.

Please help me.

Thanks.

FGC adding MinMax Voltage panic!

$
0
0

I keep getting the 'subject' message during place_opt_design on a simple 28nm design.

Should I really panic?  ... OR  ... Is the placer recognizing a potential IR problem and  automatically correcting the issue?

New one for me ...  innovus v16.13-s045_1 .

Shawn

 

How to Synthesize Buffer Chain?

$
0
0

I want to implement 6 buffer delay in my design and I am writing set_dont_touch  i _delay_1 true command where i_delay_1 is instance name but it gives an error like cannot preserve unmapped or partially mapped design, first synthesize with mapping


Deleting multiple selected Insts in encounter

$
0
0

Hi, how to delete multiple selected Insts in encounter in a single shot.


Thanks.

set_dont_touch_network on clock

$
0
0

Hello all,

I have the following queries regarding the use of set_dont_touch_network on the clock net.

1. Should set_dont_touch_network be used on clock  during synthesis in Genus ? ( to prevent optimization in clock network )

2. If set_dont_touch_network is used during synthesis, it gets written out into the sdc file. Will this affect the clock tree synthesis in Innovus?

What is the usual procedure followed in this respect?

Thanks,

Chithra

Error in starting guiMainForm.tcl

$
0
0

Hello all,

Could you please help me solving the following error?

I have installed ET_12.10 on a 64-bit CentOS 6, but when I want to rum it I face the following error:

[USER@hostname Work_directory]$ et
Encounter(R) Test and Diagnostics 12.1.102 May 21, 2013 (linux26_64 ET121)
Starting <Cadence Installation path>/ET_12/tools.lnx86/tb/tcl/main/guiMainForm.tcl
<Cadence Installation path>/ET_12/tools.lnx86/tb/bin/64bit/ILMserver: error while loading shared libraries: libXm.so.3: cannot open shared object file: No such file or directory


I thought the package libXm.so.3 is not installed. So I used yum to install it and it said that it is already installed.

Then I checked the file ILMserver with ldd command and I got the following:

[USER@hostname Work_directory]$ ldd <Cadence Installation path>/ET_12/tools.lnx86/tb/bin/64bit/ILMserver
    linux-vdso.so.1 =>  (0x00007ffe8288f000)
    libXm.so.3 => not found
    libXt.so.6 => /usr/lib64/libXt.so.6 (0x0000003701e00000)
    libc.so.6 => /lib64/libc.so.6 (0x00000036f5200000)
    libX11.so.6 => /usr/lib64/libX11.so.6 (0x00000036f8a00000)
    libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003700e00000)
    libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003701200000)
    /lib64/ld-linux-x86-64.so.2 (0x00000036f4e00000)
    libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00000036f8e00000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000036f5a00000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003700200000)
    libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000036f8600000)
[USER@hostname Work_directory]$

It is strange, while the package is installed ILMserver do not have access to libXm.so.3.

Thanks in advance for your help.

Regards,
Iman

 

path name

$
0
0

Hi all,

I have just start for Place & Route, and I have a problem,

After CTS step and CTS_opt step, I see the name of path timing has changed, but number of paths not change. For example,

- After CTS, I have a path timing: MICRO/INSTR_DECODER/IR_reg[7]/q    (v) triggered by  leading edge of 'CLKM' ---> MICRO/ACCUMULATORS/ACC_B_reg[15]/d (^) checked with  leading edge of 'CLKM'

- After CTS_opt, I don't see this path timing, I just have: TLATCH_BLOCK/TLATCH_9A/TLATCHCELL_0/TLOUT_reg/q (v) triggered by leading edge of 'CLKM' ---> MICRO/ACCUMULATORS/ACC_B_reg[15]/d   (v) checked with leading edge of 'CLKM'.

I don't understand why, hope anyone can help me this problem ?

 

Thanks,

name of path timing change

$
0
0

Hi all,

I have just start for Place & Route, and I have a problem,

After CTS step and CTS_opt step, I see the name of path timing has changed, but number of paths not change. For example,

- After CTS, I have a path timing: MICRO/INSTR_DECODER/IR_reg[7]/q    (v) triggered by  leading edge of 'CLKM' ---> MICRO/ACCUMULATORS/ACC_B_reg[15]/d (^) checked with  leading edge of 'CLKM'

- After CTS_opt, I don't see this path timing, I just have: TLATCH_BLOCK/TLATCH_9A/TLATCHCELL_0/TLOUT_reg/q (v) triggered by leading edge of 'CLKM' ---> MICRO/ACCUMULATORS/ACC_B_reg[15]/d   (v) checked with leading edge of 'CLKM'.

I don't understand why, hope anyone can help me this problem ?

 

Thanks,

Understanding Innovus' hold analysis in a hierarchical design flow utilizing hard macros

$
0
0

Hello,

I have got a problem with generating a hard macro and/or using this hard macro utilizing Cadence Innovus 15.2.
The problem concerns the hold timing analysis of a top design which uses the previously generated hard macro.

The following example depicts this issue and shows a hold analysis for one exemplary path.
This path starts in the top design and ends within the hard macro.

The hold analysis of the sub macro gives the following results:
Other End Arrival Time 0.280
+ Hold                            0.030
+ Phase Shift                 0.000
- CPPR Adjustment      0.000
= Required Time           0.310
  Arrival Time                0.315
  Slack Time                   0.005

The hold analysis of the top design gives the following results:
Other End Arrival Time 0.353
+ Hold                             -0.024
+ Phase Shift                   0.000
- CPPR Adjustment        0.000
= Required Time             0.328
  Arrival Time                  0.339
  Slack Time                     0.010

Both hold analysis are MET (for the tool).
But I am not sure why the hold time for the pin of the sub macro is assumed to be -0.024 in the analysis of the top design.
Related to hold analysis of the sub macro, the hold time for the pin should be -0.005 (what I think).

The following picture gives an better overview of the delays for the path and the related clock within the different macro layers.
So in my opinion the hold check fails here, because 0.654 - 0.633 = 0.021, which is smaller 0.030 (hold time of the register).
This is what gatelevel simulation shows as well (hold violations).



Both, hold analysis and export of the Liberty file for the macro is done in hold view.

Here an extract of the significant innovus commands:

Generate hold view:
create_library_set -name best_library_set -timing "$MIN_TIMELIB"
create_delay_corner -name dc_hold -library_set {best_library_set}
create_analysis_view -name v_hold -constraint_mode {m_hold} -delay_corner {dc_hold}

Do hold timing analysis:
setAnalysisMode -analysisType onChipVariation -cppr both
timeDesign -postRoute -hold -pathReports

Export liberty file:
set_analysis_view -setup v_hold -hold v_hold
do_extract_model -lib_name sub_macro_hold -view v_hold sub_macro_hold.lib

Afterwards the generated liberty file is added to MIN_TIMELIB for the run of the top design

Any suggestions, what I am doing wrong?

Listing All Modules And Blocks In Innovus Using dbGet.

$
0
0

Hello ,

I am working on a project with node 28nm .

I would like to list all the modules (soft macros) and Blocks (Hard Macros) Using dbGet.

Can Anyone help me.

Any help would be greatful

Regards

Santhosh Thanna.


addRing per side net order

$
0
0

Is there a convenient way to specify the order of nets for each side in a power ring created by addRing in encounter?  By default it keeps the order but I'd like the order along my top edge to be VSS, VDD while having VDD, VSS on the bottom edge.  My starting point is:

addRing \

  -around user_defined \

  -user_defined_region [list $llx $lly $urx $lly $urx $ury $llx $ury] \

  -width 1.0

  -spacing 0.5 \

  -offset 0.0 \

  -layer {top M1 bottom M1 left M2 right M2} \

  -nets [list {*}$myvdd {*}$myvss]

 

I have tried using "-skip_side top" and then adding addStrip to try and add the top of the right with swapped VDD/VSS but can't seem to figure out the right magic to get that to work.

 

Any tips?  This seems like it shouldn't be that unusual. 

Thanks

-Dan

 

how to give "user define compare points" in "non-equivalent database" in conformal LEC?

$
0
0

how to give "user define compare points" in "non-equivalent database" in conformal LEC?

Netlist Modification in Encounter 14.1

$
0
0

Hi All,

I believe the addPin command in the encounter tool was removed and only the addInst is available currently. Now how can I connect the pins of the cells that I insert in the netlist with addInst to the nets that I want when there is no addPin command??

Thank you.

Wire-only Primitives

$
0
0

What is the best flow for inserting a wire-only primitives into a design?

I define a wire-only cell as a cell that only contains metal layers and vias not diffusion/poly layers (no transistors), and therefore it can placed on top of standard cells. I am currently using virtuoso and abstract to generate LEF and then inserting the LEF instances in the verilog netlist and performing ECO or  a clean PnR to insert them into the layout. I was wondering if there is a better way to do this mainly because the current approach doesn't seem to overlap these cells with standard cells. I guess the customVia command is in the same ball park, but not sure how to tell the tool to place custom vias in specific nets through netlist modification.

How to change mouse wheel bindings for zoom in & zoom out in Encounter or Innovus

$
0
0

Please let me know how I can change mouse wheel bindings for zoom in & zoom out in Encounter..For Example I want Zoom in when I wheel down middle mouse button & Zoom out when wheel up middle mouse button.

Viewing all 1454 articles
Browse latest View live


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