Plotting frequency with time...

Hi Svenn,

Whilst some of the information on your sourcelink ought to be
transferrable (such as your library of solutions and so on), some
things (like service requests, PCRs etc) are definitely tied to your
company. They contain company proprietary information, and were filed
on behalf of your company, albeit via you. The vast majority of our
customers would not want you taking things you did on their behalf
with you, much as they wouldn't want you taking designs done with one
company to another.

I'll speak to the sourcelink team and make the suggestion that it
should be possible to take the non-proprietary parts of your
sourcelink profile to a new account.

Regards,

Andrew.

On 24 Sep 2004 04:54:23 -0700, svenn.are@bjerkem.de wrote:

Hi,

this just have to go to the group as a small reminder:

Lately I changed employer. I used to work with Cadence and I still
work with Cadence. My seat changed, but my tools didn't. Now, both my
old and my new employer have service accounts with Cadence so there
should be no problem about receiving any support for free here.

I sent a service request via Sourcelink that I wanted to have my saved
PCR's and service requests and the MyLibrary stuff transfered to my
new account. Because I still work with Cadence I want to have access
to my old data. Sounds reasonable, or?

What happened was that someone at Sourcelink closed my old account
faster than I could say 'cake' and sent me an email that I had to open
a new account with my new employer. Now I don't have access to my old
data any longer so I can't reconstruct my library in my new account.

I *could* have continued to use my old account in parallell with my
new account, but I didn't. I asked before I started digging, and was
badly punished for this. Sourcelink ties the users to the companies
where they work but when I change company, I still need to access my
personal data collected over years. So, my recomendation is to
carefully print out all data from Sourcelink before you even think
about asking for a transfer. (Which will probably not work anyway, as
I have found out.)
 
You may be better off reading the cdsenv file in SKILL. It's possible
for an individual cdsenv entry to span more than one line if the value
is a list type.

Here's an example of some code to compare the master cdsenv files
between two different installations:

/* abCompareCdsenv.il

Author A.D.Beckett
Group Custom IC (UK), Cadence Design Systems Ltd.
Language SKILL
Date Dec 09, 2003
Modified
By

For example:

abCompareCdsenv("layout" cdsGetInstPath() "/cds/hppa/IC446_hot")

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

SCCS Info: @(#) abCompareCdsenv.il 12/09/03.15:38:01 1.1

*/

(defun abReadCdsenv (toolname instDir)
(let (table prt line)
(setq table (makeTable 'envData nil))
(setq prt
(infile
(sprintf nil "%s/tools/dfII/etc/tools/%s/.cdsenv"
instDir toolname)))
(when prt
(while
(setq line (lineread prt))
(unless (or (eq line t) (stringp (car line)))
(setarray table (list (car line) (cadr line)) t)
)
) ; while
(close prt)
) ; when
table
)
)

(defun abCompareCdsenv (toolname instDir1 instDir2)
(let (tab1 tab2 inTab1Only inTab2Only)
(setq tab1 (abReadCdsenv toolname instDir1))
(setq tab2 (abReadCdsenv toolname instDir2))

;-----------------------------------------------------------------
; Find everything in tab1 not in tab2

;-----------------------------------------------------------------
(setq inTab1Only
(setof entry tab1 (null (arrayref tab2 entry))))
(setq inTab2Only
(setof entry tab2 (null (arrayref tab1 entry))))
(printf "In %s only\n" instDir1)
(pprint inTab1Only)
(newline)
(printf "In %s only\n" instDir2)
(pprint inTab2Only)
(newline)
t
))



On Fri, 24 Sep 2004 14:20:39 +0200, fogh
<cad_support@skipthisandunderscores.catena.nl> wrote:

We also have such a setting. In doesn help in that case: the offending envSetVal() is not in a cdsinit that we own, it is in the init procedure for a proprietary simulator. So it is also not loaded before cdsinit but only when when the user selects that simulator in ADE.
I think I am going to make a procedure that greps through the .cdsenv after all, and propose it to them.
 
fogh wrote:
Stefan Joeres wrote:

fogh wrote:


What spectrum should I expect when randomness is good ? (for instance
with
tperiod=vlogic_high=1 vlogic_low=-1, trise=tfall=1m, 10**5 cycles )?



As far as I remember _real_ random bit streams produce a flat spectrum
(white noise). This is just true for a very long period, so if you
watch over a shorter period of time, you should get a nearly flat
spectrum with two blops somewhere which are produced by the sharp
transititions and the flat plateau.

Stefan,
that is what I expected too, but I get stg that looks more like a sinc.
It is flat at higher freqs, but that could be a numerical noise floor.
Is there a way to get the spectrum from autocorrelation considerations ?
(sorry for any stupid signal processing question. My standard excuse is
: Sorry but I studied only physics. I wanted to major in blond bodies
but dropped out and had to do semiconductors.)

No, honestly, if someone can check the verilogA code or the spectrum, I
would appreciate.
Hi All,

I got the spectrum now. There are 2 ways to get at it:

1) the autocorrelation

With this rndbs(t) function, the autocorrelation R(d) is the average of rndbs(t)*rndbs(t-d) . When you are still on the same bit, the correlation is complete, but if you look after 1 period (1 second) than there is no correlation at all. That is, when |d|<0.5 we have R=1 and for |d|>0.5 we have R=0.
Some theorem tells us that the spectrum F(s) is the fourier tranform of R(d) . That's the transform of a door, so the spectrum is a sin(s)/s

2) the convolution

If you take in your DFT only one sample per clock, you have a "random train of diracs" rtd(t). Like Stefan said, the spectrum of this guy is flat.
If you convolute this random train with a door function, you get the actual waveform generated in time domain by the verilogA module.

The Fourier tranform of a convolution is the product of the tranforms = flat() * tranform(door()) = tranform(door())= sin(s)/s
 
We also have such a setting. In doesn help in that case: the offending envSetVal() is not in a cdsinit that we own, it is in the init procedure for a proprietary simulator. So it is also not loaded before cdsinit but only when when the user selects that simulator in ADE.
I think I am going to make a procedure that greps through the .cdsenv after all, and propose it to them.

Bernd Fischer wrote:
The .cdsenv search mechanism of DFII is the following

1. <inst_dir>/tools/dfII/etc/tools/<application/.cdsenv
2. [<inst_dir>/tools/dfII/local/.cdsenv]
optional if you have a /dfII/local/directory
3. $HOME/.cdsenv

What we do in our environment is, we use a project specific
.cdsinit file which loads a project specific .cdsenv file
with envLoadFile( "<path_to>/.cdsenv" ).

So the user can have a .cdsenv file in his $HOME directory
and the user .cdsenv settings do overwrite the project
specific settings. The user is free to do this if he wants
and yo do not overwrite specific user settings with this way.

Maybe this is worth to think about for you.

Bernd

fogh wrote:

Bernd,

In fact it is possible that the user has specified in his .cdsenv the
same value as the default. So envGetVal==envGetDefVal , but I should
still not call envSetVal.
Do you have an idea on how to check if the user has specified
something at all (no matter wether it is the same as software default
or not).

Bernd Fischer wrote:

envGetVal and envGetDefVal
is there is a difference in the return values
the user should have modified the variable settings.

Bernd

fogh wrote:

Hi All,

rather than bluntly use setEnvVal, I would like to first check
wether the user has saved something for this envvar in his .cdsenv
How should I do that ?
 

Welcome to EDABoard.com

Sponsor

Back
Top