IceStamp FPGA in DIL28 and UPduino in DIL32

Tue Oct 24, 2017 9:27 am
This is a prototype we have got a chance to play with:
1. built around Lattice ICE40LP384, 384 cells, 21 IOs
2. DIL28 socket, single 3.3V power
3. the FPGA bitstream loads from the on-board flash, or from an MCU, ie. stm32, etc.
4. flash programming for example via the cheapo “usbasp” programmer (modded fw, free), or an FT232H, etc.
5. FPGA development (verilog, vhdl) in Lattice’s IceCube2 or in IceStorm (both free)

IceStamp_prototype.jpg (91.48 KiB) Viewed 916 times

Tue Oct 24, 2017 3:40 pm
There is also this one :


I’ve purchased 2 of them recently and played a bit with it.

Tue Oct 24, 2017 4:07 pm
Do they really cost only 7.99$ for
5.3K LUTs, 1Mb SPRAM, 120Kb DPRAM, 8 Multipliers ?

That is ways better than the 384 cells of the other board.
5.3K LUTs could even be sufficient for a small MC, I think.

Tue Oct 24, 2017 4:58 pm
For that price you can get only the FPGA chip (from Digikey) :shock:

Tue Oct 24, 2017 8:13 pm
The guy who produce UPDuino boards probably got a good discount for its chip, because he is really selling those at $7.99 free shipping, I’ve purchased 2 boards, and got them by regular post envelop within a week, USA to Canada.

Mon Nov 06, 2017 8:10 pm … Board.aspx
Lattice supplied the chips, I would guess :)

The UPduino board is of great size – DIL32, interestingly the pcb is almost transparent (as it lacks any solid ground plane, not easy to do in such format with only 2 layers). SPI flash and a voltage regulator at the bottom side. It calls for 4 layers, sure.

These chips are (ultra) low power, but quite fast (40nm technology, the smaller one runs here 320MHz internally) so a good grounding could be necessary..

Wed Nov 08, 2017 2:49 pm
Until now, I didn’t faced any issue about grounding, even using it with 20cm dupont wires.
I’ve been able to port some simple old project done in the past on Altera or Xilinx, a I2C Slave controlling 3 PWM output to the RGB Led, overall using only 10% of the LUT. Considering that this chip has already some HW I2C builtin, which I didn’t use, maybe I should redo the project using them to drop usage below 5%.

Rick Kimball
Wed Nov 08, 2017 3:32 pm
@martinayotte have you tried out LatticeMico32 on that board? If so, how much of the chip does it use?

Wed Nov 08, 2017 3:58 pm
to the RGB Led
@Martin: I’ve been blinded by your RGB demo (from eevblog) running just now in front of me.. 8-)
Grounding/gnd_planes: is important because of signal integrity issues, quite common with fpga designs.. The IceXX chips support ie LVCMOS 3.3/2.5/1.8/1.2V, diff signalling – LVDS25E, subLVDS with input speeds~500Mbit/s. Thus the signal integrity is important.

Thu Nov 09, 2017 9:59 pm
[Rick Kimball – Wed Nov 08, 2017 3:32 pm] –
@martinayotte have you tried out LatticeMico32 on that board? If so, how much of the chip does it use?

I know a bit about LatticeMico32 as I’ve look at while ago to see if it could be ported to Xilinx or Altera.
I’m really not sure how much LUTs it will take and if it will even fit in those tiny UPDuino …
I’m busy these days, but maybe I will try when I will get a chance !

Thu Nov 09, 2017 10:04 pm
[Pito – Wed Nov 08, 2017 3:58 pm] –
@Martin: I’ve been blinded by your RGB demo (from eevblog) running just now in front of me.. 8-)

The RGB demo I’ve posted on EEVBlog is only gnarlygrey example modified to have a FSM with 8 colors, it has nothing with the one I’ve mentioned above with 3x 8bits PWM controlled by I2C slave, which can then fadein/fadeout over million of colors … ;)

