Tuesday, 2020-06-02

*** tpb has joined #yosys00:00
*** emeb_mac has joined #yosys00:28
*** futarisIRCcloud has joined #yosys00:49
*** citypw has joined #yosys01:17
*** asinghan1 has joined #yosys02:00
asinghan1hwllo02:01
asinghan1I'm trying to synthesize for an ECP502:01
asinghan1And I'm having the issue where when I create a design with a block RAM with 9-bit width and 2048-bit depth, everything works fine02:01
asinghan1but if i increase it to 9-bit width and 4096-bit depth, yosys suddenly decides to use distributed RAMs instead of BRAMs02:02
asinghan1with everything else remaining the same02:02
az0reI guess this is yet another memory inference problem02:02
asinghan1(the 9-bit width and 4096-bit depth would require 2 block RAMs in the cascaded configuration, is there no way to infer the cascaded config?)02:02
asinghan1Do I just need to instantiate multiple memories and MUX between them in my BRAM wrapper?02:03
az0reI'm sorry, I don't really know enough about this part of Yosys to help you, but I think others like @whitequark and @mwk might know more (though you will need to be patient).02:03
az0re> Do I just need to instantiate multiple memories and MUX between them in my BRAM wrapper?02:03
az0reFrom my ignorant position, I say: Try it.  Sounds like it should work to me.02:04
az0reMaybe the ideal solution is to have it done automatically, but as a workaround to get your design working now, try it.02:04
*** Degi has quit IRC02:49
*** Degi has joined #yosys02:51
*** X-Scale` has joined #yosys04:39
*** X-Scale has quit IRC04:40
*** X-Scale` is now known as X-Scale04:40
*** FabM has joined #yosys05:02
*** dys has joined #yosys05:09
*** cr1901_modern has quit IRC05:11
*** cr1901_modern has joined #yosys05:13
corecodeawygle: yea, it's still quite some work06:16
daveshah9 bit width and 4096 depth should definitely map to multiple BRAM automatically06:26
daveshahI've done similar things many times, something else must be going on that's stopping it from mapping06:27
*** emeb_mac has quit IRC06:41
*** vidbina has joined #yosys07:01
*** BinaryLust has joined #yosys07:20
*** jeanthom has joined #yosys07:42
*** jakobwenzel has joined #yosys07:43
*** Asu has joined #yosys08:43
*** craigo has quit IRC08:49
*** BinaryLust has quit IRC10:06
*** az0re has quit IRC11:32
*** kgugala has joined #yosys11:40
*** N2TOH_ has quit IRC11:56
*** N2TOH has joined #yosys11:57
*** Asu has quit IRC11:58
*** Asu has joined #yosys11:59
*** vidbina has quit IRC12:02
jeanthomHi everyone! Does anyone know if you can use tristate signals in cxxrtl?12:24
*** kgugala_ has joined #yosys12:31
*** kgugala has quit IRC12:33
*** kgugala_ has quit IRC12:38
*** vidbina has joined #yosys12:41
ZirconiumXjeanthom: In what context?12:41
ZirconiumXI'm fairly sure if Yosys understands it cxxrtl can translate it, but the expert on it would be whitequark herself12:42
*** kgugala_ has joined #yosys12:43
jeanthomZirconiumX, I'm working on a "VirtualLatticeECP5Platform" for nMigen that uses CXXRTL instead of nextpnr. The goal here is to be able to emulate nMigen code that uses platform.request()12:46
ZirconiumXMmm. That's the wrong approach, IMO12:48
jeanthomI got a PoC working (I can emulate LambdaSoC on it and get uart I/O) but I wanted to make sure that cxxrtl "officially" supports bi-directionnal signals (say for SD card emulation)12:48
ZirconiumXCXXRTL - AFAIK - is considered entirely the wrong approach12:48
ZirconiumX.....12:49
ZirconiumXI'm brainfarting today12:49
ZirconiumXPlease excuse me12:49
ZirconiumX"CXXRTL is considered entirely a different platform"12:49
ZirconiumXAdditionally, "bidirectional" - AKA inouts - are supported fine by Yosys, but "tristate" issues warnings12:50
ZirconiumXIf you want to simulate an SD card, don't do it by simulating how a particular FPGA simulates an SD card12:51
ZirconiumXjeanthom: ^12:53
*** FFY00 has quit IRC12:55
*** FFY00 has joined #yosys12:57
jeanthomZirconiumX, What do you mean by "a different platform"? I know that by doing it this way my emulation will be far from being accurate (no timing emulation, etc.) but I thought it would be sufficient for doing basic things.12:57
ZirconiumXnMigen has platforms, right? That gets passed as the platform argument to elaborate()12:58
jeanthomyup12:58
ZirconiumXSo, instead of trying to emulate an ECP5's approach to doing things, just emulate the actual object somebody requests12:59
ZirconiumXWhen the user asks for an SD card, they're not asking for how an ECP5 does an SD card.12:59
*** kgugala has joined #yosys13:07
*** kgugala_ has quit IRC13:08
*** kgugala has quit IRC13:17
*** kgugala has joined #yosys13:19
*** vidbina has quit IRC13:23
*** vidbina has joined #yosys13:34
*** emeb has joined #yosys14:40
*** dxld has quit IRC14:53
*** dxld has joined #yosys14:56
*** vidbina has quit IRC15:26
*** citypw has quit IRC15:29
*** thardin has joined #yosys15:47
*** dys has quit IRC16:28
*** jakobwenzel has quit IRC16:33
*** az0re has joined #yosys16:34
whitequarkjeanthom: yeah what ZirconiumX says is correct17:01
whitequarkI don't foresee adding a Virtual* platform for every existing platform17:01
whitequarkif we do end up with platform simulations upstream (we probably will; #113) then it will happen without having to change user code17:01
ZirconiumXyay17:02
whitequarkprobably by adding another file generated by the build process or something like that, I'd have to think about it17:02
whitequarkjeanthom: also regarding tristate signals, you cannot use tristate signals in cxxrtl as it has no concept of 'z17:02
whitequarkand it is unlikely that it ever will, wires driven from multiple processes or assignments are a really bad fit for its architecture17:03
jeanthomwhitequark, thanks for your reply. My virtual platform wasn't meant to be upstreamed, it was just a PoC that I would have used for basic nmigen tutorials17:09
whitequarkI mean, people are asking for platform simulations, so it's probably better to have something that works for everyone17:10
whitequarkif we're going to have it at all17:10
whitequarkby tutorials, do you mean using CXXRTL to integrate a simulation with a simple GUI?17:10
jeanthomwhitequark, yup17:11
whitequarkcool! is there a reason you're using ECP5 specifically?17:12
whitequarkplatform.request() doesn't actually have to use tristate IO17:12
jeanthomwhitequark, https://i.imgur.com/VjcGSrX.gif17:12
*** anishathalye has joined #yosys17:12
whitequarkit gives to the nmigen code a triple of (i,o,oe) which cxxrtl is perfectly fine with, so those signals could be added as toplevel ports17:12
whitequarkis it just to reuse the ECPIX-5 board definition?17:12
jeanthomI'm working on some example code/tutorials for ECPIX-5 and I thought that having a simulator would be cool (not sure about the usefulness :D)17:13
whitequarkahh I see, yeah I do think it is quite cool!17:13
jeanthomusing the original board definition with few modifications was a goal of mine, I know someone who spent countless hours debugging gateware because they used PinsN instead of Pins in their gateware, and it wasn't visible in their simulation :)17:15
whitequarkhm yeah that's an issue17:16
*** dys has joined #yosys17:52
*** FabM has quit IRC18:33
*** craigo has joined #yosys19:40
*** jeanthom has quit IRC19:53
*** BinaryLust has joined #yosys20:09
*** dys has quit IRC20:17
*** ZirconiumX is now known as lofty22:17
*** lofty is now known as Lofty22:19
*** Asu has quit IRC22:23
*** BinaryLust has quit IRC22:31
*** lambda has quit IRC23:00
*** lambda has joined #yosys23:03
*** emeb has quit IRC23:48
*** emeb_mac has joined #yosys23:55

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