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))