Het gebruik van Verilog en Basys 3 te doen 3 bits binaire teller (5 / 11 stap)

Stap 5: Stap 5: Maak bovenste module


Volg de stap 4 tot en met een bovenste module toevoegen. Vervolgens moeten we definiëren in- en uitgangen die verbinding met de externe omgeving maken. De enige ingang is het uurwerk van Basys 3. Er zijn drie soorten productie-, enable_Dx-, cx- en dp. De enable_Dx is de macht om elk cijfer 7 segment display. Er zijn totaal 4 in Basys 3. We moeten echter slechts 3. De cx is de verbinding van het segment. In elk cijfer zijn er zeven segmenten van ca cg. De dp is het decimaalteken op het display. We hoeven niet te gebruiken dp in het project.

Ingang:

CLK / / master klok voor Basys 3

Uitgangen:

enable_D1, / / rechts meeste cijfers

enable_D2

enable_D3,

enable_D4, / / links de meeste cijfers

CA, cb, cc, cd, ce, cf, cg / / segment verbindingen

DP / / decimaalteken

We moeten ook de volgende variabelen instantiëren de klok scheidingslijn te bepalen hoe snel het cijfer wordt in- en uitschakelen. Ze zijn allemaal net variabelen.

clkout1; interne signaal voor de uitvoer van de verdeelde klok

clkout2; interne signaal voor de uitvoer van de verdeelde klok

clkOut; interne signaal voor de uitvoer van de verdeelde klok

Q0, Q1, Q2; interne signaal voor de uitvoer van de teller

draad n, o, p; interne signaal om te controleren de on / off van 3 cijfers

Dan, we de functie gate niveau controle op en af van het cijfer. Het cijfer is gemeenschappelijk anode. De FPGA-pin voor het cijfer is aangesloten als output terwijl een constante 3.3V als input in de LED wordt geleverd. Om te schakelen op de cijfers, moet we rijden de pin lage (actieve laag). U vindt de details op Basys 3 referentie-handleiding. Nooit gebruiken we links de meeste cijfers enable_D4, zodat we deze aan constante 1' b1 toewijzen. Vervolgens gebruiken we de en en niet gate functie voor het maken van het cijfer in- en uitschakelen op basis van de clk gegenereerd op basis van clkdivider

toewijzen van enable_D4 = 1' b1; uitschakelen van links de meeste cijfers die D4

en U1 (n, clkout2, clkout1); EN-poort gebruiken om te schakelen en uit de cijfers zo dat slechts één cijfer brandt op een moment

en U2 (o, clkout2, ~ clkout1); EN poort kunt inschakelen en uitschakelen het cijfer dus dat slechts één cijfer tegelijk op

en U3 (p, ~ clkout2, clkout1); EN poort kunt inschakelen en uitschakelen het cijfer dus dat slechts één cijfer tegelijk op

niet (enable_D1, n); n = clkout2 & clkout1, enable_D1 is laag (op) als zowel de clkout2 als de clkout1 hoog is

niet (enable_D2, o); o = clkout2 & ~ clkout1, enable_D2 is laag (op) als de clkouut2 hoog is en clkcout1 is laag

niet (enable_D3, p); p = ~ clkout2 & clkout1, enable_D3 is laag (op) als clkout2 laag is en clkout1 is hoog

Na dat besluiten we de logica voor de zeven segment in elk cijfer. Cx is hetzelfde als enable_Dx, en is een actieve laag signaal. We moeten dus, om te schakelen op het segment, de FPGA rijden naar laag. Hier zijn de tabellen van de waarheid voor de Qx (Q1, Q2, Q0) en de ca-cg (zie tabellen)

Uit de tabel van de waarheid, kunnen we de volgende conclusie

CB en cc zijn altijd 0

CG is altijd 1

CA-, cd-, ce- en cf hebben altijd dezelfde output

waarde van ca wordt geëvalueerd door Qx

Daarom kunnen we de volgende toewijzing. Voor, cb-cg, het is mooi stragightforward. Voor ca, we nest coniditional operator gebruiken om te evalueren van de enable_Dx om te bepalen van de output van de certificeringsinstantie. Als enable_D1 is ingeschakeld, wat betekent links de meeste cijfers (Q0) is ingeschakeld, van de waarheidstabel, ca zullen Q0. Anders moeten we de andere voorwaarde evalueren (enable_D2 brandt). Als enable_D2 ingeschakeld is, dan is ca gelijk aan Q2, enzovoort.

