Étape 12 : Top.bsv
Top.BSV instancie tout état interne et définit les interfaces qui le cadre Connectal relie aux broches physiques sur le périphérique FPGA.
Dans notre conception, l’interface HBridgeCtrlIndication est implémentée dans SW et appelée à partir de HW. En conséquence, nous instancions la mkHBridgeCtrlIndicationProxy proxy généré. Ce module a une sous-interface 'ifc' de type 'HbridgeCtrlIndication', qui est passée à la mkController de module d’être appelée directement à partir de sa logique interne. Parce que HBridgeCtrlRequest est implémenté dans HW et appelée à partir de SW, nous devons les emballer en utilisant le module généré mKHBridgeCtrlRequestWrapper pour le connecter au bus. Le wrapper et le proxy sont connectés au système de bus de muxing premier eux avec « mkSlaveMux » et connecter l’interface unique résultant à l’interface « esclave ».
L’esclave de l’autobus et maîtres, ainsi que les leds et interruptions ont été attribués des interfaces dédiées. Connectal cadre connecte automatiquement ceux-ci aux broches corrects selon la cible de build spécifié. Omission de définir ces interfaces n’entraînera pas une erreur de génération, mais entraînera probablement des anomalies de Runtime. Par exemple, si le SW se fonde sur l’appel système « sondage » pour être averti d’un message en attente de HW, omission de définir l’interface interruption provoquera le design à accrocher. Si vous ne définissez pas l’interface esclave, les procurations SW signalera un échec lorsqu’ils tentent de localiser le mappage du Registre correcte au moment du démarrage.
Enfin, le fichier de package/qui définit l’interface broches supplémentaires doivent être exporté explicitement afin qu’il peut être utilisé par le haut spécifique à la plateforme (mkZynqTop, mkBsimTop, etc.). Spécifique à la plateforme haut est sélectionné par la chaîne d’outils selon la cible de génération. Ces fichiers se trouvent dans $CONNECTALDIR/bsv.