signal teiler : integer range 0 to 4000000 - 1; signal tick : boolean;
begin
monoflop_prozess: process (clk, rst, teiler, tick) begin if falling_edge(clk) then if (d_in='1' and teiler = 0) then teiler <= 4000000 - 1; tick <= true; else teiler <= teiler - 1; end if; -- end d_in
if teiler = 0 or rst ='1' then tick <= false; end if; -- end teiler
if tick then led <= '1'; else led <= '0'; end if; -- end tick
end if; -- end clk end process monoflop_prozess;
end rtl;
----- Original Message ----- From: John-eric To: Sent: Sunday, April 11, 2004 7:38 PM Subject: Re: monoflop in vhdl
macht nichts wegen der verspätung. das ist ja fast das gleiche. ich denke das: "falling_edge(clk)" gleichbedeutend mit "clk='0' and clk'event" ist. also fallende flanke, oder? mein problem ist aber immer noch da. oder nicht? -------------------------- if d_in='1' then teiler <= 4000000 - 1; tick <= true; else teiler <= teiler - 1; end if; -------------------------- so lange ich "d_in" auf "high" lege, wird der "teiler" bei jeder fallenden flanke mit "4000000-1" geladen. ich bräucht aber "d_in='1' and d_in'event" also die steigende flanke von d_in. ich hab das jetzt mal so geschrieben wie ich das verstehe. konnte das jetzt noch nicht ausprobieren, da ich keinen internet anschluß habe. testen werde ich das aber trotzdem morgen früh. trotzdem danke. john-eric
Mit bonus.net bis zu 70% beim Einkauf sparen! Jetzt anmelden und kostenlos testen!