Finite State Machine with Datapath
In this chapter, we introduce an important building block for efficient custom hardware design: the Finite State Machine with Datapath (FSMD). An FSMD combines a controller, modeled as a finite state machine (FSM) and a datapath. The datapath receives commands from the controller and performs operations as a result of executing those commands. The controller uses the results of datapath operations to make decisions and to steer control flow. The FSMD model will be used throughout the remainder of the book as the reference model for the ‘hardware’ part of hardware/software codesign. We will introduce a syntax for FSMD by means of the GEZEL language. The cosimulation tools used in conjunction with this book rely on the GEZEL language. We will discuss several alternate language mappings for the FSMD language in GEZEL, including VHDL, Verilog, and SystemC. Thus, GEZEL is used as a generic shorthand modeling mechanism for FSMD. Finally, we will also describe a few formal properties of the FSMD model, and we define a proper FSMD as one which leads to a race-free and deterministic hardware implementation.
KeywordsClock Cycle Finite State Machine State Transition Diagram Greatest Common Divisor State Transition Graph
- Gupta S, Gupta R, Dutt N, Nicolau A (2004) SPARK:A Parallelizing Approach to the High-Level Synthesis of Digital Circuits. SpringerGoogle Scholar
- Hoe JC (2000) Operation-centric hardware description and synthesis. PhD thesis, MITGoogle Scholar
- Qin W (2004) Modeling and description of embedded processors for the development of software tools. PhD thesis, Princeton UniversityGoogle Scholar
- Schaumont P, Shukla SK, Verbauwhede I (2006) Design with race-free hardware semantics. In: DATE, pp 571–576Google Scholar
- Vahid F (2007a) Digital Design. John Wiler and Sons PublishersGoogle Scholar