DMI – Graduate Course in Computer Science
Copyleft
2016-2017 Giuseppe Scollo
this tutorial deals with:
hardware implementation assumption:
three implementation rules:
two definitions:
maximum clock frequency for the circuit: reciprocal of latency through critical path
algorithm: at each step (a, b) is replaced by (|a-b|, min(a,b))
Schaumont, Figure 3.10 - Euclid’s greatest common divisor as an SDF graph
PASS analysis:
rank(G) = 1
by the aforementioned three rules for a hardware implementation of the SDF model:
implementing the actors is a simple matter, by means of a few commonly used modules (multiplexers, comparators and a subtractor)
Schaumont, Figure 3.11 - Hardware implementation of Euclid’s algorithm
example of throughput enhancement by pipelining:
Schaumont, Figure 3.12 - SDF graph of a simple moving-average application
Schaumont, Figure 3.13 - Pipelining the moving-average filter by inserting additional tokens (1)
Schaumont, Figure 3.14 - Pipelining the moving-average filter by inserting additional tokens (2)
Schaumont, Figure 3.15 - Hardware implementation of the moving-average filter
remarks:
by introducing new tokens, pipelining may change the behaviour of an SDF graph
Schaumont, Figure 3.16 - Loops in SDF graphs cannot be pipelined
in order to apply pipelining without changing the functional behaviour of an SDF graph with cycles, the additional tokens should be placed outside of any loop in the graph
the circuit depicted in figure 3.11 implements the computational core of Euclid's GCD algorithm, yet it does not contain elements apt to signal the start and the end of the computation nor to distinguish inputs and output; the aims of this experience are: to extend that circuit to this purpose, to describe it in Gezel, to translate it to VHDL, and to simulate its behaviour