First I will discuss "the microcontroller alternative", an easy fast implimentation, that is lacking in some respects.
A technology for device programming exists. It is called JTAG. It is used to program multiple devices on a board, and supports FPGA programming, FLASH programming, and ARM microcontroller programming. We could get an arm controller with CANBUS, and put wires between boards with canbus and JTAG wires. This would basicly be a solder job with PIC like functionality, and most things we need on the chip. Memory and program sizes would be in KB.
Alternativly we could use a softcore proccessor to impliment a full embedded system. The advantages of such an implimentation would be:
- Flexible peripherals for easy node creation (by extention board, or by soldering an FPGA , flash, and periferals to a small dedicated board, and flashing the FPGA with our binary file)
This would bring new node time down to basicly board design and simple C. - Huge memory: up to 2 gig of addressable space, including memory and periferals.
- Department liscenced easy to use "code" for most of the stuff:
The department has a lisence for Xilinx Embedded Kit.
This allows creation and configuration of a system with wizards.
It brings my dev work down to writing the network and possibly a periferal bus. It can be easily used for everything envisaged so far - Potential for cool stuff:
*Embedded linux is a possiblity
*Node proccessor implimentations are fed as parameters to the compiler. They could be supplied by a node designer allong with their node class. This allows: add random "extra instruction" hardware to the board for specialist node needs, maybe a hardware perceptron for neural network nodes
*It is definitly possible to reprogram the hardware the same way as we are talking about reprogramming the software. Its not something I'd want to try till everything else is done, possibly even till after handin, but if you put generic connectors on, you could have say a MP3 player node 2 proccessors and a hardware MP3 codec change into a grahpics node with a hardware 3D engine !Crazy Shit!
Board would have:
Flash and or RAM (i.e. if you never power down just ram is cool)
FPGA
Peripherals
FPGA would have:
microblaze, possible custom "peripheral bus" memory mapped hardware access, custom network.
The above would work as described.
Dev time (wild estimate)
2 weeks to experiment with microblaze
2 weeks to get a test design working that is just an embedded computer on a dev board
3 weeks to get a network implimented
1 week driver writing, hand over software to you at this point
2 weeks for board design (ORCAD is a fucker)
3 weeks build time.
As you can see I will need to start the development in summer so I can hand you a dev board to play with for the software before I actually build it.
No comments:
Post a Comment