Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I want to test a mixed signal design in cadence virtuoso 6.1.5 with spectre.
To verify the functionallity of the digital part a very long input sequence, thousands of bits, is necessary.
I tried using the vbit source. What is very usefull about this is that it is possible to adjust the voltage levels as well as the length of one bit. This makes it superior over the vpwl at least for my application.
I found a helpful document that makes it possible to adjust the properties of vbit in a way that it is possible to insert a design variable for the data . Another document helped me to load a bitstream from a tex-file into this design variable inside ade-l.
The problem is that this is only possible for short bitstreams. At least my bitstream is too long for such a proceeding.
Is there any other approach to solve this problem?
A stimulus file would also be very long/large...
Do you need a specific bit pattern, or would a psudeo random bit pattern be OK?
I created a verilog-A module which generates a PRBS 2^15 - 1 bit pattern.
Bit period can be set via a clock input signal, or with a verilog-a "timer" event generator.
Output amplitude can be set by a parameter, or by pwr/gnd input pins.
Hope this is helpfull.
In reply to TonySal:
I need a specific bit pattern to test the digital part of my design.
Verilog-A is a good idea but the code would become very large...
In reply to Zitty:
There are several ways to tackle this problem (that I can think of). One of the ways is to use spectre's ability to define patterns (see "spectre -h pattern"). If I create a file called (say) "patterns.scs" and include it in ADE as a model library:
// my patternsp1 pattern data="10111011011"p2 pattern data="001100100101011"p3 pattern data="1111100001110001100"
Then on the vbit source (or vsource with type set to "bit"), I can set the pattern as (say) "p1,p2,p3" or "p1,p2,p2,p3,p1" - whatever you like - and it will then use the sequence of predefined patterns from the include file.
The alternative is to use the "vector" file input. Look at Setup->Simulation Files and there's a Vector Files tab. You can add the path to vector files. For more details on the syntax, look at "spectre -h vector". The precise details of the format are in the Ultrasim User Guide (<MMSIMinstDir>/doc/UltraSim_Use/UltraSim_User.pdf) - in the chapter entitled "Digital Vector File Format"). This allows you to take a file of vectors (in different radixes) and connect to one or more signals in your circuit - replacing the need for sources on the schematic.
In reply to Andrew Beckett:
Can the waveform generated from your second method have the rise time and fall time information intact ?
In reply to RFStuff:
Not sure what you mean about having the rise time and fall time information intact, but you can specify the rise and fall time (and various other signal characteristics) of the signals that are generated from the digital vectors. This is covered in the documentation that I mentioned earlier.
Well, I will see the doc.
Actually I am trying to change the pattern of the bit Source using the ocean script.
In the 1st iteration of the run say the bit Source V2 will have "p1,p2,p3"
in the 2nd iteration of the run it will have "p2,p2,p1" and so on.
I tried to enter a parameter 'x' in the pattern data tab of the V2 source so that I can change it in the ocean script but it is not taking it as a variable parameter.
Could you tell how it can be done so that I can change the pattern in the for loop ?
OK, this isn't entirely trivial. Follow these steps:
What the above is doing is getting the data parameter netlisted as a normal parameter (the netlist procedure that is usually used adds quotes around it, but in this case you don't want the quotes so that the value can be interpreted as a spectre parameter), and then you are ensuring the the netlist ends up with quotes around the parameter value. For example, here's my netlist:
simulator lang=spectreglobal 0parameters mypat="10010101"// Library name: mylib// Cell name: testbit// View name: schematicR0 (op 0) resistor r=1KV0 (op 0) vsource val1=1 val0=0 data=mypat delay=0 rise=1n fall=1n \ period=20n type=bit
Thanks a lot.
Just one mre thing:-
I am also using vsource-pwl for generating the clock waveform.
What exactly I am doing is that:-
I have captured the transient clk waveform of another circuit and stored it in a text file ( time amplitude) format. This clk is for one frequency.
I load the file in the vsource-pwl.
Similarly I have multiple .txt files for various frequrncies.
With the way anlogous to the way you have mentioned, can I change the file name in the loop by parameterizing it.
In other words I can run the sumulation for multiple frequency in a for loop.
Yes, do the same with the vpwlf source, and move the file parameter from otherParameters to instParameters.
Note, I didn't try this, but I believe it should work.
I have a file data in column fromat.
That is, instead of [ p1 pattern data="10111011011" ], I have in the file ( named clk_bit.txt ) as below:-
Is it possible to source this file in the VSOURCE, without editing the above file.
If so, could you please tell how it can be done .
No - you'd have to contact customer support and ask for an enhancement request to allow this to be read from a file.
The alternative might be to use a vector file input - (vec_include) - but even that would need the file in a slightly different format (some additional information at the top).