<janrinze>
ZipCPU: have you been able to infer the hardware multiplier of up5k with yosys?
<ZipCPU>
janrinze: I just tried, and it didn't infer ... let me update my version and see if this was fixed recently at all
<ZipCPU>
With the updated version it still doesn't infer
<ZipCPU>
I'm not sure if this capability has been built into yosys yet. I know I've heard daveshah and clifford discussing how they might add it, but not the results of those conversations
<janrinze>
with BRAM it had a special way of inferring. might there be a thingy for the multiplier too?
<daveshah>
We'll be working on that next year
<janrinze>
daveshah: the BRAM had a special way of explicitly inferring. is there a similar library for the multiplier?
<ZipCPU>
I'm pretty sure you can instantiate the underlying DSP element directly, just never tried doing it.
<janrinze>
ZipCPU: only if i know what the module is called :D
<daveshah>
SB_MAC16
* ZipCPU
is checking the yosys/techlibsecp5 directory to see if its there
<ZipCPU>
SB_MAC16? Is it a 16x16 MAC as opposed to the 18x18 I've gotten used to from Xilinx?
<janrinze>
ZipCPU: yes, all documentation refers to 16x16
<ZipCPU>
Here it is: techlibs/ice40/cells_sim
<janrinze>
daveshah: I wish there was a way to change only the pll setting after running yosys and nextpnr
<daveshah>
hmm, that shouldn't be too hard a tool to make
<daveshah>
or you could use the PLL SPI to configure it at runtime
<janrinze>
daveshah: would it be okay to set the required bits from say a register and allow it to be rewritten during runtime?
<janrinze>
the SB_PLL40_CORE parameters, can they be registers?
<daveshah>
no, they are bits in the bitstream - the only way to change them at runtime is using the SPI interface (but that isn't really documented)
<janrinze>
the thing is that when i run yosys and nextpnr the end result varies in speed. changing the pll requires another round of yosys and nextpnr and then the speed is not matching anymore.
<janrinze>
okay, the bits in the bitstream should be easy to modify if we know which bits they are :D
<sorear>
i'm going to keep pitching my "bitstreams with undefined symbols and relocations" idea as long as people keep asking for this
<janrinze>
sorear: would that be similar to having ip-blocks that don't need rebuilding?
<sorear>
there could be some overlap, but I can't comment more until I understand hierarchical PnR / floorplanning
<janrinze>
daveshah: is the floorplan a quad-tree?
vidbina has joined #yosys
<daveshah>
the quadtree is used for handling mouse coordinates in the GUI
<janrinze>
daveshah: using a quadtree allows symmetric operations on cells like mirroring, rotation etc. to reduce wire length
markus-k has joined #yosys
vidbina has quit [Read error: Connection reset by peer]
vidbina has joined #yosys
vidbina has quit [Read error: Connection reset by peer]
vidbina has joined #yosys
vidbina has quit [Ping timeout: 250 seconds]
vidbina has joined #yosys
vidbina has quit [Ping timeout: 240 seconds]
kraiskil_ has quit [Ping timeout: 245 seconds]
kraiskil_ has joined #yosys
m_t has joined #yosys
vidbina has joined #yosys
rohitksingh has quit [Ping timeout: 250 seconds]
m_t has quit [Read error: Connection reset by peer]
tmeissner has joined #yosys
seldridge0 has joined #yosys
vidbina has quit [Ping timeout: 244 seconds]
vidbina has joined #yosys
tmeissner has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
rohitksingh has joined #yosys
tmeissner has joined #yosys
kraiskil_ has quit [Read error: Connection reset by peer]
vidbina has quit [Ping timeout: 250 seconds]
vidbina has joined #yosys
vidbina has quit [Ping timeout: 252 seconds]
vidbina has joined #yosys
pie__ has joined #yosys
pie__ has quit [Remote host closed the connection]
pie__ has joined #yosys
pie__ has quit [Ping timeout: 245 seconds]
m4ssi has quit [Remote host closed the connection]
kraiskil has joined #yosys
vidbina has quit [Ping timeout: 250 seconds]
vidbina has joined #yosys
tmeissner has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
wavedrom has joined #yosys
tmeissner has joined #yosys
pie__ has joined #yosys
rohitksingh has quit [Ping timeout: 245 seconds]
vidbina has quit [Ping timeout: 268 seconds]
kraiskil has quit [Read error: Connection reset by peer]
kraiskil has quit [Read error: Connection reset by peer]
kraiskil has joined #yosys
pie__ is now known as [redacted]
[redacted] is now known as pie__
<swetland>
can't one invoke nextpnr and specify the random seed? presumably there should be some way to get identical outputs given suitably identical inputs -- since the PLL parameters don't affect placement, if everything else (including constraints, random seed, etc) is the same, shouldn't one be able to get the same layout?
kraiskil has quit [Read error: No route to host]
pie__ has quit [Ping timeout: 252 seconds]
kraiskil has joined #yosys
pie_ has joined #yosys
<daveshah>
Yes, you can specify the seed with --seed, it defaults to 1
<daveshah>
It could be that your C++ library is randomising unordered_map ordering and we rely on that somewhere
kraiskil has quit [Read error: Connection reset by peer]
pie__ has joined #yosys
pie_ has quit [Ping timeout: 252 seconds]
vidbina has joined #yosys
vidbina has quit [Ping timeout: 252 seconds]
<janrinze>
daveshah: does up5k work okay with icepll generated pll?
<janrinze>
i get an error:ERROR: PLL 'mypll.uut' couldn't be placed anywhere, no suitable BEL found. Did you mean to use a PAD PLL ?
<daveshah>
You probably need to use a PAD PLL variant for your board
<daveshah>
This is dependent on which pin is used for clock output
<janrinze>
LOL.. yes that's what the error says
<janrinze>
but the 12 MHz is on a pad, right?
kraiskil has joined #yosys
<janrinze>
board is the up5k eval board
<janrinze>
lattice one, simple board.
<janrinze>
does the output have to be a pin too?
<daveshah>
No, the output can go to fabric or a global network
<janrinze>
okay, according to the docs pin 35 has 12MHz clock
<janrinze>
so i was assuming that can be used for pll input
<daveshah>
Yes, that is the dedicated PLL input pin so you have to use the _PAD not _CORE PLL variant
<janrinze>
aha! thanks!
<janrinze>
icepll by default generates a _CORE
<janrinze>
daveshah: i'll take a good look at your nes example to find out more things specific for the up5k. Already saw the spram there too.
rohitksingh has quit [Ping timeout: 245 seconds]
<swetland>
also, if you want to be able to use that 12M clock as well as the PLL generated clock you need to use SB_PLL40_2_PAD which provides the original clock as well as the generated clock