H
hlmwps
Guest
entitate FreqMeter este de
port (a nu putea suporta: in std_logic;
CE: in std_logic;
bclk: in std_logic;
gclk: in std_logic;
Start: in std_logic;
num: integer în intervalul 10 - 1000;
de peste: out std_logic;
databus: out std_logic_vector (47 downto 0)
);
sfârşitul FreqMeter;
arhitectura comportamentale ale FreqMeter este
bz_count semnal: integer;
gc_count semnal: integer gama 0 - 1000;
bz_ena semnal, ena: std_logic;
CLR semnalului: std_logic;
tmp_start semnal, tmp_over: std_logic;
resetn semnal, resetd: std_logic;
începe
databus <= conv_std_logic_vector (bz_count, 4
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Răcoros" border="0" />
,
proces (CE, start) începe
în cazul în care CE = '0 'şi începe = '0', apoi
resetn <= '0 ';
elsif CE = '0 'şi rising_edge (start), apoi
resetn <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
proces (bclk)
începe
în cazul în care rising_edge (bclk), apoi
resetd <= resetn;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
CLR <= resetn şi (nu resetd);
de peste <= tmp_over;
proces (resetare, CLR, a începe)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
tmp_start <= '0 ';
falling_edge elsif (start), apoi
tmp_start <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
proces (resetare, CLR, tmp_over, ena, tmp_start)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1' sau (tmp_over = '1 'şi ena = '0'), apoi
bz_ena <= '0 ';
elsif rising_edge (tmp_start), apoi
bz_ena <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;bzcounter: proces (resetare, bclk, CLR, bz_ena, ena)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
bz_count <= 0;
rising_edge elsif (bclk), apoi
în cazul în care bz_ena = '1 'şi ena = '1', apoi
bz_count <= bz_count 1;
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
gccounter: proces (resetare, gclk, CLR, bz_ena)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
gc_count <= 0;
tmp_over <= '0 ';
ena <= '0 ';
falling_edge elsif (gclk), apoi
în cazul în care bz_ena = '1 ', apoi
gc_count <= gc_count 1;
în cazul în care gc_count = num apoi
ena <= '0 ';
gc_count <= num-1;
tmp_over <= '1 ';
alt
ena <= '1 ';
tmp_over <= '0 ';
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
sfârşitul comportamentale;Adăugat după 5 minutee mai sus este un exemplu despre VHDL contor de frecvenţă!
Am simula o cu Modelsim 6.0!Aceasta poate funcţiona foarte bine şi funcţia este bun!
Dar când am descărcaţi-o într-un CPLD Xinlix XC95144XL, funcţia sa nu face bine!
Te rog ajuta-ma pentru a afla unde este eroarea!
port (a nu putea suporta: in std_logic;
CE: in std_logic;
bclk: in std_logic;
gclk: in std_logic;
Start: in std_logic;
num: integer în intervalul 10 - 1000;
de peste: out std_logic;
databus: out std_logic_vector (47 downto 0)
);
sfârşitul FreqMeter;
arhitectura comportamentale ale FreqMeter este
bz_count semnal: integer;
gc_count semnal: integer gama 0 - 1000;
bz_ena semnal, ena: std_logic;
CLR semnalului: std_logic;
tmp_start semnal, tmp_over: std_logic;
resetn semnal, resetd: std_logic;
începe
databus <= conv_std_logic_vector (bz_count, 4
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Răcoros" border="0" />
,
proces (CE, start) începe
în cazul în care CE = '0 'şi începe = '0', apoi
resetn <= '0 ';
elsif CE = '0 'şi rising_edge (start), apoi
resetn <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
proces (bclk)
începe
în cazul în care rising_edge (bclk), apoi
resetd <= resetn;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
CLR <= resetn şi (nu resetd);
de peste <= tmp_over;
proces (resetare, CLR, a începe)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
tmp_start <= '0 ';
falling_edge elsif (start), apoi
tmp_start <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
proces (resetare, CLR, tmp_over, ena, tmp_start)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1' sau (tmp_over = '1 'şi ena = '0'), apoi
bz_ena <= '0 ';
elsif rising_edge (tmp_start), apoi
bz_ena <= '1 ';
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;bzcounter: proces (resetare, bclk, CLR, bz_ena, ena)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
bz_count <= 0;
rising_edge elsif (bclk), apoi
în cazul în care bz_ena = '1 'şi ena = '1', apoi
bz_count <= bz_count 1;
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
gccounter: proces (resetare, gclk, CLR, bz_ena)
începe
în cazul în care nu putea suporta = '0 'sau CLR = '1', apoi
gc_count <= 0;
tmp_over <= '0 ';
ena <= '0 ';
falling_edge elsif (gclk), apoi
în cazul în care bz_ena = '1 ', apoi
gc_count <= gc_count 1;
în cazul în care gc_count = num apoi
ena <= '0 ';
gc_count <= num-1;
tmp_over <= '1 ';
alt
ena <= '1 ';
tmp_over <= '0 ';
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
sfârşitul anului în cazul în care;
Procesul de sfârşitul anului;
sfârşitul comportamentale;Adăugat după 5 minutee mai sus este un exemplu despre VHDL contor de frecvenţă!
Am simula o cu Modelsim 6.0!Aceasta poate funcţiona foarte bine şi funcţia este bun!
Dar când am descărcaţi-o într-un CPLD Xinlix XC95144XL, funcţia sa nu face bine!
Te rog ajuta-ma pentru a afla unde este eroarea!