ChanServ changed the topic of #yosys to: Yosys Open SYnthesis Suite: https://github.com/YosysHQ/yosys/ | Channel logs: https://libera.irclog.whitequark.org/yosys/
tpb has quit [Remote host closed the connection]
tpb has joined #yosys
AdamHorden has quit [Ping timeout: 248 seconds]
AdamHorden has joined #yosys
AdamHorden has quit [Ping timeout: 248 seconds]
AdamHorden has joined #yosys
peepsalot has quit [Ping timeout: 246 seconds]
peepsalot has joined #yosys
bl0x has joined #yosys
bl0x_ has quit [Ping timeout: 248 seconds]
ec has quit [Remote host closed the connection]
ec has joined #yosys
cyrozap_ has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
cyrozap has joined #yosys
so-offish has joined #yosys
FabM has joined #yosys
FabM has quit [Changing host]
FabM has joined #yosys
krispaul has joined #yosys
kristianpaul has quit [Ping timeout: 252 seconds]
AdamHorden has quit [Ping timeout: 265 seconds]
crzwdjk has quit [Quit: Client closed]
crzwdjk has joined #yosys
crzwdjk has quit [Client Quit]
ec_ has joined #yosys
ec has quit [Ping timeout: 255 seconds]
so-offish has quit [Read error: Connection reset by peer]
so-offish has joined #yosys
krispaul has quit [Quit: WeeChat 2.3]
kristianpaul has joined #yosys
AdamHorden has joined #yosys
AdamHorden has quit [Client Quit]
AdamHorden has joined #yosys
AdamHorden has quit [Ping timeout: 248 seconds]
AdamHorden has joined #yosys
FabM has quit [Ping timeout: 246 seconds]
FabM has joined #yosys
FabM has joined #yosys
FabM has quit [Changing host]
jangray has joined #yosys
<jangray> Greetings yosys community. I am exploring using yosys to techmap to a new FPGA I am developing called S3GA. See slightly stale blog at https://fpga.org/2022/11/30/s3ga-part-1-beginnings/. I'm enjoying learning how yosys does tech mapping. Yesterday I figured out how to use dfflegalize and an ff_map.v to techmap various device FFs that are
<jangray> initialized, optional sync reset/set, optional clock enable, etc. which map to various FD, FDE, FDR, FDS, FDRE, FDSE flop primitives, and sometimes some LUT+FFs (e.g. a flop initialized to 1, with sync reset to 0, clock enabled). Nice!
<tpb> Title: S3GA: A Simple Scalable Serial FPGA: Part 1: Beginnings | FPGA CPU News (at fpga.org)
<jangray> I'm about to start on place-and-route. The S3GA target is unusual / experimental in that it is a serial CLB, serial interconnect FPGA, partitioned into K=4 subclusters, recursively, with a FAT tree interconnect. The serial-ness aims to reduce the wiring and mux overhead of the interconnect; the  FAT tree interconnect topology aims to make it
<jangray> straightforward to route -- feed the design netlist hypergraph to KaHyPar and have it recursively min cost cut the hypergraph into K=4 partitions, subpartitions, etc.
so-offishul has joined #yosys
<jangray> So P&R has various subproblems like partitioning the design down to LBs (logic blocks) of M=4 or M=8 LUTs, packing LUTs with their associated FFs when appropriate, picking which LUTs to evaluate on which cycles, and so forth. For the LUT+FF packing, I tried using yosys' extract command to (post-synth_s3ga) extract and pattern match LUT4=>FD into a
<jangray> beefier primitive, for example:
<jangray> / excerpt from s3ga/extract_lutff.v:
<jangray> module LUT4_FD #(parameter [15:0] INIT = 0) (input CLK, input I0, input I1, input I2, input I3, output Q);
<jangray>   wire D;
<jangray>   LUT4 #(.INIT(INIT)) lut(.O(D), .I0(I0), .I1(I1), .I2(I2), .I3(I3));
<jangray>   FD fd(.CLK(CLK), .D(D), .Q(Q));
<jangray> endmodule
so-offish has quit [Ping timeout: 252 seconds]
<jangray> But when presented with a netlist with e.g. a LUT4 #(.INIT('b0110))=>FD extract fails because the INIT parameter doesn't match; extract -ignore_parameters does match the needle to the haystack, and replaces it with a LUT4_FD as desired, but the LUT4's INIT parameter is discarded. Is there a trick to have the haystack's elements' parameters (here
<jangray> INIT!=0) pattern match and reverse-project so that the substituted LUT4_FD's INIT parameter becomes that of the original LUT4 .INIT? I assume this is not possible in the current extract, and should proceed with explicit coding my post-synthesis netlist canonicalizations in C++ instead. Thanks for any comments / advice.
so-offish1 has joined #yosys
so-offishul has quit [Ping timeout: 246 seconds]
<jix_> jangray: not really familiar with extract, but AFAICT if you use constant inputs instead of parameters it could work ... and you can use techmap to translate between constant inputs and parameters (in both directions) so that might be a workaround
bjorkint0sh has quit [Quit: Leaving]
<jix_> oh and it might need -constports on extract which says it can be much slower, so maybe not the best approach
jangray has quit [Quit: Client closed]
FabM has quit [Ping timeout: 248 seconds]
peeps[zen] has joined #yosys
peepsalot has quit [Ping timeout: 265 seconds]
so-offish1 has quit [Quit: Leaving]
so-offish1 has joined #yosys
so-offish1 is now known as so-offish
so-offish has quit [Client Quit]
so-offish has joined #yosys
bjorkintosh has joined #yosys
so-offish has quit [Read error: Connection reset by peer]
so-offish has joined #yosys
nonchip has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
nonchip has joined #yosys
AdamHorden has quit [Ping timeout: 248 seconds]
AdamHorden has joined #yosys
peeps[zen] has quit [Read error: Connection reset by peer]
peeps[zen] has joined #yosys
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined #yosys
so-offish has quit [Quit: Leaving]
so-offish has joined #yosys
so-offish has quit [Read error: Connection reset by peer]
so-offish has joined #yosys
so-offishul has joined #yosys
so-offishul has quit [Client Quit]