Laboratórium 1 - 10. Mérés: Sorrendi hálózat vizsgálata

A VIK Wikiből
A lap korábbi változatát látod, amilyen Unknown user (vitalap) 2012. október 22., 12:55-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Villanyalap|LaborI10esMérés}} ==Xilinx ISE bugok== Ide sorolhatjátok fel a Xilinx ISE használatakor felfedezett bugokat. A tárgy honlapján is …”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Xilinx ISE bugok

Ide sorolhatjátok fel a Xilinx ISE használatakor felfedezett bugokat. A tárgy honlapján is van felsorolás, de ahhoz te nem tudsz írni..

  • A Windows 8 a 14.2-es verziónál még nem támogatott, van, ami a 64 bites verzióval megy csak, van, ami a 32 bitessel. Nekem telepíteni sem sikerült.
  • Telepítéskor a telepítési könyvtár ne tartalmazzon se szóközt, se számot, se ékezetes karaktert, a c: meghajtóra érdemes rakni. C:\Xilinx könyvtár menni szokott, Linux alatt pl. a /opt/Xilinx megfelelő
  • Windows alatt ISE futása alatt ne válts billentyűkiosztást, lefagy a rendszer (évek óta nem javított ISE bug).
  • Linux alatt érdemes az LC_ALL környezeti változót (meg a LANG-ot, meg a LOCALE-t) en_US-re vagy C-re állítani, különben vacakolhat. Mondjuk a Webpack-nál nem szokott előjönni.
  • Van, hogy az ISE nem veszi észre, hogy egy UCF file-t hozzáadtál. Abban nyílvánul ez meg, hogy a jó kódod letöltve nem csinál semmit. Ilyenkor fogod, eltávolítod a projektből az ucf-et, aztán visszarakod. Illetve van, hogy nem a megfelelő modul alá húzza be az ucf-et, ilyenkor egy random verilog modult top modullá alakítasz (jobb egér, set as top module), majd az igazi top modulodat visszacsinálod top module-ra.

Fontos megjegyzés

  • Az itteni segédletek (főleg a megoldott házipéldák) elavultak, nektek már nem kell állapottáblázni meg ilyenek (bezzeg az én időmben...). Mérésvezetők jókat szoktunk mosolyogni, ha valaki ilyet ad be... :-).
  • A beugrókérdések SEM ezek. És nem feltétlen az ellenőrző kérdések. A segédlet megértésével, készüléskor a mérés fejben végigpörgetésével teljesíthetőek. Nem szoktatok bukni rajta.

-- Main.wachag - 2012.10.08.

Beugró

Ezek eléggé elavult kidolgozások.

Néhány mérésvezetőknek van egy rossz szokása: a segédletben levő kérdést teszi fel, csak megváltoztat benne valamit. Vagy esetenként ugyanarra kérdez rá, csak másik irányból, más szavakkal. Tehát érdemes értve tanulni, nem bevágni.


Mérésről

  • Nálunk úgy volt, hogy le kellett csekkolni a verilogos progjaink szintaktikailag helyesek e! AZtán ki kellett választanunk az egyikőnkét, majd azt kellett

tesztelni a Wave valamivel(Nem kellett túl cifráznunk)! Azt létre kellett hozni egy topmodult, azaz egy tokot a készülékünknek amit terveztél azt össze kell kötni egy előre definiált kézi clock-al, erre írni ucf fájlt, amit a mérési jegyzőkönyv segédletben találsz.

Amúgy a Webpack bevezető hasznos, annak a lépései alapján kell haladni. Ja és a végén ezt fel kellett tölteni FPGA-ra, és ott nyomógombokkal tesztelgetni!

Aki idáig eljutott az 5-öst kapott, aki nem az 4-est!

Jah és nálunk nem volt beugró, de ez tanárfüggő mert a hétfőiek írtak! by Szabi 2010

  • Volt beugró az ellkérdésekből kaptunk kettőt, különböző párosításban. (pl. siznkron sorrendi hálózat tervezése + kritikus versenyhelyzet vagy setup time + Mealy és Moore közötti különbség). Sajnos mi csak 3.3-ig jutottunk, mert a 3.4nél nem tudtuk kicsalni az analizátorra az FPGA-ból az órajelet. Érdemes átnézni előtte, hogy hogy kell toplevel modult csinálni, azaz hogy kell két modult összekötni (verilog bevezetőben van egy nand kapus példa). Összességében jó jegyeket kaptunk, mert a mérésvezető sem tudta, hogy miért nem működik az elvárásainknak megfelelően az analizátor. 2010

