Commit e2e7cb58 authored by Alan Wood's avatar Alan Wood

Documentation added Implications

parent 488b6132
mystorm SDK
myStorm SDK
===========
The SDK is being developed in order to help developers and myStorm paticipants use the features offered by myStorm boards (Initially just teh SDK Board). This is code and documentation is very much under construction and should be seen as a living set of code and documents. Any feedback and contribution is very much appreciated.
The SDK is being developed in order to help developers and myStorm participants use the features offered by myStorm boards (initially just the SDK Board). This is code and documentation is very much under construction and should be seen as a living set of code and documents. Any feedback and contribution is very much appreciated.
#Introduction
# Introduction
The myStorm SDK board essentially consists of two major components from a development standpoint, first is a Lattice Ice40HX4K FPGA which can be programmed in Verilog (and later VHDL) using Clifford Wolf's IceStorm toolchain and an STM32l476 Arm Cortex M4 microcontroller which can be targeted via a cross chain arm eabi gcc. Other tools can also be used for development but those mention here are the focus of the SDK, if anyone wishes to add in more toolset support please fork and request a pull.
The myStorm SDK board essentially consists of two major components from a development standpoint, first is a Lattice Ice40HX4K FPGA which can be programmed in Verilog (and later VHDL) using Clifford Wolf's IceStorm toolchain and an STM32l476 Arm Cortex M4 microcontroller which can be targeted via a cross chain arm eabi gcc. Other tools can also be used for development but those mention here are the focus of the SDK, if anyone wishes to add in more tool set support please fork and request a pull.
One of the ways in which myStorm SDK differes from the other low cost FPGA development boards particularly based around teh Ice40 series is the addition of teh Arm Cortex processor. Most of the other boards purely target the Ice40 FPGA only and use FTDI chips to move bitimages into the FPGA through development. With myStorm we initially took a different view for how we wanted to target a low cost stand alone SDK, we figured for teh rpice of the FTDI chip we could actually include a 'Hardcore' CPU within our design for little cost impact. Given we are trying to obtain maximum bang for our buck with myStorm this is a path we have chosen to follow for the SDK. There are several advantages to adding in a hardcore microcontroller over just a standalone FPGA:
One of the ways in which myStorm SDK differs from the other low cost FPGA development boards particularly based around the Ice40 series is the addition of teh Arm Cortex processor. Most of the other boards purely target the Ice40 FPGA only and use FTDI chips to move bitimages into the FPGA through development. With myStorm we initially took a different view for how we wanted to target a low cost stand alone SDK, we figured for the price of the FTDI chip we could actually include a 'Hardcore' CPU within our design for little cost impact. Given we are trying to obtain maximum bang for our buck with myStorm this is a path we have chosen to follow for the SDK. There are several advantages to adding in a hardcore microcontroller over just a standalone FPGA:
* A hardcore like the one used on the SDK (STM32l476) has MULT/DIV and an FPU, these features are expensive in terms of logical resources on a limited resource FPGA like the Ice40 FPGAs when implementing cores. This means you can optionalay target your limited resources to other more bespoke functions relevant to your application. The same advantage can be had from the hardcore's memory resources
* A hardcore like the one used on the SDK (STM32l476) has MULT/DIV and an FPU, these features are expensive in terms of logical resources on a limited resource FPGA like the Ice40 FPGAs when implementing cores. This means you can optionally target your limited resources to other more bespoke functions relevant to your application. The same advantage can be had from the hardcore's memory resources
* The Hardcore brings a number other useful protocol based peripherals which again save you from having to dedicate resources too from the limited FPGA resources e.g. Uarts,SDIO,USB,CAN and others..
* The Hardcore brings a number other useful protocol based peripherals which again save you from having to dedicate resources too from the limited FPGA resources e.g. Uarts, SDIO, USB, CAN and others..
* The hardcore also useful Analog functionality in the form off many ADC (up to 5Mb/s 12 bit) channels aalong with Dual DACs.
* The hardcore also useful Analog functionality in the form off many ADC (up to 5Mb/s 12 bit) channels along with Dual DACs.
* The hardcore SDK can add management of development for bitimages and loading, testing etc..
* In the case of the SDK board the hardcore also offers an Arduino compatible shield support which can be handy for many existing peripherals and shields.
# Implications
The design decisions above mean we require a more sophisticated toolchain for myStorm SDK as in addition to the FPGA tools we need the GCC Arm cross compiler suite. As an early adopter and SDK candidate we would expect you to have at least a rudimentary understanding of what this entails in order to develop fully for the myStorm SDK platform. This may change later as the community adds layers to abstract some of this, for example myStorm Forthification will likely provide the forth tools and libraries for both the ARM and FPGA parts which will abstract the developer from such details. I would expect this to happen for GUI and IDE tools also as the community builds on the myStorm SDK
For now however we must be mindful that when we build for the myStorm SDK we are employing both FPGA and GCC toolsets, much as you would be with a combined hardcore and FPGA. Even if you were using a softcore and targeting SOC you would be using mixed toochains in order to develop applications, so in this respect myStorm isn't all that different. However we should point out that some tools out there have assume FPGA toochain only and as such have to be coerced into playing nicely with myStorm.
Thus if you find that, at least with the SDK, there seems to be more to setup, juggle and manage please remember it is for the reasons specified above and because we really are doing more...
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment