<tnt>
Err, how do you execute a yosys script then get an interactive prompt once its done ?
<tnt>
My google-fu is failing me :/
<gatecat>
the "shell" command does that
<gatecat>
you could do -p "script script_file.ys; shell"
<tnt>
Oh, ok, yeah that works. tx.
emeb_mac has joined #yosys
<tnt>
So, I'm trying to use cxxrtl to simulate a SoC because iverilog is a bit on the slow side when simulating past a few millions cycles. First time using cxxrtl at all, so I'm still figuring things out but ATM the generated C++ takes 8 minutes to build ( and ~ 9G of RAM ).
<tnt>
The SoC contains RAM of course, which for sim in iverilog I replaced the memory controller / phy / ... with just a flat reg [31:0] mem[0:8388607]; arrays and I'm using that for cxxrtl too.
<whitequark>
the current implementation is inefficient at handling very large memories
<whitequark>
replacing it with a black box is one possible workaround
<tnt>
Ok, I'll give that a shot.
<whitequark>
let me know if you hit any issues
<whitequark>
you will likely need the (* cxxrtl_sync *) attribute on the dout port
<tnt>
In a somewhat related topic, the SPRAM model in cells_sim.v isn't appreciated by yosys (I'm loading cells_sim because I need cxxrtl to sim some of the primitives ...). I patched it to mkae it digested better (at the price of sim accuracy but heh can't have everything).
<tnt>
Is there a `define that I should be using to have that included upstream to enable/disable that patch ?
<tnt>
(Basically the sim model simulated the various shutdown and standby modes and that just uses a bunch of async stuff which doesn't go well)
<whitequark>
CXXRTL is synthesis-like, so maybe `ifdef SYNTHESIS ?
<whitequark>
I'm not sure though
<tnt>
Heh. googling cxxrtl_sync isn't giving much info about what this is for
<whitequark>
please take a look at `help write_cxxrtl`; there is an introduction in that text
<tnt>
ack
vidbina has joined #yosys
ZipCPU has quit [Ping timeout: 252 seconds]
ZipCPU has joined #yosys
dys has quit [Ping timeout: 252 seconds]
<tnt>
Mmm, doesn't seem to have improved build time unfortunately. I haven't actually implemented the blackbox yet, but it takes like 10+ minutes to complete compilation and throw error about missing symbol.
<tnt>
Less memory used and the .cpp went from 51M down to 7M so that's at least some gain.