summaryrefslogtreecommitdiff
path: root/src/main/scala/Chisel/internal
AgeCommit message (Collapse)Author
2016-06-08Rename packages to lowercase chisel, add compatibility layerducky
2016-05-20Implementation of source locatorsducky
2016-05-05Move Chisel API into separate chiselFrontend compilation unit in preparation ↵ducky
for source locator macros
2016-05-04Add HasId=Module|Data.suggestName, TransitName utilStephen Twigg
Often times the scala runtime reflection fails to find an appropriate name for a given net. This commit tries to partially ameliorate the issue by exposing a suggestName function onto HasId (i.e. Module, Data) that the user can call to 'suggest' a name. Only the first suggestion is taken so repeated calls to suggestName will not change the name for that node. This type of name exposure is slightly risky as there is a chance the same name is suggested in the same namespace. Thus, naming within a Module occurs in two passes: The suggestion phase is when the user calls suggestName, etc. Near the 'end,' the Module uses runtime reflection to suggest names as well. The forcing phase is when all the nodes are run through and a name is 'forced' onto them, using the namespace to suggest alternatives if the desired one is taken. If no suggestion is present, the default name is T, as before. Second, there is an issue that commonly comes up when a component library creates intermediate logic and then only returns a piece, or even a piece of a piece (like part of a module IO). Any names suggested by the Module by reflection onto that return value are either lost or not fully applied. This issue is resolved by TransitName. TransitName attaches a hook to the suggestName function of a HasId. With that hook, any time suggestName is called on the hooked ID, that name suggestion is also applied to other nodes. For example, if Queue(in) is called, then any attempts to name the returned output DecoupledIO will actually translate to naming attempts on the backing Queue.
2016-04-26Scalastyle fixes and "ignores". - No functional changes.Jim Lawson
2016-04-15Test FIRRTL string literals more aggressivelyAndrew Waterman
2016-04-14Use mkString to clarify and speed up DefPrim emissionAndrew Waterman
2016-04-14Improve performance of hashing HasId (e.g. Data)Andrew Waterman
2016-04-14Eliminate RefMapAndrew Waterman
It's an unconvincing means to pretend there isn't mutable state when there really is. It's more confusing and less performant than just calling a spade a spade.
2016-03-14Scalastyle cleanup - no functional differences.Jim Lawson
2016-03-06Print a better message on constant width failuresPalmer Dabbelt
I'm getting this error and the message is awful.
2016-02-23Emit no width instead of <?> for unknown width UInt and SInt literals and typesjackkoenig
2016-02-08Escape control characters in Printf string literalsAndrew Waterman
If we end up generalizing Strings, this code should be moved elsewhere. Note FIRRTL doesn't handle this stuff right, so I'm not committing the companion test yet.
2016-01-28Merge branch 'master' into modrefactorAndrew Waterman
2016-01-28Use FIRRTL is invalid constructAndrew Waterman
2016-01-27Use FIRRTL nodes add+tail instead of addwAndrew Waterman
2016-01-27Use FIRRTL node rem, not mod, for %Andrew Waterman
2016-01-27Remove unsupported FIRRTL node bit(); use bits()Andrew Waterman
2016-01-27New FIRRTL syntax for regAndrew Waterman
2016-01-27Only deduplicate when Module classname is the sameducky
2016-01-23Implement first draft of new FIRRTL changesAndrew Waterman
2016-01-23Move firrtl subpackage to inside internal subpackage.jackkoenig
2015-12-06Split internal and FIRRTL packagesducky
2015-11-04Remove Parameters library and refactor Driver.Henry Cook
In addition to removing all the extraneous Driver invocations that created various top-level Parameters instances, this commit also lays the groundwork for stanza-firrtl/verilator based testing of Modules that extend BasicTester. The execution-based tests have been updated accordingly. They will only succeed if firrtl and verilator binaries have been installed. Further work is needed on individual tests to use assertions instead of .io.error.
2015-11-02Scalastyle ignore ## and printlns in Error.scaladucky
2015-10-26Move internal files into their own directoriesducky