cell libraries and place and route

On Thu, 14 Jul 2005 23:55:10 +0100, Andrew Beckett
<andrewb@DcEaLdEeTnEcTe.HcIoSm> wrote:

In older versions, prog() used to be a lot less efficient than let(). Since
the byte-code compiler (4.3 - aka 9301, I think) the difference is now
negligible
Negligible is a bit strong. I should have said that the difference is now a
lot smaller.

Andrew.
 
I cant fig it out clearly that how the cap was drawed , but if the LVS
cant recognize it, only 2
possible problem: one is the device was not extracted correct, which
means, may the device layer is not defined well . the other is the
connection define may have problem, as u mentioned, there's short on the
connection. u may seprate the CONTACT of the cap to other connections .
 
Maybe somebody here have learned too much from those "cracks". The
texting among those "participants" is so horrible that I fear for the
future of global communication. Otherwise, a quite amusing forum.
--
Svenn
 
This is one of the two common surprises that a new comer would see in SKILL.
The thing is when the numerical value in the string is preceded by zero
it is evaluated as octal code.

The other surprise you may see in future is with the internal
representation of floating point numbers and their print values.
Search the older forums for this topic also to save your precise time.

regards,
Suresh

rubicam88 wrote:
I using skill language on IC5.0.33_USR3.16.35

The evalstring function is used to convert the character string into
the
numerical value.

There is a thing with a not correct return value.



evalstring("111")

111


evalstring("010")

8


evalstring("110")

110

What is this?
 
rubicam88 wrote:
I using skill language on IC5.0.33_USR3.16.35

The evalstring function is used to convert the character string into
the
numerical value.

There is a thing with a not correct return value.
[snip]

evalstring("010")

8
My guess would be that if the number starts with a 0 it is treated as
being an octal number (base 8).

Cheers,

Roger
 
This is one of the two common surprises that a new comer would see in SKILL.
The thing is when the number in the string starts with a zero
it is evaluated as octal code. [This is documented in Skill Users Guide.
0x is used for Hexadecimal]

The other surprise you may see in future is with the internal
representation of floating point numbers and their print values.
Search the older forums for this topic also to save your precious time.

regards,
Suresh
rubicam88 wrote:
I using skill language on IC5.0.33_USR3.16.35

The evalstring function is used to convert the character string into
the
numerical value.

There is a thing with a not correct return value.



evalstring("111")

111


evalstring("010")

8


evalstring("110")

110

What is this?
 
On Wed, 20 Jul 2005 11:59:14 +0100, Roger Light <roger.light@NOSPAM.nottingham.ac.uk> wrote:

rubicam88 wrote:
I using skill language on IC5.0.33_USR3.16.35

The evalstring function is used to convert the character string into
the
numerical value.

There is a thing with a not correct return value.

[snip]

evalstring("010")

8

My guess would be that if the number starts with a 0 it is treated as
being an octal number (base 8).

Cheers,

Roger
This is not unusual either - other languages (Tcl for example) do the same
sort of thing. It's something that always used to come up when I was actively reading the
tcl newsgroup.

I would generally advise against using evalstring to convert numbers. What happens if the string
you're converting contains the value "(exit)", for example...

You can use atoi() to convert strings to integers, and this always works in base 10.

Regards,

Andrew.
 
Andrew Beckett wrote:
On Wed, 20 Jul 2005 11:59:14 +0100, Roger Light <roger.light@NOSPAM.nottingham.ac.uk> wrote:


rubicam88 wrote:

I using skill language on IC5.0.33_USR3.16.35

The evalstring function is used to convert the character string into
the
numerical value.

There is a thing with a not correct return value.

[snip]


evalstring("010")

8

My guess would be that if the number starts with a 0 it is treated as
being an octal number (base 8).

Cheers,

Roger