toewijzen van ca = (enable_D1 == 0)? Q0: ((enable_D2==0)? Q1: ((enable_D3==0)? Q2:1'b1)); Gebruik voorwaardelijke operator

toewijzen van cb = 1' b0; CB is altijd op

toewijzen van cc = 1' b0; CC is altijd op

cd toewijzen = ca; uitgang cd komt overeen met ca

toewijzen van ce = ca; CE-uitvoer komt overeen met ca

toewijzen van cf = ca; CF uitvoer komt overeen met ca

toewijzen van cg = 1' b1; Als we alleen moeten nul of één, dus cg is van alle tijden

toewijzen van dp = 1' b1; uitschakelen van de decimale komma

Tot slot moeten we instantiëren de module clkdivider en teller.

U vindt de code met commentaren in het projectbestand.

Gerelateerde Artikelen

Het gebruik van Verilog en Basys 3 te stoppen horloge

Het gebruik van Verilog en Basys 3 te stoppen horloge

Ik heb dit project voor een online klasse gedaan. Het project is geschreven door Verilog. De klok generator, de enable_sr (inschakelen cijfer) en de ssd (zeven segment display) modules werden verstrekt. Het was mijn taak om te schrijven van de bovens
Het gebruik van MDX-20 voor het maken van mallen

Het gebruik van MDX-20 voor het maken van mallen

Hallo iedereen,Dit is een compilatie van eenvoudige tips en instructies over het gebruik van MDX-20. Hoewel het is een oude afgekeurde machine, maar het heeft nog vele mogelijkheden, een daarvan is het maken van mallen.Hoe werkt molding machine?Moldi
Het gebruik van Pepakura Viewer

Het gebruik van Pepakura Viewer

Deze tutorial beschrijft Pepakura Viewer.In geval u op zoek bent voor Pepakura designer tutorial, hoofd hier:Bijgewerkt: 2013/01/11... 5 uur werken tot nu toe :)Stap 1: Video op Youtube (HD 720p)In geval liever u video lezing. Op mijn kanaal zo goed
Het gebruik van de Instructables Editor

Het gebruik van de Instructables Editor

In onze voortdurende inspanningen om de Instructables editor gemakkelijk te gebruiken, hebben we een nieuwe ronde van updates. Hier is een kort en krachtig voor het gebruik van de editor van start tot finish.Stap 1: Start een nieuwe Instructable Om t
Het gebruik van de Instructables voor iPhone App

Het gebruik van de Instructables voor iPhone App

dit instructable gaat over de nieuwe Instructable voor de iPhone app (die u kunt lezen over hier). De oplettende onder u wellicht haar daadwerkelijk wordt uitgevoerd op een iPad (Breng ons een iPad versie Eric!!!).Stap 1: Download en Open de App Eers
3DOF bal over het gebruik van de plaat gesloten lus stappenmotoren

3DOF bal over het gebruik van de plaat gesloten lus stappenmotoren

De bal op plaat probleem bestaat uit een vlakke plaat waaraan een bal moet worden geplaatst. Bal positionering wordt alleen bereikt door unstable evenwicht waar elke kleine veranderingen in de hoek van de plaat in de continue versnelling van de bal r
10 stappen om uw eigen logo in Inkscape (gratis) en het gebruik van creatieve Market voor dummies mij

10 stappen om uw eigen logo in Inkscape (gratis) en het gebruik van creatieve Market voor dummies mij

HalloSorry voor de lange titel. Ik heb ook een paar bekentenissen. Ten eerste, mijn tekenen en ontwerpen vaardigheden zijn niet zelfs equivalent van een vinger-schilder. Ten tweede, ik niet het maken van geld, dus ik heb altijd dingen die kunnen word
ChipKIT dp32 instellen voor het gebruik van de Arduino IDE

ChipKIT dp32 instellen voor het gebruik van de Arduino IDE

Ken jij dat u kunt programmeren uw chipKIT bord of elke PIC32 chip met behulp van de Arduino IDE? Het is eigenlijk heel eenvoudig. Deze tutorial zal laten zien hoe uw chipKIT dp32 instellen voor gebruik van Arduino IDE te ontwikkelen. Merk op dat dez
Het gebruik van de Instructables IRC Chatroom!

Het gebruik van de Instructables IRC Chatroom!

Vóór de implementatie van de Meebo Chatroom, die de meesten van u zijn, of van gehoord, Instructables had een IRC chatroom.De kamer meebo heeft ons goede diensten bewezen, maar het is beperkt, heeft vele gebreken en venen neer meeste gemiddelde compu
Het gebruik van de Epilog Mini Laser Cutter

Het gebruik van de Epilog Mini Laser Cutter

De kerels van Hey, vandaag zullen we leren hoe te gebruiken van de populaire Epilog Mini laser cutter. Stap voor stap gaan we draaien op de machine voor het gebruik van de juiste instellingen voor elk materiaal.Hier is een lijst van de stappen die we
Het gebruik van een Laser Cutter

Het gebruik van een Laser Cutter

de laser cutter is een van de meest nuttige tools in een moderne winkel. Laser scharen werk door de leiding van een zeer krachtige laserstraal, op een precieze brandpuntsafstand, op een materiaal dat ze knippen of etch, afhankelijk van hoe de laser c
Monitor LCD van het gebruik van de Arduino CPU + RAM

Monitor LCD van het gebruik van de Arduino CPU + RAM

Hi all,Ik Todies maakte ik een Arduino CPU + RAM usage monitor met behulp van een eenvoudige schets van de Arduino en een VB.net programma.In dit instructable ik zal u tonen hoe te maken.Het vb.net programma beschikt over een Arduino verbinding teste
[Home Automation] Versie 2: Controleer de RFID-tag voor het gebruik van eenvoudige webserver.

[Home Automation] Versie 2: Controleer de RFID-tag voor het gebruik van eenvoudige webserver.

Deze inhoud is RFID-RC522, Wizwiki-W7500 + webserver.IDE is ARM mbed web compiler.De missie van dit project is Check de RFID-tag voor het gebruik van eenvoudige webserver.Stap 1: beschrijving-Je moet delen onder lijst1. RFID-RC5222. Wizwiki-W75003. d
Het gebruik van Sony Vegas Pro

Het gebruik van Sony Vegas Pro

deze handleiding is een gedetailleerde blik op de basisprincipes van het bewerken van een film in Sony Vegas Pro. Mij ben using voorstelling 10/1, maar de gids is van toepassing op alle versies van Sony Vegas Pro. Gebruik van deze gids zal u helpen b