ModelSim Xilinxa - co robie zle??

witam grupe

zabralem sie za Xilinxy i WebPacka + ModelSima kodze sobie w Verilogu wszystko ladnie dziala, srodowisko calkiem przyjemne, tylko mam problem z symulatorem :(

oto przykladowy kod

---------------------------------------------------- module generator(clk,vout,hsync,vsync); input clk; output vout; output hsync; output vsync; reg [10:0] hcounter; reg [8:0] vcounter;

wire allow; assign allow = (hcounter >= 168 && hcounter < 888 && vcounter >= 32 && vcounter < 288 ) ? 1 : 0;

assign hsync = (hcounter < 69 && vcounter < 305) ? 1 : 0; assign vsync = (vcounter >= 306 && vcounter <= 308) ? 1 : 0;

assign vout = allow; always @(posedge clk) begin hcounter = hcounter + 1; if(hcounter == 936) begin hcounter = 0; vcounter = vcounter + 1; if(vcounter == 312) vcounter = 0; end end endmodule

----------------------------------------------------

oraz plik symulacji:

---------------------------------------------------- `timescale 1ns/1ns module sim; reg clk; wire vout; wire hsync; wire vsync;

generator UUT ( .clk(clk), .vout(vout), .hsync(hsync), .vsync(vsync) );

always begin //clock process #34 clk = 0; #34 clk = 1; end

initial begin

#100000 $stop; end endmodule

----------------------------------------------------

Juz nie wnikajac w tresc kodu, bo to chyba teraz nie istotne - rzecz w tym, ze symulator przyjmuje plik, uruchamia symulacje tworzy piekne przebiegi i..... kicha :( Wszystkie wyjscia sa caly czas w stanie X... oczywiscie kod dziala dokladnie tak jak powinien w kosci, ale symulator nie ma zamiaru :(

Jedyne wypadki kiedy pokazuje sie cos zamiast Xow na wyjsciach, to gdy przypisze wartosc stala wyjsciu, albo w programie jest reg o tej samej nazwie co wyjscie - czyli prosty licznik w ktorym mam:

output [3:0] cnt; reg [3:0] cnt; ...

dziala, ale gdy zrobie: output [3:0] out; reg [3:0] cnt; assign out = cnt;

juz nie... i na wyjsciu caly czas jest stan nieokreslony...

i o co tu chodzi? czy ja nie wiem o jakich zasadach programowania w Verilogu, czy to wina symulatora??

help i z gory dzieki...

Reply to
Michal Wysocki
Loading thread data ...

ufff heh - przez maly blad nie udawalo mi sie uruchomic symulacji "post-fit", ale poszlo i tutaj wszystko jest ok... tylko czemu symulacja funkcjonalna nie dziala??

Reply to
Michal Wysocki

A inicjujesz gdzies sygnaly? Symulator jest tutaj wrecz upierdliwy - albo podasz wartosci poczatkowe (lub dasz wejscie reset i na poczatku symulacji je uaktywnisz) albo masz wartoscie "nieznany" GRG

Reply to
Gregor

dzieki pomoglo :)

a ja sie zastanawialem po co w przykladach jest sekcja initial, skoro w CPLD i tak to jest ignorowane... ;)

Reply to
Michal Wysocki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.