Turinys:

Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: 9 žingsniai
Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: 9 žingsniai

Video: Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: 9 žingsniai

Video: Pagrindinis chronometras naudojant VHDL ir „Basys3 Board“: 9 žingsniai
Video: Sharp WF-939 (1988 г.в.) самый последний настоящий sharp? 2024, Liepa
Anonim
Image
Image

Sveiki atvykę į instrukcijas, kaip sukurti chronometrą naudojant pagrindinę VHDL ir „Basys 3“plokštę. Džiaugiamės galėdami pasidalinti savo projektu su jumis! Tai buvo paskutinis CPE 133 kurso (skaitmeninis dizainas) projektas „Cal Poly“, SLO, 2016 m. Rudenį. Mūsų sukurtas projektas yra paprastas chronometras, kuris paleidžia, iš naujo nustato ir pristabdo laiką. Įvestyje naudojami trys „Basys3“plokštės mygtukai, o laikas rodomas keturių skaitmenų plokštės septynių segmentų ekrane. Praėjęs laikas rodomas sekundžių: centisekundžių formatu. Jis naudoja plokštės sistemos laikrodį kaip įvestį, kad galėtų sekti praėjusį laiką, ir pateikia laiką keturiems septynių segmentų ekrano skaitmenims.

1 žingsnis: medžiagos

Įėjimų ir išėjimų nustatymas
Įėjimų ir išėjimų nustatymas

Šiam projektui reikalingos medžiagos:

  • 1 kompiuteris su „Xivadx“įdiegta „Vivado Design Suite WebPack“(pageidautina 2016.2 versija)
  • 1 „Digilent Basys3“Xilinx Artix-7 FPGA plokštė
  • 1 USB prievado kabelis

2 žingsnis: įėjimų ir išėjimų nustatymas

Aukščiau pateiktame paveikslėlyje parodyta pagrindinio chronometro modulio aukščiausio lygio blokinė schema. Chronometras įveda įvestis „CLK“(laikrodis), „S1“(paleidimo mygtukas), „S2“(pauzės mygtukas) ir „RST“(atstatyti) ir turi 4 bitų išvestį „Anodes“, 7 bitų išvesties „segmentas“ir vieno bitų išvestis „DP“(dešimtainis taškas). Kai įvestis „S1“yra aukšta, chronometras pradeda skaičiuoti laiką. Kai „S2“yra žemas, chronometras sustabdo laiką. Kai „RST“yra didelis, chronometras sustoja ir nustato laiką. Grandinėje yra keturi submoduliai: laikrodžio daliklis, skaitmenų skaitiklis, septynių segmentų ekrano tvarkyklė ir septynių segmentų ekrano kodavimo priemonė. Chronometro pagrindinis modulis susieja visus submodulius kartu su įėjimais ir išėjimais.

3 žingsnis: laikrodžių gamyba

Laikrodžių gamyba
Laikrodžių gamyba

Laikrodžio daliklio modulis priima sistemos laikrodį ir naudoja daliklio įvestį, kad sukurtų bet kokio greičio, ne didesnio nei sistemos laikrodis, laikrodį. Chronometras naudoja du skirtingus laikrodžio modulius, vienas sukuria 500 Hz laikrodį, o kitas - 100 Hz laikrodį. Laikrodžio daliklio schema parodyta aukščiau esančiame paveikslėlyje. Laikrodžio skirstytuvas priima vieno bitų įvestį „CLK“, 32 bitų įvestį „Daliklis“ir vieno bitų išvestį „CLKOUT“. „CLK“yra sistemos laikrodis, o „CLKOUT“- gautas laikrodis. Modulis taip pat apima NOT vartus, kurie perjungia signalą „CLKTOG“, kai skaičius pasiekia daliklio vertę.

4 žingsnis: suskaičiuokite iki dešimties

Skaičiuoja iki dešimties
Skaičiuoja iki dešimties

Skaitmenų skaitiklis suskaičiuoja kiekvieną skaitmenį nuo 0 iki 10 ir sukuria kitą laikrodį, kad kitas skaitmuo veiktų, kai svyruoja, kai skaičius pasiekia 10. Modulis priima 3 vieno bitų įvestis „S“, „RST“ir „CLK“"ir gaunamas vieno bitų išėjimas" N "ir 4 bitų išėjimas" D ". Įvestis „S“yra įvesties įjungimas. Laikrodis įsijungia, kai „S“yra aukštas, ir išsijungia, kai „S“yra žemas. „RST“yra atstatymo įvestis, todėl laikrodis atstatomas, kai „RST“yra didelis. „CLK“yra skaitmeninių skaitiklių laikrodžio įvestis. „N“yra laikrodžio išėjimas, kuris tampa kito skaitmens įvesties laikrodžiu. Išvestis „D“pateikia skaitiklio, kuriame yra skaitiklis, dvejetainę vertę.

5 žingsnis: rodykite skaičius

Rodomi skaičiai
Rodomi skaičiai

Septynių segmentų ekrano kodavimo įrenginys užkoduos dvejetainį skaičių, gautą iš septynių segmentų ekrano tvarkyklės modulio, ir pavers jį bitų srautu, kuris bus interpretuojamas kaip „1“arba „0“reikšmės kiekvienam ekrano segmentui. Dvejetainį skaičių modulis gauna kaip 4 bitų įvesties „skaitmenį“, todėl gaunami 7 bitų išvesties „segmentai“. Modulį sudaro vieno atvejo proceso blokas, priskiriantis tam tikrą 7 bitų srautą kiekvienai galimai įvesties vertei nuo 0 iki 9. Kiekvienas bitas septynių bitų srautuose yra vienas iš septynių skaitmenų segmentų ekrane. Srauto segmentų tvarka yra „abcdefg“, o „0“reiškia segmentus, kurie užsidega pagal nurodytą skaičių.

6 veiksmas: kaip rodyti chronometrą

Kaip rodyti chronometrą
Kaip rodyti chronometrą

Septynių segmentų ekrano tvarkyklės modulyje yra keturi 4 bitų įėjimai „D0“, „D1“, „D2“ir „D3“, kurių kiekvienas reiškia keturis rodomus skaitmenis. Įvestis „CLK“yra sistemos laikrodžio įvestis. Vieno bitų išvestis „DP“reiškia dešimtainį tašką septynių segmentų ekrane. 4 bitų išvestis „Anodai“nustato, kuris skaitmuo rodomas septynių segmentų ekrane, o 4 bitų išvestis „temp“priklauso nuo 2 bitų valdymo įvesties „SEL“būsenos. Modulis naudoja 4 multiplekserius valdymo įėjimui „SEL“ir trims išėjimams; „Anodai“, „temp“ir „DP“.

7 žingsnis: viską sujunkite

„Start“ir pauzės mygtukams sukurti naudojamas „jei“proceso blokas, veikiantis 500 Hz laikrodžiu. Tada susiekite visus submodulius chronometro pagrindiniame modulyje, deklaruodami kiekvieno atskiro submodulio komponentus ir naudodami įvairius signalus. Skaitmenų submoduliai priima ankstesnio skaitmens submodulio laikrodžio išvestį, o pirmasis - 100 Hz laikrodį. Skaitmenų submodulių „D“išėjimai tampa septynių segmentų ekrano tvarkyklės modulio „D“įėjimais. Galiausiai septynių segmentų ekrano tvarkyklės modulio „temp“išvestis tampa septynių segmentų kodavimo modulio „temp“įvestimi.

8 žingsnis: Apribojimai

Apribojimai
Apribojimai

Norėdami įvesti „RST“, „S1“ir „S2“, naudokite 3 mygtukus (W19, T17 ir U18). W19 yra atstatymo mygtukas, T17 - pradžios mygtukas (S1), o U18 - pauzės mygtukas (S2). Naudojant prievadą W5, taip pat reikia apriboti laikrodžio įvesties įvestį. Taip pat nepamirškite pridėti šios eilutės prie laikrodžio apribojimo:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Taip pat susiekite anodus ir segmentus su lenta, kad chronometras būtų rodomas septynių segmentų ekrane, kaip parodyta apribojimų faile.

9 žingsnis: bandymas

Testavimas
Testavimas

Įsitikinkite, kad jūsų prietaisas veikia, žaisdami trimis mygtukais: paspausdami ir laikydami juos visa įmanoma tvarka, kad rastumėte galimas su kodu susijusias problemas.

Rekomenduojamas: