-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the ARMistiCE wiki!
This is an open source compute platform integrating an ARM (STM32) with an FPGA. The motivation for the project is that a processor combined with an FPGA is far more powerful than either in isolation. While its possible to map a RISCV processor into an FPGA, this is certainly not the most useful thing to do since that eats up large amounts of logic without really much to be gained in terms of functionality.
An FPGA while difficult to program, is great at parallel processing and running in hard real-time: think twiddling bits, running a large number of motor controls in parallel and so on. A processor, on the other hand, is far easier to program and comes with a very dense set of peripherals (I2C, ADC, timers...) that allow users to quickly prototype their code and get going. FPGA's tend ot be power hungry while processors are usually optimized for low power consumption.
A combined platform when properly integrated, should allow the user to take advantage of the strengths of either platform.
The entire design is open source all the way from CAD tools through SW.
As with most names, this story is reverse engineered! Rather than fighting about whether an FPGA makes sense in a particular application or an FPGA, we decided to have an Armistice :)
- ARM (STM32?) for general-purpose compute
- iCE40UP5K or similar open-source toolchain FPGA
- Low power
- Low cost
- Easy programming (drag/drop for FPGA bit files, Arduino for STM32)
- Clearly defined libraries/interfaces (ARM/FPGA side) to communicate between compute engines
- Able to use vendor libraries (think CMSIS)
- Low cost (Target sale price of 20USD: because this is the VAT limit in most countries)
- Small form factor
- Host computer interface
- micro USB?
- What protocol to run over USB: UART, SPI, something else?
- Interface between FPGA and STM32
- qSPI
- Parallel
- High speed serial?
- Interface to the outside world
- How many IO from processor vs. FPGA direct IO's?
- Which STM32 to use?
- We want plenty of memory and RAM
- Reasonably fast
- Low cost
- Small (5x5 QFN is good)
- Low power (L series?)
- USB connectivity
- Plenty of peripherals
- What should run on the STM32 by default?
- Micropython
- FreeRTOS
- Ease of use
- How can we plug into the most common programming models such as Arduino, icestudio etc?
- Shape
- Can this be made into a feather form factor so we reuse the same footprint & feather ecosystem?
- Flexible
- What does this mean?