1
0
mirror of synced 2026-01-13 15:37:16 +00:00
Catherine a33acb7cd9 cxxrtl: refactor the formatter and use a closure.
This commit achieves three roughly equally important goals:
1. To bring the rendering code in kernel/fmt.cc and in cxxrtl.h as close
   together as possible, with an ideal of only having the bigint library
   as the difference between the render functions.
2. To make the treatment of `$time` and `$realtime` in CXXRTL closer to
   the Verilog semantics, at least in the formatting code.
3. To change the code generator so that all of the `$print`-to-`string`
   conversion code is contained inside of a closure.

There are two reasons to aim for goal (3):
a. Because output redirection through definition of a global ostream
   object is neither convenient nor useful for environments where
   the output is consumed by other code rather than being printed on
   a terminal.
b. Because it may be desirable to, in some cases, ignore the `$print`
   cells that are present in the netlist based on a runtime decision.
   This is doubly true for an upcoming `$check` cell implementing
   assertions, since failing a `$check` would by default cause a crash.
2024-01-16 16:35:51 +00:00
..
2022-11-30 18:24:35 +01:00
2022-01-28 23:34:41 +01:00
2023-10-03 14:06:41 -07:00
2022-05-27 12:37:03 +02:00
2021-10-08 15:44:07 +02:00
2023-11-01 08:13:27 +01:00
2023-11-01 08:13:27 +01:00
2022-05-13 00:37:14 +02:00
2022-01-28 23:34:41 +01:00
2022-11-30 18:24:35 +01:00
2023-10-06 16:05:44 +02:00
2023-10-03 09:29:06 +01:00
2023-04-17 10:53:05 -07:00
2023-01-11 18:07:16 +01:00