aboutsummaryrefslogtreecommitdiff
path: root/src/main
AgeCommit message (Collapse)Author
2017-02-23Fix warning from Cadence IncisiveScott Johnson
The fix for PR #305 caused a new compile warning from Cadence Incisive: always @(*) begin end | ncelab: *W,STARMT (../TestHarness.MyConfig.v,196147|9): This @* expands to empty list, will never wake up. This change satisfies all of: VCS, Incisive, Questa, Vivado, Verilator.
2017-02-22[stevo]: Adams fixStevo Bailey
2017-02-21Implementation of nodedupe mem (#447)Colin Schmidt
This allows the replseqmem transform to not deduplicate some memories, based on their name.
2017-02-14Add support for Analog types in partial connect (#435)Jack Koenig
Also add support for width inference
2017-02-14Fixes #441, ConvertFixedToSInt not recursing expsAdam Izraelevitz
2017-02-14Add println/throwInternalError to EmitterAdam Izraelevitz
2017-02-13Emit memories larger than 512 MB with a sparse annotation (#438)Colin Schmidt
This comment causes vcs to treat this as a spare memory, so it will dynamically allocate the required memory, and can support very large reg constructs this way. This is useful for test bench memories that might be simulating back DRAM or the like.
2017-02-12Changed fixed-point cat semantics to return uint (#436)Adam Izraelevitz
2017-02-07Rework Attach to work on arbitrary Analog hierarchies (#415)Jack Koenig
* Rework Attach to work on arbitrary Analog hierarchies If there are zero or one Analog sources in an Attach (source meaning wire or parent module port), then the Attach will be emitted as a simple point to point connection. In the general case, alias is used for simulation while forwards and backwards assigns for synthesis. Verilator does not currently support the general case so an `ifdef Verilator `error is emitted. * Add helper functions for creating WRef from Reg and Wire
2017-02-07Return a new circuit object after execution (#433)Colin Schmidt
This fixes an issue I was having with my ClockListAnnotations being duplicated. h/t @azidar
2017-02-06Fix stack overflow from massive MaxWidth chains during width inference (#407)Jack Koenig
Fixes ucb-bar/chisel3#420
2017-02-01Fix anno in backend (#428)Chick Markley
* fixed up impementation of deleteDirectoryHierarchy Added a few more tests * Round 2 of moving verilog to target dir Only create .f file if some files have been moved Some small style fixes in Driver Restored lost functionality to add -f argument in verilogToCpp Fixed loadAnnotations to add targetDir regardless of annotations arriving from file or through options
2017-01-31Replace createTempDirectory with createTestDirectory (#427)Jack Koenig
Will place tests in ./test_run_dir/ instead of /tmp/
2017-01-31Blackboxhelper (#418)Chick Markley
* First pass at implementing a annotation based mechanism to move black box verilator files into the target directory * A little bit of style cleanup * A little bit of style cleanup * Fix the driver, wasn't appending targetDir properly Add some docs * test had wrong value now that targetdir is added to annnos * Now saves a list of all black box verilog files moved into target directory. Then creates a file black_box_verilog_files.f that contains this list with -v prepended to each line * Made black box source helper be low to low form Added it to the verilog compiler transforms Added a test to make sure it got there * targetDir annotation is targeted to a CircuitName("All")
2017-01-29Keep firrtl's simulation environment in sync with chisel's. (#425)Jim Lawson
2017-01-27Fix signed types (#422)Angie Wang
* type conversions between sint/fixed and uint added at memory interfaces for replseqmem * turns out asFixed requires bp as constant in PrimOps (really should be documented) * fixed legalizeconnects to handle FixedPt * added tests for replseqmem failure with signed types
2017-01-27Move BackendCompilationUtilities into a util package for use by chisel3. (#400)Jim Lawson
* Move BackendCompilationUtilities into a util package for use by chisel3. Some of this could be moved into a more general tools package, but since chisel3 already has a dependency on firrtl ... * Push util down into firrtl so as not to conflict with scala.util.
2017-01-23Add FixedType to uniqueify match statement.Paul Rigge
Add a test for cmem and smem with fixed point numbers
2017-01-22use new annotations correctly for wiring (#416)Colin Schmidt
2017-01-20Remove merging of source locators during module deduplicationJack
2017-01-20Add MultiInfo. Speedup Info concatenation. Fixes #391Jack
2017-01-20Merge branch 'master' into scaladocrootJim Lawson
2017-01-19Merge branch 'master' into addmiddlefirrtlcompilerJim Lawson
2017-01-19Verilog rem fix (#404)grebe
* Add pass that fixes up widths with modulus operator for verilog * Add basic test for Verilog emission of Rem * Oops, left in some printlns.
2017-01-05Fix ScalaDoc complaints; add sbt-site, sbt-ghpages boilerplate.Jim Lawson
2016-12-14Merge branch 'master' into addmiddlefirrtlcompilerJim Lawson
2016-12-14Add support for top-level use of MiddleFirrtlCompiler.Jim Lawson
2016-12-14Added NoDedup annotation and test (#397)Adam Izraelevitz
2016-12-13Add MaxWidth of 1,000,000 bitsjackkoenig
Also base max dshl check on MaxWidth instead of just 31 bits Resolves #320
2016-12-13Move CheckWidths to its own filejackkoenig
2016-12-07Bugfix: add Neg to high form check (#384)Adam Izraelevitz
2016-12-06Fixes for Annotation serialized/deserialize (#390)Chick Markley
* Fixes for Annotation serialized/deserialize Made serializer agree with deserializer on text representation Re-ordered serializations of Named subclasses to be C or C.m or C.m.c where C=circuit, m=module, c=component Note: component may contain dots Added serialize deserialize tests to AnnotationSpec Did some style cleanup on AnnotationSpec Added explicit return tupe on SimpleTransformSpec#execute * Make explicit Util.error remove commented code * Make Annotation#serialize a nicer format fix import there and remove new on case class * In firrtl Driver.execute use annotations passed in through optionsManager#firrtlOptions if nonEmpty otherwise read the annotations in from an annotations file Add new option to override this behavior, --force-append-anno-file will append annotations in file to any that are passed in A few other style fixes to Driver: remove new with case classes. don't use match when if(boolean) will do * Added tests of malformed component and circuit names
2016-12-05Add check for muxing between clocks (#360)Jack Koenig
Also run CheckTypes after ExpandWhens Fixes #330
2016-12-05Bugfix: expand whens not voiding memories (#380)Adam Izraelevitz
2016-11-30Bugfix: Dedup aggressively (ignore comments) (#375)Adam Izraelevitz
FileInfo is merged
2016-11-23Stringified annotations (#367)Adam Izraelevitz
Restricts annotations to be string-based (and thus less typesafe) Makes annotations more easily serializable and interact with Chisel
2016-11-21Bugfix: exponential runtime of pull muxes (#379)Adam Izraelevitz
2016-11-21Rewrote inline xform to fix quadratic perf. bug (#377)Adam Izraelevitz
* Rewrote inline xform to fix quadratic perf. bug Turns out caching previously inlined modules is not useful The previous algorithm in a module, would flatten an instance's children, then flatten that instance. This caused all instances to be effectively inlined the number of times of its depth in the instance hierarchy, making it O(n*d*s), where n is the number of instances, and d is the depth of the instance, and s is the number of statements in the instance. The new algorithm directly inlines a module by keeping track of the parents of that instance, making it constant time with the number of instantiated instances. * Minor style fixes
2016-11-15Fixed multi wiring (#368)Adam Izraelevitz
* Fixed multi wiring * Minor style changes
2016-11-14Fix wrong omitting same clocked nondirect children (#374)Adam Izraelevitz
* Fix wrong omitting same clocked nondirect children * Minor style fixes
2016-11-10Added additional optimizationsazidar
Required for passing all chisel3 tests
2016-11-09Added optimizations to for better width inferenceazidar
Also added exceptions for uninferred widths when checking DoPrim width legality to not trigger compiler error
2016-11-09Bugfix: removed recursive removal in infer widthsazidar
This will certainly lead to more uninferred width errors, but now widths that were previously incorrectly inferred are now correctly uninferred. An example is: reg r : UInt, clock with: (reset => (reset, UInt<2>(3))) node x = add(r, r) r <= x Here, r's width follows the following formula, which cannot be solved: rWidth >= max(max(rWidth, rWidth) + 1, 2)
2016-11-07Clock List Transform (#365)Adam Izraelevitz
Added clocklist transform
2016-11-07Fix annotations (#366)Adam Izraelevitz
getMyAnnotations now returns Seq[Annotation] Changed test to check number of annotations is the same
2016-11-07make default dir be current directory (#361)Chick Markley
2016-11-07Added underscore to GEN, now its _GEN (#362)Adam Izraelevitz
Prefix temporary names with underscores so Verilator won't trace them Use verilator argument "--trace-underscore" if you want to trace these signals
2016-11-05Fix CHIRRTL bugs (#355)Donggyu
* handle uninferred ports gracefully in RemoveCHIRRTL memory port directions are not inferred during CInferMDir if not being used, so handle them properly in RemoveCHIRRTL * fix CInferTypes
2016-11-04Cleanup license at top of every file (#364)Jack Koenig
Replace with more sensible comment to see LICENSE rather than including the whole license in every file
2016-11-04Add a pass to deduplicate modulesazidar