Laboratórium 1 - 10. Mérésből ellenőrző mérés
A VIK Wikiből
- 2019.12.09. Két csoport volt, az egyiknek oda vissza futó led-et, a másiknak Johnson-számlálót kellett írnia. Nagyon fontos, hogy mérés végére legyen egy működő szimuláció, még ha a verilog kód működése nem is teljesen tökéletes. Ellenőrzéskor elsősorban a szimulációs ablakra kíváncsiak, a kódot nem is feltétlenül nézik meg. Jól működő szimuláció 3-ast ért, az fpga panelba programozva 5-öst. Jegyzőkönyvet elvileg kellett írni, de végül lementeti se kellett, nem foglalkoztak vele.
- Egy tetszőleges kombinációs vagy sorrendi hálózatot kellett írni verilogban. Javasolta, hogy pl. számláló, vagy multiplexer legyen. Vagyis mi megválaszthattuk, hogy mit írunk. Csinálni kellett egy test bench waveform-ot, majd fpga-ra kellett küldeni. Úgy emlékszem azt mondta, hogy ha fpga-n működik: 5-ös, ha a test bench: 4-es, helyes szintaktika: 2-es. Jegyzőkönyv nem kellett. Számláló és egy multiplexer (8 bites)
Megjegyzés: Nem akarok belerondítani a kódba, de számmal nem kezdünk modulnevet.
Az if(Enable==0) jellegű furcsaságot így lenne érdemes inkább:
if(RESET) resetelsz else if(enable) dolgozol
module 8counter(CLK,Enable,Q,RESET) output Q; input CLK,RESET,Enable; reg [7:0] Q; always@(posedge CLK or posedge RESET) if(Enable==0) Q <= Q; else if(RESET==0) Q <= 0; else Q <= Q + 1; end endmodule ////////////////////////////////////////__________________//////// module 8mux(data,select,Q) input data; input select; output Q; reg [7:0] data; reg [2:0] select; always@(data or select) begin case(select) 3'b000 : Q = data[0]; 3'b001 : q = data[1]; 3'b010 : q = data[2]; 3'b011 : q = data[3]; 3'b100 : q = data[4]; 3'b101 : q = data[5]; 3'b110 : q = data[6]; 3'b111 : q = data[7]; endcase end endmodule
- Nekem az volt a feladatom, hogy jönnek négyesével a bitek sorosan,az ad egy számot,és el kell dönteni a paritását.Páros esetén nekem a végén 1-et kellett jelezzen,tehát ha a 4 bites számban páros számú 1-es van,akkor 1 a kimenet a végén (0 is páros szám). Midnegy volt ,hogy mealy vagy moore szerint oldjuk meg,majd verilogban le kell kódolni, és ha jó 4-es,ha kézi CLK-t is csinálsz hozzá,5-ös.Ez kedden volt Varjasi tanár úrnál és Kálmán Viktornál.
- Feladat: 4 bites decimális számláló készítése. Ehhez testbench waveform, aztán topmodul, ami abból áll h példányosítod a számlálót. UCF fájl készítése feltöltés FPGA-ra és kész. Segítőkészek voltak, a feladattal meg voltam hamar, majd nem látta a PC az FPGA-t így hosszú szenvedés után elküldtek egy 4essel. Kellett a számlálóhoz Enable, RESET... és külüön felhívták a figyelmet arra, hogy az always@(posedge CLK or posedge RESET) -nél a RESET-et nem érti, hogy miért rakjuk bele, mert semmi értelme és ez biztos valami villanysite-os baromság. (Szerk: ehhez hozzáfűzném, hogy nem baromság, aszinkron reset-nek hívjuk, és nem használjuk általában FPGA-n belül, de létezik azért. (WachaG))