Stap 11: Controller.bsv
Dit bestand bevat de kern interfacedefinities en HW functionaliteit van het project.
HBridgeCtrlRequest/HBridgeCtrlIndication bieden interfaces voor het beheren van de HBridge (van SW) en rapportage van asynchrone gebeurtenissen (van HW).
HBridge2 definieert een interface via welke de hbridge control registers kunnen worden ingesteld. Omdat we alleen het schrijven van de registers, exporteren we een interface samengesteld exclusief waarde methoden. BSC compileert deze waarde methoden in benoemde signalen (draden) die zijn aangesloten op de fysieke pinnen.
De mkController module implementeert de kern-logica van ons project. Het exporteert het 'pinnen'-interfaces die wordt gebruikt om te rijden de hbridge modules en de 'req'-interface die wordt aangeroepen van SW via een portal. Het is één ctor argument is een interface "ind" door die de controller SW functionaliteit via een tweede portal activeert. De logica is opzettelijk eenvoudig en gemakkelijk te begrijpen tot zelfs een begin Bluespec programmeur moet worden.