pomoc!

H

hlmwps

Guest
jednotka je FreqMeter
port (reset: in std_logic;
CE: in std_logic;
bclk: in std_logic;
gclk: in std_logic;
štart: v std_logic;
num: číslo v rozsahu 10 až 1000;
cez: out std_logic;
databus: out std_logic_vector (47 downto 0)
);
koniec FreqMeter;

Behaviorálna architektúra z FreqMeter je

signálu bz_count: integer;
signálu gc_count: celé číslo v rozmedzí 0 až 1000;
signálu bz_ena, ena: std_logic;
signálu clr: std_logic;
signálu tmp_start, tmp_over: std_logic;

signálu resetne, resetd: std_logic;

začať

databus <= conv_std_logic_vector (bz_count, 4

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Chladný" border="0" />

;

Proces (CE, štart) begin
Ak CE = '0 'a spustiť = '0', potom
resetne <= '0 ';
elsif CE = '0 'a rising_edge (štart) then
resetne <= '1 ';
end if;
end process;

proces (bclk)
začať
Ak rising_edge (bclk), potom
resetd <= resetne;
end if;
end process;

clr <= resetne a (ne resetd);

viac ako <= tmp_over;

Proces (reset, CLR, štart)
začať
Ak reset = '0 'alebo clr = '1', potom
tmp_start <= '0 ';
elsif falling_edge (štart) then
tmp_start <= '1 ';
end if;
end process;

Proces (reset, CLR, tmp_over, ena, tmp_start)
začať
Ak reset = '0 'alebo clr = '1' alebo (tmp_over = '1 'a ena = '0') then
bz_ena <= '0 ';
elsif rising_edge (tmp_start), potom
bz_ena <= '1 ';
end if;
end process;bzcounter: process (reset, bclk, CLR, bz_ena, ENA)

začať
Ak reset = '0 'alebo clr = '1', potom
bz_count <= 0;
elsif rising_edge (bclk), potom
Ak bz_ena = '1 'a ena = '1', potom
bz_count <= bz_count 1;
end if;
end if;
end process;

gccounter: process (reset, gclk, CLR, bz_ena)
začať
Ak reset = '0 'alebo clr = '1', potom
gc_count <= 0;
tmp_over <= '0 ';
ena <= '0 ';
elsif falling_edge (gclk), potom
Ak bz_ena = '1 ', potom
gc_count <= gc_count 1;
Ak gc_count = num potom
ena <= '0 ';
gc_count <= num-1;
tmp_over <= '1 ';
iné
ena <= '1 ';
tmp_over <= '0 ';
end if;
end if;
end if;
end process;

koniec Behavioral;Pridané po 5 minútach:Vyššie uvedené je VHDL napr. o frekvencii počítadlo!
I simulovať s ModelSim 6.0!To môže fungovať veľmi dobre, a funkcia je dobrá!
Ale keď som si ho stiahnuť do Xinlix CPLD XC95144XL, jeho funkcia nerobí dobre!
Prosím, pomôžte mi nájsť, kde je chyba!

 
CPLD a FPGA sa prostredie pre synchrónny logických obvodov.
Vaša logika obsahuje toľko asynchonous blokov.A to je ten problém!
Najskôr musíte urobiť celú logiku synchrónny!
Pozrite sa na vnitřku CPLD a vidieť to, čo je dovolené a čo nie!

 

Welcome to EDABoard.com

Sponsor

Back
Top