problema con 1.2KHz clock da 40MHz fonte

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

 
Joshi ha scritto:

Ciao a tuttiHo master clock a 40 MHz e dal Master Clock vuole generare 1,2 Khz impulsi a onda quadra in uscitail mio codice è il seguente
(1) Qual è problm con il mio codice
(2) come contatore funziona e come decidere i valori del contatore come
questi 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 CounteriniziareClock: 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 OFFout_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
 
Grazie mille per yur ingressi ..

ya dovrebbe essere 16.660 e 16.660 ON OFF
abd yur ingresso One more
*******************
Vorrei suggerire scrivere

elsif (MHZ_clock'event e MHZ_clock = '1 ') then
clk_count <= clk_count '1 ';
-----------
- Il codice
-------
Dovrebbe funzionare altrimenti ....
********************

qui voglio increament Counter Fino a 16.660 (100.000.100.010.100) e un suo contatore i fine valore vogliono fare Jus Counter 0000000000000000 che Yi ha scritto il codice come questo. assumere Counter 50 -> ho fatto 0-25 O / P Alta e 25-50 Ho fatto O / P basso ...
************************
elsif (MHZ_clock'event e MHZ_clock = '1 ') then
if (clk_count <= "01000001000101000") poi --- vogliono Genera Dela
- (40M Hz/1.2K Hz = 3320)

clk_count <= clk_count '1 ';
out_clock <= '1 ';

***********************
dalla logica yur Come posso fare couner valore pari a zero?

quello che ho già cosa più Synthesised presente codice, ma non abld per simulare ...

 

Welcome to EDABoard.com

Sponsor

Back
Top