Étape 2: Programmation de Hardware
Cette étape est une introduction à la programmation de hardware. Si vous avez déjà fait une programmation verilog vous pouvez sauter cette étape.
Comment les FPGA est programmées ?
Programmation d’un FPGA est différente à d’autres styles de programmation. Plutôt que de donner des instructions à exécuter dans l’ordre, vous décrivez la disposition du matériel. Décrivant en un seul bloc serait très sale et difficile à lire cependant. Au lieu de cela, similaire aux fonctions dans d’autres langues le matériel est divisé en modules. Ces modules sont reliés entre eux pour faire des dessins plus compliqués. Chacun de ces modules ont des entrées et sorties. En connectant ces modules ensemble semblable à l’appel des fonctions nous pouvons créer compliqués dessins lisibles. L’image montre un exemple d’un module en ciseau qui additionne deux nombres. La ligne du haut les importations ciseau. Vous aurez besoin de faire cela dans tous les fichiers du ciseau. Ensuite, nous déclarons un module additionneur appelé myAdder. Ceci ajouté possède deux entrées x et y pour calculer le résultat z = x + y. UInt abréviation de « unsigned integer » déclare en tant qu’entrée ou sortie avec 16 bits. Remarquez comment il est ": =" ne pas « = ». C’est très important, mais nous l’expliquerons plus tard. L’étape suivante vous montrera comment connecter les modules en ciseau.
Quelques notions de base Concepts matériels
Cette section décrit quelques uns des concepts lors de la conception au niveau matériel.
L’horloge
L’horloge est essentielle pour comprendre la conception du matériel. C’est une minuterie que synchronise votre design afin que tout fonctionne à la même vitesse. Matériel est généralement divisé en deux catégories : logique combinatoire et séquentielle. Logique combinatoire tels qu’a = b + c ne tient pas compte de l’horloge. Logique séquentielle utilise l’horloge pour déterminer le moment de lire dans les nouvelles données dans un élément de mémoire. Un registre ou Reg en ciseau est un exemple d’un élément logique séquentielle. Chaque fois que l’horloge « horloges » la valeur à l’entrée du Registre est connu pour plus tard. En ciseau, l’horloge est implicite. Cela signifie que vous n’avez pas besoin à se soucier de la connexion.
Chemin critique
Le chemin critique dans votre conception détermine à quelle vitesse l’horloge peut fonctionner. Généralement plus vite le mieux. Le chemin critique est le chemin le plus lent combinatoire entre les deux registres. Considérez-le comme en terme d’une course entre l’horloge et le chemin d’accès plus lent. L’horloge doit être lente, suffisamment pour que les données peuvent faire la course à travers le chemin critique pour le registre où elle sera stockée. Votre design peut être correct mais lent si vous ne pensez pas à ce sujet.