clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
emeb_mac has joined #yosys
seldridge has quit [Ping timeout: 260 seconds]
X-Scale has quit [Ping timeout: 248 seconds]
X-Scale has joined #yosys
<mithro> ZipCPU: it gets optimised down to 6 LUTs if I understand correctly...
sklv1 has quit [*.net *.split]
xrexeon has joined #yosys
xrexeon has quit [Quit: leaving]
sklv1 has joined #yosys
digshadow has quit [Ping timeout: 255 seconds]
cemerick has quit [Ping timeout: 256 seconds]
digshadow has joined #yosys
seldridge has joined #yosys
emeb has quit [Quit: Leaving.]
seldridge has quit [Ping timeout: 268 seconds]
seldridge has joined #yosys
digshadow has quit [Ping timeout: 260 seconds]
digshadow has joined #yosys
seldridge has quit [Ping timeout: 248 seconds]
sklv1 has quit [Write error: Connection reset by peer]
sklv1 has joined #yosys
proteus-guy has quit [Remote host closed the connection]
pie_ has quit [Ping timeout: 256 seconds]
kraiskil has joined #yosys
GuzTech has joined #yosys
eduardo_ has joined #yosys
pie_ has joined #yosys
eduardo__ has quit [Ping timeout: 255 seconds]
dys has joined #yosys
kraiskil has quit [Ping timeout: 264 seconds]
GuzTech has quit [Ping timeout: 264 seconds]
pie_ has quit [Ping timeout: 256 seconds]
proteus-guy has joined #yosys
pie_ has joined #yosys
<daveshah> mithro: putting `(* keep *)` on all the submodules should work
<daveshah> Otherwise, I think there's a way of running abc on the submodules rather than the flattened design, by running hierarchy after abc
GuzTech has joined #yosys
emeb_mac has quit [Quit: Leaving.]
dys has quit [Ping timeout: 260 seconds]
pie_ has quit [Ping timeout: 264 seconds]
daddesio has quit [Ping timeout: 255 seconds]
daddesio has joined #yosys
pie_ has joined #yosys
pie_ has quit [Ping timeout: 240 seconds]
pie_ has joined #yosys
cemerick has joined #yosys
pie_ has quit [Ping timeout: 264 seconds]
phire has quit [Ping timeout: 260 seconds]
phire has joined #yosys
jwhitmore has joined #yosys
pie_ has joined #yosys
xrexeon has joined #yosys
xrexeon has quit [Max SendQ exceeded]
xrexeon has joined #yosys
leviathan has joined #yosys
pie_ has quit [Ping timeout: 248 seconds]
pie_ has joined #yosys
maartenBE has joined #yosys
_florent_ has quit []
_florent_ has joined #yosys
proteus-guy has quit [Remote host closed the connection]
leviathan has quit [Read error: Connection reset by peer]
xrexeon has quit [Remote host closed the connection]
sorear has quit []
sorear has joined #yosys
xrexeon has joined #yosys
phiren has joined #yosys
phire has quit [*.net *.split]
esden has quit [*.net *.split]
eightdot_ has quit [*.net *.split]
SpaceCoaster has quit [*.net *.split]
ralu has quit [*.net *.split]
ssvb has quit [*.net *.split]
mirage335 has quit [*.net *.split]
SpaceCoaster has joined #yosys
esden has joined #yosys
eightdot_ has joined #yosys
ralu has joined #yosys
ssvb has joined #yosys
mirage335 has joined #yosys
danieljabailey has quit [Ping timeout: 260 seconds]
danieljabailey has joined #yosys
proteusguy has quit [Ping timeout: 256 seconds]
proteusguy has joined #yosys
jwhitmore has quit [Ping timeout: 240 seconds]
proteus-guy has joined #yosys
photon has joined #yosys
photon has quit [Ping timeout: 260 seconds]
seldridge has joined #yosys
<mithro> daveshah: Well, ideally I would like a design which /can't/ be optimized away
<mithro> daveshah: I feel like maybe you could use a SAT solver to fill in the LUT init pattern to make sure?
<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.
<mithro> ZipCPU: Yeah - knew about the keep stuff - but I was more looking for something that can't be optimized away...
<daveshah> That design will always be optimised unless the optimiser is broken
<daveshah> No SAT solver will help with that
<daveshah> Either you need more inputs or a keep command
esden has quit [*.net *.split]
eightdot_ has quit [*.net *.split]
SpaceCoaster has quit [*.net *.split]
ralu has quit [*.net *.split]
ssvb has quit [*.net *.split]
mirage335 has quit [*.net *.split]
sklv1 has quit [*.net *.split]
phiren has quit [*.net *.split]
marbler has quit [*.net *.split]
samayra has quit [*.net *.split]
xrexeon has quit [*.net *.split]
Kooda has quit [*.net *.split]
mazzoo has quit [*.net *.split]
pie_ has quit [*.net *.split]
eduardo_ has quit [*.net *.split]
clifford has quit [*.net *.split]
fouric has quit [*.net *.split]
<mithro> daveshah: Out of interest how would you "prove" that?
pie_ has joined #yosys
andi- has joined #yosys
ZipCPU has joined #yosys
clifford has joined #yosys
knielsen has joined #yosys
mlen has joined #yosys
fouric has joined #yosys
srk has joined #yosys
eduardo_ has joined #yosys
<daveshah> Not sure TBH
<daveshah> Actually, I was thinking about an arch with muxes. Too much ECP5 stuff
<daveshah> Maybe there is a pattern that works
<mithro> daveshah: Well, I guess you have "existence proof" -- IE ABC was able to optimize it so, therefore... :-P
samayra has joined #yosys
marbler has joined #yosys
phiren has joined #yosys
esden has joined #yosys
eightdot_ has joined #yosys
ralu has joined #yosys
SpaceCoaster has joined #yosys
mirage335 has joined #yosys
ssvb has joined #yosys
samayra has quit [Max SendQ exceeded]
xrexeon has joined #yosys
Kooda has joined #yosys
mazzoo has joined #yosys
xrexeon has quit [Max SendQ exceeded]
emeb has joined #yosys
indefini has quit [Ping timeout: 245 seconds]
pointfree1 has quit [Ping timeout: 245 seconds]
nrossi has quit [Ping timeout: 246 seconds]
swick has quit [Ping timeout: 246 seconds]
lok[m] has quit [Ping timeout: 240 seconds]
xrexeon has joined #yosys
jfng has quit [Ping timeout: 276 seconds]
MatrixTraveler[m has quit [Ping timeout: 255 seconds]
marbler has quit [Ping timeout: 256 seconds]
jayaura has quit [Ping timeout: 276 seconds]
<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
<daveshah> Feel free to point out a flaw in this
<cr1901_modern> 4 4-LUTs (I can visualize a MUX4 from 2 4-LUTs just fine)?
<cr1901_modern> Basically, I don't see how you get 6 bits of arbitrary functions from 4-LUTs and a MUX
bubble_buster has quit []
bubble_buster has joined #yosys
<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)
<sorear> what does the MUX4 from LUT4 look like?
<sorear> i couldn't figure out how to do it with less than 3 myself
promach__ has joined #yosys
promach__ is now known as promach3
photon has joined #yosys
<photon> any recommendation for a sequence of abc command to minimize the area?
mithro has quit []
mithro has joined #yosys
<ZipCPU> Doesn't the "opt" yosys command do that?
<photon> well, opt does not do a great job
<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 .. ;)
<photon> for a test design design compiler gave 160 gates and yosys/abc gave 1000 gates!
<awygle> are you also running "abc"?
<photon> I played abit with abc commands to reduce the number to 600 gates
<photon> but, it is still far away from 160 gates
<photon> reported by DC
<ZipCPU> "gates" or "LUT"s?
<photon> I am mapping the design to ASIC standrd cell library
<ZipCPU> Does your design have RAM elements within it?
<photon> if they do good job for ASIC they should for FPGA
<photon> it is a pure combinational design given as a set of boolean equations
<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
<sorear> cr1901_modern: i'm asking daveshah not (necessarily) you
<cr1901_modern> sorear: Oh sorry, I made it all about me :P
<sorear> you can answer it if you want, but I don't expect you to know details of daveshah's 2-LUT MUX4
cfelton has quit []
cfelton has joined #yosys
<daveshah> This was done using Yosys's `synth_ice40` and `show` commands
<daveshah> It's a beautifully tricky solution
sklv1 has joined #yosys
proteus-guy has quit [Remote host closed the connection]
<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)
proteus-guy has joined #yosys
photon has quit [Ping timeout: 260 seconds]
<sorear> ahahahahahahahahha
<sorear> that is amazing
ovf has quit [Disconnected by services]
ovf has joined #yosys
awygle_ has joined #yosys
<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
<daveshah> It's a bit of an odd notation, but it's also flexible
zino has quit [*.net *.split]
awygle has quit [*.net *.split]
zino has joined #yosys
samayra has joined #yosys
marex-cloud has quit []
marex-cloud has joined #yosys
eduardo_ has quit [Quit: Ex-Chat]
dys has joined #yosys
promach3 has quit [Ping timeout: 260 seconds]
guan has quit []
guan has joined #yosys
GuzTech has quit [Remote host closed the connection]
pointfree1 has joined #yosys
swick has joined #yosys
nrossi has joined #yosys
jfng has joined #yosys
indefini has joined #yosys
lok[m] has joined #yosys
marbler has joined #yosys
Guest85601 has joined #yosys
leviathan has joined #yosys
dys has quit [Ping timeout: 276 seconds]
digshadow has quit [Ping timeout: 260 seconds]
promach3 has joined #yosys
promach3 has quit [Ping timeout: 240 seconds]
cemerick_ has joined #yosys
<shapr> The ice40 boards for my novena shipped from austria, that'll be fun.
cemerick has quit [Ping timeout: 276 seconds]
GuzTech has joined #yosys
awygle_ is now known as awygle
photon has joined #yosys
xerpi has joined #yosys
photon has quit [Quit: Page closed]
digshadow has joined #yosys
sklv1 has quit [Remote host closed the connection]
sklv has joined #yosys
indy has quit [Read error: Connection reset by peer]
indy has joined #yosys
<emeb> ice40 in a novena? doesn't novena already have an FPGA in it?
<sorear> Yes but it’s not usable with FOSS
<tpb> Title: Novena iCE40 Add-On | Jamie Craig (at www.jamiecraig.com)
<emeb> Yeah - not being able to run the Spartan tools on the Novena is a PITA.
<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.
<emeb> Even works on an RPi Zero.
GuzTech has quit [Ping timeout: 248 seconds]
leviathan has quit [Ping timeout: 248 seconds]
xerpi has quit [Quit: Leaving]
xrexeon has quit [Ping timeout: 248 seconds]
promach3 has joined #yosys
tpb has quit [Remote host closed the connection]
tpb has joined #yosys
emeb_mac has joined #yosys