Reportez-vous au Nios® II Errata 6.0 pour tous les problèmes connus du compilateur Nios II C2H. En plus de ce matériau, le problème suivant a été récemment découvert.
Le compilateur C2H prend en charge l’accélération des fonctions qui appelons d’autres fonctions. Toutes les sous-functions sont accélérées par le compilateur C2H. Si la sous-fonctionnalité est transmise à l’un des arguments suivants, une défaillance fonctionnelle ou de compilation se produit :
Opération de la mémoire
exemple : foo(a[i]) ;
Incrément/decrement postfix/Préfixe
exemple : foo(b) ;
Arithmétique non trivial (Multiplier, Changement variable, Division et Modulo)
exemple : foo(b* c) ;
Affectation des composés
exemple : foo(b = c) ;
Appel sous-fonctionnel
exemple : foo(bar(b), c) ;
La solution de contournement consiste à attribuer l’argument à une variable temporaire et à passer la variable temporaire à la sous-function. Si la variable temporaire n’est utilisée nulle part ailleurs dans la fonction accélérée, cette ligne de code supplémentaire synthétisera en aucune ressources logiques supplémentaires.