Forum: FPGA, VHDL & Co. Verschiedene Takte zum Arbeiten.


von peter (Gast)


Lesenswert?

Grafik-BSF-File für Takt 1Mhz und 500Khz.
Eingangstakt ist 50Mhz

Ich brauche ein BSF-File mit den beiden Takten oben und habe dafür unten 
dieses VHDL entworfen.
Wer weiss bitte eine bessere Lösung?

Dane.
Gruss

1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
use ieee.std_logic_unsigned.all;
5
6
entity takt_geber is
7
port ( 
8
  clock50    : in  std_logic;  
9
  ist_1mhz   : out std_logic;
10
  ist_500khz : out std_logic
11
 );
12
end takt_geber;
13
14
architecture behavioral of takt_geber is
15
16
signal n1 : unsigned(7 downto 0);
17
signal n2 : unsigned(7 downto 0);
18
19
begin
20
21
process 
22
begin 
23
    wait until clock50='1'; 
24
    
25
    n1 <=unsigned(n1)+1; 
26
    n2 <=unsigned(n2)+1; 
27
    
28
    if n1="00110010" then     
29
        ist_1mhz <='1'; 
30
        n1 < ="00000000";
31
    else 
32
        ist_1mhz<='0'; 
33
    end if; 
34
    
35
    if n2="01100100" then     
36
        ist_500khz <='1'; 
37
        n2 <= "00000000";
38
    else 
39
        ist_500khz<='0'; 
40
    end if; 
41
end process;
42
43
end behavioral;

von Uwe (Gast)


Lesenswert?

peter schrieb:
> Wer weiss bitte eine bessere Lösung?

Ich (aber nur etwas eleganter):
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
use ieee.std_logic_unsigned.all;
5
6
entity takt_geber is
7
port ( 
8
  clock50    : in  std_logic;  
9
  ist_1mhz   : out std_logic;
10
  ist_500khz : out std_logic
11
 );
12
end takt_geber;
13
14
architecture behavioral of takt_geber is
15
signal n1 : integer range 0 to 99;
16
17
begin
18
19
    process (clock50) begin 
20
        wait until clock50='1'; 
21
        ist_1mhz <= '1';
22
        ist_500khz <= '1';
23
        if n1 = 99 then
24
            ist_500khz <= '0';
25
            n1 <= 0;
26
        end if;
27
        if n1 = 49 or n1 = 99 then
28
            ist_1mhz <= '0';
29
        end if;
30
    end process;
31
32
end behavioral;
Die BSF-Konvertierung kennst du jetzt ja schon.

Uwe

von peter (Gast)


Lesenswert?

Ja danke.

Gruss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.