J
Joshi
Guest
Ciao a tutti
Ho master clock a 40 MHz e dal Master Clock vuole generare 1,2 Khz impulsi a onda quadra in uscita
il mio codice è il seguente(1) Qual è problm con il mio codice(2) come contatore funziona e come decidere i valori del contatore comequesti disegni(3), senza Counter possiamo usare Shift?library IEEE;
uso IEEE.std_logic_1164.ali;
uso ieee.std_logic_arith.all;
uso ieee.std_logic_unsigned.all;
entità Clk_divider è
port (
resetn: in std_logic; - Reset
MHZ_clock: in std_logic;
Out_clock: out std_logic
);
fine Clk_divider;
architettura Clk_divider_arch di Clk_divider è
clk_count segnale: std_logic_vector (16 downto 0): =
"00000000000000000"; - 16 Bit Counter
iniziare
Clock: processo (resetn, MHZ_clock) - 0.025uSec
iniziare
if (resetn = '0 ') then
Out_clock <= '0 ';
elsif (MHZ_clock'event e MHZ_clock = '1 ') then
if (clk_count <= "01000001000101000") poi --- vogliono Genera
Delay (40M Hz / 1.2K Hz = 3320)
clk_count <= clk_count '1 ';
out_clock <= '1 ';
elsif ((clk_count> "01000001000101000"), E (clk_count <
"10000010001010000")) then
- 0-3333 ON e 3.333-6.666 OFF
out_clock <= '0 ';
clk_count <= clk_count '1 ';
if (clk_count = "10000010001010000") poi
clk_count <= "00000000000000000";
end if;
end if;
end if;
Clock fine processo;
fine Clk_divider_arch;
In attesa delle risposte fr ..
con anticipo grazie
Joshi
Ho master clock a 40 MHz e dal Master Clock vuole generare 1,2 Khz impulsi a onda quadra in uscita
il mio codice è il seguente(1) Qual è problm con il mio codice(2) come contatore funziona e come decidere i valori del contatore comequesti disegni(3), senza Counter possiamo usare Shift?library IEEE;
uso IEEE.std_logic_1164.ali;
uso ieee.std_logic_arith.all;
uso ieee.std_logic_unsigned.all;
entità Clk_divider è
port (
resetn: in std_logic; - Reset
MHZ_clock: in std_logic;
Out_clock: out std_logic
);
fine Clk_divider;
architettura Clk_divider_arch di Clk_divider è
clk_count segnale: std_logic_vector (16 downto 0): =
"00000000000000000"; - 16 Bit Counter
iniziare
Clock: processo (resetn, MHZ_clock) - 0.025uSec
iniziare
if (resetn = '0 ') then
Out_clock <= '0 ';
elsif (MHZ_clock'event e MHZ_clock = '1 ') then
if (clk_count <= "01000001000101000") poi --- vogliono Genera
Delay (40M Hz / 1.2K Hz = 3320)
clk_count <= clk_count '1 ';
out_clock <= '1 ';
elsif ((clk_count> "01000001000101000"), E (clk_count <
"10000010001010000")) then
- 0-3333 ON e 3.333-6.666 OFF
out_clock <= '0 ';
clk_count <= clk_count '1 ';
if (clk_count = "10000010001010000") poi
clk_count <= "00000000000000000";
end if;
end if;
end if;
Clock fine processo;
fine Clk_divider_arch;
In attesa delle risposte fr ..
con anticipo grazie
Joshi