INHOUDSOPGAWE:

Basiese stophorlosie met behulp van VHDL en Basys3 Board: 9 stappe
Basiese stophorlosie met behulp van VHDL en Basys3 Board: 9 stappe

Video: Basiese stophorlosie met behulp van VHDL en Basys3 Board: 9 stappe

Video: Basiese stophorlosie met behulp van VHDL en Basys3 Board: 9 stappe
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Julie
Anonim
Image
Image

Welkom by die instruksies oor hoe om 'n stophorlosie te bou met basiese VHDL- en Basys 3 -bord. Ons is opgewonde om ons projek met u te deel! Dit was 'n finale projek vir die kursus CPE 133 (Digital Design) by Cal Poly, SLO in die herfs van 2016. Die projek wat ons gebou het, is 'n eenvoudige stophorlosie wat tyd begin, herstel en stilhou. Dit neem drie drukknoppies op die Basys3-bord as insette in, en die tyd word op die bord se vier-syfer-sewe-segment-skerm vertoon. Die verloop van tyd word in 'n sekonde: sentisekondes formaat vertoon. Dit gebruik die stelselklok van die bord as 'n invoer om die tyd wat verloop het by te hou en gee die tyd uit na die vier syfers van die sewesegment.

Stap 1: materiaal

Stel insette en uitsette
Stel insette en uitsette

Die materiaal wat u benodig vir hierdie projek:

  • 1 rekenaar met Vivado Design Suite WebPack geïnstalleer vanaf Xilinx (verkieslik weergawe 2016.2)
  • 1 Digilent Basys3 Xilinx Artix-7 FPGA-bord
  • 1 USB -poortkabel

Stap 2: Stel insette en uitsette

Die figuur hierbo toon 'n blokdiagram op die hoogste vlak van die hoofstophorlosiemodule. Die stophorlosie voer insette "CLK" (klok), "S1" (beginknoppie), "S2" (pouse-knoppie) en "RST" (reset) in en het 'n 4-bis-uitset "Anodes", 'n 7-bis uitset "segment" en 'n enkele bis-uitvoer "DP" (desimale punt). As die inset "S1" hoog is, begin die stophorlosie tyd tel. As "S2" laag is, stop die stophorlosie die tyd. As 'RST' hoog is, stop die stophorlosie en stel die tyd terug. Daar is vier submodules binne die stroombaan: die klokverdeler, die syfer-teller, die sewe-segment vertoonbestuurder en die sewe-segment vertoonkodeerder. Die stophorlosie se hoofmodule koppel al die submodules aan mekaar en aan die insette en uitsette.

Stap 3: Maak horlosies

Klokke maak
Klokke maak

Die klokverdelermodule neem 'n stelselklok in en gebruik 'n verdeler -invoer om 'n klok met 'n snelheid van nie meer as die stelselklok te skep nie. Die stophorlosie gebruik twee verskillende klokmodules, een wat 'n 500 Hz -klok skep en 'n ander 'n 100 Hz -klok. Die skema vir die klokverdeler word in die figuur hierbo getoon. Die klokverdeler neem 'n enkelbit-invoer "CLK" in, en 'n 32-bis-invoer "Divisor" en die enkelbit-uitvoer "CLKOUT". "CLK" is die stelselklok en "CLKOUT" is die gevolglike klok. Die module bevat ook 'n NOT -hek, wat die sein "CLKTOG" skakel as die telling die waarde van die verdeler bereik.

Stap 4: Tel tot tien

Tel tot tien
Tel tot tien

Die syferteller tel elke syfer van 0 tot 10 en skep nog 'n horlosie vir die volgende syfer om te funksioneer, en dit ossilleer wanneer die telling 10 bereik. "en lei tot 'n enkel-bis-uitvoer" N "en 'n 4-bis-uitvoer" D ". Invoer "S" is die insette in. Die horlosie word aangeskakel wanneer "S" hoog is en af as "S" laag is. "RST" is die reset -invoer, sodat die klok herstel word as "RST" hoog is. "CLK" is die klokinvoer vir die syfers. "N" is die klokuitset wat die ingangsklok word vir die volgende syfer. Uitset "D" bied die binêre waarde van die syfer waarteen die teller is, aan.

Stap 5: Vertoon getalle

Vertoon getalle
Vertoon getalle

Die sewe-segment vertoonkodeerder sal die binêre getal wat van die sewe-segment vertoonbestuurdermodule ontvang word, kodeer en dit omskep in 'n stroom stukkies wat geïnterpreteer sal word as '1' of '0' waardes vir elke segment van die skerm. Die binêre getal word deur die module ontvang as die 4-bis invoer "syfer" en lei tot die 7-bis uitset "segmente". Die module bestaan uit 'n enkele gevalprosesblok wat 'n spesifieke 7-bis-stroom toeken vir elke moontlike insetwaarde van 0 tot 9. Elke bis in die sewe-bis-strome verteenwoordig een van die sewe segmente van die syfers op die skerm. Die volgorde van die segmente in die stroom is "abcdefg" met '0's' wat die segmente verteenwoordig wat vir die gegewe getal lig.

Stap 6: Hoe om die stophorlosie te wys

Hoe om die stophorlosie te wys
Hoe om die stophorlosie te wys

In die sewe-segment-skermbestuurdermodule is daar vier 4-bis-insette "D0", "D1", "D2" en "D3", wat elk die vier syfers verteenwoordig wat vertoon moet word. Invoer "CLK" is die klokinvoer van die stelsel. Enkel-bis-uitset "DP" verteenwoordig die desimale punt op die sewesegment. Die 4-bis-uitvoer "Anodes" bepaal watter syfer op die sewesegment vertoon word en die 4-bis-uitset "temp" hang af van die toestand van die 2-bis-beheerinvoer "SEL". Die module gebruik 4 multiplexers vir die kontrole -invoer "SEL" en die drie uitsette; "Anodes", "temp" en "DP".

Stap 7: Bring alles bymekaar

'N' As 'prosesblok wat van die 500Hz -klok afloop, word gebruik om die begin- en pouse -knoppies te skep. Koppel dan al die submodules aan mekaar in die stophorlosie se hoofmodule deur die komponente van elke individuele submodule te verklaar en verskillende seine te gebruik. Die syfer -submodules neem die klokuitset van die vorige syfer -submodule in, terwyl die eerste die 100Hz -klok inneem. Die "D" uitsette van die syfer submodules word dan die "D" insette van die sewe segment vertoon bestuurder module. En laastens word die "temp" -uitset van die sewe segment -skermbestuurdermodule die "temp" -invoer van die sewe segment encoder module.

Stap 8: Beperkings

Beperkings
Beperkings

Gebruik 3 drukknoppies (W19, T17 en U18) vir insette "RST", "S1" en "S2". W19 is die resetknoppie, T17 is die startknoppie (S1) en U18 is die pouse -knoppie (S2). 'N Beperking vir die invoer van die klok is ook nodig met poort W5. Onthou ook om hierdie reël by die klokbeperking te voeg:

create_clock -add -name sys_clk_pin -periode 10.00 -golfvorm {0 5} [get_ports {CLK}]

Koppel ook die anodes en segmente aan die bord sodat die stophorlosie op die sewe-segment-skerm vertoon word, soos in die beperkingslêer gesien word.

Stap 9: Toets

Toets
Toets

Maak seker dat u toestel werk deur met die drie knoppies te speel: om dit in elke moontlike volgorde in te hou om moontlike probleme met u kode op te spoor.

Aanbeveel: