A mathematical approach towards hardware design
Smit, Gerard J.M. and Kuper, Jan and Baaij, Christiaan P.R. (2010) A mathematical approach towards hardware design. In: Dagstuhl Seminar on Dynamically Reconfigurable Architectures, 1116 July 2010, Dagstuhl, Germany.

PDF
316kB 
Abstract:  Today the hardware for embedded systems is often specified in VHDL. However, VHDL describes the system at a rather low level, which is cumbersome and may lead to design faults in large real life applications. There is a need of higher level abstraction mechanisms. In the embedded systems group of the University of Twente we are working on systematic and transformational methods to design hardware architectures, both multi core and single core. The main line in this approach is to start with a straightforward (often mathematical) specification of the problem. The next step is to find some adequate transformations on this specification, in particular to find specific optimizations, to be able to distribute the application over different cores. The result of these transformations is then translated into the functional programming language Haskell since Haskell is close to mathematics and such a translation often is straightforward. Besides, the Haskell code is executable, so one immediately has a simulation of the intended system. Next, the resulting Haskell specification is given to a compiler, called CëaSH (for CAES LAnguage for Synchronous Hardware) which translates the specification into VHDL. The resulting VHDL is synthesizable, so from there on standard VHDLtooling can be used for synthesis. In this work we primarily focus on streaming applications: i.e. applications that can be modeled as dataflow graphs. At the moment the CëaSH system is ready in prototype form and in the presentation we will give several examples of how it can be used. In these examples it will be shown that the specification code is clear and concise. Furthermore, it is possible to use powerful abstraction mechanisms, such as polymorphism, higher order functions, pattern matching, lambda abstraction, partial application. These features allow a designer to describe circuits in a more natural and concise way than possible with the language elements found in the traditional hardware description languages. In addition we will give some examples of transformations that are possible in a mathematical specification, and which do not suffer from the problems encountered in, e.g., automatic parallelization of nested forloops in Cprograms. 
Item Type:  Conference or Workshop Item 
Faculty:  Electrical Engineering, Mathematics and Computer Science (EEMCS) 
Research Group:  
Link to this item:  http://purl.utwente.nl/publications/75334 
Official URL:  http://dx.doi.org/10.4230/OASIcs.WCET.2010.136 
Proceedings URL:  http://drops.dagstuhl.de/opus/portals/index.php?semnr=10281 
Conference URL:  http://www.dagstuhl.de/de/programm/kalender/semhp/?semnr=10281 
Export this item as:  BibTeX EndNote HTML Citation Reference Manager 
Repository Staff Only: item control page