Quantcast
Channel: Cadence Custom IC Design Forum
Viewing all 4891 articles
Browse latest View live

Control flow when a return from an expression is nil

$
0
0

When my cross command fails to cross the threshold, it gives eval err in the result.
I want the test to give default value, i.e., uncalibrated value, so the next test have something to compare with.
Otherwise, all the tests after the one that have fail cross command will gives eval err as well.

This code does not work:
if((cross(v("/VOUT_INV" ?result "dc") 0.6 1 "rising" nil nil nil) - pv("/vref" "value" ?result "variables") == nil) "nil" "not_nil")

I found this. Changing the function with my expression does not work.


Exporting device component values and operating conditions into a table in Virtuoso

$
0
0

Hello All,

Is there a way to Export the design's device (mainly transistors) component values (W,L , M ...) and operating conditions (vds , vgs ..) into a tablular format either csv , excel ... ?

I  am using IC6.1.8

thanks in advace

regards

leaf cell issue with using diffstbprobe

$
0
0

I have a fully differential amplifier design and wish to look at gain/phase.  I've instantiated diffstbprobe between outputs and inputs, and on the prompts, selected I3/IN1 and I3/IN2 as the "probe Instance/terminal" 1 and 2.

Spectre dies with the following error

 Cannot run the simulation because the leaf instance 'I3' could not be found. Specify a valid leaf instance terminal name for the stb analysis and rerun the simulation

Any ideas?  I don't recall ever having a similar issue with cmdmprobe so I assume something somewhere is not set up correctly.

Is it normal for DeCap to get 0 value leakage power when running liberate?

$
0
0

Our soi DeCap with 5 terminals (VBGP/VBGN is the 5th terminal) share the same power template with standard cells, however, the leakage for DeCap is 0 value while standard cells get leakage power like 0.22345. Could you please help me find where the problem might be and how could I fix it?

 

Our lib goes like this:

cell (DCAP4_liberate) {

    area : 0;

    cell_leakage_power : 0;

    pg_pin (GND) {

      pg_type : primary_ground;

      voltage_name : "GND";

    }

    pg_pin (VDD) {

      pg_type : primary_power;

      voltage_name : "VDD";

    }

    leakage_power () {

      value : 0;

      related_pg_pin : VDD;

    }

  }

 

Our char.tcl goes like:

set_operating_condition -voltage 1.8 -temp 25

set_var extsim_exclusive 0

define_leafcell \

         -type pmos_soi \

         -pin_position { 0 1 2 3 4 }  \

         ph

define_leafcell \

         -type nmos_soi \

         -pin_position { 0 1 2 3 4 }  \

         nh

source ${rundir}/TEMPLATE/template180_dcap.tcl

set_var extsim_model_include ${rundir}/MODELS/include_models180.sp

foreach cell $cells {

    lappend spicefiles /my_liberate/NETLIST/${cell}.pex.netlist

}

read_spice $spicefiles

char_library -extsim spectre -ccs -ecsm -cells ${cells}

 

template180_dcap.tcl goes like

set_var def_arc_msg_level 0

set_var process_match_pins_to_ports 1

set_vdd -no_model VBGP 1.8

set_vdd -no_model VBGN 0

set_var pin_based_power 0

define_template -type power \

          -index_1 {0.0317486 0.0677575 0.144607 0.308619 0.658652 1.40569 3}\

          -index_2 {0.0210989 0.049137 0.114435 0.266506 0.620664 1.44546 3.36632}\

         power_template_7x7

set cells {\

DCAP4_liberate\

}

if {[ALAPI_active_cell "DCAP4_liberate"]} {

define_cell \

       -power power_template_7x7 \

       DCAP4_liberate

}

Run Options of ADE Assembler in Cadence Virtuoso

$
0
0

Hello

I would like to ask you about the Run Options in ADE Assembler as seen in the image below

Though I read the help but couldn't figure out the purpose of this option,

Actually, I am interested in any option that accelerates my simulation especially when I run Montecarlo or corner simulations, not sure if this can help... I usually use Job Setup to run different corners in parallel depending on the Max Jobs I set

Thank you in advance

Best Regards

Accessing power results from transient analysis in spectremdl

$
0
0

Hello.

I want to be able to access power/energy results obtained form a transient analysis and be able to pass them to an mvarsearch.
How can I do this? I don't seem to be able to access the power using :pwr within the measurement alias.

Thanks in advance!

Any efficient way to do calibration using calcVal and MonteCarlo for tripple nested loop?

$
0
0

I basically want to execute a calibrated simulation.
The inner loop sweeps the design variable.
The second loop sweeps the code.
The third loop, i.e., the outer most loop, runs the MC.

I can do this by creating multiple tests and global variables as many as the binary code combination, carrying the output to the next test using calcVal, and getting the corrected value and code at the last test.
Is there any more efficient way to do this?

I have read about run plan feature but it seems that I need to create one run for each code, cmiiw.

Cannot select signals to be saved in ADE Explorer/Assembler; net listing is incorrect etc.

$
0
0

