ignition rx running disparity update is sub-optimal
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- embedded-iot, networking
Línea de trabajo
Lee hdl/ip/bsv/ignition/IgnitionReceiver.bsv alrededor de las líneas 239 y 344-352, y luego revisa cómo el receiver obtiene la running disparity del decodificador 8b10b y cómo gestiona IDLE1 e IDLE2. Ejecuta o añade la simulación que solicita el issue para verificar el seguimiento de la disparity y el comportamiento de la inversión de polaridad; se considera terminado cuando el receiver ya no depende de patrones IDLE seleccionados por el transmisor para la running disparity.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I believe this to be a fundamentally incorrect way of determining a receiver's running disparity as it relies on the transmitter transmitting specific patterns on specific disparities, which isn't something you'd typically see in a link. Normally, you'd take the output of your actual 8b10b decoder. It does "work" in our case here because the transmitter is doing extra work to pop between IDLE1 and IDLE2 sequences based on it's running disparity. I believe this was done to facilitate polarity inversion detection but it isn't required and while flipping between IDLE1 and IDLE2 sequences is fine, it really should have no bearing on the rx side's running disparity.
I need to get in and do some actual simulation on this, but all links should generally capture the current running disparity from the 8b10b decoder but i think the resetting of the rd on IDLE sequences can and should just be removed, leaving this state to keep the running disp up-to-date:
^ The above provides a self-correcting mechanism. Upon link start up you assume some running disparity (say negative) and if you're wrong you get a disparity error (don't care b/c you had a 50-50 chance of getting it right) but you always get your K28.5 comma regardless of polarity inversion. After the first byte, you have a correct running disparity from the decoder, and the next byte can be decoded. Note that you'll never get the wrong decoded byte just due to disparity mismatch, all the byte patterns are uniquely coded.
Longer-term, I think while we can accept IDLE1 or IDLE2 sequences and may continue bouncing between them there's no reason to tie them into a specific running disparity. And regardless of which IDLE sequence you get, the bit-inverse of it is always detectable for polarity inversion, regardless of the running disparity.
- Lenguaje dominante
- VHDL
- Estrellas
- 24
- Forks
- 2
- Merge medio
- 36 min
- PR fusionados (30 d)
- 7
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de oxidecomputer/quartz
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
oxidecomputer/quartz#542 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
oxidecomputer/quartz#535 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
oxidecomputer/quartz#534 ·
-
VHDL ignition controllerAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
oxidecomputer/quartz#533 ·
-
FPGA-FPGA linkQuizá libre de nuevo @nathanaelhuffman la tomó hace 51 días y no hay ningún pull request abierto. Abierto
oxidecomputer/quartz#532 · 1 asignado ·
Todos los issues de oxidecomputer/quartz
Issues similares
-
[hardware] `fn_pico_blob.h` names the wrong consumer and justifies PC fallbacks nothing usesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
FujiNetWIFI/fujinet-firmware#2328 ·
Los mantenedores suelen responder en 1 día
-
map-request
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nobrega8/mbmap-library#135 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
micropython/micropython#19906 ·
Los mantenedores suelen responder en 1 día
-
Serializer.sv Line number 20Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 67/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
Los mantenedores suelen responder en 1 día