Teach ikasgaia
Logika digitala DE1-SoC plakan VHDL erabiliz (1/6): zure lehen ateak benetako hardwarean
Oinarrizko ate logikoak deskribatuko dituzu VHDL bidez, diseinua sintetizatu eta DE1-SoC plakara kargatuko duzu, eta egia-taulak benetako etengailu eta LEDekin egiaztatuko dituzu.
Hasi saioa irakasle-kontu batekin klase-saioa prestatzeko. Ikasleak klase-kode batekin sartzen dira.
Lehen aldia duzu LabsLand-en? Sortu irakasle-kontua
Ikaskuntza-emaitzak
VHDL lengoaiak hardwarea deskribatzen duela azaltzea, eta ez lerroz lerro exekutatzen den programa bat.
LabsLandeko DE1-SoC lan-prozesua erabiltzea: editatu, Sintetizatu, FPGAra igo eta behatu.
Oinarrizko sei ate logikoak eraikitzea eta haien egia-taula benetako hardwarean egiaztatzea.
DE1-SoC plakako LEDen aktibazio-maila altua eta sakagailuen aktibazio-maila baxua ezagutzea.
Ikaslearen jardueraren aurrebista
Jardueraren edukia
Aurrebista soilik. Klase-saio batean, ikasleek erantzunak bete eta lana irakasleari bidal diezaiokete.
Zer egingo duzu?
12 min
Ezagutzen dituzun programa gehienak prozesadore batean exekutatzen dira: instrukzioak bata bestearen ondoren egiten dira. Ikastaro honetan, zirkuitu digital bat deskribatuko duzu VHDL izeneko lengoaian. Benetako txip bat zirkuitu hori gauzatzeko konfiguratuko da. Diseinu honetan ez dago zure lerroak banan-banan exekutatzen dituen prozesadorerik: deskribatutako konexioek eta ate logikoek aldi berean funtzionatzen dute.
Txipa FPGA bat da (Field-Programmable Gate Array): berriz konfigura daitezkeen bloke logiko eta konexio ugari dituen zirkuitu integratua. Plaka Terasic DE1-SoC bat da, Intel/Altera-ren Cyclone V FPGA batekin; diseinu digitaleko unibertsitate-ikastaroetan asko erabiltzen da. LabsLand bidez, nabigatzailetik sartuko zara benetako plaka batera. Zerbitzari batek Intel Quartus erabiltzen du zure VHDL deskribapena konfigurazio-fitxategi bihurtzeko; ondoren, plaka fisikoa programatzen da. Zuzeneko kameran ikusiko duzu nola erantzuten duten benetako LEDek.
Ikastaro honetan erabiliko dituzun plakaren osagaiak:
SW(9 downto 0): pantailatik kontrolatzen dituzun 10 etengailu lerragarri. Etengailua goian dagoenean,1logikoa ematen du.KEY(3 downto 0): 4 sakagailu. Maila baxuan aktibatzen dira: sakatuta,0irakurtzen da; askatuta,1.CLOCK_50: 50 MHz-eko erloju-seinalea; 3. ikasgaitik aurrera erabiliko duzu.LEDR(9 downto 0): 10 LED gorri.LEDR0lerroaren eskuineko muturrean dago, etaLEDR9, ezkerrekoan. Maila altuan aktibatzen dira: LED bat pizteko, haren seinalea1jarri behar da.HEX0–HEX5: 7 segmentuko sei bistaratzaile. Maila baxuan aktibatzen dira: segmentu bat pizten da dagokion bitak0balio duenean.
Lan-prozesu bera erabiliko duzu ikasgai guztietan. LabsLandeko VHDL editorea blink.vhd fitxategiarekin irekitzen da. Fitxategiak blink izeneko goi-mailako entitatea (top-level) dauka: diseinu osoaren sarrera eta irteerak definitzen dituen entitatea. Ordeztu fitxategiaren eduki osoa ariketako diseinuarekin, entitatearen blink izena mantenduz. Sakatu Sintetizatu, itxaron amaitu arte, sakatu FPGAra igo eta erabili pantailako etengailuak kamera behatzen duzun bitartean. Gida batek edo laguntza-leiho batek editoreko botoiak estaltzen baditu, itxi edo saltatu aurrera egin aurretik.
Editatu blink.vhd, sakatu Sintetizatu (Quartus zerbitzarian), sakatu FPGAra igo, eta probatu zirkuitua pantailako etengailuekin, zuzeneko kamera behatuz. Zure VHDL entitatea zuzenean goi-mailako diseinu gisa sintetizatzen da; fitxategi hau bakarrik editatuko duzu.
Zein esaldik azaltzen du hobekien zure VHDL deskribapenak laborategi honetan egiten duena?
Plaka honetan, zer balio jarri behar da LED bat pizteko? Eta zer balio irakurtzen da KEY sakagailu bat sakatuta dagoenean? Erantzun esaldi batean.
Oinarrizko sei ateak
12 min
Ate logiko batek sarrera bitar bat edo gehiago hartzen ditu, eta irteera bitar bat ematen du. Sei ate hauekin egingo duzu ikastaroko lanaren zatirik handiena. A eta B sarrerak erabilita:
A eta B sarreren egia-taula:
A=0, B=0→ AND0, OR0, NOT A1, NAND1, NOR1, XOR0A=0, B=1→ AND0, OR1, NOT A1, NAND1, NOR0, XOR1A=1, B=0→ AND0, OR1, NOT A0, NAND1, NOR0, XOR1A=1, B=1→ AND1, OR1, NOT A0, NAND0, NOR0, XOR0
VHDL lengoaian, ate horiek and, or, not eta xor eragile logikoekin idazten dira. Beheko diseinuak SW(0) etengailua A seinaleari lotzen dio, eta SW(1), B seinaleari. Ate bakoitzaren emaitza LED batera bidaltzen du. LEDR(0) <= A and B; bezalako esleipen konkurrente batek adierazten du irteerak une oro adierazpen horri jarraitzen diola. entity blink zatiak sarrerak eta irteerak deklaratzen ditu; architecture rtl of blink zatiak haien arteko logika deskribatzen du.
-- Ikaslearen txantiloia: osatu TODO lerroak sintetizatu aurretik.
-- 1. ikasgaia: oinarrizko ateak. Ordeztu blink.vhd fitxategiko eduki OSOA diseinu honekin.
library ieee;
use ieee.std_logic_1164.all;
entity blink is
port (
SW : in std_logic_vector(9 downto 0); -- SW(0)=A, SW(1)=B
LEDR : out std_logic_vector(9 downto 0)
);
end entity blink;
architecture rtl of blink is
signal A, B : std_logic;
begin
A <= SW(0);
B <= SW(1);
LEDR(0) <= TODO_AND; -- TODO: AND adierazpena
LEDR(1) <= TODO_OR; -- TODO: OR adierazpena
LEDR(2) <= TODO_NOT_A; -- TODO: NOT A adierazpena
LEDR(3) <= TODO_NAND; -- TODO: NAND adierazpena
LEDR(4) <= TODO_NOR; -- TODO: NOR adierazpena
LEDR(5) <= TODO_XOR; -- TODO: XOR adierazpena
LEDR(9 downto 6) <= (others => '0'); -- Erabili gabeko LEDak itzalita
end architecture rtl;
Diseinua plakan probatu aurretik, egin hasierako iragarpena. Bi etengailuak behean badaude, A=0 eta B=0: bilatu errenkada hori egia-taulan, eta erabaki sei ateetako bakoitzaren irteera 1 den ala ez. Hurrengo urratsean, iragarpena benetako plakarekin alderatuko duzu.
Bi etengailuak behean daudela (A=0, B=0), LEDR(0)–LEDR(5) bitarteko zein LED egongo dira piztuta, zure ustez? Idatzi diseinua plakan probatu aurretik, eta justifikatu egia-taulan oinarrituta.
Sintetizatu, kargatu eta egiaztatu
16 min
Eraiki orain zirkuitua benetako plakan, eta egiaztatu egia-taularen arabera funtzionatzen duela.
Ireki DE1-SoC plakako VHDL laborategia. Editoreak
blink.vhdfitxategia erakusten du.Hautatu
blink.vhdfitxategiaren eduki osoa eta ordeztu goiko oinarrizko ateen txantiloiarekin. Mantendublinkizena. OrdeztuTODOguztiak dagozkien adierazpenekin.Sakatu Sintetizatu. Gida batek botoia estaltzen badu, itxi edo saltatu lehenik. Itxaron amaitu arte (1–3 minutu inguru). Errore bat agertzen bada, begiratu puntu eta komarik falta den edo parentesiak parekatuta dauden, zuzendu eta sakatu berriro Sintetizatu. Abisu asko ager daitezke; jarraitu soilik azken egoerak konpilazioa 0 errorerekin amaitu dela dioenean.
Sakatu FPGAra igo, eta itxaron plakaren saioa eta zuzeneko kamera agertu arte.
Pantailako
SW(0)etaSW(1)etengailuak behean daudela (A=0, B=0), behatu kameran zein LED dauden piztuta eta alderatu zure iragarpenarekin.Jarri
SW(1)goian etaSW(0)behean (A=0, B=1). Ondoren, jaitsiSW(1)eta igoSW(0)(A=1, B=0). Azkenik, jarri biak goian (A=1, B=1). Irakurri sei LEDen egoera konbinazio bakoitzean.
Klase-saio batean erabilgarri
Errenkada bakoitzean, jarri etengailuak adierazitako egoeran eta jaso kameran sei LEDek erakusten dutena (1 = piztuta, 0 = itzalita). Alderatu aurreko urratseko egia-taularekin.
| A = SW(0) | B = SW(1) | LEDR0 AND | LEDR1 OR | LEDR2 NOT A | LEDR3 NAND | LEDR4 NOR | LEDR5 XOR |
|---|---|---|---|---|---|---|---|
Erantsi zure ebidentzia. Hartu kameraren pantaila-argazki bat bi etengailuak goian daudela (SW = 11): LEDR0 (AND) eta LEDR1 (OR) piztuta agertu behar dira, eta gainerakoak itzalita. Erantsi irudiaren erreferentzia edo esteka erantzunean.
Zein atek ematen du 1 sarreren konbinazio bakar batean, zehazki A=1, B=1 errenkadan?
Zein atek ematen du 1 sarreren konbinazio bakar batean, zehazki A=0, B=0 errenkadan?
Azaldu zure hitzekin zer erlazio duten NAND eta NOR ateek AND/OR ateekin eta NOT eragiketarekin. Erabili jasotako datuak erantzuna justifikatzeko.
Lan-prozesuaren egiaztapena
10 min
Zein sekuentzia dator bat egin berri duzunarekin?
Hiru esalditan, azaldu zer egin duen Sintetizatu urratsak, zer egin duen FPGAra igo urratsak eta nola jakin duzun ateek funtzionatzen zutela. Aipatu noiz izan den garrantzitsua seinale bat maila altuan edo baxuan aktibatzea.
Bihurtu aurrebista hau klase-saio batean
Jarraitu LabsLand Teach-era ikasgai hau ikasleekin erabiltzeko eta kontuaren sarbidea berrikusteko.
Lehen aldia duzu LabsLand-en? Sortu irakasle-kontua