G’day all! I’ve been messing around with a TinyFPGA-BX and Migen, and I’m a bit confused about RAM … the specs say “128Kbit Block RAM” which is only 16KByte, less than I’d like but …

Elsewhere there’s references to Ice40s, at least some of them, having 64Kword * 16bit of “SPRAM” (single ported RAM). Which would be nicer :slight_smile:

Anyway, in Migen, with platform “tinyfpga_bx”, i can configure up to migen.Memory(16, 65536), eg: the latter. And I can hook it up to counters and stuff and it compiles, although I haven’t yet confirmed that it actually does anything (working on that now).

So my question is: 128KBit or 128KByte? Or have I missed something really obvious here?


Ha, never mind, I’ve just realized that I was asking for a 16-bit wide memory, but only reading a single bit of the output out to I/O, and so it was ignoring the width I’d asked for somehow. If I hook the output up to a set of eight I/O pins its memory usage goes up eightfold, I think …


The BX uses the ice40lp8k which has 16 kilobytes of BRAM. It is the ice40up5k which has SPRAM. Perhaps you need one of these - TinyFPGA based on iCE40-UP5K-SG48