<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/src/main/scala/Chisel/internal, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Rename packages to lowercase chisel, add compatibility layer</title>
<updated>2016-06-08T23:22:27+00:00</updated>
<author>
<name>ducky</name>
</author>
<published>2016-05-21T01:09:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=f36524e388b060b1bb535ae21cb1bcbbea220be9'/>
<id>f36524e388b060b1bb535ae21cb1bcbbea220be9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implementation of source locators</title>
<updated>2016-05-20T23:02:49+00:00</updated>
<author>
<name>ducky</name>
</author>
<published>2016-05-05T20:22:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=e92f2f69477a6ce86fc148a1a95db5797f2e3051'/>
<id>e92f2f69477a6ce86fc148a1a95db5797f2e3051</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Chisel API into separate chiselFrontend compilation unit in preparation for source locator macros</title>
<updated>2016-05-05T18:50:39+00:00</updated>
<author>
<name>ducky</name>
</author>
<published>2016-05-05T18:50:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=9036d96bb032c19de31131f2296120e708cbc3dc'/>
<id>9036d96bb032c19de31131f2296120e708cbc3dc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add HasId=Module|Data.suggestName, TransitName util</title>
<updated>2016-05-04T08:28:50+00:00</updated>
<author>
<name>Stephen Twigg</name>
</author>
<published>2016-04-27T23:46:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=73e35c55c7a3f4be98432fd275e0e0ae7db76d46'/>
<id>73e35c55c7a3f4be98432fd275e0e0ae7db76d46</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Scalastyle fixes and "ignores". - No functional changes.</title>
<updated>2016-04-26T18:06:16+00:00</updated>
<author>
<name>Jim Lawson</name>
</author>
<published>2016-04-26T18:06:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=09958f63470697188e1ed1a01c7ea39b8c56e7ef'/>
<id>09958f63470697188e1ed1a01c7ea39b8c56e7ef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Test FIRRTL string literals more aggressively</title>
<updated>2016-04-15T07:39:32+00:00</updated>
<author>
<name>Andrew Waterman</name>
</author>
<published>2016-04-15T07:39:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=4249c7dea0fece098df99c4713987a44cebf84b0'/>
<id>4249c7dea0fece098df99c4713987a44cebf84b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use mkString to clarify and speed up DefPrim emission</title>
<updated>2016-04-15T05:59:04+00:00</updated>
<author>
<name>Andrew Waterman</name>
</author>
<published>2016-04-15T05:57:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=8368c10da3442f5c74ca4c90f5442a1a97b57ea5'/>
<id>8368c10da3442f5c74ca4c90f5442a1a97b57ea5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of hashing HasId (e.g. Data)</title>
<updated>2016-04-15T05:58:54+00:00</updated>
<author>
<name>Andrew Waterman</name>
</author>
<published>2016-04-15T05:23:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=4d9e3007aedffd41fd397e70f151883a967fc3a7'/>
<id>4d9e3007aedffd41fd397e70f151883a967fc3a7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Eliminate RefMap</title>
<updated>2016-04-15T05:58:51+00:00</updated>
<author>
<name>Andrew Waterman</name>
</author>
<published>2016-04-15T00:42:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=3506c54b87abfd6e0269effb4685a58c881a890e'/>
<id>3506c54b87abfd6e0269effb4685a58c881a890e</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Scalastyle cleanup - no functional differences.</title>
<updated>2016-03-14T18:10:36+00:00</updated>
<author>
<name>Jim Lawson</name>
</author>
<published>2016-03-14T18:10:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=541b2d4cb0b3e01d22f442b4cae7dcc6f910af41'/>
<id>541b2d4cb0b3e01d22f442b4cae7dcc6f910af41</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
