Hice una FIFO usando Core Generator y estoy tratando de implementar un código que lo use ...
1) Poniendo el interruptor (T9) en ON, comienzo a transmitir algunos datos a mi fifo (Aquí H-e-l-l-o para prueba)
2) Al presionar el botón T16, leí el FIFO
El código está trabajando en la simulación pero no en la implementación ... Aquí está el resultado de mi simulación:
- CLK
- INTERRUPTOR
- BOTÓN
- RST
- Noesnecesario
- Noesnecesario
- Noesnecesario
- Data_out
Comopuedever,envíaunceroyluegoun72(HdesdeelcódigoASCIIporqueestoyenviandodatosusandoRS232),luego101(e),luego2veces108(l)yluego111(0)sevuelveagenerarporqueElfifoestáfuncionandodemaneraquesiestávacío,estáenviandoelúltimovalorparaquefuncionebien.
Aquíestáelresultadoquetengousandoputty(unlectorRS232)ypresionandoelbotónT16muchasveces:
Aquíhayunapartedemicódigo,puedoponerelarchivozipsilonecesitas,solopregúntaloenuncomentario.
LaparteenlaquegenerolosdatosenFIFO:
process(clk)beginifrising_edge(clk)thenifSW_T9='1'thenifcnt=10thenwr_en<='0';elsifcnt=11thenDATA<="010010000000000000";--H
elsif cnt = 12 then
wr_en <= '1';
elsif cnt = 13 then
wr_en <= '0';
elsif cnt = 14 then
DATA <= "011001010000000000";--e
elsif cnt = 15 then
wr_en <= '1';
elsif cnt = 16 then
wr_en <= '0';
elsif cnt = 17 then
DATA <= "011011000000000000";--l
elsif cnt = 18 then
wr_en <= '1';
elsif cnt = 19 then
wr_en <= '0';
elsif cnt = 20 then
DATA <= "011011000000000000";--l
elsif cnt = 21 then
wr_en <= '1';
elsif cnt = 22 then
wr_en <= '0';
elsif cnt = 23 then
DATA <= "011011110000000000";--o
elsif cnt = 24 then
wr_en <= '1';
elsif cnt = 25 then
wr_en <= '0';
end if;
if cnt <25 then
cnt <= cnt+1;
end if;
end if;
end if;
end process;
end Behavioral;
Aquí están mis errores (solo durante la síntesis):
ADVERTENCIA: Xst: 2211 - "D: / Users /.../ TOP_MODULE.vhd" línea 135: Instanciación del módulo de caja negra.
ADVERTENCIA: Xst: 1710 - FF / Latch (sin valor de inicio) tiene un valor constante de 0 en bloque. Este FF / Latch se recortará durante el proceso de optimización.
ADVERTENCIA: Xst: 1710 - FF / Latch (sin valor de inicio) tiene un valor constante de 0 en bloque. Este FF / Latch se recortará durante el proceso de optimización.
No hay ninguna advertencia importante como puede ver (espero que tenga razón) ...
Mi pregunta es: ¿Sabe por qué no tengo el mismo resultado en la simulación y a bordo?
No dude en comentar y hacerme preguntas, es muy importante para mí resolver este problema ...