2 research outputs found
Further sub-cycle and multi-cycle schedulling support for Bluespec Verilog
Bluespec is a hardware description language where
all behaviour is expressed in rules that execute atomically. The
standard compilation semantics for Bluespec enforce a particular
mapping between rule firing and hardware clock cycles, such as a
register only being updated by exactly one firing of at most one rule
in any clock cycle. Also, the standard compiler does not introduce
any additional state, such as credit-based or round-robin arbiters to
guarantee fairness between rules over time. On the
other hand, many useful hardware resources, such as complex ALUs and
synchronous RAMs, are pipelined. Unlike typical high-level synthesis
tools, in standard Bluespec such resources cannot be invoked using
infix operators in expressions such as A[e] or e1*e2
since binding to specific instances and multi-clock cycle schedules
are required. In this paper we extend the reference semantics of
Bluespec to decouple it from clock cycles, allowing multiple updates
to a register within one clock cycle and automatic instantiation of
arbiters for multi-clock cycle behaviour. We describe
the new semantic packing rules as extensions of our standard compilation rules and
we report early results from an open-source, fully-functional implementation
Compiling a synchronous programming language into field programmable gate arrays
This thesis shows how to compile a program expressed by a novel hardware description language, the State Machine Algol-Like Language (SMALL), into Field- Programmable Gate Arrays (FPGAs). A netlist generator for the SMALL language is created to transform a parallel Algorithmic State Machine (ASM) chart into a structural VHDL description. The one-hot encoding technique is used for the transformations. The structural VHDL description for the netlist is simulated and synthesised by Synopsys VSS (VHDL System Simulator) and Synopsys FPGA Compiler, respectively. The netlist is very simple and the components of the netlist consist of only D-type flip-flops and basic gates. The Design Manager of the Xilinx Alliance Series version 1.4 is used to produce configuration data for Xilinx FPGA chips. The Xilinx XC4000 family is employed as the target FPGA device. -- The simulation results for several SMALL programs indicate that the netlist generator performs the specified requirements for all the statements and all the operators in the SMALL language. -- Using the netlist generator and existing place-and-route tools makes the implementation of SMALL programs on FPGAs easy. This research offers a significant advance on the original SMALL implementation. Due to its simplicity and simple semantics, it is believed that the SMALL language will be widely used in many areas in the future