Hi,

I am struggling with a very basic bug(?): ADE Explorer/Assembler just won't let me properly save current signals of a bus of an instance:

  1. I can't select "Save" for a signal, no matter how often I click. This works the first time I select the signal on the schematic but if I change the expression, the checkbox on "Save" disappears. Even if I enter the original expression, I can't select "Save" again.
  2. If I choose to select the signals on the design, my netlist is messed up and generates an error.

Example: I create the expression and select it on the schematic. Only "Plot" is checked but I can also check "Save":

Now I change "/I6/TST<1>" to "/I6/TST<2>" and both Plot and Save checks disappear. Even when I change it back to "/I6/TST<1>", I cannot check Plot or Save again, regardless how often (and hard) I click:

Ok, so then I delete the line again and select it manually again via schematic.

spectre gives me this error:

Error found by spectre during circuit read-in.
ERROR (SFE-874): "input.scs" 55244: Cannot run the simulation because syntax error `Unexpected operator ">". Expected end of file or end of line' was encountered at line 55244, column 24. Correct the syntax error and rerun the simulation.

Looking into the netlist I see:

save test\<1\> test2\<2\> test\<3\> test\<4\> \
 DATA1 DATA2 DATA3 I6:TSB<1>

This is clearly wrong! ADE netlists my netlist wrong! My expression "/I6/TST<1>" (which was selected on the schematic via ADE, not manually entered!) becomes "I6:TSB<1>". As can be seen with the test signals (which work), the < and > should be escaped.

What the heck is going on here?

Thanks!


Matlab Error When Starting from Assembler

$
0
0

I am getting a Matlab error when I try to start Matlab using the Assembler results toolbar button.  The error is an "Invalid use of operator".

I think the problem is, the run command ADE is trying to get Matlab to use, needs single quotes.  For example, it should be

run('/tmp/adeInitMatlabkn8530.m')

Is this a setup problem, or is there an environment variable or configuration somewhere that is not set correctly?

Thanks

Trent

question : standard cell symbol import to virtuoso

$
0
0

I want to import TSMC 65nm standard cell library into virtuoso.

The. SPI file was successfully imported into schematic, but I used xxpwr.v importing symbol, some errors occurred

The following is the error message。

INFO (VERILOGIN-589): Using xmvlog binary for compilation.
ERROR (VERILOGIN-28): Failed to run the xmvlog analyzer because the analyzer binary could not be located.
Either the analyzer binary does not exist in the shell search path or you do
not have the required permissions on the file. Set the correct shell search
path and update the file permissions before running the command again.
ERROR (VERILOGIN-5): Unable to open the specified log file (xmvlog.log) for reading. Either the file does not
exist or you do not have read permission on the file.
INFO (VERILOGIN-206): End of Logfile.
ERROR (VERILOGIN-5): Unable to open the specified log file (xmvlog.log) for reading. Either the file does not
exist or you do not have read permission on the file.
INFO (VERILOGIN-206): End of Logfile.

$analog_node_alias() usage with vector nets

$
0
0

Hello,

I have a top testbench containing design under simulation (DUT - schematic) and next to it I would like to have a checker built with verilogA. My intent is to use $analog_node_alias() or $analog_port_alias() tasks to bind electrical nets within the checker to the one inside the DUT. Something similar to this: 

module checker;

electrical nd1;
electrical [1:0] nd2;

analog initial begin 

   $analog_node_alias(nd1, "$root.DUT.scalar_net_of_interest");  // having only this line seems to work as expected
   $analog_node_alias(nd2, "$root.DUT.vector_of_interest<1:0>"); // when trying to probe electrical vectors the simulation would run, but nd2 would be always read 0V

end 

analog begin 
    V(nd1) <+ I(nd1)*1k;
    V(nd2[0]) <+ I(nd2[0])*1k;
    V(nd2[1]) <+ I(nd2[1])*1k;
end

endmodule

When I run the simulation ( using Spectre Version 20.1.0.269.isr8 64bit -- 30 Jun 2021) there are no errors in the logfile, but the aliased nets nd1 and nd2 are behaving strange. When I remove the vector nd2 alias function, the nd1 would be the value I expect, but when I try to include it, both nd1 and nd2 become 0V and still no error/warning is reported. 

So I mainly have two questions:

  1. What is the right way to access vectors using $analog_node/port_alias() tasks? Should there be special character escapes, like "vect_of_interest\<1:0\>" or anything specific to the vector access syntax?
  2. Are there any other ways of binding to nets across the design hierarchy? 

Best regards,

Dimitar

Maestro - Elapsed time to results

$
0
0

Hi.
Is there a way to add elapsed time (time take to corner to run, I see it in log file) to results for test ?

Thank you in advance.

Polysilicon in 180nm TSMC

$
0
0

Hi all, 

I'm going crazy in understanding what is poly layer in 180nm TSMC. 

From my knowlodge i know is n+ polysilicon. From the DRC error looks like is p+ because the error call the poly as P GATE. 

In all the thecnology document i cannot find something that explain all the layer that i can use in the layout. I found one that explain just the common layer. 

if I just place a poly square on the psub there will be also the oxide? 

thanks a lot for the help

illegal weak connection warning issue

$
0
0

Hello, 

In the layout of my circuit, and by using the "Check against Source", I receieve connectivity note in CAS telling me about illegal weak connection of some of my signal paths,

As for example, I designed a 32 bit synchronous shift register and he complained about the clock wire as an illegal weak. The length of the wire is 400 µm

However, DRC has not reported any issue

is this warning harmful for the real fabrication?

Thanks 

Regards

Virtuoso License Issue: status code -5.

$
0
0

Hello Everyone,

I am facing some issues when working with Virtuoso Suite.

Sometimes the program freezes for some seconds and the message below is shown in the main window:

*WARNING* (icLic-203) Failed to check out license Analog_Design_Environment_XL ("95210") to run ADE L because of status code -5.
Attempting to check out the next available license Analog_Design_Environment_GXL ("95220") per license checkout order XL, GXL, L.
*WARNING* (icLic-204) Failed to obtain sufficient number of tokens for token capability Analog_Design_Environment_GXL ("95220") to run ADE L because of status code -5.
Attempting to check out the next available license Analog_Design_Environment_L ("95200") per license checkout order XL, GXL, L.
*WARNING* (icLic-205) Failed to check out license Analog_Design_Environment_L ("95200") to run ADE L because of status code -5.
Contact Cadence Customer Support with the status code -5.

Sometimes this message occurs while opening schematic/layout or during simulation.

I am using IC6.1.7-64b.78 and  Spectre17.1.0.124 64bit. It is the Educational License.

Is there a way to solve this?

Thanks in advance.

Paulo.


Way to automatically print the noise summary after noise analysis

$
0
0

Hi All,

I am performing noise analysis on a circuit using IC618 and as of now printing the total integrated noise summary after every iteration using the Results -> Print option.

Is there a way to automatically print the noise summary after noise analysis instead of having to do this every time using the Results -> Print -> Noise summary menu ?

thanks in advance.

regards

Testbench for THD and IIP3 simulations

$
0
0

Dear all,
I plan to simulate THD and extract IIP3 of a single transistor by using PSS and PSS+PAC analysis in cadence. I have used the testbench attached below to run simulations. Two bias tees are added to the input and output of the transistor and I have added a resistor of 50 ohm to the gate to match the impedance of the input port in the simulations. The capacitances and inductances are designed for the operating frequency 1KHz. That is why I have used huge amounts. I addition, I repeated the input bias tee and the parallel resistor for two paralllel transistors (as seen in the circuit at the top). Are these testbenches correct or I have done something wrong here?

https://www.edaboard.com/attachments/testbench-jpg.173133/

I appreciate it if you can help me in this regard.
Cheers,
Hossein

IC 6.1.7 on RHEL8

$
0
0

Hello all,

I was wondering if someone could tell me if Cadence IC 6.1.7 works on a RHEL 8 machine. I have it working on CentOS7, but when i try to launch virtuoso from RHEL8, I get the following error:

/apps/cds/IC/v617/tools/bin/cdsGetOABinPath: line 87: /apps/cds/IC/v617/tools/bin/cds_root: No such file or directory
ERROR: Could not find Cadence installation root for
/apps/cds/IC/v617/tools/bin/cdsGetOABinPath
Make sure that cdsGetOABinPath is part of the Cadence installation.
virtuoso: ERROR: No proper OA2.2 installation found. Fix the errors reported by cdsGetOABinPath.
virtuoso: INFO: Note that OpenAccess (OA) requires running the Configure phase.
virtuoso: See the "OpenAccess Installation and Configuration Guide" before
virtuoso: you complete the configuration step. This manual is included with
virtuoso: the Cadence product documentation.

Is there something wrong with my environment variables, or does it simply not work with RHEL 8? As said, the same Cadence launching script works on CentOS7.

Thank you very much in advance!

David

Running more tests in an already finished interactive window

$
0
0

I have a test that's already finished running. But now I want to simulate it again *in the same interactive window" with a different value for the design variable. The reason I want it to be in the same interactive window is so that I can use expressions/plots with both the finished results and the new results. However as far as I know the moment I hit the run button it will open up a new interactive window and I won't be able to use expressions across the interactive windows. Is there a way to start simulation in the same interactive window? Alternatively, is there any expression for using results from different interactive windows? Thank you.

3DB bandwidth expression

$
0
0

Hi All,

 

I am trying to evaluate a function using the expression editor but am getting an error. This is for bandwidth of differential output divided by the differential input as shown below.

 bandwidth(((VF("/vop") - VF("/von")) / (VF("/vip") - VF("/vin"))) 3 "low")

Will be helpful if someone can point the issue with using this expression to compute the 3db bandwidth. I have tried this expression both using AC & Tran analysis but nothing evaluates.

 

I am also need to use this expression in the MC analysis.

 

I am using IC618

 

Regards

Viewing all 4891 articles
Browse latest View live


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