Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Toy example of using instrumentation
It monitors and bins signal values Update node widths with Firrtl Transform Working transform that will adjust widths of registers, ports and wires through the annotation system. Second piece of the augmented tool chain that will ultimately take advantage of firrt interpreters instrumentation output. Adjusting widths according to data gathered thereby. Part of Issue #114 Update node widths with Firrtl Transform Working transform that will adjust widths of registers, ports and wires through the annotation system. Second piece of the augmented tool chain that will ultimately take advantage of firrt interpreters instrumentation output. Adjusting widths according to data gathered thereby. Part of Issue #114 A little bit of cleanup Working on bit reduction calculator BitReducer does simple min/max to determine new bit size Can be made more advanced. Added writer to write bit changing annotations to a file With this we now have most of the machinery for Issue #114 remove tools.jar dependency fix context vs. not inconsistencies in type classes. add support for conversion to interval. add preliminary support for interval type class forgot to fix some context ops in intervals Minor changes fix syntax errors for compilation few minor syntax errors in intervaltype. add clip op to type classes. change 1 << n to BigInt(1) << n fixedprecisionchangerspec checks out migrate dsp tools/interval tests from fft project symlink local tests dsptools.math was conflicting with scala.math macros need to be enabled for chiselName. also, another scala.math fix scala strassen winograd matrix multiplication remove commented out typeclass stuff (to be revisited) lots of prep work to get matrix ops working. still debugging... minor update save minor changes for debug save temporary progress. too many wires... pipelining works -- hardcoded This creates a toolchain that unites the machinery for Issue #114 See InstrumentingSpec:"run with with bits reduced" for example of use New executeWithBitReduction acts like ordinary dsptools.Driver.execute Adds in the following - Run with interpreter bit instrumentation - Analyzes report, creating annotations to reduce size - Runs transform to reduce bits in low Firrtl - Re-runs the tests re-instrumenting Produces files - <dut-name>.signal-bitsizes.csv - <dut-name>.signal-bitsizes-2.csv - <dut-name>.bit-reduced.fir debugged matrix lit not working -- breeze orders things differently Some fixes for Issue #114 - Fixed changes to sizes in sub-module being lost - Added warnings if annotation to change wire not used or used more than once - Added a executeWithBitReduction to IAArithSpec, it works - Fix spelling in createAnnotationIfAppropritate adam fixed firrtl bug -- interval 4x4 and 8x8 work now minor changes. trying to debug dspreal fixed dspreal bug with matrix ops. dspreal direction wasn't getting propagated properly to TestModule, and poking a non-input didn't result in compile-time failure (only observed in sims) separate out matmul tests changes for dct Added bit reduction by standard deviation. Now you can specify a multiplier of the standard deviation. The bit reduction will apply to the min and the max being determined by the mean ± (multiplier * σ) if these numbers exceed the min and max seen, then the more restrictive limit will apply. More testing required Undo accidental changes added systolic array matmul. dct constraint bug... updates for getting random inputs working; bit reduction errors out In process refactoring of change widths. In process refactoring of change widths. filtering should work now. waiting on bit reduction Added ToWorkingIr and InferWidths to ChangeWidthTransform Changed to not change width's of IO's, could not get verilator to run when I did that. Seems to fix Angie's problems ChangeWidthTransform broke because DefInstance became WDefInstance because of ToWorkingIR Fix Bit operation errors Add in a few more passes to try and fix up Bit prim ops whose args are out of syncs with bit reduced signals A bit of style and dead code cleanup for previous commit more benchmarks bump numtests change tolerance for 8-bit changed bitwidths. interpreter stuff not saving. start working on fir filter example. tested real/fixed conversions. fir working; needs cleanup working fir example start working on clicking when limiting to n*sigma Added some BitWidth convenience tools Added HTML BitWitdh report to BitReducer Changed default binning to 16 Added UNFILTERED to two test names to make it easier to run just that one. minor code cleanup for fir demo prep for interpreter tests New strategy for reducing wires, does not actually reduce them but creates shadow reduced wire with name <old-name>__reduced and assigns to original wire with sign or zero extension <old-name>__msb joined by recursive cat operators. Added NODedupAnnotator to SystolicMatMul, this fixes blow ups due to a given wire getting two different bit reductions for different instances it appears in Right now I am not reducing IO's in submodules, doing so breaks IO naming because of the __reduced. Added UNFILTERED to two test names so I could select them easier in sbt Added some incomplete tests of things as I was tracking down bugs Don't reduce anything to less than 4 bits. Hack fix for now for verilog complaining about something that was reduced to 1 bit made some minor changes; looks like bit reduction still doesn't work. see help files in top-level dir minor changes use different multiply alg in matrixops Auto pad mixed radix representation
- Loading branch information