This is not unusual either - other languages (Tcl for example) do the same
sort of thing.
Absolutely. Preceding an integer with a zero is a pretty standard way of
indicating that it is octal, not decimal (although whether it is intuitive if
you're not a programmer is debatable). Same thing as using '0x' for hex, but
less obvious since there is no visual separator between the prefix and actual
number (like the 'x' in 0x1234). Perl is exactly the same.

Graeme.
 
In article <1121856112.599413.40230@g14g2000cwa.googlegroups.com> "rubicam88" <rubicam@cside2.com> writes:

evalstring("010")
8

What is this?
It's correct. The leading zero means Octal (base 8). 010 == 8.

-Pete Zakel
(phz@seeheader.nospam)

"The right of citizens to bear arms is just one guarantee against arbitrary
government, one more safeguard against the tyranny which now appears remote
in America, but which historically has proved to be always possible."

-Senator Hubert Humphrey
 
On 20 Jul 2005 15:41:30 -0700, "mekhail" <mekhail@gmail.com> wrote:

Hi,

I tarred (to backup) my library with tar -cvvf blablah.tar blahblah/
when i went to restore it..i made a backup directory..and untarred it
in there..so now the dir is
backup/blahblah/

i then added the path to my library manager..when i open the
layout..all the pins no longer have labels...they just say
met1$12312$$21 something of that nature..i need to get my pins back to
i can lvs (schematics are fine)

any ideas?

thanks,
mekhail
You might have a libInit.il file in the library directory. Several of
the test cases I get have this file and it references something relative
to the parent directory. Since you added a level of hierarchy, a
reference like load("../skill/pcells.il") may not be working.

Try moving the library to the same level or hierarchy it was at with a
command like:

mv backup/blahblah blahblah.backup

Then update your cds.lib to point to blahblah.backup and see if things
are happy.
 
Kaustav,

The version 3.40 is old. The CSD process is an old process replaced
by the C35 process.
You have to ask a new version of the design-kit (the actual
supported version is 3.70).

Regards,

====================
Kholdoun TORKI
http://cmp.imag.fr
====================

kaustav wrote:

Hi,

am having a problem while trying to layout a poly capacitor while using
AMS 3.40 with the tech -csd option.
The predefined layout in PRIMLIB for cpoly shows metal1 contacts to
poly1 and poly2 layers.
I am using the same layers with dimensions modified.
If I use the 'Mark Net' option it shows both metal contacts to be on
the same net.
LVS then fails to recognize the capacitor since it cannot distinguish
two separate terminals.

I thought this might be caused by the layer CONT being common to both
poly1-metal1 and poly2-metal1 contacts.
So I extended poly2 outside poly1 and made the poly2-metal1 contact in
the extended region.
DRC now gives the error 'E1P1P2'
any solutions/workarounds to this?

thanks
Kaustav
 
thanks for the reply

but +defin... is for conditional compilation and macro substitution..
it is not for parameter setting...
 
thanks for the reply

generic option is for vhdl..
anyway i tried using that for verilog too...but it din't work..

- kk
 
Dear Andrew,

It's okay. Thanks for all help anyways. I'll ask around and try again.
Will let you know what the problem and the solutions are if I do find
it :)

Thanks again.

Regards,
Chloe
 
On Mon, 6 Sep 2004 08:51:50 -0300, "Spaceghost"
<nospam@postingroup.com> wrote:

Hello, I've designed an A/D converter and now want to analyze it's frequency
domain performance (i.e. SNR). I don't know exactly how to do this, so if
there are any hints, that would be good!
I'd do it the easy way. I always simulate my adc's with a simple
perfect d/a converter made from spice sources. It doesn't add much
overhead. Then you have an analog representation of the digital
output just like you'd do at a test bench.

If you digitize a perfect sinewave with your adc and reconvert with a
perfect d/a the only error source is your adc.

here's a 11 bit dac that works for 1.8v supplies:

XU99 B_0_A B_1_A B_2_A B_3_A B_4_A B_5_A B_6_A B_7_A B_8_A B_9_A
B_10_A NREF2 OUT DAC10OR
+ FS = 1

vn2 nref2 0 0.400

