Replies: 3 comments
-
The third option (add the pragmas to BSC) is the way to go, and it should be almost trivial. Everything after the parser already handles the pragma, and the BH parser already handles attributes on modules, it's just that the BH parser hardcodes which attributes it allows. Supporting
The above line parses curly braces for the list, so it would accept the following syntax:
We could use square brackets (with or without an equal sign), but I notice that none of the other attributes use square brackets and they all have equal signs, so I stuck with the existing style. Incidentally, I notice that
This, too, can be fixed by adding just one line to
As for your second option, I'm not sure I understand what is being proposed. But I don't think that matters, since option 3 is both the right thing and easy to do. Deciding what syntax we want and then writing tests for the testsuite are probably the hardest parts. And cleaning up the pretty-printer to match whatever syntax we create, and perhaps add tests for that (in the parse-print-parse tests). |
Beta Was this translation helpful? Give feedback.
-
Thanks! |
Beta Was this translation helpful? Give feedback.
-
I believe this is now fixed by #624 (and #626), though I have not had a moment to try it out yet. Does anyone see anything else here that is still open? |
Beta Was this translation helpful? Give feedback.
-
I've got a pretty complicated design built in classic. And the other day, a decision came down that we will be using it with a gated clock (For thermal, di/dt, and other reasons). This would not be an issue, except that the design requires that everything uses the gated clock except for one specific bit deep in the module hierarchy which needs to use the ungated clock.
Using bsv2bsc I was able to get this syntax:
But, it seems that this syntax is purely aspirational, and is not actually supported (See issue #224).
I fear that my options are pretty limited here, but before I resign myself to one of the following "bad options", I thought I might ask: Does anyone have any clever ideas on how to do this in a better/cleaner way?
Bad options I have thought of:
.bsv
. (Badness level is 11/10)mkNullCrossingWire
to sweep it all under the rug knowing that it is actually safe, even though I am doing it in a way that seems unsafe. (This is relatively easy, but still feels stinky, with a Badness of about 5/10)Beta Was this translation helpful? Give feedback.
All reactions