*** tpb has joined #yosys | 00:00 | |
*** kraiskil has quit IRC | 00:18 | |
*** vidbina has quit IRC | 00:36 | |
*** dh73 has quit IRC | 01:09 | |
meawoppl | followup, is bitrange assigment like this legit | 01:19 |
---|---|---|
meawoppl | reg[15:0] foo; | 01:19 |
meawoppl | posedge @(whatever) | 01:19 |
meawoppl | foo[15:8] <= foo[7:0]; | 01:19 |
meawoppl | ? | 01:19 |
*** zkms has quit IRC | 01:30 | |
*** zkms has joined #yosys | 01:30 | |
ZipCPU | meowppl: Yes, that's a legitimate assignment. I like to place the assignment to foo[7:0] nearby, but it can be done in a separate block | 01:31 |
ZipCPU | (Verilator might have problems with separate blocks for separate parts of a value, but it is legal Verilog) | 01:31 |
*** quigonjinn has quit IRC | 01:33 | |
*** rohitksingh has joined #yosys | 02:18 | |
*** rohitksingh has quit IRC | 02:22 | |
*** GenTooMan has joined #yosys | 02:41 | |
*** rohitksingh has joined #yosys | 03:17 | |
*** allenlorenz has joined #yosys | 03:36 | |
*** pie_ has quit IRC | 03:41 | |
*** pie_ has joined #yosys | 04:25 | |
*** pie_ has quit IRC | 04:31 | |
*** rohitksingh has quit IRC | 06:06 | |
*** rohitksingh has joined #yosys | 06:14 | |
*** Jybz has joined #yosys | 06:54 | |
*** emeb_mac has quit IRC | 06:57 | |
*** rohitksingh has quit IRC | 07:01 | |
*** FL4SHK has joined #yosys | 07:30 | |
*** fsasm has joined #yosys | 08:55 | |
*** kraiskil has joined #yosys | 10:04 | |
*** kraiskil has quit IRC | 10:28 | |
*** kraiskil has joined #yosys | 10:32 | |
*** rombik_su has joined #yosys | 10:52 | |
*** pie_ has joined #yosys | 10:59 | |
*** pie_ has quit IRC | 11:27 | |
*** kraiskil has quit IRC | 11:53 | |
*** rohitksingh has joined #yosys | 12:04 | |
*** kraiskil has joined #yosys | 12:09 | |
*** Laksen has joined #yosys | 12:25 | |
*** pie_ has joined #yosys | 12:47 | |
*** pie_ has quit IRC | 12:56 | |
*** pie_ has joined #yosys | 13:10 | |
*** kraiskil has quit IRC | 14:16 | |
*** rohitksingh has quit IRC | 15:09 | |
*** mwk has quit IRC | 16:38 | |
*** rohitksingh has joined #yosys | 17:05 | |
*** mwk_ has joined #yosys | 17:08 | |
*** mwk_ is now known as mwk | 17:08 | |
*** rohitksingh has quit IRC | 17:14 | |
*** emeb_mac has joined #yosys | 17:30 | |
*** emeb_mac has quit IRC | 17:35 | |
*** kraiskil has joined #yosys | 19:47 | |
*** X-Scale has quit IRC | 20:23 | |
*** Laksen has quit IRC | 20:23 | |
Xiretza | I can't get synth_xilinx to infer true dual port RAMs (two read and write ports, one of each per clock domain), is that simply not supported yet? | 20:34 |
*** X-Scale has joined #yosys | 20:35 | |
whitequark | yes | 20:37 |
whitequark | yosys can't do TDP RAM at all yet | 20:37 |
*** Jybz has quit IRC | 20:38 | |
Xiretza | ooooh, I see, that explains it. I guess it was never necessary for ICE40/ECP5 | 20:38 |
daveshah | It is necessary for ECP5 | 20:38 |
daveshah | It's just memory_bram is too horrible for anyone to have attempted to do it yet | 20:38 |
Xiretza | that doesn't exactly inspire confidence in trying it myself... to be clear, most configurations with just a single clock domain should be possible, just not two independent clocks per $mem? | 20:42 |
mwk | Xiretza: no | 20:44 |
mwk | the problem is that yosys doesn't know how to merge a single port in both read and write modes | 20:45 |
mwk | *how to use | 20:45 |
mwk | so if you read from memory in one place, and write to it in another place, it has to use two different ports | 20:46 |
Xiretza | mwk: and yosys only supports a single port per memory? | 20:47 |
mwk | no | 20:49 |
mwk | it supports however many ports are available | 20:49 |
mwk | just every available port can only be either read or write, not both at once | 20:49 |
Xiretza | mwk: okay, and how do those relate to clock domains? do all ports have to be on the same clock? | 20:50 |
mwk | clock domains don't matter, it's about ports | 20:54 |
mwk | the two ports can be on two different clocks, and yosys does support that | 20:54 |
Xiretza | so it can only use each of the two ports a RAMB36E1 offers as either read or write (so read+read, read+write, or write+write, only one of which makes sense)? | 20:57 |
mwk | correct | 20:57 |
daveshah | read-read would make sense for a ROM | 20:57 |
daveshah | but it's not supported | 20:57 |
mwk | huh, it's not? | 20:58 |
daveshah | I don't think so, it would need an extra rule for memory_bram | 20:58 |
mwk | ugghh | 20:58 |
mwk | right | 20:58 |
mwk | of course | 20:58 |
daveshah | memory_bram itself should support such a pattern | 20:58 |
Xiretza | daveshah: right, are those built from RAMB36E1 though? | 20:58 |
daveshah | but the rules and techmaps don't | 20:58 |
daveshah | Xiretza: yes or RAMB18E1 for smaller ones | 20:58 |
*** pie_ has quit IRC | 21:01 | |
Xiretza | interesting, for some reason I thought there were separate ROM blocks. alright then, seems like some more in-depth work is required, don't think I have much of a chance to take that on. I'll just keep the designs I'm testing to two ports for now | 21:01 |
*** pie_ has joined #yosys | 21:02 | |
mwk | ROM is just preinitialized RAM with the ports used only for read | 21:02 |
Xiretza | yeah, it makes sense now that I think about it, just never occured to me | 21:03 |
Xiretza | thanks a lot for all your help! | 21:03 |
*** fsasm has quit IRC | 21:08 | |
*** _whitelogger has quit IRC | 21:13 | |
*** _whitelogger has joined #yosys | 21:15 | |
*** meawoppl has quit IRC | 21:19 | |
*** m_w has joined #yosys | 21:59 | |
*** m_w has quit IRC | 22:00 | |
*** cr1901_modern has quit IRC | 22:54 | |
*** pie_ has quit IRC | 23:04 | |
*** cr1901_modern has joined #yosys | 23:04 | |
*** pie_ has joined #yosys | 23:06 | |
*** pie_ has quit IRC | 23:08 | |
*** pie_ has joined #yosys | 23:09 | |
*** lutsabound has joined #yosys | 23:15 | |
*** pie_ has quit IRC | 23:21 | |
*** pie_ has joined #yosys | 23:21 | |
*** emeb_mac has joined #yosys | 23:23 | |
*** pie_ has quit IRC | 23:53 | |
*** rombik_su has quit IRC | 23:56 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!