Conversation
Ordering was incorrectly reversed
- Crashes were due to missing trigger signal that was not read to self.iofile_eventdict, since trigger signal was not read unless explicitly defined to be an event type output - On the other hand, explicitly defining triggers as event outputs caueses columns to overflow in the print file (i.e. num_cols is calculated incorrectly) in some cases - The most convienient solution is to just read the output file once BEFORE reading the individual IOs
|
Tried AC; does not work yet. The reason is that on line 180, the io type is read and it uses tran_analysis_name always for event based results (even though AC can also use those). Need to implement some method to extract whether or not the simulation was actually AC or Transient. This information is atleast given to spice_simcmd, so have to figure out some method to get it here as well. Did not have time today to debug this further, but leaving this as documentaiton if someone else has the time to figure this out before me. |
|
I see. The way I see it is that we three options
To me option 1 is the worst and option 2 is not very explicit and hence might be difficult to debug. It probably makes sense to detect the simulation type and infer analysis name from there directly. This will mean that running two different simulations on the same netlist will not work, but I don't think that has been supported for a long time anyway. |
|
da34a25 should fix the aforementioned problem. |
|
Using libpsf to read in transient and AC. Tested with transient. This now has the downside that sparam, etc, still use psf_utils, which we should probably get rid of, if libpsf is superior to psf_utils. See #25 @vlahtin can you test and see if it is faster now? Please remember to pip3 install --user libpsf |
|
Tested also AC with a nonsense example. At least it doesn't crash. We should probably aim to make release tests for all analysis types to aid with the testing. |
…spice into iofile-refactor
- This required to get rid of iotypes 'psfascii_pss' and 'psfascii_pac', which are simulator specific. They are now handled as events. The reason is that AC simulation output (freq, amplitude pairs) is also an event. PSS and PAC output similar type of data. The frequency is fundemntal or harmonic in PSS and in PAC it is fund +/- nharmonics * pss_fund. - Seems to break noise simulations...
|
Okay, tested this together with @MiikkaMaki. transient, dc, ac, sp, noise, pss and pac simulations seem all to work. Of course, further testing would always be nice to catch possible uncaught bugs (mention @vlahtin if you have the time). iofile reading operation should now be simulator agnostic once again, which is good news. |
…her analyses use psf utils
…spice into iofile-refactor
|
Added the option to select either binary parsing (using libpsf) or ascii parsing (using psf_utils) when use_psf=True. Also made it so, that psf_utils is used for all other analyses (when use_psf is True), as the output file size is not expected to grow as significantly as transient, thus yielding reliable results with reasonable speed. This change came as libpsf has problems with memory leakage with large output file sizes, and unavailable in some linux distributions. The psf_utils is however quite slow, so if large file sizes in transient are expected, either libpsf or print file parsing may be the best option, which should now be available all according to user selection @MiikkaMaki can you test that your SP, noise, PSS, PAC testbench still works? |
|
Hi, Please test that as well before merge. It works in my special case, but if someone has another case with sample IOs, please try that. |
|
Notes for the release:As the lint-based code reformat policy has been added to v1.14_RC already, I suggest that you do octopus merge (and some tests) by merging v1.14_RC to this branch and re-test before merging this to v1.14_RC, if not done already. |
|
Note for the future developments: If there is a need for a iofiletype where the first column is frequency, (for example in AC-analysis) then the most consistent way to handle this is to add io type 'freq' with an assumption that the data in the other columns are complex. All the other formats address the problem how the time in the first columns is interpreted. Opened #31 for this, does not need to be addressed now. Also: AC response is not a 'signal' as in sense of conveying data from a block to another and thus not strictly an IO. To me it seems that it should be handled with some kind of 'extract' rather than IO's. Freq type signal would be for example an OFDM frame. |
|
Further notes fro the release: To reduce the number of conflicts at merge, regrdless of which way it is done first, you may run |
Dont add the brackets if the sample IO is for one IO instead of a bus
Should address issues:
#16
#18
Ping @sporrasm @vlahtin