5.4. Scheduling

5.4.1. Dependency test

Because the objective of scheduling is to minimize the total number of control steps (i.e., maximize performance), we wish to schedule as many instructions in the same step as possible, thereby executing all of them in parallel to maximize design performance. However, this is not always possible. For an RTL implementation to preserve the semantics of the original algorithm, data dependencies have to be respected. We illustrate the notion of data dependency below.

Consider the following scenarios in a basic block, where virtual instruction A precedes virtual instruction B:

  1. Instruction A is the operand of instruction B, in other words, instruction A produces a value consumed by instruction B;
  2. Instruction ...

Get Electronic Design Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.