TESTRA CORPORATION
1201 N. Stadem Drive, Tempe Arizona 85281 Ph (480) 966-8428 Fax (480) 907-2876
The SS4544 system, both hardware and software was developed utilizing Forth. This includes everything from hardware description, simulation, hardware compilation, the real time operating system that runs the developed hardware, and the user setup and demonstration programs that run on a PC. As time permits we will reveal many of the development details. To start with, two brief papers written by John Hart, Vice President of Engineering that were presented at the 1998 Formal Conference are referenced.
Reconfigurable Architecture Computation Engine
Abstract:
Forth is almost the ideal processor for a PLD because Forth performance isn't compromised by the limited number of registers available in current PLDs. The performance of Forth words coded in the primitive set, was used as a key benchmark in the process of refining the design. When the execution speed of Forth words reached 4 MIPS, the firmware optimization was stopped, and work on the application began. The finished design fit into the PLD and left room for logic needed by the target application.
Forth was used as the simulator in the search for the design.
Forth was used as the hardware definition language for the design.
Forth was used to convert the design into logic equations.
Forth was used to fit the logic equations into the PLD.
Forth was used to route the PLD's internal connections.
Forth was used to verify the logic equations.
Forth was used to assemble the application code.
Forth was used as the meta-compiler.
Using Forth as a VHDL ( Virtual Hardware Definition Language )
Abstract
A set of VHDL extensions to Forth lets programers
define hardware in the same language they write software in. Hardware
defined in Forth, can be verified by executing the hardware definition
words at the command line or by writing special Forth words to test their
operation.The use of the same language for hardware and software simplifies
the task of swapping hardware and software functions during optimization.