***********************************************************************
..SUBCKT dac11 b_0_A b_1_A b_2_A b_3_A b_4_A b_5_A b_6_A b_7_A b_8_A
b_9_A b_10_A nref out
+ FS='1.0' LSB='FS/1024'
eb0 OUT n1 pwl(1) b_0_A 0 0.3,0 1.5,'lsb*1'
eb1 n1 n2 pwl(1) b_1_A 0 0.3,0 1.5,'lsb*2'
eb2 n2 n3 pwl(1) b_2_A 0 0.3,0 1.5,'lsb*4'
eb3 n3 n4 pwl(1) b_3_A 0 0.3,0 1.5,'lsb*8'
eb4 n4 n5 pwl(1) b_4_A 0 0.3,0 1.5,'lsb*16'
eb5 n5 n6 pwl(1) b_5_A 0 0.3,0 1.5,'lsb*32'
eb6 n6 n7 pwl(1) b_6_A 0 0.3,0 1.5,'lsb*64'
eb7 n7 n8 pwl(1) b_7_A 0 0.3,0 1.5,'lsb*128'
eb8 n8 n9 pwl(1) b_8_A 0 0.3,0 1.5,'lsb*256'
eb9 n9 n10 pwl(1) b_9_A 0 0.3,0 1.5,'lsb*512'
eb10 n10 nref pwl(1) b_10_A 0 0.3,0 1.5,'lsb*1024'
.ENDS dac11

***********************************************************************

Not fancy, but functional. I'm sure there are better ones . . .
The bandwidth of the d/a is pretty much infinite though, so if a
glitch is possible, it will come right through. I've also done these
with current sources. Then glitching can be more controlled.

Regards,
Larry
 
Hello,

To characterize my DAC, I have performed mixed simulation (VHDL-AMS,
Transistor level) with AdvanceMS. I have described an ideal ADC in
VHDL-AMS connected to an ideal analog generator and to the input of my
DAC. (it requires to use the Eldo models of the transistor so that they
can simulated in AdvanceMS)
Then I ve performed the FFT of my analog output by using the dedicated
function provided by the EZ Wave calculator. One can then appreciate
the noise and the distorison levels. Finally the SNR function should be
used to compute the SNR (!), and then the resolution can be computed by
hand.

Jerry,
 
Spaceghostwrote:
Hello, I've designed an A/D converter and now want to analyze it's
frequency
domain performance (i.e. SNR). I don't know exactly how to do
this, so if
there are any hints, that would be good!

I read something about taking an FFT of the digital output stream.
Is this
even something that Cadence does? Or do you have to somehow port
the
simulation results to something like Matlab.

I'm pretty lost here...
You can write a simple verilogA model that will stobe the output of
your converter and write it into a file. You can then import that
file to Matlab and perform your spectral characterizations.
 
On Wed, 28 Sep 2005 19:21:50 +0200, Frank Buergel wrote:

Hi,

I'd like to create a text field with hiCreateMLTextField() for a text with
80 columns and 40 rows. To get the pixel size for such a multi line text
field I'm using hiGetTextFieldFit(48 80 hiGetFont("text") t t). Later
on I'm using the returned size in hiCreateAppForm() to specify the size of my
text field. Unfortunately the resulting text window is too small to display
my text...

What am I doing wrong ?

Thanks,
Frank
Here is some skill code to show the problem:

s1="1234567890"
s2="2345678901"
s3="3456789012"
s4="4567890123"
s5="5678901234"
s6="6789012345"

myText = strcat( s1 "\n" s2 "\n" s3 "\n" s4 "\n" s5 "\n" s6 )
myFont = hiGetFont( "text" )

myOrgSize = hiGetTextFieldFit( 6 10 myFont t t )

myWidth = nth( 0 myOrgSize ) + 3
myHeight = nth( 1 myOrgSize ) + 15

myModSize = myWidth:myHeight

myAttachment = hicTopPositionSet|hicBottomPercentSet|hicLeftPositionSet|hicRightPercentSet

theTF1 = hiCreateMLTextField(?name 'myTF1 ?font myFont ?defValue myText)
theTF2 = hiCreateMLTextField(?name 'myTF2 ?font myFont ?defValue myText)

theForm = hiCreateAppForm(
?name 'myForm
?buttonLayout 'Close
?formTitle "Why ?"
?initialSize list(5*myWidth 3*myHeight)
?attachmentList list( myAttachment myAttachment )
?fields list( list(theTF1 myWidth:myHeight myOrgSize)
list(theTF2 3*myWidth:myHeight myModSize) )
)

hiDisplayForm( theForm )
 

Welcome to EDABoard.com

Sponsor

Back
Top