Fri Nov 10, 2017 10:37 pm
The Zylin’s ZPU example (but with ~half bram size than the HX8K set in source, needs some fine tuning) fits easily into UPduino
Logic Resource Utilization:
Total Logic Cells: 2249/5280
Combinational Logic Cells: 1558 out of 5280 29.5076%
Sequential Logic Cells: 691 out of 5280 13.0871%
Logic Tiles: 349 out of 660 52.8788%
Logic Registers: 691 out of 5280 13.0871%
IO Registers: 0 out of 480 0
Block RAMs: 16 out of 30 53.3333%

Rick Kimball
Sat Nov 11, 2017 3:51 pm
[Pito – Fri Nov 10, 2017 10:37 pm] –
The Zylin’s ZPU example (but with ~half bram size than the HX8K set in source, needs some fine tuning) fits easily into UPduino

That looks interesting however it seems like development on it has stalled. Is there someplace that talks about that softcore. Everything I found seems to have cooled off in 2015.

Sat Nov 11, 2017 4:19 pm
Indeed, interesting !
Especially that I have already played with original AlvieBoy’s ZPUino on Xilinx.

Sun Nov 12, 2017 1:22 pm
That looks interesting however it seems like development on it has stalled.
I think that is the tendency nowadays. You can hardly design a better performing sw MCU inside any fpga than are the cheapest hw off-the-shelf offerings today. The designs are therefore either retro computing exercises, or more-less for educational purposes. If you need a sw MCU within your fpga design all those are considered mature. The fpga vendors published their soft MCUs 10y back in average. Moreover, as an improvement, they started to place hw MCUs inside their fpga fabric..

Rick Kimball
Fri Nov 17, 2017 9:43 pm
[martinayotte – Tue Oct 24, 2017 3:40 pm] –
There is also this one :

Mine just showed up in a plain white envelope .. You can see the holes in the plastic bag where the mail sorter machinary squished it .. * crosses fingers and solders on the pins : )

Fri Nov 17, 2017 10:17 pm
yep, white envelope, single wrap of thinnish bubble wrap.
both appear ok.
rather prompt as i was expecting aliexpress travel rates. :)

Sun Nov 19, 2017 1:10 pm
Swapforth J1a running on UPduino @ 40MHz, 460k uart, teraterm terminal, built under IceCube2:
Device Utilization Summary
LogicCells : 1153/5280
PLBs : 220/660
BRAMs : 16/30
IOs and GBIOs : 24/36
PLLs : 1/1

Thu Nov 30, 2017 9:01 am
Mecrisp-Ice (an enhanced hw version of j1a and enhanced sw version of swapforth/mecrisp-forth) on UPduino, with 12kB of ram and load/save to an external flash.
Mecrisp-Ice 1.0

here . 5892 ok.
unused . 6396 ok.
words FACS FAC .FAC SETUP *BUFF LAST F-BUFF MAX-DIGITS save new cornerstone save erase spiwe waitspi random
randombit delay ticks now leds ms endcase endof of case s" within pad unused ." mod / /mod move u.r .r d.r rtype u. . d.
ud. (d.) #> #s # sign hold <# hld BUF BUF0 spaces */ */mod fm/mod sm/rem sgn constant variable m* >body create repeat
while else <= >= u<= u>= ( [char] ['] eint? dint eint load spi> >spi spix idle xor! bic! bis! quit evaluate refill accept number
\ char ' postpone literal abort rdrop [email protected] r> >r hex binary decimal unloop j i +loop loop ?do leave do recurse does> until again
begin then if ahead ; exit :noname : ] [ immediate foldable sliteral s, compile, c, , allot parse parse-name source 2! [email protected]
cmove> cmove fill sfind align aligned words here tib init forth >in base state /string type count .x .x2 bl cr space c! [email protected] emit
key key? emit? um/mod * um* d2* d0= m+ s>d dabs d- dnegate d+ depth [email protected] io! nip over dup swap u< < = invert not or and
xor - + ! 2/ 2* cells abs bounds umax umin max min 2over 2swap +! 2dup ?dup 2drop tuck -rot rot true false drop u> 0> 0<
> 0<> <> cell+ 0= rdepth @ 1- negate 1+ arshift rshift lshift execute ok.
300 FAC .FAC 306,057,512,216,440,636,035,370,461,297,268,629,388,588,804,173,576,999,416,776,741,259,476,533,176,716,
000,000,000,000,000,000,000,000,000,000,000 ok.

Leave a Reply

Your email address will not be published. Required fields are marked *