gnupic: Re: [gnupic] Remarks to gpsim of 05/12/2006
Subject:
Re: [gnupic] Remarks to gpsim of 05/12/2006
From:
Tobias Schlottke ####@####.####
Date:
19 May 2006 23:22:43 +0100
Message-Id: <Pine.LNX.4.64.0605192343110.349@ws-toby.Netzwert.AG>
On Fri, 19 May 2006, Scott Dattalo wrote:
> I think the asynchronous stimuli are too confusing. This past week I've begun
> working on a new stimulus mechanism. This new stimulus will actually be a
> collection of dynamically loadable modules. Think of them as function
> generators!
Mmmh, may be confusing but they work. I'm now observing
a new problem. I have big stimulus files with kind of
serial bit patterns. One file has 100,000 entries of
transistions. Size about 3 MB. This file is of course
generated by a script. In version 0.21.2 I had no
problems with this file. Load time was ok and the
simulation was fine.
With the actual top version it seems to me that there
is a kind of quadratic cost in reading this file. If I
use more than 25,000 cpu load goes to 90% and the
reading speed gets slower and slower. I checked this
with strace/truss. Ok, I split the data into 4 stimuli
and attached all of them to one node. I thought that a
stimulus goes into high impedance mode if no values are
left. Again I was trapped by the breadboard. The color
of the pin changed exactly at the expected timestamps
but then I double checked with the output of "stimulus"
(Thanks again for the hint!). It seems that all the 4
generators a coupled with a resistor network and the
the result is an analog voltage which can not be
sampled properly. I specified "digital" mode.
Do you have a hint for me how to
improve the reading of big stimulus files?
or how to couple stimuli with kind of a multiplexer?
> I'm working on one called 'pulsegen' that will be used for generating pulses.
> It has the same functionality of the asynchronous stimulus, however it's
> behavior is controlled via editable attributes. The asynchronous stimulus
> requires all of it's data in one giant gpsim command and is uneditable.
>
> There are attributes to control it's electrical behavior, e.g. output
> resistance, output capacitance, drive voltage, etc. And there attributes to
> control its personality. For example there are .set, .clear, and .delete that
> have the units of simulation cycles. Here's how you use them:
>
>
....
>
> In addition to the pulse generator, I'm going to create something like
> SPICE's PWL (piece-wise linear) voltage source. Essentially, this will ramp
> between the data points instead of stepping. This will allow triangle waves
> and saw tooth waves.
On one hand side this is nice. On the other hand I
prefer a stupid ascii format what I can use for
machine generated files. And there is always a case
that's too complex for the internal generators and then
we move again to precomputed or measured data. I.E.
you want to simulate a simple speech recognition
system. You have recorded voice samples and want to
simulate the behaviour of your program with these
samples. There is no other way than just reading the
files.
Just my to cents.
Best regards
Toby