Altera Nios II C2H Compiler Manuel d'utilisateur Page 80

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 138
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 79
3–40 9.1 Altera Corporation
Nios II C2H Compiler User Guide November 2009
Scheduling
For the purposes of scheduling, the C2H Compiler treats a loop and its
dependencies as a unit. No lines of code past the loop block execute until
the whole loop completes. Figure 3–19 shows the dependency graph for
the function transform_and_hash_matrix(), shown in
Example 3–33.
Example 3–33. Dependency Graph for a Function Containing a Loop
int transform_and_hash_matrix(int *matrix,
int length, int width)
{
int n_words = length * width;
int hash = 1;
int i;
for (i=0; i<n_words; i++)
{
...perform some transform...
hash = ...some hash calculation...
}
return hash;
}
Figure 3–19. Dependency Graph for a Function Containing a Loop
As shown in Figure 3–19, some part of the for loop depends on
n_words, and so the C2H Compiler does not schedule the loop until after
the assignment to n_words completes. The return statement outside
the loop depends on hash, which is assigned inside the loop. As a result,
the C2H Compiler does not schedule the return statement until the loop
completes.
In this case, the state machine for transform_and_hash_matrix()
has three states. However, the state machine does not complete in three
clock cycles, because State 1 consists of a sub-state-machine, which
requires multiple clock cycles to complete.
Vue de la page 79
1 2 ... 75 76 77 78 79 80 81 82 83 84 85 ... 137 138

Commentaires sur ces manuels

Pas de commentaire