summaryrefslogtreecommitdiff
path: root/src/test/scala/examples
AgeCommit message (Collapse)Author
2019-08-13Add support for asynchronous reset (#1011)Jack Koenig
Adds new AsyncReset and "abstract" Reset types. Reset is inferred in FIRRTL to be either AsyncReset or Bool. The "reset type" of a register is set by the type of its reset signal: val asyncReset: AsyncReset = IO(Input(AsyncReset())) val syncReset: Bool = IO(Input(Bool())) val abstractReset: Reset = IO(Input(Reset())) val asyncReg = withReset(asyncReset) { RegInit(0.U) } val syncReg = withReset(syncReset) { RegInit(0.U) } val inferredReg = withReset(abstractReset) { RegInit(0.U) } AsyncReset can be cast to and from Bool. Whereas synchronous reset is equivalent to a mux in front of a flip-flop and thus can be driven by logic, asynchronous reset requires that the reset value is a constant. This is checked in FIRRTL. Inference of the concrete type of a Reset occurs based on the type the Reset's drivers. This inference is very simple, it is simple forward propagation of the type, but it allows for writing blocks and modules that are agnostic to the reset type. In particular, the implicit `reset` value in MultiIOModule and thus Module is now concretely an instance of Reset and thus will be inferred in FIRRTL.
2019-01-25WireDefault instead of WireInit, keep WireInit around (#986)Martin Schoeberl
2018-12-04Add asBools, deprecate toBoolsJack Koenig
2018-01-19Fix deprecations in testsducky
2018-01-02Support for inner classes, implicit parameter lists, supertypessducky64
2017-08-17More of the bindings refactor (#635)Richard Lin
Rest of the binding refactor
2017-05-11Scope resources - move them down into chisel3 directory - fixes #549 (#610)Jim Lawson
2017-03-08Deprecate old Reg with nulls constructor (#455)Richard Lin
2017-03-08Avoid log2Up in testsAndrew Waterman
2017-02-02Revamp VendingMachine.scala as cookbook examplejackkoenig
* Move to cookbook * Change FSM implementation to use switch & is * Add non-FSM implementation * Add execution-driven test