+++ title = "Operation Chaining" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["1c3", "1c"] forwardlinks = ["1c5", "1c4a"] zettelid = "1c4" +++ Data-flow dependencies that can be discovered using a *data-flow graph* are useful for high-level synthesis optimisations, as instructions that do not depend on each other can be scheduled into the same clock cycle. However, in addition to that, even if there is a data dependency between two operations, but the operations can both be completed faster than the time required for the clock cycle, then these can be scheduled into the same clock cycle as well. This allows for less registers in the hardware that need to store intermediate results, and can also lead to less states and reduce the throughput of the circuit.