Stap 2: Hardware programmering
Deze stap is een inleiding tot hardware programmering. Als je al hebt gedaan wat verilog programmeren kunt u deze stap overslaan.
Hoe zijn de FPGA geprogrammeerd?
Programmeren van een FPGA is anders dan andere stijlen van programmering. In plaats van het geven van instructies uit te voeren in volgorde, beschrijft u de lay-out van de hardware. Beschrijving van het in een enkel vriesblok zou zeer rommelig en moeilijk te lezen maar. In plaats daarvan, vergelijkbaar met de functies in andere talen de hardware is opgesplitst in modules. Deze modules met elkaar zijn verbonden zodat ingewikkelder ontwerpen. Elk van deze modules zijn input en output. Door deze modules aan elkaar koppelen vergelijkbaar met het aanroepen van functies we maakt ingewikkelde leesbaar ontwerpen. De afbeelding toont een voorbeeld van een module in de beitel die twee getallen optellen. De bovenste regel importeert beitel. U moet dit doen in alle bestanden van de beitel. Vervolgens declareren we een adder module met de naam myAdder. Dit toegevoegd heeft twee ingangen x en y te berekenen van het resultaat-z = x + y. UInt is kort voor 'niet-ondertekende integer' verklaard als een input of output met 16 bits. Merk op hoe het ": =" niet "=". Dit is zeer belangrijk maar zal later worden verklaard. De volgende stap zal laten zien hoe modules in beitel aansluiten.
Basics Hardware concepten
Deze sectie beschrijft een paar van de begrippen bij het ontwerpen in hardware.
De klok
De klok is van essentieel belang voor het begrip van hardwareontwerp. Het is een timer dan synchroniseert uw ontwerp, zodat alles op dezelfde snelheid draait. Hardware is over het algemeen verdeeld in twee categorieën: combinatorische en sequentiële logica. Combinatorische logica zoals een = b + c negeert de klok. Sequential logic maakt gebruik van de klok om te bepalen wanneer om te lezen in de nieuwe gegevens in een geheugen-element. Een register of Reg in beitel is een voorbeeld van een sequentiële logica-element. Telkens wanneer de klok '' de waarde bij de ingave van het register klokken wordt herinnerd voor later. In de beitel wordt de klok geïmpliceerd. Dit betekent dat u niet hoeft te maken over de aansluiting.
Kritieke pad
Het kritieke pad in uw ontwerp bepaalt hoe snel de klok kan worden uitgevoerd. Over het algemeen hoe sneller hoe beter. Het kritieke pad is het langzaamst combinatorische pad tussen elke twee registers. Vind het in termen van een race tussen de klok en de langzaamste pad. De klok moet langzaam genoeg, zodat de gegevens kunt rennen door het kritieke pad tot het register waar het zal worden opgeslagen. Uw ontwerp kan worden correct maar traag als je erover nadenkt niet.