Proposal for a general purpose control subsytem.

NZG <[email protected]> Tue, 13 Sep 2005 11:56:55 -0500
Newsgroups gmane.science.robotics.orocos.user
Organization EMAC.Inc
Message-ID <[email protected]>
I recently submitted this to one of my professors proposing a project to 
develop a hardware subsystem for control.
The idea is to implement the Orocos system, but instead of relying on an RTOS, 
offload the processing to a specific hardware coprocessor.
The processor would be a soft core that could then be easily extended to meet 
the needs of specific systems, only the orocos driver would need to be 
implemented as the low level SPI type drivers would be handled directly by 
the coprocessor.

My abstract is pasted below.
I thought I'd throw this out there and see what reaction I get.
Comments? Suggestions? Reasons why I'm insane?

NZG.

ABSTRACT

A Soft Core for Reconfigurable Control
Nathan Z. Gustavson (EMAC.Inc & Southern Illinois University Carbondale)
As embedded applications become more complex, traditional monolithic control
loop programs are being superceded by scheduled tasks, run as a process by an
OS. [4]This is problematic for control, because the microprocessor must also 
run
its normal tasks, (scheduling, memory management, networking, IO ports, 
etc...).
This results in a slower control loop, and a more complex project.
With the advent of the modern FPGAs, a new approach has opened, that of
using a soft core to offload some of the control work into specific, 
reconfigurable
hardware sections. [2] These soft cores can be used as building blocks to 
rapidly
build board specific embedded architectures. These fine tuned architectures 
are
ideal for control implementations since they are highly adaptable [1], and 
offer
higher throughput rates than can be achieved with software alone.
Modern microprocessors incorporate features that are not needed to implement
a control interface, such as advanced branch instructions and prediction, 
flash
memory, and external busses.[5] This project will investigate how these 
features
can be streamlined, or completely removed, to yield a single circular 
pipelined
advanced ALU which can be dedicated specifically to the task of control. This 
will
create a system that is faster, cheaper, less complex, and less power hungry
than most high end control hardware.
A soft core will be designed consisting of:
1. A small register based memory to hold a limited number of instructions.
2. An arithmatic instruction pipeline, which will handle add, subtract, 
multiply, and
divide instructions, matrix based if time and resources permit.
3. Appropriate hazard detection and avoidance logic.
4. A “rerun” unit. Motion control loops execute the same series of arithmatic
instructions over and over again on different inputs and state feedbacks. Once
the original order of execution is established, it can be remembered and
maintained until the instruction buffer is reloaded with a different 
algorithm.
5. A sensor input bus from which state data is obtained. In a complete system
this would be integrated with another soft core IO unit to pull in sensor data 
in a
pipeline parallel to the instruction pipeline.
6. A control output bus, which in a complete system would transfer the control
data to a soft core IO unit doing output.
The core will be implemented in mixed VHDL, AHDL, and schematic capture,
using Quartus II FPGA design software from Altera. Several RISC cores will be
analyzed and one (or more) chosen to strip down and modify. [6] [7].

[1] R. A. Gonçalves*, P.A. Moraes*, J. M. P. Cardoso+, D. F. WolfY, M. M.
Fernandes,R. A. F. Romero*, E. Marques* (2003)
ARCHITECT-R: A System for Reconfigurable Robots Design
Symposium on Applied Computing archive
Proceedings of the 2003 ACM symposium on Applied computing
[2] Nurprasetyo, Eko Fajar; Inoue, Akihiko; Tomiyama, Hiroyuki; Yasuura, 
Hiroto
(1998)
Soft-core processor architecture for embedded system design
IEICE Transactions on Electronics. Vol. E81-C, no. 9, pp. 1416-1423.
[3] Henrik B. Christophersen*, Wayne J. Pickell*, Adrian A. Koller†, Suresh K.
Kannan†, and Eric N. Johnson‡
Small Adaptive Flight Control Systems for
UAVs using FPGA/DSP Technology
Georgia Institute of Technology, Atlanta GA 30332-0150
[4] The real-time motion control core of the Orocos project
Bruyninckx, H. Soetens, P. Koninckx, B.
Dept. of Mech. Eng., Katholieke Univ., Leuven, Heverlee, Belgium
[5] Orocos: - http://www.orocos.org
[6]Open Cores: - http://www.opencores.org
[7]Altera soft-cores - 
http://www.altera.com/products/ip/processors/ipm-index.jsp
[8] John Paul Shen, Mikko H. Lipasti (2005)
Modern Processor Design
Fundamentals of Superscalar Processors
McGraw Hill
[9] Gene F. Franklin, J. David Powell, Abbas Emami-Naenini(2002)
Feedback Control of Dynamic Systems
Prentice Hall