K
koolslash
Guest
gentilmente depurar o seguinte código e se possível:
seus cerca de um contador que conta feed_in pulsos para 1sec.o relógio é usado como uma referência 50MHz.
Citação:
LIBRARY IEEE;
USO IEEE.std_logic_1164.ALL;
USO IEEE.numeric_std.ALL;
USO ieee.std_logic_unsigned.all;ENTITY feedback é
PORT (CLK: IN std_logic;
reset: IN std_logic;
ENB: IN std_logic;
feed_in: IN std_logic;
feed_out: OUT std_logic_vector (7 virou 0)
);
FIM feedback;ARQUITETURA DE rtl feedback é- Sinais
SIGNAL tcount: std_logic_vector (7 virou 0);
SIGNAL pcount: std_logic_vector (7 virou 0);
SIGNAL feed_count: std_logic_vector (7 virou 0);
SIGNAL Count_out: std_logic_vector (7 virou 0);
SIGNAL Counter_out1: std_logic_vector (25 virou 0);
SIGNAL Count_total: std_logic_vector (7 virou 0);COMEÇAR- Contador de tempo 1secCounter_process: PROCESS (CLK, reset)
COMEÇAR
IF reset ='1 'THEN
Counter_out1 <= (others =>'0 ');
elsIF clk'event E CLK ='1 'THEN
SE Counter_out1 = "10111110101111000010000000" THEN - 50M ciclos / seg => 50MHz relógio
Counter_out1 <= (others =>'0 ');
ELSE
Counter_out1 <= Counter_out1 1;
END IF;
END IF;
Terminar o processo Counter_process;- contador de número de pulsos em 1secCounter_pulse: PROCESSO (feed_in, reset)
COMEÇAR
IF reset ='1 'THEN
pcount <= (others =>'0 ');
SE Counter_out1 = "10111110101111000010000000" THEN
Count_total <= pcount;
pcount <= (others =>'0 ');
ELSIF feed_in'event E feed_in ='1 'THEN
pcount <= pcount 1;
END IF;
END IF;
Terminar o processo Counter_pulse;- tarefa incompleta: scalling contar com a saída x6.to fazer: 40-240
Count_out <= Count_total;
- resultado final
feed_out <= Count_out (7 virou 0);FIM rtl;
seus cerca de um contador que conta feed_in pulsos para 1sec.o relógio é usado como uma referência 50MHz.
Citação:
LIBRARY IEEE;
USO IEEE.std_logic_1164.ALL;
USO IEEE.numeric_std.ALL;
USO ieee.std_logic_unsigned.all;ENTITY feedback é
PORT (CLK: IN std_logic;
reset: IN std_logic;
ENB: IN std_logic;
feed_in: IN std_logic;
feed_out: OUT std_logic_vector (7 virou 0)
);
FIM feedback;ARQUITETURA DE rtl feedback é- Sinais
SIGNAL tcount: std_logic_vector (7 virou 0);
SIGNAL pcount: std_logic_vector (7 virou 0);
SIGNAL feed_count: std_logic_vector (7 virou 0);
SIGNAL Count_out: std_logic_vector (7 virou 0);
SIGNAL Counter_out1: std_logic_vector (25 virou 0);
SIGNAL Count_total: std_logic_vector (7 virou 0);COMEÇAR- Contador de tempo 1secCounter_process: PROCESS (CLK, reset)
COMEÇAR
IF reset ='1 'THEN
Counter_out1 <= (others =>'0 ');
elsIF clk'event E CLK ='1 'THEN
SE Counter_out1 = "10111110101111000010000000" THEN - 50M ciclos / seg => 50MHz relógio
Counter_out1 <= (others =>'0 ');
ELSE
Counter_out1 <= Counter_out1 1;
END IF;
END IF;
Terminar o processo Counter_process;- contador de número de pulsos em 1secCounter_pulse: PROCESSO (feed_in, reset)
COMEÇAR
IF reset ='1 'THEN
pcount <= (others =>'0 ');
SE Counter_out1 = "10111110101111000010000000" THEN
Count_total <= pcount;
pcount <= (others =>'0 ');
ELSIF feed_in'event E feed_in ='1 'THEN
pcount <= pcount 1;
END IF;
END IF;
Terminar o processo Counter_pulse;- tarefa incompleta: scalling contar com a saída x6.to fazer: 40-240
Count_out <= Count_total;
- resultado final
feed_out <= Count_out (7 virou 0);FIM rtl;