Tulong sa minimizing macrocells sa isang Altera, sa VHDL

Author Topic: Tulong sa minimizing macrocells sa isang Altera, sa VHDL  (Read 8 times)

btminzon

  • Guest
Tulong sa minimizing macrocells sa isang Altera, sa VHDL
« on: January 01, 1970, 01:00:00 am »
HI mga tao.Mayroon akong isang code na pulses bilang ng orasan, at ilagay sa exit na mataas o mababang (tulad ng pwm, pero gumagamit na pumapasok sa bilang os pulses sa mataas at ang bilang ng pulses sa mababa).Ako ay may magagamit na ako ng isang Altera 3,064, at kailangan din sa paghati-hatiin orasan sa bawat 8, bago ang pagbibilang.Pagkatapos ng pagtitipon at pagbubuo, ang code ay gumagamit ng (na may qu (sa) rtus 6.0) 68 macrocells, at ang 3,064 ay may lamang 64.Isa Anumang ay maaaring makatulong sa akin, kung paano baguhin ang code na ito sa isang mas mahusay na isa?thanks lahat ng tao

library ieee;
gamitin ieee.std_logic_1164.all;
gamitin ieee.std_logic_unsigned.all;
gamitin ieee.std_logic_arith.all;

entidad ErosaoSS ay
port (
Dados: sa std_logic_vector (10 downto 0);
Clock: sa std_logic;
Start: sa std_logic;
Receber: sa std_logic_vector (1 downto 0);
Saida_pulso: out std_logic
);
dulo ErosaoSS;

architecture ErosaoSS_arch ng ErosaoSS ay

signal tempo_ton: integer saklaw 0-900: = 0;
signal tempo_toff: integer saklaw 0-900: = 0;
signal tonelada: std_logic_vector (10 downto 0);
signal ginoo: std_logic_vector (10 downto 0);
hudyat ng contador: std_logic_vector (3 downto 0): = "0000";
signal clock_out: std_logic;

simulan

divide_clock: proseso (orasan, Simulan)
simulan
kung Simulan ang = '0 'at pagkatapos
contador <= (iba => '0 ');
clock_out <= '0 ';
kung sino pa ang paririto (kaganapan orasan 'at orasan = '1') at pagkatapos ay
kung (contador <= 8) pagkatapos ay
contador <= contador 1;
kung hindi
contador <= (iba => '0 ');
clock_out <= hindi clock_out;
kung ang dulo;
kung ang dulo;
kung ang dulo;
dulo proseso;

escolhe: proseso (receber, dados, simulan)
simulan
kung (Simulan ang = '0 ') at pagkatapos ay
kung (Receber = "01") pagkatapos ay
Tonelada <= dados;
kung sino pa ang paririto (Receber = "10") pagkatapos ay
Ginoo <= dados;
kung ang dulo;
kung ang dulo;
kung ang dulo;
dulo proseso;pulsa_ton: proseso (Start, orasan, tonelada, ginoo)
simulan
kung (Start = '1 ') at pagkatapos ay
kung (kaganapan orasan 'at orasan = '1') at pagkatapos ay
kung (tempo_ton <tonelada) pagkatapos ay
tempo_ton <= tempo_ton 1;
saida_pulso <= '1 ';
kung sino pa ang paririto (tempo_ton = tonelada) pagkatapos ay
tempo_toff <= 0;
tempo_ton <= tempo_ton 1;
kung sino pa ang paririto (tempo_toff <ginoo) pagkatapos ay
tempo_toff <= tempo_toff 1;
saida_pulso <= '0 ';
kung sino pa ang paririto (tempo_toff ginoo =) pagkatapos ay
tempo_ton <= 0;
kung ang dulo;
kung ang dulo;
kung ang dulo;
kung ang dulo;
kung ang dulo;
kung sino pa ang paririto (Simulan ang = '0 'o Start =' Z ') at pagkatapos ay
saida_pulso <= '0 ';
kung ang dulo;
kung ang dulo;
dulo proseso;

dulo ErosaoSS_arch;



smilermd

  • Guest
Tulong sa minimizing macrocells sa isang Altera, sa VHDL
« Reply #1 on: January 01, 1970, 01:00:02 am »
Subukan ang susunod na divider orasan, dapat ito ng tulong.

divide_clock: proseso (orasan, Simulan)
simulan
kung Simulan ang = '0 'at pagkatapos
contador <= (iba => '0 ');
kung sino pa ang paririto (kaganapan orasan 'at orasan = '1') at pagkatapos ay
contador <= contador 1;
kung ang dulo;
dulo proseso;

clk_out <= contador (2);


btminzon

  • Guest
Tulong sa minimizing macrocells sa isang Altera, sa VHDL
« Reply #2 on: January 01, 1970, 01:00:03 am »
mahal na smilermd, na ang dahilan kung bakit gusto ko forums, salamat sa inyong tulong.Ito ay masyado mabilis na gumagawa ng tulad nito.Sinubukan ko rin, matagumpay, baguhin ang lahat std_logic_vector sa pamamagitan ng integer na hanay 0-16, at ito, minimize 4 macrocells.At hindi ko alam kung bakit.Mayroon ba kayong idea kung bakit VHDL synthetysis ay mas mahusay sa integer sa halip ng std_logic_vector?anyway, salamat muli!


smilermd

  • Guest
Tulong sa minimizing macrocells sa isang Altera, sa VHDL
« Reply #3 on: January 01, 1970, 01:00:04 am »
Ikaw ay malugod na pagbati.
Hindi ko alam kung bakit integers ay mas mahusay kaysa STD_LOGIC_VECTOR, maaaring ito ay depende sa vhdl synthetiser o sa aparato.


 

+ Quick Reply