What do the (site, here, up) arguments mean when creating rocket-chip configurations?
up vote
1
down vote
favorite
When creating a new "Config" we define a function that takes three "View"s (site, here, up) as arguments. What is the meaning of these three Views?
chisel rocket-chip
add a comment |
up vote
1
down vote
favorite
When creating a new "Config" we define a function that takes three "View"s (site, here, up) as arguments. What is the meaning of these three Views?
chisel rocket-chip
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
When creating a new "Config" we define a function that takes three "View"s (site, here, up) as arguments. What is the meaning of these three Views?
chisel rocket-chip
When creating a new "Config" we define a function that takes three "View"s (site, here, up) as arguments. What is the meaning of these three Views?
chisel rocket-chip
chisel rocket-chip
asked Nov 10 at 20:06
Ben Reynwar
921817
921817
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
accepted
As purely a historical reference, take a look at the Chisel2 Advanced Parameterization Manual (with the huge caveat to not take this too literally as it's old). However, I believe that the motivation and discussion of site
, here
, and up
still holds in sections 2.6, 2.7, 2.8, and 3.6.
Roughly, site
, here
, and up
help with handling and resolving dependencies on other parameters.
site
allows you to disambiguate different parameters that may have the same name, e.g., Width
, based on a defined location. here
allows parameters to query other parameters defined in the same group. up
allows you to access a parent configuration's parameter object with the intended purpose being if you want to copy it while modifying parameters.
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
add a comment |
up vote
0
down vote
class Blah extends Config ((site, here, up)) ..
is the parameter tuple, which allows partial function application. This allows partial configuration of the Rocket core and setting default parameters, preserving elasticity and type correctness.
You may check its implementation here
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
As purely a historical reference, take a look at the Chisel2 Advanced Parameterization Manual (with the huge caveat to not take this too literally as it's old). However, I believe that the motivation and discussion of site
, here
, and up
still holds in sections 2.6, 2.7, 2.8, and 3.6.
Roughly, site
, here
, and up
help with handling and resolving dependencies on other parameters.
site
allows you to disambiguate different parameters that may have the same name, e.g., Width
, based on a defined location. here
allows parameters to query other parameters defined in the same group. up
allows you to access a parent configuration's parameter object with the intended purpose being if you want to copy it while modifying parameters.
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
add a comment |
up vote
2
down vote
accepted
As purely a historical reference, take a look at the Chisel2 Advanced Parameterization Manual (with the huge caveat to not take this too literally as it's old). However, I believe that the motivation and discussion of site
, here
, and up
still holds in sections 2.6, 2.7, 2.8, and 3.6.
Roughly, site
, here
, and up
help with handling and resolving dependencies on other parameters.
site
allows you to disambiguate different parameters that may have the same name, e.g., Width
, based on a defined location. here
allows parameters to query other parameters defined in the same group. up
allows you to access a parent configuration's parameter object with the intended purpose being if you want to copy it while modifying parameters.
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
As purely a historical reference, take a look at the Chisel2 Advanced Parameterization Manual (with the huge caveat to not take this too literally as it's old). However, I believe that the motivation and discussion of site
, here
, and up
still holds in sections 2.6, 2.7, 2.8, and 3.6.
Roughly, site
, here
, and up
help with handling and resolving dependencies on other parameters.
site
allows you to disambiguate different parameters that may have the same name, e.g., Width
, based on a defined location. here
allows parameters to query other parameters defined in the same group. up
allows you to access a parent configuration's parameter object with the intended purpose being if you want to copy it while modifying parameters.
As purely a historical reference, take a look at the Chisel2 Advanced Parameterization Manual (with the huge caveat to not take this too literally as it's old). However, I believe that the motivation and discussion of site
, here
, and up
still holds in sections 2.6, 2.7, 2.8, and 3.6.
Roughly, site
, here
, and up
help with handling and resolving dependencies on other parameters.
site
allows you to disambiguate different parameters that may have the same name, e.g., Width
, based on a defined location. here
allows parameters to query other parameters defined in the same group. up
allows you to access a parent configuration's parameter object with the intended purpose being if you want to copy it while modifying parameters.
answered Nov 10 at 21:43
seldridge
62549
62549
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
add a comment |
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
That document is exactly what I was looking for. Thanks!
– Ben Reynwar
Nov 10 at 22:12
add a comment |
up vote
0
down vote
class Blah extends Config ((site, here, up)) ..
is the parameter tuple, which allows partial function application. This allows partial configuration of the Rocket core and setting default parameters, preserving elasticity and type correctness.
You may check its implementation here
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
add a comment |
up vote
0
down vote
class Blah extends Config ((site, here, up)) ..
is the parameter tuple, which allows partial function application. This allows partial configuration of the Rocket core and setting default parameters, preserving elasticity and type correctness.
You may check its implementation here
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
add a comment |
up vote
0
down vote
up vote
0
down vote
class Blah extends Config ((site, here, up)) ..
is the parameter tuple, which allows partial function application. This allows partial configuration of the Rocket core and setting default parameters, preserving elasticity and type correctness.
You may check its implementation here
class Blah extends Config ((site, here, up)) ..
is the parameter tuple, which allows partial function application. This allows partial configuration of the Rocket core and setting default parameters, preserving elasticity and type correctness.
You may check its implementation here
answered Nov 10 at 20:26
Tampler
1138
1138
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
add a comment |
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
I've looked through the implementation. I don't understand why three views are used rather than a single view. In the rocket-chip repository I can see lots of examples where "site" is getting used, a couple of examples where "up" is getting used and no examples of where "here" is getting used. Presumably there's a reason that three parameter sets are being used, rather than just one.
– Ben Reynwar
Nov 10 at 20:51
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
Perhaps, that's a design artifact from an early life of Rocket. It's being under active development for about 5 years, so you may open a Pull Request and improve/refactor this, if you feel it is an important feature
– Tampler
Nov 10 at 20:58
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
I'm just trying to understand the purpose. I thought maybe they related to global versus local module level parameters or something like that.
– Ben Reynwar
Nov 10 at 21:05
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53242960%2fwhat-do-the-site-here-up-arguments-mean-when-creating-rocket-chip-configurat%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown