VHDL Knobelecke

Gast #297630
Lesenswert?

was macht die folgende Prozedur ?

procedure do_something
(
   signal clk  : in std_logic;
   a           : in real;
   signal y    : out real
) is
   variable x : real := 2.0  MATH_PI  a;
begin
   loop
     wait until rising_edge(clk);
     y <= sin( x * real(now / 1 ps) * 1.0e-12);
   end loop;
end do_something;
Gast #297631
Lesenswert?

Bei jede steig. Flanke gibst du den momentanen Wert der Sinusfunktion
aus (wie bei einer Abtastung), die mit der Simulationszeit läuft und
eine Periode von 1/a (Sinus ist gestaucht) in ps hat.

Wozu aber "loop.." und "wait until.."?

 if clk='1' and clk'event then
    y <= sin( x * real(now / 1 ps) * 1.0e-12);
 end if;

Hätte es doch auch getan?

Gruss Henrik

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren