pepijndevos changed the topic of #apicula to: Project Apicula: bitstream documentation and tooling for Gowin FPGAs -- logs
_whitelogger has joined #apicula
<pepijndevos_> kbeckmann, waat? I'm definitely fuzzing those with the vendor tools exactly like that
<kbeckmann> hmm
<kbeckmann> maybe they broke it in the latest version?
<pepijndevos_> I'd make a simple example and compare what the vendor IDE synthesizes and compare to your code.
<kbeckmann> hm
<kbeckmann> now i am confused again.
<kbeckmann> but adding `opt_clean -purge` before write_verilog removes those wires and makes the PnR tool happy
<kbeckmann> hrm, looking at this log today it seems nmigen has generated some odd verilog. the top module has the signal `led_0__io` which is passed directly into the module's IO port, which is then passed straight to IOBUF.IO() which is perfect. the problem seems to stem from yosys that created the line in the end `assign \pin_led_0.led_0__io = led_0__io;`
<kbeckmann> actually the nmigen generated verilog looks fine, seems it's yosys output that is the only problem here where it created `\pin_led_0.led_0__io ` for some reason.
<pepijndevos_> oh weird...
<kbeckmann> i don't want to disctract you as i have a workaround..
<kbeckmann> we can come back to this later, so you can work on nextpnr in peace :)
<pepijndevos_> :))
<pepijndevos_> Making sure Yosys actually works is also important though. But ok, happy to come back to it later
<pepijndevos_> Currently writing more bba stuff, fully expecting to rewrite a lot of it later. My db is very dict heavy, and I do not yet oversee how things will be indexed on the nextpnr side. Easy enough to add indexes later.
<kbeckmann> ah, bba is Binary Blob Assembler
<pepijndevos_> yea
<kbeckmann> i tried to add an instance of rPLL but yosys won't let me. i guess synth_gowin doesn't implement this yet, i could try to add it? if so, where would i start looking?
<pepijndevos_> Oh yea... you just need to add it as a primitive
<pepijndevos_> there may or may not be simulation models inside Gowin that you could take inspiration from, but just a blackbox with the ports from the manual is fine.
<pepijndevos_> I also saw they deprecated a bunch of block, which basically just seem renames.
<kbeckmann> thanks! i will take a stab at it and make a pr
<pepijndevos_> for example.... gowin1.9.6/IDE/simlib/gw1n/prim_sim.v
<kbeckmann> ah
<pepijndevos_> Any resemblance between those models and techlibs/gowin/cells_sim.v is of course purely incidental ;)
<kbeckmann> heh
<kbeckmann> but shouldn't there be a gowin-specific file for cells only found in gowin fpgas?
<kbeckmann> oh sorry
<kbeckmann> i somehow thought the cells_sim.v was generic
<kbeckmann> ok but this should be fairly straight forward to do
<kbeckmann> is there a way to assert that parameters are valid? e.g. parameter CLKOUTD_SRC = "CLKOUT"; //CLKOUT,CLKOUTP
<kbeckmann> would be nice to have some sort of assert that if the users specifies something else, it will warn about that immediately
<pepijndevos_> Uh, what about normal verilog asserts? No idea if that does what you want
notafile has quit [*.net *.split]
RaYmAn has quit [*.net *.split]
RaYmAn has joined #apicula
notafile has joined #apicula
notafile has quit [Max SendQ exceeded]
rvalles has quit [*.net *.split]
rvalles has joined #apicula
wiizzard has quit [Ping timeout: 240 seconds]
Conny40 has quit [*.net *.split]
trabucayre has quit [*.net *.split]
Conny40 has joined #apicula
trabucayre has joined #apicula
omnitechnomancer has quit [Ping timeout: 246 seconds]
Conny40 has quit [K-Lined]
kbeckmann has quit [*.net *.split]
Lofty has quit [*.net *.split]
Lofty has joined #apicula
kbeckmann has joined #apicula
pepijndevos_ has quit [*.net *.split]
pepijndevos_ has joined #apicula
daveshah has quit [*.net *.split]
Claude has quit [*.net *.split]
daveshah has joined #apicula
Claude has joined #apicula
mmicko has quit [*.net *.split]
mmicko has joined #apicula
wiizzard has joined #apicula
notafile has joined #apicula
omnitechnomancer has joined #apicula
<kbeckmann> i was looking in the existing code and the parameters don't seem to be checked anywhere except for one place where it is done in formal. i basically just want a way for yosys to tell the user they are doing something wrong, instead of the PnR tool. but i guess it's not a normal use case so let's not do it.