Saturday, 2021-08-07

*** tpb <[email protected]> has joined #yosys00:00
*** cr19011 <cr19011!~William@2601:8d:8600:911:b49d:fc45:e620:8cca> has joined #yosys01:09
*** cr1901 <cr1901!~William@2601:8d:8600:911:dd5b:fb73:8d84:fc76> has quit IRC (Ping timeout: 250 seconds)01:11
*** cr19011 is now known as cr190101:14
*** emeb_mac <[email protected]> has quit IRC (Ping timeout: 258 seconds)03:44
*** emeb_mac <[email protected]> has joined #yosys03:45
*** nak_ <nak_!~nak@yosys/nak> has joined #yosys04:24
*** nak <nak!~nak@yosys/nak> has quit IRC (Ping timeout: 258 seconds)04:26
*** emeb_mac <[email protected]> has quit IRC (Quit: Leaving.)07:06
*** tlwoerner_ <[email protected]> has joined #yosys08:04
*** somlo_ <[email protected]> has joined #yosys08:04
*** peeps[zen] <peeps[zen]!~peepsalot@openscad/peepsalot> has joined #yosys08:04
*** sm2n_ <sm2n_!~sm2n@user/sm2n> has joined #yosys08:04
*** buhman <buhman!sid411355@user/buhman> has quit IRC (Ping timeout: 256 seconds)08:06
*** killjoy <killjoy!~nameless@user/killjoy> has quit IRC (Ping timeout: 252 seconds)08:06
*** tlwoerner <[email protected]> has quit IRC (Ping timeout: 245 seconds)08:06
*** chipb <chipb!~chipb@user/chipb> has quit IRC (Ping timeout: 245 seconds)08:07
*** philtor <[email protected]> has quit IRC (Ping timeout: 252 seconds)08:07
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has quit IRC (Ping timeout: 256 seconds)08:07
*** sm2n <sm2n!~sm2n@user/sm2n> has quit IRC (Ping timeout: 256 seconds)08:07
*** killjoy <[email protected]> has joined #yosys08:07
*** somlo <[email protected]> has quit IRC (Remote host closed the connection)08:08
*** buhman <buhman!sid411355@user/buhman> has joined #yosys08:08
*** philtor <[email protected]> has joined #yosys08:08
*** chipb <chipb!~chipb@user/chipb> has joined #yosys08:09
*** vidbina_ <[email protected]> has joined #yosys08:13
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 268 seconds)08:42
*** Niklas[m]1 <Niklas[m]1!~nsmlzlmat@2001:470:69fc:105::c93a> has joined #yosys08:46
*** strobo <[email protected]> has joined #yosys09:12
*** jeanthom <[email protected]> has joined #yosys09:22
*** vidbina_ <[email protected]> has joined #yosys11:08
lkclfolks building yosys with gcc-8 (debian/10 stable) fails with requesting -fPIC be added to CFLAGS.  just fyi11:31
loftylkcl: which version of yosys?11:37
lkcllofty: latest git12:24
loftylatest is not a version12:24
lkcli'm temporarily building with clang instead12:24
lkclgcc --version12:24
lkclgcc (Debian 8.3.0-6) 8.3.012:24
lkclgit master branch, as of right now.12:24
lkclor, more accurately, about 4 hours ago12:25
lkcli've come across this one before (quite frequently, over the years). -fPIC added to CFLAGS does indeed solve the problem12:27
loftylkcl: https://github.com/YosysHQ/yosys/blob/master/Makefile#L88 <-- fPIC is already in there.12:28
loftyWait, added to CFLAGS?12:28
loftyThat means ABC.12:29
lkclyes, that sounds about right.12:29
loftyPR it.12:30
loftyActually, hmm12:30
loftyThe Yosys makefile never sets CFLAGS ^.^12:30
loftySo if anywhere, it would go in the ABC repo12:30
lkclapologies, you use github, so until fedforge is up and running i'll not be able to do that.12:30
loftyAnd, uh, good luck getting anything merged there.12:31
lkclintriguing. does it set CXXFLAGS?12:31
loftyYes, it sets CXXFLAGS, as I pointed to12:31
lkclyes, this is the "normal" response, very sadly. quite disrespectful, i have to be honest.12:32
lkclluckily in this case i have a workaround, which is to use config-clang instead12:32
gatecatI wonder if this is a manifestation of https://github.com/YosysHQ/yosys/issues/2011 in some form12:33
* lkcl taking a look12:33
lkcl"Configure Yosys build with CXX := clang++" - hmmm12:34
loftyABC is pretty passively maintained12:35
loftyIt's unfortunate that so much of Yosys relies on it (Vivado does too, but they pay Alan to maintain it)12:35
lkclyes, definitely CXX is not a c compiler, and if flags have been passed through CXXFLAGS but not CFLAGS, that would brak12:35
lkcloh btw it may be of interest: i spoke to the developer of ABC a few months ago, about a maaaassive memory issue12:36
lkclhe pointed out that there is now a way faster file format12:36
gatecatxaig, or something else ?12:36
lkcli can't remember off the top of my head12:37
loftyXAIGER.12:37
lkcl1 sec will see if i can find it12:37
loftyBut the ABC flow uses BLIF instead.12:37
lkclyes, AIGER.  Alan... Mischenko?12:37
lkclyeahh. we end up with something like gigabyte BLIF files :)12:38
loftyAlan Mishchenko, yeah.12:38
lkclohh i remember what it was: it was SRAMs being expanded out to DFFs12:38
lkclwe ended up with memory corruption, the resultant BLIF file was so large :)12:39
lkclsolved it thanks to Staf Verhaegen (Chips4Makers) who very kindly designed a custom 4k SRAM cell for us12:39
loftyBusiness as usual then12:40
loftyABC breaks on big-endian machines and is not ASAN-clean12:40
lofty(LSOracle also breaks on big-endian machines, but there's not a great deal we can do about that)12:40
lkcllol a known problem, that one, clearly :)12:41
loftyHey, maybe somebody tries to run Yosys on their IBM z machine they paid xty million for 12:42
lkcli have to say, apart from pushing the boundaries, i'm just deeply impressed that yosys even exists12:42
loftyI'm impressed Yosys exists, but we're quite a way off "pushing the boundaries" :P12:43
lkcllofty, you know we went to Imec 180nm tape-out, entirely with Libre-licensed tools, last month?12:43
lkcland not with openroad / openlane, either: it was with alliance / coriolis212:43
lkclyosys was a huge part of the success of that12:44
loftyFull disclosure: my present job gets DARPA funding, and that's aimed at improving the OpenROAD flow.12:44
lkclnice.12:45
lkclwell it benefits everyone12:45
loftyBut the future is probably not with ABC; it's with LSOracle. And yes, LSOracle is paying me, but I genuinely do believe their approach is superior12:46
loftyBesides, since it's FOSS it's not like I get paid more for saying that :P12:47
lkcl:)12:49
mwk... ah right, superior non-big-endian clean tool12:57
mwk*sigh* seriously, is there some kind of rule that EDA tools have to be written Like That?12:57
lkclirony is, in VHDL, Paul Mackerras added Microwatt LE/BE support in something like 80 lines of VHDL.12:59
loftymwk: Trying to find big-endian hardware for these things is hard, but at least I discovered it >.>12:59
lkclPower ISA already has a LD/ST-byte-reverse, it was a simple matter of hooking in an XOR gate from MSR.BE into the backend LD/ST13:00
lkclIBM POWER8 / POWER9 would do it... and Toshaan Bharvani recompiled Fedora for both LE and BE.13:00
mwkreally13:00
mwkthe whole EDA space has SO MUCH 1990s-era shit C/C++ tooling feel to it13:01
mwk... please someone write a LLVM13:03
lkclwell, just as the linux kernel (largest software project on the planet) is written in c, the amount of time that's gone into it, and the serious resource-sucking nature of EDA, anything other than c/c++ is actually pretty suicidal13:03
loftymwk: that LLVM is mockturtle13:03
mwklofty: no it's not13:04
soreartrouble finding hardware?13:04
mwkit's some clever algorithms stuffed into a package13:04
loftySo is LLVM!13:05
mwkbut it's not anywhere close to a full flow13:05
mwkLLVM reads C code and outputs runnable binaries13:05
loftyLLVM does no such thing13:05
lofty*Clang* that wraps LLVM does13:06
mwkclang is part of the LLVM project13:06
lkclclang's a front-end which generates IR.13:07
lkclLLVM-IR then compiles that into an executable13:07
lkclthat's the very-much-simplified version13:07
mwkI know how LLVM works13:07
loftyThe frontend for that is alice.13:08
loftyif clang's job is to turn C code into LLVM IR13:08
loftyThen alice converts Verilog/AIGER/BLIF into mockturtle networks13:08
lkclif you are expecting a LLVM IR to be the target for EDA tools, such that an extra layer is inserted, this is another layer inserted into what is already well-known to be a hugely CPU-intensive, resource-intensive task13:08
sorearwhich part of this is CIRCT13:08
mwkthe point is: there is a unified set of libraries developed by a unified team that combines together to a full usable flow13:08
* lofty gives up13:09
mwkand there is no such thing for EDA13:09
mwkyosys/nextpnr is kind-of close, but it has big problems, and abc is one of them13:09
loftymwk: as one friend to another, I suggest you close your mouth before you stick your foot any further into it.13:10
loftyOr else you might actually make me quit the FOSS EDA scene like I've considered several times before13:12
loftyBecause I did not dedicate the better part of a year of my life to studying the state of the art in logic synthesis13:13
loftyfinding jobs in the open FPGA community, including one that has not paid me for the better part of eight weeks13:13
loftyfor you to tell me I do not know what I'm talking about when it comes to logic synthesis.13:14
mwklofty: what I'm saying is that EDA, FOSS or not, is not anywhere near the level of maturity or level of unifiedness of toolchains for C/C++ like LLVM; do you really want to dispute that?13:16
loftysee, that's not what you were saying earlier. you were saying that there was no way the EPFL libraries were going to be LLVM standard.13:18
mwkI'm saying they're quite lacking in scope compared to what LLVM is13:19
lofty"it's some clever algorithms stuffed into a package"13:20
loftyhow reductionist.13:20
mwkbut that's what's important13:20
loftysure, if you think that EPFL is just some clever algorithms stuffed into a package, then so is ABC. so is LLVM. so is GCC.13:20
mwkyeah, abc is algorithms in a package13:21
lofty"but that's not how LLVM is, LLVM is an intelligent flow from C to machine code"13:21
mwkLLVM and gcc have the defining feature of having a compiler driver13:21
mwkyou give it the C file, configure a target, get a binary file13:21
loftyjesus christ.13:21
mwkthat's the ease of use that defines an actual usable toolchain13:21
mwk*and* comprehensiveness13:22
*** lofty <[email protected]> has left #yosys (ah, fuck this shit, it's not worth it.)13:22
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 258 seconds)13:22
lkcli encountered this when working on samba.13:23
lkclwhich is 7+ separate and distinct networking protocols13:24
lkcland about 25 separate programs (separate networking daemons)13:24
lkclbut as far as end-users were concerned, they'd ask, "hi, i want a samba"13:24
lkcl(singular)13:24
lkclmwk, you seem to be displaying similar expectations13:25
lkclan expectation of simplicity which is typically achieved by large billion-dollar companies delivering monolithic products.13:25
lkclsoftware libre is literally the total polar opposite of that, even within a given project13:26
lkclapache2 for example was actually just one server that was developed as a use-case of libapr.13:27
lkclthe Apache Software Foundation encouraged and expected other software teams to develop services that had absolutely nothing to do with HTTP or HTTPS13:27
SarayanDon't we have a numbers of parts for that already?  rtlil as the IR, yosys for verilog and maybe vhdl, nmigen for, well, nmigen, nextpnr + a number of backends for final compilation?13:27
lkclindeed13:28
lkclthen coriolis2 takes either RTLIL or Verilog, calls *back* into yosys to generate BLIF13:28
mwkyes, I expect to have tools that are actually easy to use13:28
Sarayanperhaps a (non-trivial) effort to unify all that into something software-compiler like that actually makes it easy would be possible13:28
mwkand that actually work well together13:29
lkclcoriolis2 then reads the BLIF format and converts it to internal "AP" (Alliance) format13:29
mwknmigen, by the way, is an example of a project that *gets it right*13:29
mwkand is not developed by a bilion-dollar company13:29
lkclas well as a subset of VHDL13:29
mwkyosys does not13:29
lkclmwk: bear in mind you're very much annoying lofty by not listening to what he's saying, i'd be interested to hear why you believe that to be the case13:30
lkclfrom my perspective, yosys does an absolutely fantastic job of converting from one file-format to another-file-format13:31
lkclit does the job, and, in the UNIX philosophy, it does the job well and does not need to be expanded to do other jobs13:31
Sarayanwell, yosys does multiple jobs in practice13:31
lkcl(although there is the plugin system which allows people to expand to other areas)13:31
mwkunix philosophy is bullshit and has always been13:32
mwkeither way13:32
mwkthe problem with yosys is... subtle13:32
lkclmwk, ahhh, ok. that statement tells me many things.13:32
Sarayanunix' cc has always done compiling, assembling and linking, so there13:32
mwkwell, the obvious problem is that we still have no unified tool that takes a .v file and produces a .bit file13:33
mwkthat is very much the part that nmigen gets right, btw13:33
mwkbut about yosys itself13:33
lkclmwk: that's because it's not yosys's job.13:33
lkclyosys is an *intermediary* tool.13:33
Sarayanlkcl: it should be somthing's job13:33
mwkit's simultanously a pack of random passes and a pack of "full synthesis flows"13:34
lkcli just compiled up enough pieces of symbiflow to get an arty a7 .bit running13:34
mwkand the two are not really well separated13:34
lkclthe basis is that symbiflow *uses* yosys13:34
lkcljust as nmigen uses yosys13:34
lkcland coriolis2 uses yosys13:35
lkcland the openroad toolchain uses yosys13:35
lkclmwk: should yosys add the entire source code of nmigen to its codebase?13:35
lkclmwk: should yosys add the entire toolchain of coriolis2 to its codebase?13:35
lkclmwk: should yosys add the entirety of the symbiflow toolchain to its codebase?13:36
lkcljust so that yosys can be "The One Command"?13:36
lkclmm?13:36
mwkI never said I wanted yosys to be the one command13:36
lkclyou want "yosys to be the one command that does everything for you, everything built-in", yes?13:37
mwkbut we *should* have that command, in some form13:37
lkclwhy?13:37
mwkbecause usability matters?13:37
mwkor would you like to have a C compiler where you run the preprocessor, compiler, assembler and linker separately yourself, every time?13:37
lkclthe question you should be asking yourself is: why isn't everyone asking for this "one command"?13:37
lkclmwk: i am quite happy to create a Makefile that takes care of that task for me.13:38
lkclMakefiles are where the job of chaining output together happens13:38
lkclbecause - again - part of the unix philosophy that you strongly disagree with - make does the job very well of tracking dependencies and allowing you to express them13:39
mwklkcl: because people, in general, get used to toolchains that suck, having never seen anything better13:39
mwkand EDA is a whole lot of people getting used to toolchains that suck in ways that software development has outgrown some time ago13:40
lkcli know where you're coming from, it's just that from over 43 years experience in programming i don't have any problem with using small tools and chaining them together13:40
lkclthis is more, i feel, down to EDA hardware engineers not being trained as software engineers13:40
mwkmake, by the way, is impressively bad at its nominal job, which is why nowadays we have ninja13:41
lkcland, also, tolerating s*** proprietary toolchains because they absolutely have to13:41
lkclok. yep, i'm done with this conversation, too.13:42
lkclsorry, mwk: stating that make is "bad" is too much.13:42
mwkyes, there are better tools than make13:44
mwkand believing that tools are good because you're used to them is exactly what gets us into never improving them13:45
jeanthom"EDA hardware engineers not being trained as software engineers" this is totally true from my POV, but is this really a problem?13:45
mwkmake has never been good, that's why everyone uses a wrapper like autoconf or cmake, or spends a lot of time making their own mess13:46
mwkyou begin either rolling your own mess or using existing wrappers as soon as you want automatically-managed header dependencies in C13:46
mwksure, it's possible to do this using make itself, but we *have better tools*, and we should be striving to build the same kind of better tools for EDA as well13:47
mwkjeanthom: let's say that software engineering has solved a lot of problems that remain unsolved in the hardware world13:50
mwkoften for no good reason13:50
*** emeb <[email protected]> has joined #yosys13:58
*** vidbina_ <[email protected]> has joined #yosys14:31
Sarayanautoconf has never been about generating makefiles, automake is, and automake is an atrocious pile of crap14:54
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 252 seconds)15:38
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 258 seconds)15:50
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys15:50
*** emeb <[email protected]> has quit IRC (Quit: Leaving.)15:59
*** vidbina_ <[email protected]> has joined #yosys16:06
*** emeb_mac <[email protected]> has joined #yosys16:06
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 258 seconds)17:03
*** tmiw_ <[email protected]> has joined #yosys17:41
*** tmiw_ <[email protected]> has quit IRC (Quit: leaving)17:46
*** tmiw <[email protected]> has joined #yosys17:51
*** tmiw is now known as tmiw_17:55
*** tmiw_ is now known as tmiw17:55
*** emeb_mac <[email protected]> has quit IRC (Ping timeout: 252 seconds)19:33
*** emeb_mac <[email protected]> has joined #yosys19:37
*** FL4SHK <[email protected]> has quit IRC (Ping timeout: 250 seconds)21:26
*** jeanthom <[email protected]> has quit IRC (Ping timeout: 258 seconds)21:27
*** strobo <[email protected]> has quit IRC (Read error: Connection reset by peer)21:30
*** strobo <[email protected]> has joined #yosys21:31
*** vidbina_ <[email protected]> has joined #yosys21:32
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 258 seconds)21:37
*** emeb_mac <[email protected]> has quit IRC (Ping timeout: 258 seconds)21:38
*** vidbina_ <[email protected]> has joined #yosys22:00
*** emeb_mac <[email protected]> has joined #yosys22:16
*** vidbina_ <[email protected]> has quit IRC (Ping timeout: 240 seconds)23:03
whitequarkwtf happened here23:05

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