Étape 11 : Controller.bsv
Ce fichier contient les définitions d’interface de base et les fonctionnalités de HW du projet.
HBridgeCtrlRequest/HBridgeCtrlIndication fournissent des interfaces pour contrôler la HBridge (à partir de SW) et compte rendu d’événements asynchrones (à partir de HW).
HBridge2 définit une interface à travers laquelle les registres de contrôle de hbridge peuvent être définies. Parce que nous écrivons seulement les registres, nous exportons une interface composée à l’exclusion des méthodes de valeur. BSC compile ces méthodes de valeur en signaux nommées (fils) qui sont connectés aux broches physiques.
Le module mkController implémente la logique de base de notre projet. Il exporte les interfaces « pins » qui est utilisé pour exciter les modules hbridge et l’interface « req » qui est invoquée de SW grâce à un portail. C' est argument unique ctor est une interface « ind » par lequel le contrôleur appelle SW fonctionnalité grâce à un deuxième portail. La logique est volontairement simple et doit être facilement compréhensible dans un même en commençant Bluespec programmeur.