Tuesday, 2020-07-07

*** tpb has joined #tomu00:00
*** daurnimator has quit IRC00:04
*** daurnimator has joined #tomu00:11
*** craigo has quit IRC03:23
*** unlobito_ has joined #tomu03:27
*** unlobito has quit IRC03:27
*** unlobito_ is now known as unlobito03:27
*** emeb has quit IRC03:44
*** ppisati has quit IRC04:19
*** ppisati has joined #tomu04:26
*** st-gourichon-fid has joined #tomu05:42
daurnimatorhttps://fossi-foundation.org/2020/06/30/skywater-pdk07:13
tpbTitle: Produce your own physical chips. For free. In the Open. (at fossi-foundation.org)07:13
daurnimatorgetting a bit of press on HN07:16
*** st-gourichon-fid has quit IRC07:16
*** st-gourichon-fid has joined #tomu07:56
*** st-gourichon-fid has quit IRC08:07
*** st-gourichon-fid has joined #tomu08:09
*** st-gourichon-f has joined #tomu08:14
*** st-gourichon-fid has quit IRC08:16
*** daurnimator has quit IRC08:30
*** keesj has joined #tomu08:36
*** daurnimator has joined #tomu08:48
*** scientes has joined #tomu10:20
scientesCan I use https://github.com/circt/circt with Fomu?10:21
tpbTitle: GitHub - circt/circt: Circuit IR Compilers and Tools (at github.com)10:21
xobsI'm not sure what that is, but I do see references to emitting Verilog, which you could then feed to yosys.10:26
scientesI found this https://workshop.fomu.im/en/latest/background.html10:26
tpbTitle: Background FPGA Tomu (Fomu) Workshop 0.1-194-g810431e documentation (at workshop.fomu.im)10:26
scientesI am just a software person new to FPGAs10:27
scientesxobs, and is there some code that shows using the USB bus?10:28
xobsscientes: From a software perspective, you can just use tinyusb: https://workshop.fomu.im/en/latest/riscv.html#further-risc-v-experiments10:29
tpbTitle: Fomu as a CPU FPGA Tomu (Fomu) Workshop 0.1-194-g810431e documentation (at workshop.fomu.im)10:29
xobsFomu has no external USB component -- the USB hardware is actually in the FPGA bitstream. So if you want to do something with e.g. Verilog, you need to include it in your bitstream.10:31
xobsIf you create a module using litex, the USB core is added automatically. Manually adding it in litex looks something like: https://github.com/im-tomu/valentyusb/10:32
tpbTitle: GitHub - im-tomu/valentyusb: FPGA USB stack written in LiteX (at github.com)10:32
scientesthis looks like the cheapest way to start with FPGAs10:33
daurnimatorscientes: ah; you can update the workshop docs to add zig :)10:33
scientesI would kinda like something with a better bus, but given that I am on laptop, I think FOMU is the best I am going to get10:35
xobsWhat do you mean a better bus?10:36
xobsMore I/Os?10:36
scientescan you view the actual generated LUT code for these things?10:43
scientesis that open source?10:43
xobsIt's all open source, so yes you could view the floorplan. Most FPGA tools, even closed ones, will let you view the floorplan. `nextpnr-ice40` as it's shipped right now doesn't have Qt enabled, because Qt is hard to build and distribute.10:45
xobsYou can probably get yosys to generate the output somehow, but I'm unclear how to exactly do that.10:46
scientescool, so I can work on compiling directly to this thing10:46
scientesawesome10:46
xobsIt'd be a bit like asking for disassembly of software if your cpu only had one instruction.10:47
scientescause with arm/x86 you end up looking at a C machine all the time and it warps people perspective, like zig does not do strict aliasing because it was too hard on people's brains10:47
mwfcas to cheapest fpga solution to learn, depending on how many IOs you need, there are a couple of other boards in the price range with ICE40. the FOMU is awesome as it completely fits in your usb port10:47
scientesmwfc, yeah i can just stick it in my 2nd usb port of my laptop (other for mouse)10:49
scientesI want to try compiling parsers directly to FPGA10:51
mwfcneat10:53
scientes16 x 16 Multiply & 32 bit Accumulator Blocks 4 810:55
scientesso you can't do much even addition or subtraction unless you want to do scheduling10:57
xobsYou can do a ton of addition. Or subtraction. You just have to build it all up yourself.11:07
xobsOr rather, let the synthesizer do it for you.11:07
scientescan you link me to a sample floor plan11:08
xobsThose DSP blocks are just to save on space. You could do a 16x16 multiply in logic, but it's not cheap. I want to say on the order of 400-500 LCs. Whereas a DSP unit is just one logic element plus some glue.11:08
scientesthat background doesn't cover routing11:08
scientesxobs, that is why clang is adding i3, i5 et cetera11:08
scienteswhich llvm has supported forever11:08
xobsI'm not sure how useful floorplanning is in the open source tools. For example, here's a floorplan in Vivado: https://forums.xilinx.com/t5/Implementation/Query-of-placed-amp-routed-IP-in-FPGA-floorplan/td-p/81507811:10
tpbTitle: Solved: Query of placed & routed IP in FPGA floorplan - Community Forums (at forums.xilinx.com)11:10
xobsnextpnr has https://camo.githubusercontent.com/55494d385a06b28afbe9dfc10c245453ac9e2a7f/68747470733a2f2f692e696d6775722e636f6d2f3073706d6c42612e706e67 in their readme.11:10
scientesI am just trying to understand what the hardware fundamentally is11:17
scienteshow do these interconnects work?11:17
xobsIf you look in the most recent picture, you can see wires connecting everything together. FPGAs, and in particular ones like the ICE40 used in Fomu, have a ton of wires connecting everything together.11:19
scientesoh ok, so you can basically just say this wire connects to this wire, and it figures it out11:19
scientesand then arranges your LUTs for you11:19
xobsYou could do that, but it very quickly grows unwieldy.11:19
scientesI'm just trying to figure out what the hardware is11:20
scientesof course everything is automated11:20
xobsSo in practice, unless you're doing something truly bizarre like a ring oscillator, rather than designing an adder out of Logic Cells, you say `x = y + z` and let the synthesizer build one out of LCs for you.11:21
xobsThe fundamental LCs in the ICE40 are a 4-input LUT (which was pictured on the first link you sent). That and a ton of wires.11:22
*** craigo has joined #tomu12:21
*** emeb has joined #tomu14:21
*** daurnimator has quit IRC15:40
*** daurnimator has joined #tomu15:48
scientes"no datapath bypass" https://github.com/SpinalHDL/VexRiscv16:24
tpbTitle: GitHub - SpinalHDL/VexRiscv: A FPGA friendly 32 bit RISC-V CPU implementation (at github.com)16:24
scienteswhat does that mean?16:24
scientesahh it just means turning off some optimization16:25
xobsYeah, it has to do with how the CPU pipeline works. Here's a SO response that seems to describe it well: https://stackoverflow.com/questions/40054344/pipelining-with-bypassing16:26
tpbTitle: pipeline - Pipelining with bypassing - Stack Overflow (at stackoverflow.com)16:26
scientesahh so no multiply, divide, compressed instructions16:28
scientesor floating point (of course)16:28
xobsThey're currently disabled.16:28
scientesand a slow shift16:28
scientes"static branch" does that mean static branch prediction?16:28
xobsThere was a branch that enabled multiply instructions at the expense of the debug core.16:28
xobsI believe static branch means it will always take the branch if it's backwards.16:29
scientesok, so this is a pretty small FPGA16:30
xobsIt is.16:30
xobsIt's also a small FPGA.16:30
xobsIt also has 128 kB of RAM, which is relatively rare in this size of FPGA.16:30
scientesand a really open toolchain16:31
scienteshow do i install valentyusb18:22
scientesI am more of a C person18:22
CarlFKscientes: have you done the workshop tutorial? (you can do it on your own in a few hours, ask here for help if you get stuck)18:25
scientesCarlFK, well I don't have the Fomu so i have to build it and get verilog to use verilator18:26
CarlFKwhere are you located?18:27
CarlFKgiven your interest in this stuff, you should have one.18:28
scientesyeah I will get one in a bit18:28
scientesI am in Georgia, the country18:28
scientesbut I am from the US18:29
CarlFKheh - I read Georgia on the country18:30
CarlFKer, in, not on.18:30
CarlFKheh - I read Georgia in the country18:30
*** st-gourichon-f has quit IRC21:51
*** mithro has quit IRC22:47
*** jeroud has quit IRC22:47
*** guan has quit IRC22:47
*** y2kbugger has quit IRC22:49
*** elms has quit IRC22:50
*** tannewt has quit IRC22:50
*** carlomaragno has quit IRC22:50
*** futarisIRCcloud has quit IRC22:50
*** daveshah has quit IRC22:50
*** eddyb[legacy] has quit IRC22:51
*** benno has quit IRC22:51
*** ovf has quit IRC22:51
*** kcnickerson_____ has quit IRC22:51
*** englishm has quit IRC22:51
*** feklee has quit IRC22:51
*** _florent_ has quit IRC22:51
*** LWK has quit IRC22:51
*** lathiat has quit IRC22:51
*** ukembedded has quit IRC22:51
*** johnhmay has quit IRC22:51
*** thepatr1ck has quit IRC22:51
*** esden has quit IRC22:52
*** flammit has quit IRC22:53

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