Verschiedene Takte zum Arbeiten.

Gast #4022306
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;
Gast #4022800
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

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