Wednesday, 2020-04-15

*** tpb has joined #yosys00:00
*** vidbina_ has quit IRC00:05
*** Degi_ has joined #yosys00:24
*** Degi has quit IRC00:27
*** Degi_ is now known as Degi00:27
*** X-Scale has quit IRC00:58
*** [X-Scale] has joined #yosys00:59
*** [X-Scale] is now known as X-Scale00:59
*** futarisIRCcloud has joined #yosys02:05
*** citypw has joined #yosys02:22
*** Cerpin has quit IRC03:53
*** Cerpin has joined #yosys03:54
*** az0re has joined #yosys03:55
*** _whitelogger has quit IRC04:33
*** _whitelogger has joined #yosys04:35
*** elfGamal has quit IRC05:33
*** elGamal has joined #yosys05:37
*** rohitksingh has quit IRC06:15
*** emeb_mac has quit IRC06:33
*** Vinalon has quit IRC06:34
*** npe has quit IRC06:40
*** dys has joined #yosys07:21
*** jakobwenzel has joined #yosys08:02
*** anuejn_ is now known as anuejn08:22
*** jakobwenzel1 has joined #yosys09:13
*** jakobwenzel has quit IRC09:15
*** jakobwenzel1 is now known as jakobwenzel09:15
*** hexagon5un has quit IRC09:16
*** hexagon5un has joined #yosys09:17
*** rohitksingh has joined #yosys09:21
*** az0re has quit IRC09:25
*** vidbina_ has joined #yosys09:48
ZirconiumXI've been going through a MiSTer core and trying to fix the various bits of SystemVerilog that have creeped into the codebase10:46
ZirconiumXBut there's a Yosys error that confuses me10:47
ZirconiumXhttps://github.com/MiSTer-devel/Minimig-AGA_MiSTer/blob/MiSTer/sys/hps_io.v#L60010:47
tpbTitle: Minimig-AGA_MiSTer/hps_io.v at MiSTer · MiSTer-devel/Minimig-AGA_MiSTer · GitHub (at github.com)10:47
ZirconiumX(pretend the always block has a name like it should in Verilog-2005)10:48
ZirconiumXsys/hps_io.v:600: ERROR: Failed to detect width for identifier \clk_sys.cmd!10:48
daveshahThis is a terrible error10:48
ZirconiumXBut the width is defined within the block (`reg [15:0] cmd`)10:48
daveshahbut in non-system Verilog signals can only be declared in named blocks10:48
daveshahtry begin: foo here10:48
daveshahhttps://github.com/MiSTer-devel/Minimig-AGA_MiSTer/blob/MiSTer/sys/hps_io.v#L58510:48
tpbTitle: Minimig-AGA_MiSTer/hps_io.v at MiSTer · MiSTer-devel/Minimig-AGA_MiSTer · GitHub (at github.com)10:48
ZirconiumX<ZirconiumX> (pretend the always block has a name like it should in Verilog-2005)10:48
ZirconiumXI gave it the name `clk_sys`10:49
daveshahOh, I didn't see that10:49
ZirconiumXWhich appears in the error10:49
daveshahThen this is a bug10:49
daveshahat a guess it is because of nesting of begin/end blocks10:49
ZirconiumXWell, using *just* that always block as a minimal testcase parses fine10:56
ZirconiumXUgh10:56
ZirconiumX:q11:03
ZirconiumX...11:03
ZirconiumXI really hate how difficult it is to see if a window is in focus sometimes11:03
ZirconiumXOh, I see where the bug is11:06
ZirconiumXdaveshah: I have two always blocks named the same thing and they contain a register which is named the same thing11:07
daveshahah11:07
ZirconiumXSo I'm wondering if Yosys isn't properly resolving the names11:07
daveshahYes, although maybe that should be an error?11:07
ZirconiumXI don't know what the LRM thinks here.11:07
daveshahidk if two always blocks named the same are allowed11:07
ZirconiumXVerilator rejects it11:10
ZirconiumXAs does Icarus11:10
ZirconiumXSo I guess it's technically invalid.11:10
ZirconiumXdaveshah: https://github.com/YosysHQ/yosys/issues/194011:13
tpbTitle: Poor error message with two always blocks named the same · Issue #1940 · YosysHQ/yosys · GitHub (at github.com)11:13
ZirconiumXWhile I'm here, the code uses register initialisation inside always blocks11:25
ZirconiumXe.g. reg [3:0] state = 0;11:25
ZirconiumXHow should I replace that?11:25
*** ebb has quit IRC11:27
*** ebb has joined #yosys11:27
*** Ultrasauce has quit IRC11:27
*** Ultrasauce has joined #yosys11:29
*** kuldeep has quit IRC11:42
*** kuldeep has joined #yosys11:48
*** kuldeep has quit IRC11:51
*** kuldeep has joined #yosys11:51
ZirconiumXdaveshah: Could you send me a firmware.hex for attosoc? I want to try using attosoc with synth_intel_alm and Quartus and see how far I get12:16
daveshahhttps://www.irccloud.com/pastebin/g07RwjBr/firmware.hex12:17
tpbTitle: Snippet | IRCCloud (at www.irccloud.com)12:17
ZirconiumXThank you12:17
ZirconiumXI still think the most cursed code I've ever seen has to be the Altera mif2hex.v, which does all its parsing in Verilog12:20
ZirconiumXI'm sure mwk would love to read it12:23
*** FFY00 has quit IRC12:51
*** FFY00 has joined #yosys12:52
*** FFY00 has quit IRC13:04
*** FFY00 has joined #yosys13:05
ZirconiumXHoly fucking shit13:08
ZirconiumXsynth_intel_alm works on real hardware with only minor changes13:08
daveshahnice!13:08
ZirconiumXYeah, attosoc boots13:09
ZirconiumXAnd I think that's a pretty good example of a fairly complex program13:09
daveshahWell, complex gateware but a simple program13:09
ZirconiumXA good enough tech demo, though, right?13:10
daveshahDefinitely13:10
daveshahIt's found the vast majority of problems with simple logic, ime13:10
daveshahMay or may not use any BRAM depending on how it is implemented13:10
ZirconiumXIt does use BRAM for the register file, but not for the firmware ROM13:11
ZirconiumX(because I don't currently have initialisable BRAM)13:11
daveshahMeanwhile, I'm trying to get the MiST SNES core working with GHDL and cxxrtl (then ECP5)13:16
daveshahIt's proving an interesting test, found a few ghdl bugs but all fixed by tristan very quickly13:16
* ZirconiumX points to MiSTer being even worse13:17
daveshahNow deep in 65C816 assembly trying to figure out some subtle bug somewhere13:17
daveshahFPGA dev really can be interesting13:17
ZirconiumXYou know how people write "portable code" that only actually compiles with GCC?13:17
ZirconiumXMiSTer is that but with Quartus13:17
ZirconiumXBecause all the "Verilog" files are actually SystemVerilog with extensions Yosys can't handle13:18
ZirconiumXAnd the dev seems to think that's a Yosys problem13:18
mwkwhat exactly is missing?13:18
mwkoh wait, extensions *to* SystemVerilog13:18
mwkugh13:18
ZirconiumXmwk: The main things that come to mind are declarations in anonymous always blocks, and initialisations inside always blocks13:19
ZirconiumXWith those, I think Yosys will be able to build the Minimig MiSTer core (with the help of ghdlsynth)13:20
ZirconiumXmwk: not "extensions to SystemVerilog" but "SystemVerilog extensions to Verilog"13:20
mwkah, then it is a yosys problem13:27
ZirconiumXmwk: depends if you count .v files as systemverilog or not13:28
*** jfcaron has joined #yosys13:44
*** vidbina_ has quit IRC13:58
*** dys has quit IRC14:03
*** emeb has joined #yosys14:38
SarayanZX: I'm working on integrating slang into yosys14:42
ZirconiumXThat ought to work :P14:42
SarayanIt's not a trivial endeavour though, in large part because I don't talk verilog14:45
Sarayanoh, btw, is there a good rtlil documentation, or is all there is to it is in the yosys manual?14:46
ZirconiumXwhitequark would probably know more there14:50
SarayanYeah, hopefully she'll answer the question when she's around14:50
whitequarki'm here14:50
whitequarkeverything i know about rtlil is in the manual14:51
whitequark(either i learned it from the manual, or i put it into the manual)14:51
SarayanHmm damn14:53
Sarayanokay then14:53
whitequarkyou can also ask here14:53
SarayanI guess I shall.  Can rtlil do 01XZ?14:54
whitequarkyes14:54
whitequarkand only those, in fact14:54
ZirconiumXS0/S1/Sx/Sz right?14:54
whitequarkok, not quite14:54
ZirconiumXAnd I think Sa/Sm14:54
whitequarkthere's also -, but not in values14:55
SarayanI mean opposite to 0/114:55
whitequarkm should never appear in RTLIL you see anywhere14:55
ZirconiumXBut it *is* there, and should be mentioned for that14:55
whitequarkSarayan: yep, it is 4-valued14:55
whitequarkZirconiumX: fair enough14:55
mwk- is used in the $fsm cells, I think14:55
Sarayanslang classifies values are 2-state or 4-state, so I guess rtlil doesn't have explicit 2-state?14:56
Sarayans/are/as/14:56
* ZirconiumX wonders how the heck ghdlsynth lowers VHDL's 9-state logic14:56
mwknope, no 2-state14:57
Sarayan'kay14:57
whitequarkSarayan: in RTLIL you can put any of its 5 (6 if you count m) states in any position where a constant is valid14:57
whitequarkin some of those places, only 0/1 are in fact valid14:58
whitequarkactually, now that I think about it, what happens if you feed a $add cell 'z?14:59
Sarayanwq: A black hole opens and swallows the computer?14:59
mwk'x happens on the output14:59
whitequarkah, makes sense14:59
Sarayanmwk: I liked my version more14:59
ZirconiumXThat sounds like a bash.org quote15:01
*** emeb has quit IRC15:14
*** vidbina_ has joined #yosys15:16
daveshahhttps://usercontent.irccloud-cdn.com/file/MajYKnuf/frame.png15:18
daveshahmaking progress with ghdl and cxxrtl!15:18
daveshahall a horrible hack but at least it is doing something15:18
*** emeb has joined #yosys15:19
*** Vinalon has joined #yosys15:21
gtwhaha nice choice of screenshot daveshah :)15:22
daveshahit's the MiST SNES core15:23
whitequarkdaveshah: whoa nice15:23
whitequarkhow's the performance like?15:23
daveshahIt took about 20 minutes to get to that point15:23
whitequarkflattened design?15:23
daveshahBut it's a big and messy core15:23
daveshahNo15:23
whitequarkoh15:23
whitequarkyeah that would do it15:23
whitequarknon-flattened designs run orders of magnitude slower15:24
gtwIs this an appropriate place to ask prjtrellis questions, or is there somewhere better?  I am wondering about adding a bunch more SVF options to ecppack...15:24
daveshahgtw: sure15:24
mwkgtw: it's ok, though there's also ##openfpga15:24
gtwdaveshah: sure it's appropriate, or sure add more SVF?15:25
whitequarkdaveshah: if you don't flatten then two things happen15:25
gtwmwk: ok thanks :)15:25
whitequarkfirst, there is no splitnets15:25
daveshahgtw: both15:25
whitequarksecond, you have comb dependencies between submodules15:25
SarayanHow do you add a port to a RTLIL::Module?15:25
whitequarkboth of which mean you probably have hundreds of delta cycles15:25
whitequark(I'm curious how many)15:25
daveshahack15:25
daveshahhow do I know?15:25
whitequark.step() returns that15:26
gtwdaveshah: OK I will send a pull request once I get a round tuit :)15:26
daveshahgtw: thanks!15:26
*** npe has joined #yosys15:28
Sarayan(adding a wire and setting its port_id blows up because it's not in the ports array)15:28
daveshahwhitequark: looks like up to 62 delta cycles, but that is during startup so maybe more once more parts start running15:29
whitequarkdaveshah: i would expect at least a 10x speedup if you flatten15:30
whitequarkquite possibly mre15:30
Sarayanoh, looks like I have to class fixup_ports() at some mysterious point15:30
whitequarkdaveshah: oh and if you do -b 'cxxrtl -header' you can rebuild your bench code without rebuilding the generated code15:33
daveshahwhitequark: thanks, absolutely flying with flatten as expected15:34
whitequarkdaveshah: curious what the speedup is15:34
Sarayanok, I have the ports and internal variables translating, weee15:35
daveshahwhitequark: took about 2 minutes to get to the point it took noflatten about 20 minutes15:36
daveshahso about 10x as expected15:36
whitequarknice15:36
whitequarkhow many delta cycles is it now?15:36
whitequark(both on posedge and negedge)15:37
whitequarkalso, does the flattened design have any feedback arcs, per the backend output?15:38
daveshahup to about 5 delta cycles15:41
daveshahi'll see what the backend output is15:41
whitequark5 delta cycles is reasonable15:41
daveshahI think there is even a generated clock deep inside15:41
whitequarkah, then my next suggestion wouldn't work15:42
whitequark(stop toggling the clock and instead set posedge_p_clk = true; directly, which lets you skip negedge cycles)15:42
daveshahYes, one feedback arc around the PPU15:42
whitequarkok, yes, won't work then15:42
daveshahthere is definitely stuff happening on the negede too15:42
whitequarkahh15:42
whitequarkthis is really nice to hear that cxxrtl actually handles that well15:43
whitequarki've only really built it for fully synchronous single-clock nmigen designs15:43
whitequarkwell15:43
whitequarkthat was my task. i built it to handle literally any imaginable rtlil because why not15:43
daveshahAlmost everything is on the same clock tbf15:43
daveshahBut it still seems to do very well15:43
whitequarkdaveshah: how do you grab the images btw?15:48
daveshahwhitequark: writing a csv file and processing it with PIL15:54
daveshahjust using hsync falling edge = start new line and vsync falling edge = start new file15:54
whitequarkoh, so you're basically sampling it at each pixel clock?15:55
daveshahYeah, every other system clock which I think is one pixel clock15:55
whitequarkdo you think blackboxes would help you here?15:56
daveshahThe video output is top level at the moment anyway, so it wouldn't make a big difference15:56
whitequarkah ok15:56
ZirconiumXI think it'd be at least a little more fun to see it render in SDL or whatever15:56
whitequarkyeah but you don't necessarily need blackboxes for that15:56
daveshahZipCPU did something like that with Verilator15:57
whitequarkZirconiumX: my idea for nmigen-soc is that it would come with peripherals you could drop into your design and they'd have simulation versions hooked up to the host system15:57
whitequarkone of them could very well be SDL output15:57
daveshahThat's a really nice idea15:58
daveshahBeing able to do that for the CPU should give a good speedup too15:58
whitequarkyes, lambdaconcept suggested it, based on the concept pioneered by litex15:58
whitequarkwe are actually quite close to it working15:58
whitequarktwo yosys PRs away from having all the knobs I need in nmigen for turnkey integration15:59
whitequarkand i already have a working design for the first one15:59
ZirconiumXhttps://gist.github.com/ZirconiumX/dcf5f76675658f2d10937f176adc4a6e <-- if people are curious, here's how Yosys attosoc synthesis compares to Quartus attosoc synthesis16:00
tpbTitle: quartus_v_yosys.txt · GitHub (at gist.github.com)16:00
whitequarkthere's some... quite unfortunate C++ code involved16:00
whitequarkbut so can be said about the rest of cxxrtl16:01
whitequarkit's reliable and relatively simple, i just hate it16:01
*** strongsaxophone has joined #yosys16:01
lambdaZirconiumX: is that still with LUT ROM?16:02
gtwZirconiumX: nice :)16:02
ZirconiumXlambda: No, flop ROM, AFAICT; I don't yet have BRAM initialisation16:02
whitequarkZirconiumX: nice!16:02
whitequarkabout 30% more area, is it?16:03
ZirconiumX60% more :P16:04
whitequarkoh, right16:04
lambdaZirconiumX: ah, interesting, wouldn't have expected flops to be anywhere near as cheap as LUTs16:04
ZirconiumXlambda: It's possible Yosys is lowering them to constant drivers16:05
ZirconiumXSince the flops are used for ROM16:05
whitequarkdaveshah: if you ever feel like making cxxrtl faster, there's something i don't quite understand16:05
whitequarki think there is a bug in a scheduler somewhere that prevents designs without feedback arcs from taking only 2 delta cycles16:05
whitequarki haven't looked into it yet because... well, it's just slightly slower this way, yet still reliable16:06
whitequark(a curious advantage of a design with delta cycles is that bugs in scheduler only result in slowdown, never correctness issues)16:07
ZirconiumXI don't foresee adding 7-input functions because they're too specific for scavenging them from ABC9 output to produce meaningful results16:07
ZirconiumXDSP inference is going to be awkward, because naturally it's not documented anywhere16:09
ZirconiumXAnd BRAM inference requires directly instantiating the target cell16:10
ZirconiumXWhich is apparently like five layers of unsupported16:10
ZirconiumX*BRAM initialisation16:12
ZirconiumXwhitequark: It surprises me how often I go back to the DE10-Nano support I added to nmigen-boards to remember the pin numberings16:18
whitequarkheh :)16:18
*** citypw has quit IRC16:20
*** jakobwenzel has quit IRC16:21
daveshahwelp, not quite a title screen yet, this is probably something wrong with my attempt to remove altera ram primitives though16:29
daveshahhttps://usercontent.irccloud-cdn.com/file/O41XpDWy/frame.png16:29
ZirconiumXaltsyncram, right?16:30
* ZirconiumX has been wondering about trying to instantiate $mem or something from it16:30
whitequarkdaveshah: ooh, send it to @mcclure111!16:31
ZirconiumXFPGA glitch art :P16:31
mwkZirconiumX: like, making sim models for block RAMs?16:32
mwkI tried and failed16:32
daveshahZirconiumX: no the dpram, spram, dpram_dif, etc IPs16:32
ZirconiumXmwk: No, turning a user altsyncram into something memory_bram can operate on16:32
ZirconiumXdaveshah: oh lord16:33
daveshahI don't really blame them16:33
daveshahWe all know BRAM inference is screwy and they only care about building with Quartus16:33
ZirconiumXThis attitude seems to persist with MiSTer...16:37
whitequarkto be fair, supporting multiple toolchains with verilog is hard16:39
daveshahIndeed16:41
ZirconiumXhttps://gist.github.com/ZirconiumX/dcf5f76675658f2d10937f176adc4a6e <-- my chess move generator (using post-fit stats and Fmax)16:45
tpbTitle: qvy_chess.txt · GitHub (at gist.github.com)16:45
daveshahSome parts of memory inference is even more cursed in VHDL than Verilog16:46
ZirconiumXIt's *way* closer here16:46
whitequarkdaveshah: you represent the memory as one gigantic register and then read chunks of it, right?16:47
daveshahNo, you can have arrays16:48
daveshahIt's true dual port that gets weird as you start to get into shared variables, which were significantly changed in VHDL 08 so one pattern stopped working16:48
ZirconiumX10MHz less Fmax, 2 LABs more area. That's not too shabby.16:49
lambdaZirconiumX: wow, nice16:49
ZirconiumXOn the other hand I'm very consciously giving it workloads without things like RAM or multipliers16:49
daveshahHmm, that's very impressive16:50
daveshahParticularly in terms of area which Yosys/ABC usually do quite badly on16:50
whitequarknice16:50
ZirconiumXMy hunch is that it's the LUT4s that ABC is producing16:50
lambdadaveshah: from what I can tell shared variables were never a very good pattern, but somehow very common anyway. The "one process, two clock edges" approach should've always worked and is cleaner in a few ways16:51
ZirconiumXBecause an ALM can fit two independent LUT4s and two LUT5s that share only two terms16:51
ZirconiumXI don't think it's that ABC is doing particularly well here, rather that Quartus can pack the result efficiently16:51
whitequarkwhat if you mark the LUTs as keep?16:52
ZirconiumXI don't have e.g. WYSIWYG primitive resynthesis enabled, so it should be treated as keep16:53
*** dys has joined #yosys17:00
ZirconiumXwq: Yeah, no difference to the Yosys results17:02
whitequarkI see17:04
*** az0re has joined #yosys17:05
ZirconiumXI can try enabling resynthesis, if you're curious17:06
whitequarki am17:10
ZirconiumXADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP17:12
ZirconiumXMemorable, ain't it?17:12
*** vidbina_ has quit IRC17:13
*** N2TOH_US has quit IRC17:22
ZirconiumXwq: slightly decreased area, slightly decreased Fmax.17:23
ZirconiumX(stats on same link)17:23
whitequarkinteresting17:24
ZirconiumXReduced flops, though17:25
ZirconiumXWhich is probably some level of sequential synthesis17:25
*** dys has quit IRC17:59
daveshahYay, was a typo between vram1 and vram218:16
daveshahhttps://usercontent.irccloud-cdn.com/file/xz3AejOz/frame.png18:16
*** strongsaxophone has quit IRC18:41
lambdadaveshah: awesome :D19:22
gtwVery cool!19:22
cr1901_modernnice... I forgot there was a free SNES HDL core19:24
*** az0re has quit IRC19:31
ZirconiumXRemind me again what BRAM transparency means?19:52
daveshahTransparent means that when you read from a address that is being written to in the same cycle as the read address arrived, the new rather than old data appears19:54
ZirconiumXIf it's configurable, should I pick it or not?19:55
daveshahIt can be configurable in Yosys too19:55
ZirconiumXDoesn't that then produce a parameter to instantiate?19:57
daveshahYes19:58
ZirconiumXUnfortunately memory_bram doesn't tell me what the parameter is called19:59
whitequarkZirconiumX: the manual lists the parameter20:00
ZirconiumXwhitequark: Where? It's not in command-reference-manual.tex20:02
daveshahIt looks like the parameters for memory_bram created cells are indeed undocumented20:03
whitequarkhm20:04
whitequarkdid I forget to put them in? apologie20:04
whitequark*apologies20:04
*** strobokopp has joined #yosys20:07
ZirconiumXIt seems to be the RD_TRANSPARENT parameter?20:13
daveshahI think that is for $mem cells20:15
daveshahIt is called TRANSPn for memory_bram created cells20:15
daveshahwhere n is the port20:15
daveshah*not the port, but the number given in the transp section in the config20:16
ZirconiumXtransp 0 2 <-- this would have a TRANSP2?20:16
daveshahYes20:16
ZirconiumXWhat about if `clocks` is configurable?20:17
daveshahclocks isn't configurable20:17
daveshahvalues greater than 1 are just different clock signals20:18
daveshahwith 0 being unclocked20:18
ZirconiumXYeah, but an MLAB read port can either be sync or async20:18
daveshahThen you need two different BRAM entries20:18
ZirconiumXOkay20:19
*** az0re has joined #yosys20:24
*** Cerpin has quit IRC20:30
*** Cerpin has joined #yosys20:30
*** emeb_mac has joined #yosys20:55
*** npe has quit IRC20:58
ZirconiumXQuartus is giving me a headache21:02
ZirconiumXIt lets you build a 32x2 LUTRAM (as the documentation says) but only sometimes21:02
*** N2TOH has joined #yosys21:07
*** jfcaron has quit IRC21:23
ZirconiumXdaveshah: Having problem mapping the ROM in attosoc; I have an async-read initialisable LUTRAM (that I'm using for testing) but memory_bram is giving up21:29
daveshahYeah, the rom in attosoc doesn't map to bram21:30
daveshahIt was a horrible pattern because at the time objcopy didn't write more than 8 bit inits21:30
daveshahAnd I cba to write a better was at the time ecp5 bram wasn't even supported21:31
daveshah*better way21:31
ZirconiumXUgh; I need a testbench for BRAM init21:31
daveshahThis newer attosoc variant should21:32
daveshahhttps://github.com/daveshah1/nextpnr-xilinx/tree/xilinx-upstream/xilinx/examples/attosoc21:32
tpbTitle: nextpnr-xilinx/xilinx/examples/attosoc at xilinx-upstream · daveshah1/nextpnr-xilinx · GitHub (at github.com)21:32
ZirconiumXYep, it does21:34
*** twnqx has joined #yosys21:36
twnqxis there a simple, yosys-friendly way to say "output 0 if the number of set bits is 0 or 1, output 1 else" with four inputs?21:38
ZirconiumXtwnqx: Write a case, I suppose21:39
ZirconiumXOr else a small if/else chain21:39
twnqxthought so. ok21:40
ZirconiumXdaveshah: So, uh, new attosoc doesn't boot under either Quartus or Yosys21:59
daveshahAre the LEDs half on by any chance?22:00
ZirconiumXNo; under Quartus they are fully on, and under Yosys it gets to 2 and then freezes22:00
daveshahOh, that's odd22:01
ZirconiumXNo, it's even /s22:01
daveshahThat is a simulation test I realise so it has no delay loop22:01
daveshahTry this firmware with it22:01
daveshahhttps://github.com/daveshah1/nextpnr-xilinx/blob/xilinx-upstream/xilinx/examples/zcu104/firmware.hex22:01
tpbTitle: nextpnr-xilinx/firmware.hex at xilinx-upstream · daveshah1/nextpnr-xilinx · GitHub (at github.com)22:01
daveshahNote that one only uses 4 LEDs22:01
ZirconiumXThat works22:04
*** strobokopp has quit IRC22:08
ZirconiumXNow I have the fun question of trying to figure out why RAM init is failing22:09
ZirconiumXWhich is fairly tricky when there are encrypted simulation models22:10
ZirconiumXdaveshah: How do I convert an integer into a hex string in Verilog?22:14
daveshahSome for loop monstrosity probably22:14
ZirconiumXThe reason I ask is this hint: parameter mem_init0 = "";22:15
*** N2TOH has quit IRC22:49
*** N2TOH_ has joined #yosys22:50
*** X-Scale` has joined #yosys23:03
*** X-Scale has quit IRC23:03
*** X-Scale` is now known as X-Scale23:04
*** twnqx has quit IRC23:06
*** develonepi3 has joined #yosys23:17
*** develonepi3 has left #yosys23:20
*** dxld has quit IRC23:31
*** dxld has joined #yosys23:33

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