*** tpb has joined #yosys | 00:00 | |
*** emeb_mac has joined #yosys | 00:37 | |
*** seldridge has quit IRC | 01:11 | |
*** X-Scale has quit IRC | 01:15 | |
*** X-Scale has joined #yosys | 01:48 | |
mithro | ZipCPU: it gets optimised down to 6 LUTs if I understand correctly... | 01:49 |
---|---|---|
*** sklv1 has quit IRC | 02:03 | |
*** xrexeon has joined #yosys | 02:03 | |
*** xrexeon has quit IRC | 02:10 | |
*** sklv1 has joined #yosys | 02:13 | |
*** digshadow has quit IRC | 02:15 | |
*** cemerick has quit IRC | 02:30 | |
*** digshadow has joined #yosys | 02:50 | |
*** seldridge has joined #yosys | 03:06 | |
*** emeb has quit IRC | 03:34 | |
*** seldridge has quit IRC | 04:28 | |
*** seldridge has joined #yosys | 04:50 | |
*** digshadow has quit IRC | 04:51 | |
*** digshadow has joined #yosys | 04:56 | |
*** seldridge has quit IRC | 05:03 | |
*** sklv1 has quit IRC | 05:04 | |
*** sklv1 has joined #yosys | 05:05 | |
*** proteus-guy has quit IRC | 05:41 | |
*** pie_ has quit IRC | 05:41 | |
*** kraiskil has joined #yosys | 05:50 | |
*** GuzTech has joined #yosys | 05:51 | |
*** eduardo_ has joined #yosys | 05:52 | |
*** pie_ has joined #yosys | 05:54 | |
*** eduardo__ has quit IRC | 05:55 | |
*** dys has joined #yosys | 06:04 | |
*** kraiskil has quit IRC | 06:07 | |
*** GuzTech has quit IRC | 06:07 | |
*** pie_ has quit IRC | 06:09 | |
*** proteus-guy has joined #yosys | 06:10 | |
*** pie_ has joined #yosys | 06:14 | |
daveshah | mithro: putting `(* keep *)` on all the submodules should work | 06:37 |
daveshah | Otherwise, I think there's a way of running abc on the submodules rather than the flattened design, by running hierarchy after abc | 06:38 |
*** GuzTech has joined #yosys | 07:05 | |
*** emeb_mac has quit IRC | 07:08 | |
*** dys has quit IRC | 07:11 | |
*** pie_ has quit IRC | 07:15 | |
*** daddesio has quit IRC | 07:50 | |
*** daddesio has joined #yosys | 07:55 | |
*** pie_ has joined #yosys | 08:04 | |
*** pie_ has quit IRC | 08:20 | |
*** pie_ has joined #yosys | 08:22 | |
*** cemerick has joined #yosys | 08:36 | |
*** pie_ has quit IRC | 08:37 | |
*** phire has quit IRC | 08:42 | |
*** phire has joined #yosys | 08:43 | |
*** jwhitmore has joined #yosys | 08:55 | |
*** pie_ has joined #yosys | 08:55 | |
*** xrexeon has joined #yosys | 09:10 | |
*** xrexeon has joined #yosys | 09:12 | |
*** leviathan has joined #yosys | 09:19 | |
*** pie_ has quit IRC | 09:46 | |
*** pie_ has joined #yosys | 09:58 | |
*** maartenBE has joined #yosys | 09:59 | |
*** _florent_ has quit IRC | 10:28 | |
*** _florent_ has joined #yosys | 10:29 | |
*** proteus-guy has quit IRC | 10:58 | |
*** leviathan has quit IRC | 11:28 | |
*** xrexeon has quit IRC | 11:45 | |
*** sorear has quit IRC | 11:46 | |
*** sorear has joined #yosys | 11:46 | |
*** xrexeon has joined #yosys | 11:47 | |
*** phiren has joined #yosys | 12:21 | |
*** phire has quit IRC | 12:27 | |
*** esden has quit IRC | 12:27 | |
*** eightdot_ has quit IRC | 12:27 | |
*** SpaceCoaster has quit IRC | 12:27 | |
*** ralu has quit IRC | 12:27 | |
*** ssvb has quit IRC | 12:27 | |
*** mirage335 has quit IRC | 12:27 | |
*** esden has joined #yosys | 12:29 | |
*** eightdot_ has joined #yosys | 12:29 | |
*** SpaceCoaster has joined #yosys | 12:29 | |
*** ralu has joined #yosys | 12:29 | |
*** ssvb has joined #yosys | 12:29 | |
*** mirage335 has joined #yosys | 12:29 | |
*** danieljabailey has quit IRC | 12:30 | |
*** danieljabailey has joined #yosys | 12:32 | |
*** proteusguy has quit IRC | 12:57 | |
*** proteusguy has joined #yosys | 12:58 | |
*** jwhitmore has quit IRC | 13:09 | |
*** proteus-guy has joined #yosys | 13:38 | |
*** photon has joined #yosys | 14:29 | |
*** photon has quit IRC | 14:36 | |
*** seldridge has joined #yosys | 14:54 | |
mithro | daveshah: Well, ideally I would like a design which /can't/ be optimized away | 14:59 |
mithro | daveshah: I feel like maybe you could use a SAT solver to fill in the LUT init pattern to make sure? | 14:59 |
ZipCPU | That was what the reddit/yosys article discussed, "Keep duplicate FF through Opt_merge". Clifford demonstrated in the response that you could keep ABC from optimizing sections of your design via the (* keep_hierarchy *) attribute. | 15:00 |
mithro | ZipCPU: Yeah - knew about the keep stuff - but I was more looking for something that can't be optimized away... | 15:03 |
daveshah | That design will always be optimised unless the optimiser is broken | 15:04 |
daveshah | No SAT solver will help with that | 15:04 |
daveshah | Either you need more inputs or a keep command | 15:04 |
*** esden has quit IRC | 15:04 | |
*** eightdot_ has quit IRC | 15:04 | |
*** SpaceCoaster has quit IRC | 15:04 | |
*** ralu has quit IRC | 15:04 | |
*** ssvb has quit IRC | 15:04 | |
*** mirage335 has quit IRC | 15:04 | |
*** sklv1 has quit IRC | 15:04 | |
*** phiren has quit IRC | 15:04 | |
*** marbler has quit IRC | 15:05 | |
*** samayra has quit IRC | 15:05 | |
*** xrexeon has quit IRC | 15:05 | |
*** Kooda has quit IRC | 15:05 | |
*** mazzoo has quit IRC | 15:05 | |
*** pie_ has quit IRC | 15:05 | |
*** eduardo_ has quit IRC | 15:05 | |
*** clifford has quit IRC | 15:05 | |
*** srk has quit IRC | 15:05 | |
*** ZipCPU has quit IRC | 15:05 | |
*** knielsen has quit IRC | 15:05 | |
*** fouric has quit IRC | 15:05 | |
*** mlen has quit IRC | 15:05 | |
*** andi- has quit IRC | 15:05 | |
mithro | daveshah: Out of interest how would you "prove" that? | 15:05 |
*** pie_ has joined #yosys | 15:05 | |
*** eduardo_ has joined #yosys | 15:05 | |
*** clifford has joined #yosys | 15:05 | |
*** srk has joined #yosys | 15:05 | |
*** ZipCPU has joined #yosys | 15:05 | |
*** knielsen has joined #yosys | 15:05 | |
*** fouric has joined #yosys | 15:05 | |
*** mlen has joined #yosys | 15:05 | |
*** andi- has joined #yosys | 15:05 | |
*** kornbluth.freenode.net sets mode: +o clifford | 15:05 | |
daveshah | Not sure TBH | 15:05 |
daveshah | Actually, I was thinking about an arch with muxes. Too much ECP5 stuff | 15:06 |
daveshah | Maybe there is a pattern that works | 15:06 |
mithro | daveshah: Well, I guess you have "existence proof" -- IE ABC was able to optimize it so, therefore... :-P | 15:06 |
*** phiren has joined #yosys | 15:07 | |
*** marbler has joined #yosys | 15:07 | |
*** samayra has joined #yosys | 15:07 | |
*** esden has joined #yosys | 15:07 | |
*** eightdot_ has joined #yosys | 15:07 | |
*** SpaceCoaster has joined #yosys | 15:07 | |
*** ralu has joined #yosys | 15:07 | |
*** ssvb has joined #yosys | 15:07 | |
*** mirage335 has joined #yosys | 15:07 | |
*** samayra has quit IRC | 15:07 | |
*** xrexeon has joined #yosys | 15:08 | |
*** Kooda has joined #yosys | 15:08 | |
*** mazzoo has joined #yosys | 15:08 | |
*** xrexeon has quit IRC | 15:08 | |
*** emeb has joined #yosys | 15:08 | |
*** indefini has quit IRC | 15:08 | |
*** pointfree1 has quit IRC | 15:08 | |
*** nrossi has quit IRC | 15:08 | |
*** swick has quit IRC | 15:08 | |
*** lok[m] has quit IRC | 15:08 | |
*** xrexeon has joined #yosys | 15:08 | |
*** jfng has quit IRC | 15:08 | |
*** MatrixTraveler[m has quit IRC | 15:08 | |
*** marbler has quit IRC | 15:08 | |
*** jayaura has quit IRC | 15:09 | |
daveshah | I think this is a proof that a 6-input combinational network will produce no more than 6 LUT4s after optimisation: A 6-LUT can always be built from 4 4-LUTs and a MUX4. Proof by Yosys that a MUX4 can be built using only 2 LUT4s. Hence 6 LUT4s in total | 15:16 |
daveshah | Feel free to point out a flaw in this | 15:17 |
cr1901_modern | 4 4-LUTs (I can visualize a MUX4 from 2 4-LUTs just fine)? | 15:21 |
cr1901_modern | Basically, I don't see how you get 6 bits of arbitrary functions from 4-LUTs and a MUX | 15:24 |
*** bubble_buster has quit IRC | 15:25 | |
*** bubble_buster has joined #yosys | 15:25 | |
cr1901_modern | Wait nevermind. I can visualize a 5-LUT from 2 4-LUTs and a 2-MUX, so 6-LUT is just an extension of that (too lazy to actually do it in my head tho :P) | 15:26 |
sorear | what does the MUX4 from LUT4 look like? | 15:28 |
sorear | i couldn't figure out how to do it with less than 3 myself | 15:28 |
*** promach__ has joined #yosys | 15:31 | |
*** promach__ is now known as promach3 | 15:31 | |
*** photon has joined #yosys | 15:32 | |
photon | any recommendation for a sequence of abc command to minimize the area? | 15:33 |
*** mithro has quit IRC | 15:34 | |
*** mithro has joined #yosys | 15:35 | |
ZipCPU | Doesn't the "opt" yosys command do that? | 15:35 |
photon | well, opt does not do a great job | 15:39 |
ZipCPU | If there's another means of doing so, I'd like to find it. I've got some code I'd like optimized better .. ;) | 15:40 |
photon | for a test design design compiler gave 160 gates and yosys/abc gave 1000 gates! | 15:40 |
awygle | are you also running "abc"? | 15:40 |
photon | I played abit with abc commands to reduce the number to 600 gates | 15:40 |
photon | but, it is still far away from 160 gates | 15:41 |
photon | reported by DC | 15:41 |
ZipCPU | "gates" or "LUT"s? | 15:41 |
photon | I am mapping the design to ASIC standrd cell library | 15:42 |
ZipCPU | Does your design have RAM elements within it? | 15:42 |
photon | if they do good job for ASIC they should for FPGA | 15:42 |
photon | it is a pure combinational design given as a set of boolean equations | 15:43 |
cr1901_modern | sorear: Gonna have to take a rain check on that one. My mental picture was wrong. But I imagine it can be done | 15:47 |
sorear | cr1901_modern: i'm asking daveshah not (necessarily) you | 15:48 |
cr1901_modern | sorear: Oh sorry, I made it all about me :P | 15:48 |
sorear | you can answer it if you want, but I don't expect you to know details of daveshah's 2-LUT MUX4 | 15:49 |
*** cfelton has quit IRC | 15:50 | |
*** cfelton has joined #yosys | 15:51 | |
daveshah | https://usercontent.irccloud-cdn.com/file/4kWC5SMZ/MUX6%20from%20LUT4s.png | 15:51 |
daveshah | This was done using Yosys's `synth_ice40` and `show` commands | 15:52 |
daveshah | It's a beautifully tricky solution | 15:54 |
*** sklv1 has joined #yosys | 15:55 | |
*** proteus-guy has quit IRC | 15:56 | |
cr1901_modern | Oh, I almost got it right (forgot to feed in 1:1-0:0 to the _first_ 4-LUT as well as the second) | 15:56 |
*** proteus-guy has joined #yosys | 15:57 | |
*** photon has quit IRC | 15:59 | |
sorear | ahahahahahahahahha | 16:03 |
sorear | that is amazing | 16:03 |
*** ovf has quit IRC | 16:07 | |
*** ovf has joined #yosys | 16:08 | |
*** awygle_ has joined #yosys | 16:08 | |
daveshah | NB - in Yosys notation y:x - b:a maps bits y..x to bits b..a - so 1:1-0:0 means select bit 1, for example | 16:09 |
daveshah | It's a bit of an odd notation, but it's also flexible | 16:09 |
*** zino has quit IRC | 16:14 | |
*** awygle has quit IRC | 16:14 | |
*** zino has joined #yosys | 16:14 | |
*** samayra has joined #yosys | 16:23 | |
*** marex-cloud has quit IRC | 16:30 | |
*** marex-cloud has joined #yosys | 16:30 | |
*** eduardo_ has quit IRC | 16:32 | |
*** dys has joined #yosys | 16:43 | |
*** promach3 has quit IRC | 16:58 | |
*** guan has quit IRC | 16:58 | |
*** guan has joined #yosys | 16:59 | |
*** GuzTech has quit IRC | 16:59 | |
*** pointfree1 has joined #yosys | 17:05 | |
*** indefini has joined #yosys | 17:05 | |
*** jfng has joined #yosys | 17:05 | |
*** nrossi has joined #yosys | 17:05 | |
*** swick has joined #yosys | 17:05 | |
*** lok[m] has joined #yosys | 17:05 | |
*** Guest85601 has joined #yosys | 17:05 | |
*** marbler has joined #yosys | 17:05 | |
*** leviathan has joined #yosys | 17:09 | |
*** dys has quit IRC | 17:11 | |
*** digshadow has quit IRC | 17:12 | |
*** promach3 has joined #yosys | 17:14 | |
*** promach3 has quit IRC | 17:19 | |
*** cemerick_ has joined #yosys | 17:26 | |
shapr | The ice40 boards for my novena shipped from austria, that'll be fun. | 17:29 |
*** cemerick has quit IRC | 17:30 | |
*** GuzTech has joined #yosys | 17:55 | |
*** awygle_ is now known as awygle | 17:56 | |
*** photon has joined #yosys | 17:58 | |
*** xerpi has joined #yosys | 17:58 | |
*** photon has quit IRC | 18:09 | |
*** digshadow has joined #yosys | 18:22 | |
*** sklv1 has quit IRC | 18:38 | |
*** sklv has joined #yosys | 20:09 | |
*** indy has quit IRC | 20:24 | |
*** indy has joined #yosys | 20:28 | |
emeb | ice40 in a novena? doesn't novena already have an FPGA in it? | 20:35 |
sorear | Yes but it’s not usable with FOSS | 20:37 |
shapr | emeb: https://www.jamiecraig.com/novena-ice40-add-on/ | 20:44 |
tpb | Title: Novena iCE40 Add-On | Jamie Craig (at www.jamiecraig.com) | 20:44 |
emeb | Yeah - not being able to run the Spartan tools on the Novena is a PITA. | 21:00 |
emeb | I built a little RPi "hat" with an Ultra-Plus on it and it's fun to build the bitstream right on the RPi. | 21:01 |
emeb | Even works on an RPi Zero. | 21:01 |
*** GuzTech has quit IRC | 21:29 | |
*** leviathan has quit IRC | 22:15 | |
*** xerpi has quit IRC | 22:29 | |
*** xrexeon has quit IRC | 22:59 | |
*** promach3 has joined #yosys | 23:45 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!