Teach Urruneko laborategidun ikasgaiak

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.

  • DE1-SoC
  • 50 min
  • Batxilergo teknologikoa, hasierako lanbide-heziketa edo lehen ikasturte teknikoak
  • eu
  • Digital systems & FPGA

Hasi saioa irakasle-kontu batekin klase-saioa prestatzeko. Ikasleak klase-kode batekin sartzen dira.

DE1-SoC plakako Verilog lan-prozesua: editatu leds_mirror.v; Sintetizatu botoiak Quartus zerbitzarian abiarazten du; FPGAra igo botoiak benetako plaka programatzen du; azkenik, erabili pantailako etengailuak eta behatu zuzeneko kamera.
DE1-SoC

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.

1

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, 1 logikoa ematen du.
  • KEY[3:0]: 4 sakagailu. Maila baxuan aktibatzen dira: sakatuta, 0 irakurtzen da; askatuta, 1.
  • CLOCK_50: 50 MHz-eko erloju-seinalea; 3. ikasgaitik aurrera erabiliko duzu.
  • LEDR[9:0]: 10 LED gorri. LEDR0 lerroaren eskuineko muturrean dago, eta LEDR9, ezkerrekoan. Maila altuan aktibatzen dira: LED bat pizteko, haren seinalea 1 jarri behar da.
  • HEX0–HEX5: 7 segmentuko sei bistaratzaile. Maila baxuan aktibatzen dira: segmentu bat pizten da dagokion bitak 0 balio 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.

DE1-SoC plakako Verilog lan-prozesua: editatu leds_mirror.v; Sintetizatu botoiak Quartus zerbitzarian abiarazten du; FPGAra igo botoiak benetako plaka programatzen du; azkenik, erabili pantailako etengailuak eta behatu zuzeneko kamera.

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.

2

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 → AND 0, OR 0, NOT A 1, NAND 1, NOR 1, XOR 0
  • A=0, B=1 → AND 0, OR 1, NOT A 1, NAND 1, NOR 0, XOR 1
  • A=1, B=0 → AND 0, OR 1, NOT A 0, NAND 1, NOR 0, XOR 1
  • A=1, B=1 → AND 1, OR 1, NOT A 0, NAND 0, NOR 0, XOR 0

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.

3

Sintetizatu, kargatu eta egiaztatu

16 min

Eraiki orain zirkuitua benetako plakan, eta egiaztatu egia-taularen arabera funtzionatzen duela.

  1. Ireki DE1-SoC plakako Verilog laborategia. Editoreak leds_mirror.v fitxategia erakusten du.

  2. Hautatu leds_mirror.v fitxategiaren eduki osoa eta ordeztu goiko oinarrizko ateen moduluarekin. Mantendu leds_mirror izena. Ordeztu TODO guztiak dagozkien adierazpenekin.

  3. 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.

  4. Sakatu FPGAra igo, eta itxaron plakaren saioa eta zuzeneko kamera agertu arte.

  5. Pantailako SW0 eta SW1 etengailuak behean daudela (A=0, B=0), behatu kameran zein LED dauden piztuta eta alderatu zure iragarpenarekin.

  6. Jarri SW1 goian eta SW0 behean (A=0, B=1). Ondoren, jaitsi SW1 eta igo SW0 (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.

4

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.