Tuesday, 2025-01-28

*** tpb <[email protected]> has joined #yosys00:00
*** ec <ec!~ec@gateway/tor-sasl/ec> has quit IRC (Remote host closed the connection)05:19
*** ec <ec!~ec@gateway/tor-sasl/ec> has joined #yosys05:19
*** xutaxkamay <xutaxkamay!~xutaxkama@2a01:e0a:a7e:1050:4488:3146:d3e2:bba0> has quit IRC (Ping timeout: 248 seconds)05:56
*** xutaxkamay <[email protected]> has joined #yosys05:57
*** FabM <FabM!~FabM@2a03:d604:114:5b00:21de:9d5d:443f:66aa> has joined #yosys07:37
*** krispaul <[email protected]> has joined #yosys08:03
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has quit IRC (Ping timeout: 252 seconds)08:04
*** krispaul <[email protected]> has quit IRC (Ping timeout: 252 seconds)08:54
*** orhosko <[email protected]> has joined #yosys11:05
*** so-offish <so-offish!~so-offish@2610:148:610:2b10::30> has quit IRC (Read error: Connection reset by peer)11:14
*** so-offish <[email protected]> has joined #yosys11:15
orhoskoHello everyone, I was using nextpnr-himbaechel and I kinda stuck. Is this the right place to ask for?11:59
orhoskoMy problem was using ROM16 modules is possible in gowin ide but I couldn't managed to use with nextpnr. I haven't found any issues about it. Is it not implemented or am I missing something?11:59
Semisol[m]orhosko: ROM16 is a LUT with all inputs as address select12:01
Semisol[m]It will synthesize like regular LUTs, and I believe Yosys can infer it if you use an asynchronous read-only memory12:01
loftyyeah, the answer is to just use soft logic for it12:02
orhoskofirstly thanks a lot for quick response. I was getting 'ERROR: Unable to place cell 'rom.rom16_inst_5', no BELs remaining to implement cell type 'ROM16'' and there are many LUTs available(using only 1%). If I understand correctly its due to my implementation. I was trying the IP generator from the gowin ide so maybe I need to look into produced12:04
orhoskomodule..12:04
Semisol[m]orhosko: `ROM16` is an abstraction12:07
Semisol[m]if possible, you should use a platform-independent async ROM12:08
Semisol[m]that, and things like case statements, will automatically get turned into ROMs, and could get further optimized by yosys12:08
Semisol[m]if you must manually do it, use a platform LUT, set the init values to the ROM contents, and use I0-I3 as address select12:09
orhoskoOhh thanks it makes sense now. The produced IP from the IDE looks something like this12:20
orhosko```12:20
orhoskoROM16 rom16_inst_0 (12:20
orhosko    .DO(dout[0]),12:20
orhosko    .AD(ad[3:0])12:20
orhosko);12:20
orhoskodefparam rom16_inst_0.INIT_0 = 16'h0002;12:20
orhosko```12:20
orhoskoand if I understand correctly I can implement this by myself easily. It is just LUTs. However there are still some points I haven't understood. First one is why i can use similarly complex generated pROM directly but not ROM16. If someone creates that abstraction, can/should it be implemented. Here is the pROM implementation its similarly complex:12:20
orhosko```12:20
orhoskopROM prom_inst_0 (12:20
orhosko    .DO({prom_inst_0_dout_w[23:0],dout[7:0]}),12:20
orhosko    .CLK(clk),12:20
orhosko    .OCE(oce),12:20
orhosko    .CE(ce),12:20
orhosko    .RESET(reset),12:20
orhosko    .AD({gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,ad[3:0],gw_gnd,gw_gnd,gw_gnd})12:20
orhosko);12:20
*** lofty[m] <lofty[m]!loftyfield@2a01:4f8:c012:5b7:0:1:0:570> has joined #yosys12:37
lofty[m]from some quick browsing through the nextpnr source and the gowin primitive guide: pROM maps to BSRAM (block RAM), but ROM16 maps to SSRAM (LUT RAM). 12:37
*** orhosko97 <[email protected]> has joined #yosys12:45
*** orhosko <[email protected]> has quit IRC (Ping timeout: 240 seconds)12:48
*** orhosko97 <[email protected]> has quit IRC (Client Quit)12:48
*** orhosko <[email protected]> has joined #yosys12:48
orhoskoI also looked for nextpnr source code and couldn't find anything about ROM16. Thats why I thought it's not implemented. Did you find anything in source code or is it from the primitive guide?12:50
lofty[m]from the primitive guide: https://cdn.gowinsemi.com.cn/UG285E.pdf 12:54
orhoskoThanks a lot to both of you. I will try to implement myself now. I still not sure whether ROM16 should be part of the nextpnr since IDE provides it directly. Maybe I will open a issue/pr later. thx again13:10
*** krispaul <[email protected]> has joined #yosys13:16
*** krispaul <[email protected]> has quit IRC (Read error: Connection reset by peer)13:28
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has joined #yosys13:29
*** orhosko <[email protected]> has quit IRC (Quit: Client closed)14:49
gatecatthe easiest option to implement it would probably just be a yosys techmap rule that converts it to a LUT, given that's all that's happening in any case14:56
gatecatit's the kind of thing techmap rules are very nice for14:57
*** ec <ec!~ec@gateway/tor-sasl/ec> has quit IRC (Ping timeout: 264 seconds)15:35
*** ec <ec!~ec@gateway/tor-sasl/ec> has joined #yosys15:37
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 246 seconds)17:05
*** so-offishul <so-offishul!~so-offish@2610:148:610:2b10::75> has joined #yosys17:08
*** so-offish <[email protected]> has quit IRC (Ping timeout: 260 seconds)17:12
*** so-offishul <so-offishul!~so-offish@2610:148:610:2b10::75> has quit IRC (Quit: Leaving)18:30
*** mithro <[email protected]> has quit IRC (Ping timeout: 260 seconds)19:00
*** sorear <[email protected]> has quit IRC (Ping timeout: 260 seconds)19:00
*** MoeIcenowy <MoeIcenowy!~MoeIcenow@2001:19f0:7002:790:5400:4ff:fea8:9a29> has quit IRC (Ping timeout: 260 seconds)19:01
*** jleightcap <jleightcap!7bc4014b62@user/jleightcap> has quit IRC (Ping timeout: 260 seconds)19:01
*** dnm <[email protected]> has quit IRC (Ping timeout: 260 seconds)19:01
*** Guest408 <Guest408!~root@user/Miyu-saki> has quit IRC (Ping timeout: 260 seconds)19:01
*** MoeIcenowy <[email protected]> has joined #yosys19:01
*** root1 <root1!~root@user/Miyu-saki> has joined #yosys19:02
*** jleightcap <jleightcap!7bc4014b62@user/jleightcap> has joined #yosys19:03
*** dnm <[email protected]> has joined #yosys19:03
*** sorear <[email protected]> has joined #yosys19:03
*** mithro <[email protected]> has joined #yosys19:04
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Remote host closed the connection)19:48
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has joined #yosys19:51
*** bjorkintosh <bjorkintosh!~bjork@user/bjorkintosh> has quit IRC (Ping timeout: 276 seconds)21:28
*** orhosko <[email protected]> has joined #yosys22:21
*** berkay_ <[email protected]> has joined #yosys22:24
*** orhosko <[email protected]> has quit IRC (Client Quit)22:24
*** berkay_ is now known as orhosko22:24
*** orhosko <[email protected]> has quit IRC (Quit: orhosko)22:29
*** berkay_ <[email protected]> has joined #yosys22:29
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)23:03
*** nonchip <[email protected]> has joined #yosys23:03

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!