The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 14th, 2024, 10:20pm
Pages: 1
Send Topic Print
Bidirectional pins: problem in SpectreVerilog (Read 14098 times)
rajdeep
Senior Member
****
Offline



Posts: 220
UK
Bidirectional pins: problem in SpectreVerilog
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
Back to top
 
 

Design is fun, verification is a requirement.
View Profile   IP Logged
zhong
Community Member
***
Offline



Posts: 36
California , United States
Re: Bidirectional pins: problem in SpectreVerilog
Reply #1 - 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
Back to top
 
 
View Profile   IP Logged
rajdeep
Senior Member
****
Offline



Posts: 220
UK
Re: Bidirectional pins: problem in SpectreVerilog
Reply #2 - 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
Back to top
 
 

Design is fun, verification is a requirement.
View Profile   IP Logged
zhong
Community Member
***
Offline



Posts: 36
California , United States
Re: Bidirectional pins: problem in SpectreVerilog
Reply #3 - Jan 28th, 2007, 11:48pm
 
Lots of companies including big companies already moved to the AMS Designer  ;)

Back to top
 
 
View Profile   IP Logged
zhong
Community Member
***
Offline



Posts: 36
California , United States
Re: Bidirectional pins: problem in SpectreVerilog
Reply #4 - 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
Back to top
 
 
View Profile   IP Logged
rajdeep
Senior Member
****
Offline



Posts: 220
UK
Re: Bidirectional pins: problem in SpectreVerilog
Reply #5 - 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
Back to top
 
 

Design is fun, verification is a requirement.
View Profile   IP Logged
bernd
Senior Member
****
Offline



Posts: 229
Munich/Germany
Re: Bidirectional pins: problem in SpectreVerilog
Reply #6 - 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
Back to top
 
 

Just another lonesome cad guy
View Profile WWW   IP Logged
rajdeep
Senior Member
****
Offline



Posts: 220
UK
Re: Bidirectional pins: problem in SpectreVerilog
Reply #7 - 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 Undecided

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
Back to top
 
 

Design is fun, verification is a requirement.
View Profile   IP Logged
bernd
Senior Member
****
Offline



Posts: 229
Munich/Germany
Re: Bidirectional pins: problem in SpectreVerilog
Reply #8 - 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      
Back to top
 
 

Just another lonesome cad guy
View Profile WWW   IP Logged
jbdavid
Community Fellow
*****
Offline



Posts: 378
Silicon Valley
Re: Bidirectional pins: problem in SpectreVerilog
Reply #9 - 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..

Back to top
 
 

jbdavid
Mixed Signal Design Verification
View Profile WWW   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: Bidirectional pins: problem in SpectreVerilog
Reply #10 - 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.

Back to top
 
 
View Profile WWW   IP Logged
rajdeep
Senior Member
****
Offline



Posts: 220
UK
Re: Bidirectional pins: problem in SpectreVerilog
Reply #11 - 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
Back to top
 
 

Design is fun, verification is a requirement.
View Profile   IP Logged
zhong
Community Member
***
Offline



Posts: 36
California , United States
Re: Bidirectional pins: problem in SpectreVerilog
Reply #12 - 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
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.