Teach ikasgaia
Logika digitala DE1-SoC plakan (1/6): zure lehen ateak benetako hardwarean
Oinarrizko ate logikoak deskribatuko dituzu Verilog 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
Verilogek 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 Verilog 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 Verilog 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:0]: pantailatik kontrolatzen dituzun 10 etengailu lerragarri. Etengailua goian dagoenean,1logikoa ematen du.KEY[3: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: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 Verilog editorea leds_mirror.v fitxategiarekin irekitzen da. Fitxategiak leds_mirror izeneko goi-mailako modulua (top-level) dauka: diseinu osoaren sarrera eta irteerak definitzen dituen modulua. Ordeztu fitxategiaren eduki osoa ariketako diseinuarekin, moduluaren leds_mirror 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 leds_mirror.v, sakatu Sintetizatu (Quartus zerbitzarian), sakatu FPGAra igo, eta probatu zirkuitua pantailako etengailuekin, zuzeneko kamera behatuz. Zure Verilog modulua zuzenean goi-mailako diseinu gisa sintetizatzen da; fitxategi hau bakarrik editatuko duzu.
Zein esaldik azaltzen du hobekien zure Verilog 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
Verilogen, ate horiek bitez biteko &, |, ~ eta ^ eragileekin idazten dira. Beheko diseinuak SW[0] etengailua A seinaleari lotzen dio, eta SW[1], B seinaleari. Ate bakoitzaren emaitza LED batera bidaltzen du. assign aginduak adierazten du irteera une oro adierazpenaren berdina dela, ate logikoei konektatutako hari bat balitz bezala.
// 1. ikasgaia: oinarrizko ateen txantiloia. Ordeztu leds_mirror.v osoa honekin.
// Osatu TODO adierazpen guztiak sintetizatu aurretik.
module leds_mirror(SW, LEDR);
input [9:0] SW; // SW[0] = A, SW[1] = B (gainerako etengailuak ez dira erabiltzen)
output [9:0] LEDR;
wire A = SW[0];
wire B = SW[1];
assign LEDR[0] = TODO_AND_EXPRESSION; // AND
assign LEDR[1] = TODO_OR_EXPRESSION; // OR
assign LEDR[2] = TODO_NOT_A_EXPRESSION; // NOT A
assign LEDR[3] = TODO_NAND_EXPRESSION; // NAND
assign LEDR[4] = TODO_NOR_EXPRESSION; // NOR
assign LEDR[5] = TODO_XOR_EXPRESSION; // XOR
assign LEDR[9:6] = 4'b0000; // Erabili gabeko LEDak itzalita
endmodule
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 Verilog laborategia. Editoreak
leds_mirror.vfitxategia erakusten du.Hautatu
leds_mirror.vfitxategiaren eduki osoa eta ordeztu goiko oinarrizko ateen moduluarekin. Mantenduleds_mirrorizena. 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
SW0etaSW1etengailuak behean daudela (A=0, B=0), behatu kameran zein LED dauden piztuta eta alderatu zure iragarpenarekin.Jarri
SW1goian etaSW0behean (A=0, B=1). Ondoren, jaitsiSW1eta igoSW0(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 = SW0 | B = SW1 | 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