--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Hola, por lo que describís parecería como que tu implementación tiene un nivel de retardo adicional para presentar los datos. Puede que los datos estén llegando correctamente, pero que se demoren para llegar a los LEDs, como si tuvieras una etapa de latcheo entre el búfer de recepción y los LEDs. ¿Estás usando un registro para manejar la salida por los LEDs? Porque si es así, puede que al sistema le haga falta un flanco de reloj adicional para que estos registros emitan el dato por la salida (y los LEDs se actualicen). Obviamente, son todas conjeturas ya que estaría faltando información sobre cómo estructuraste tu sistema.
Saludos!
Sebastián
Dato_aux, es de 10 bits porque el dato que debo recibir es de 8 bits, según el protocolo,
Hola, quizás el retardo se introduzca al calcular Dato_completo. Lo que creo que hay que ver es si esta asignación:
Dato_completo <= not (Dato_aux_lsb & Dato_aux_msb);
...sintetiza lógica combinacional, o secuencial. Si es el segundo caso, la asignación se producirá sólo ante cambios de la señal de clock. ¿La asignación está dentro o fuera de un process? ¿Está dentro de un if cuya condición sea un flanco de una señal como por ejemplo baud?
Haría falta tener más contexto del código donde está la asignación y así ver si la misma introduce el fatídico retardo adicional. Saludos!
Sebastián
Pd: perdón por la preguntas pero estoy mucho más acostumbrado a verilog que a vhdl
--
Hola. No me imagino cómo funcionará la ejecución por pasos que estás haciendo, si es que entendí correctamente que lo hacés. Aun así te pregunto si quizás quieras probar hacer una asignación concurrente, fuera del process, de la señal dato_completo en otra señal y visualizar esta última en los LEDs a ver qué sucede.
Un saludo.
Bueno, es lo mismo que decía yo, solo que por algún motivo inventé una variable innecesaria. Además yo probaría ver el lsb o el msb directamente en los LEDs, para asegurarme de que no haya algún retardo por la asignación, que no debería, ¿no?
¿En simulación te anda?
Hola, no lo miré muy en detalle y estoy desde el celu, pero probá cambiar esto:
Dato_aux_msb <= Dato_aux(7 downto 1); Dato_completo <= not (Dato_aux_lsb & Dato_aux_msb);
Por esto:
Dato_completo <= not (Dato_aux_lsb & Dato_aux(7 downto 1) );
... evitando usar Dato_aux_msb como registro intermedio, y de esa manera eliminando el nivel de retardo intermedio.
Saludos!
Seba
Hola
Seba, con respecto a:
--
--