Help!

H

hlmwps

Guest
subjektas FreqMeter yra
port (Reset: In std_logic;
"CE": į std_logic;
bclk: in std_logic;
gclk: in std_logic;
Start: į std_logic;
num: integer į diapazonas 10-1.000;
daugiau: iš std_logic;
databus: iš std_logic_vector (47 downto 0)
)
pabaigos FreqMeter;

Architektūra Behavioral iš FreqMeter yra

signalas bz_count: integer;
signalas gc_count: sveikasis skaičius nuo 0 iki 1000;
signalas bz_ena, ena: std_logic;
signalas CLR: std_logic;
signalas tmp_start, tmp_over: std_logic;

signalas resetn, resetd: std_logic;

pradėti

databus <= conv_std_logic_vector (bz_count, 4

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

;

procesas ( "CE", pradedant) prasideda
jeigu CE = '0 'ir start = '0', tada
resetn <= '0 ';
elsif CE = '0 'ir rising_edge (pradžia), tada
resetn <= '1 ';
end if;
galutinio proceso;

procesas (bclk)
pradėti
jei rising_edge (bclk), tada
resetd <= resetn;
end if;
galutinio proceso;

CLR <= resetn ir (ne resetd);

virš <= tmp_over;

procesas (Reset, CLR, pradžia)
pradėti
jei reset = '0 'ar CLR = '1' tada
tmp_start <= '0 ';
elsif falling_edge (pradžia), tada
tmp_start <= '1 ';
end if;
galutinio proceso;

procesas (Reset, CLR, tmp_over, ena, tmp_start)
pradėti
jei reset = '0 'ar CLR = '1' ir (tmp_over = '1 'ir ena = '0'), tada
bz_ena <= '0 ';
elsif rising_edge (tmp_start), tada
bz_ena <= '1 ';
end if;
galutinio proceso;bzcounter: procesas (Reset, bclk, CLR, bz_ena, ENA)

pradėti
jei reset = '0 'ar CLR = '1' tada
bz_count <= 0;
elsif rising_edge (bclk), tada
jei bz_ena = '1 'ir ena = '1' tada
bz_count <= bz_count 1;
end if;
end if;
galutinio proceso;

gccounter: procesas (Reset, gclk, CLR, bz_ena)
pradėti
jei reset = '0 'ar CLR = '1' tada
gc_count <= 0;
tmp_over <= '0 ';
ena <= '0 ';
elsif falling_edge (gclk), tada
jei bz_ena = '1 'tada
gc_count <= gc_count 1;
jei gc_count = num tada
ena <= '0 ';
gc_count <= num-1;
tmp_over <= '1 ';
kitas
ena <= '1 ';
tmp_over <= '0 ';
end if;
end if;
end if;
galutinio proceso;

pabaigos Behavioral;Parašytas po 5 minučių:Aukščiau yra VHDL pvz apie dažnumu kovoti!
Aš imituoti jį ModelSim 6,0!Ji gali dirbti labai gerai, ir funkcija yra gerai!
Bet kai aš jį atsisiųsti į Xinlix CPLD XC95144XL, jo funkcija, neturi daryti gerai!
Prašome padėti man rasti kur yra klaida!

 
CPLD's ir FPGA yra kumentą sinchroninio logika grandines.
Jūsų logika yra tiek daug asynchonous blokai.Ir tai yra problema!
Pirmiausia jums padaryti visa logika sinchroninio!
Išvykimo iš CPLD vidinės ir pamatyti tai, kas leidžiama, o kas ne!

 

Welcome to EDABoard.com

Sponsor

Back
Top