Segítségek

  • amennyiben ISE Webpack beépített szimulátorával szeretnéd tesztelni a házid win7 alatt, valószínű megakad a szimuláció elindításánál a következő üzenettel: This is a LITE version of ... MEGOLDÁS: winXP, ott működik, ahogy kell.

-- Bandi - 2010.11.22.


  • Topmodul tervezéshez by Csebisev
module topmodule(Z,X,NY,kezi,clk,res, state);			//egy ún. topmodulba fogjuk össze a kézi órajelet és az elkészült házi feladatot
output Z;															//ugyanúgy kell bánni vele, mint bármelyik modullall, vannak kimenetei, bemenetei
input  X,NY,kezi,clk,res;
output wire [2:0] state;
Moore m1(clk, res, X, Z, enout, state);					//példányosítás, itt konkrétan veszünk a készmodulokból egy-egy "példányt" és beleillesztjük
kezi_clk kezi2 (NY,kezi,clk,res,enout);					//a topmodulba.
endmodule

Hivatkozások


Házik villanysiteról

Ha már ide jutottál, hogy nagyon elakadtál, egy olyan jótanács: ne állapottáblázz, meg Karnaugh-táblázz. A fél órás feladatot három napra hosszabbítod (tapasztalatból mondom). Inkább kérdezz a tárgy listáján és/vagy a mérésvezetőktől, általában segítünk.


Egy 4 < n < 8 állapotú, egyetlen X bementtel rendelkező sorrendi automata a következő képpen működik. Bekapcsolás után a kezdő állapotban marad mindaddig, amíg az X bemenete 1-nem lesz, itt Z=0-át ad. Ezután minden órajelre újabb állaptba lép, és egy n-1 hosszúságú kimeneti sorozat következő elemét adja a Z kimenetén. Ezt mindaddig folytatja, míg az n-edik állapotba nem lép, de X=1 esetén itt marad s a sorozat utolsó elemét adja a kimeneten, X=0 esetén pedig a kezdő állapotba lép és 0-át ad. A kimeneti sorozat természetesen nem lehet konstans és az utolsó bitje mindig 1.

Példa Mealy modell esetén, ha n=5 és a megadott kimeneti sorozat 1101: X:001xxxx1110001x? Z:000110111100001? n=5, x=1011

b. Kapcsolási rajz Mealy modell szerinti automatához, Verilog leírás Moore modell szerintihez

module Moore(X,Z,clk,RESET);
  input clk;
  input X;
  input RESET;
	 output reg Z;
  reg[2:0] S;
parameter a=3'b000;
parameter b=3'b001;
parameter c=3'b011;
parameter d=3'b010;
parameter e=3'b110;
parameter f=3'b100;
parameter g=3'b101;
always@(posedge clk or posedge RESET)
begin
if(RESET)
begin
S<=a;
Z<=0;
end
else
begin
		 case(S)
			  a: begin if (X==1) S<=b; else S<=a; Z<=0; end
b: begin S<=c; Z<=1; end
c: begin S<=d; Z<=0; end
d: begin S<=e; Z<=1; end
e: begin S<=f; Z<=1; end
f: begin if (X==0) S<=g; else S<=f; Z<=1; end
g: begin S<=a; Z<=0; end
default: begin S<=a; Z<=0; end
 endcase

end
end
endmodule

/*****************************************************************
 *																					*
 *  Sorrendi automata, x=0 esetén marad alapállapotban, z=0.	  *
 *  x=1 esetén z=0, majd sorban kiadja a kimenetre az 1101		 *
 *  sorozatot x értékétől függetlenül. A kimeneten ezután addig  *
 *  marad z=1, amíg x=1, ezután alapállapotba kerül.				 *
 *																					*
 *  Máté Miklós VZ7YRO														 *
 *																					*
 *****************************************************************/


module automata(clk, reset, x, z);
  input clk;
  input reset;
  input x;
  output z;

  reg [2:0] y;  // Állapot
  reg [2:0] Y;  // Új állapot

  // Paraméterekkel állapotkódolás
  parameter  a = 3'b000;
  parameter S1 = 3'b001;
  parameter S2 = 3'b101;
  parameter S3 = 3'b110;
  parameter S4 = 3'b111;

  // Állapotregiszter (D tároló)
  always @(posedge clk or posedge reset)
	 if (reset) y <= a;
			 else y <= Y;

  // Állapotlogika
  always @(x or y)
	 case (y)
		a:  if (x) Y <= S1;
				else Y <= a;
		S1:		  Y <= S2;
		S2:		  Y <= S3;
		S3:		  Y <= S4;
		S4: if (x) Y <= S4;
				else Y <= a;
		default:	Y <= a;
	 endcase

  // Kimeneti logika
  assign z = y[0];

endmodule

-- GAbika - 2010.