1
0
Commit Graph

135 Commits

Author SHA1 Message Date
f6f5606f8e diplomacy: run user instantiate() method after nodes are initialized (#1198) 2018-01-18 14:57:47 -08:00
1cd018546c tile: BaseTile refactor, pt 1
* Make dts generation reusable across tile subclasses
* First attempt to standardize tile IO nodes and connect methods
* hartid => hartId when talking about scala Ints
2017-12-26 11:04:15 -08:00
ba6dd160a3 diplomacy: allow access to sram Device info 2017-12-22 19:00:43 -08:00
a31ba2ea2e diplomacy: LazyModule factory uses ValName (#1159)
* diplomacy: LazyModule factory uses ValName
2017-12-18 15:40:30 -08:00
efc793d52e CloneModule: must be public to be used in pattern matches 2017-12-08 14:57:08 -08:00
2ca03384ec diplomacy: skip anonymous class names 2017-12-08 14:36:12 -08:00
b8098d18be diplomacy: remove the :=? operator in favour of magic :*=* (#1139)
The reason for the :=? operator was for when you have an adapter chain
whose direction of cardinality you could not know. We used explicit
directives to tell these compositions which way to go.

Unfortunately, that makes the API leaky. You think the chain of adapters
is just one adapter, but you have to use strange Cardinality scopes to
use it. That's just bad.

The new :*=* just automagically figures it out from the graph.
2017-12-01 18:28:37 -08:00
e489c4226e diplomacy: remove node arity and allow empty Nexus nodes (Xbars)
This removes the mostly obsolete 'numIn/Out' range restrictions on nodes.
It also makes it possible to connect optional crossbars that disappear.

val x = TLXbar()
x := master
slave := x

val y = TLXbar()
x :=* y // only connect y if it gets used

This will create crossbar x, but crossbar y will disappear.
2017-12-01 11:26:59 -08:00
2092cb4ec8 diplomacy: reprotect Node bundles after module construction is completed 2017-12-01 11:26:59 -08:00
fdeed7bbb3 unittest: add an API for describing LazyModule unit tests 2017-12-01 11:26:59 -08:00
cc789e9063 diplomacy: protect more of the unstable API 2017-12-01 11:26:59 -08:00
8ed9e78903 diplomacy: support cloning of LazyModules 2017-12-01 11:26:59 -08:00
b43bcdfcd1 CloneModule: beat chisel into submission 2017-12-01 11:26:59 -08:00
1f23f9f865 diplomacy: categorize parameter resolution by direction+side 2017-12-01 11:26:59 -08:00
fbbfc9c096 diplomacy: include edge type in inward/outward node handles
This is necessary capture the node implementation in the handle,
which is in turn necessary to support cloning a Node.
2017-12-01 11:26:58 -08:00
6f3ff634f2 DTS: collect common DTS nodes and move timebase-frequency to cores
Putting the common DTS nodes into a shared object makes them get
emitted only one time. Plus it's better style.

timebase-frequency should really have been in the cpu nodes in the
first place according to the spec anyway. I was foolishly trying to
save bytes. However, now we really want it there in case it differs.
2017-11-20 18:09:57 -08:00
3b299397db diplomacy: bind resources to outer-most binding
This is probably the wrong thing to do, but it is expedient for now.
We need a better way to do cross-coreplex visibility.
2017-11-20 17:42:08 -08:00
44f99cd9a5 diplomacy: eliminate redundant bindings 2017-11-20 17:42:08 -08:00
7cf5d4aa90 diplomacy: define only primary node types 2017-10-28 11:16:56 -07:00
60284082e7 diplomacy: add a hook for injecting code into LazyModule.module scope 2017-10-26 15:19:05 -07:00
a060c37173 diplomacy: expose the API to query a Node for its neighbours 2017-10-26 15:08:06 -07:00
e2d6d4d725 diplomacy: eliminate bindings dead-code 2017-10-26 15:02:21 -07:00
6276ea4291 diplomacy: it possible for NodeHandles to put indirection on their attachment 2017-10-26 13:04:32 -07:00
e894d64bca diplomacy: support := composition
This makes it possible to treat chained composition associatively.
x := y :=? z :=* a ...

It also makes it easy to chain multiple optional adapters:
node :=? (Seq(a, b) ++ c ++ d)
2017-10-26 13:04:32 -07:00
b48ab985d0 coreplex: RocketTileWrapper now HasCrossingHelper 2017-10-26 13:04:32 -07:00
7453186b59 diplomacy: add reflection for parent modules to nodes 2017-10-25 16:56:50 -07:00
5a951799aa Add atomics support to DTS JSON file. 2017-10-18 15:17:53 -07:00
10472b4296 diplomacy: auto connect bundles in a stable order (#1045) 2017-10-10 19:41:46 -07:00
81b9ac42a3 add comments to diplomacy resource. (#913) 2017-10-05 12:45:56 -07:00
547bdc2b5b diplomacy: standardize sram device resource naming (#1022) 2017-09-29 14:52:26 -07:00
e35d3df6ea diplomacy: detect and report cycles in the diplomatic graph 2017-09-27 11:46:06 -07:00
5af08966d8 coreplex: fix WithoutTLMonitors
closes #1017
2017-09-27 00:57:18 -07:00
d87536ff8b diplomacy: make NodeHandle recursively composable 2017-09-26 18:47:16 -07:00
da40573a64 diplomacy: replace LazyModule.stack with an optional scope 2017-09-26 14:56:50 -07:00
a2b423d647 diplomacy: add LazyScope to post-hoc add children to a LazyModule 2017-09-26 14:40:45 -07:00
a27e853101 diplomacy: move rendering properties to edges
FlipRendering { implicit p => ... } now changes the render direction of edges.
diplomatic NodeImps can specify a default render flip using the new 'render' method.
2017-09-26 13:24:36 -07:00
76c2aa1661 diplomacy: introduce the typing-saving SimpleNodeImp 2017-09-26 12:28:59 -07:00
870ed3d219 diplomacy: fix the order of auto signals 2017-09-26 11:56:55 -07:00
d22ec1eddf diplomacy: beautify node signal prefixes 2017-09-26 11:56:53 -07:00
fef5054cec diplomacy: disambiguate names only when necessary
If two (or more) 'auto_' things have the same name, append _0 and _1 to them.

The order of definitions is unaffected; ie:
  a => a_0
  b => b_0
  b => b_1
  c => c
  a => a_1
2017-09-25 16:12:34 -07:00
bc225a4e82 diplomacy: place Monitors inside LazyModules sinks
We used to place Monitors at the point of the ':='.
This was problematic because the clock domain might be wrong.
Thus, we needed to shove Monitors a lot.

Furthermore, now that we have cross-module ':=', you might not even
have access to the wires at the point where ':=' is invoked.
2017-09-22 23:36:17 -07:00
cfb7f13408 diplomacy: capture SourceInfo at point of := in Edge parameters 2017-09-22 22:25:56 -07:00
16969eb1f6 diplomacy: spelling fix 2017-09-22 15:01:42 -07:00
b9a2e4c243 diplomacy: API beautification 2017-09-22 15:01:42 -07:00
9217baf9d4 diplomacy: change API to auto-create node bundles => cross-module refs 2017-09-22 15:01:39 -07:00
53f6999ea8 Splitter: reuse TLCustom node instead of special diplomacy case 2017-09-22 14:58:39 -07:00
d89ee9d9d4 nodes: grab a name on construction 2017-09-22 14:38:47 -07:00
3656e975a1 diplomacy: ValName captures val bindings for Nodes 2017-09-22 14:38:47 -07:00
87b92cb206 Scan AddressDecoder bits left to right
This heuristic is brittle but fixes deduplication in RocketTile.
2017-09-19 17:47:24 -07:00
72bd89a2af Add another AddressDecoder debug message 2017-09-19 17:47:17 -07:00