The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> AMS Simulators >> Bidirectional pins: problem in SpectreVerilog
https://designers-guide.org/forum/YaBB.pl?num=1170046522

Message started by rajdeep on Jan 28th, 2007, 8:55pm

Title: Bidirectional pins: problem in SpectreVerilog
Post by rajdeep on Jan 28th, 2007, 8:55pm

Hello all,

I have a huge mixed signal desing comprising of digital, analog and mixed-signal modules. The digital modules have
Verilog view, where as the others have schematic view. So I'm using SpectreVerilog. After setting up the hierarchy editor, when I try to simulate the design I get the following error:

USRERR: MS simulation does not support bidirectional interface element
                           generated by terminal pwrp of instance I135
                           in cellview (cell: ldod002_a1, lib: design_rajdeep, view: schematic)

Now what I tried and observed:

1. There are other bidirectional pins apart from the power pins. But no such error  for those pins. May be those errors were coming before the simulator stopped.

2. I cut two modules, both of them having bidirectional pins. Only one such error came about the pwrp (VDD) pin and then the simulation continued smoothly and finished perfectly!!! But there were other bidirectional pins. Only none of them were power pins.

Is it that too many of such errors are not avoidable by the simulator and it fails to proceed in case of the bigger design?
Why bidirectional pins are not allowed??? Or is there anything in the set up I'm missing?

Please help!
Rajdeep

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by zhong on Jan 28th, 2007, 10:18pm

This is the limitation of spectreVerilog.  You can have bi-dir pin in the same domain(pure digital or pure analog) , the limitation is that once that bi-dir pin connection cross the digital/analog domain which requires interface element in between, spectreVerilog does not support that.

The solution is to move from spectreVerilog to Cadence AMS designer . AMS designer support bi-dir pin connection cross the A/D boundary.


Zhong

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by rajdeep on Jan 28th, 2007, 11:27pm

Thanks a lot!! I'll try that out. But it's surprising to know the limitation of spectreVerilog!! Even big companies i know use spectreVerilog, I wonder how do they circumvent this problem. May be they make sure the bidirectional nets do not cross the analog/digital boundary.

Whatever it is ..thanx again!!

Rajdeep

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by zhong on Jan 28th, 2007, 11:48pm

Lots of companies including big companies already moved to the AMS Designer  ;)


Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by zhong on Jan 28th, 2007, 11:54pm

Also you only have a2d and d2a interface elements along with spectreVerilog , there is no bidir interface elements in spectreVerilog.

This also explains why spectreVerilog does not support bidir connection cross the A/D boundary

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by rajdeep on Jan 29th, 2007, 1:39am

Hi zhong!

What exactly is meant by analog-igital boundary?
If a digital module (that was synthesizd using standard digital logic synthesis tool) is used with schematic view like another analog module, would it be treated as digital or analog module?
Well, the digital modules contain logic gates whose verilog views are used.

Rajdeep

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by bernd on Jan 29th, 2007, 2:29am

Let me step in in this discussion, 'spectreVerilog' definitely
does not support bidirectional pins for mixed-signals between
analog to digital or digital to analog domains.
Otherwise the conversion of the signal with the a2d and d2a
interface elements would fail.

Maybe it helps to get a bit an insight on how interface elements work.
Interface elements are two terminal devices which are generated automatically
to connect analog to digital domains and translate signals between them and
vice versa.
Interface elements are associated with the input or output pins of digital components.

The a2d interface element will be inserted on a net between an analog output
and a digital input. Only state information will be passed to the digital domain.
The d2a interface element will be inserted on a net between an analog input
and a digital output. Voltage level information will be passed to the
analog domain, when the digital state changes.

The interface elements are only design to look at an output and translate
the incoming signal to a appropriate signal and pass this to the connected
input, nothing more. How should this concept be able to deal with bidirectional
signals?

This is handled differently in AMS Designer, where interface elements
were called connect module and are fully modelled with
Verilog AMS. In Verilog AMS it is possible to model such things
like bidirectional pins, because of the language capabilities.

Hope this helps to understand.

Bernd

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by rajdeep on Jan 29th, 2007, 4:16am

Thanks Bernd! I can understand why spectreVerilog cannot handle bidirectional nets. Although could not understand why, rather how it is handled by AMS simulator :-/

Also, I have tried to run a simulation using spectreVerilog simualtor, there was one net pwrp that crossed the digital analog boundary. The simulator flagged one error also regarding this line, but continued to finish the simulation smoothly. How is it possible?

Rajdeep

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by bernd on Jan 29th, 2007, 4:38am


Quote:
Although could not understand why, rather how it is handled by AMS simulator undecided

As I tried to explain for AMS designer connect modules were
modelled in Verilog AMS. Verilog AMS is a hardware description
language which has the capability to describe digital as well
as analog behaviour and bidirectional pins and internal signals.

e.g.  

connectmodule Bidir (Din, Aout);
 inout Din; logic Din;              // logic signal
 inout Aout; electrical Aout;      // electrical signal


Quote:
Also, I have tried to run a simulation using spectreVerilog simualtor, there was one net pwrp that crossed the digital analog boundary. The simulator flagged one error also regarding this line, but continued to finish the simulation smoothly. How is it possible?


Honestly I don't know.

Bernd        

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by jbdavid on Feb 1st, 2007, 1:54am

Just a quick insight from my days at Cadence..
in SpectreVerilog the a2d 's and d2a's are the communication path between 2 separate processes running on your machine.. one spectre process and one VerilogXL process..  maybe bidirectional IPC calls were not easy to setup?

AMS Designer is a "Single Executable" simulator that integrates a spectre (or ultrasim) solver into NCsim..
This kind of integration was needed to handle true bidir connect_modules... and to allow the Verilog-AMS language
to allow a bidirectional connectmodule..

there are stll limitations.. you can't define a connection for a PAIR of wires that gets its state from the RELATIVE value of the two signals..  (a serious problem not recognized until people actually try to use it for real designs..)

but its better than the cosimulation approach..


Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by Andrew Beckett on Feb 7th, 2007, 4:12am

Actually you probably could do what Jonathan is suggesting using connect modules which use inherited connections - one signal can be directly connected, and the other can be located via an inherited connection (perhaps - I can't quite picture the situation that Jonathan is describing).

The thing to bear in mind though is that if you have two signals on the analog side, and one on the digital side, it doesn't really make sense to have automatic insertion of a connect module - because your circuit presumably needs to go through some kind of real life level shifter. You probably need to explicitly model the boundary in that case using a Verilog-AMS model.

Regards,

Andrew.


Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by rajdeep on Feb 22nd, 2007, 2:05am

Hello all,

I've found a solution and thought to share it with you people. Bidirectional pins don't create any problem if functional view is used, instead of verilog view of the digital module!!!! Don't know how does it solve the problem though.

But it worked. Also needed to uncheck save digital node voltages in the ADE.

Strange ways!! but spectreVerilog can also support the bidirectional problem with the above changes made.

Rajdeep

Title: Re: Bidirectional pins: problem in SpectreVerilog
Post by zhong on Feb 23rd, 2007, 12:55am

Rajdeep,
Sorry , I stongly suspect your magic here. Since SpectreVerilog does not have bidirection interface element. Theoritically it can NOT handle the bi-directional signal flow on Analog/Digital boundary

I guess ,  what you have done may change the A/D partition (spectreVerilog based on view name for partition) which could make your original bi-direction port no longer on A/D boundary . As I said before , spectreVerilog can perfectly handle bi-direction signal if it's not on A/D boundary.

Anyway, as long as you are happy with what you have changed , I am happy  :)
Zhong

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.