Red de conocimiento informático - Conocimiento del nombre de dominio - Se necesita con urgencia. ¿Alguien tiene el principio del circuito para diseñar un divisor síncrono usando VHDL?

Se necesita con urgencia. ¿Alguien tiene el principio del circuito para diseñar un divisor síncrono usando VHDL?

Diseño de multiplexación digital síncrona y su implementación FPGA

Autor: Fecha de publicación: 2005-08-02

Resumen: Basado en una breve introducción a los principios básicos de la multiplexación digital síncrona Sobre lo anterior , Se utilizó el lenguaje VHDL para diseñar cada módulo componente de multiplexación digital síncrona, y la descripción del diseño, la síntesis, el diseño y el enrutamiento, la temporización y otros trabajos se llevaron a cabo en el entorno integrado ISE. La descripción del diseño, la síntesis, la ubicación y el enrutamiento y la simulación de temporización se realizaron en el entorno integrado ISE, se obtuvieron resultados de diseño correctos y se implementó la función dúplex digital síncrona utilizando FPGA de pequeña y mediana capacidad.

Palabras clave: empalme digital síncrono/tap FPGA sincronización de bits detección de sincronización de cuadros

El equipo básico de síntesis de señal digital de velocidad de grupo y el equipo tap son equipos clave comúnmente utilizados en la red Obsidian, este tipo de Se requiere equipo de empalme digital síncrono en módulos de usuario de conmutadores controlados por programas digitales, controladores de estaciones base PHS y teléfonos de grupo. En los últimos años, a medida que más y más empresas necesitan construir sus propios sistemas de comunicación interna, también está aumentando la demanda del uso de equipos de multiplexación digital síncronos. El alto rendimiento de los dispositivos FPGA (Field Programmable Gate Array) simplifica el diseño y la implementación de sistemas de comunicación digital. Basado en las características técnicas de FPGA y los principios y resultados básicos de la tecnología de multiplexación digital, este artículo realiza la derivación digital y la multiplexación de señales digitales a la velocidad base (2048 kbps).

1 Principios básicos de la multiplexación digital síncrona

En las redes de comunicaciones digitales, para ampliar la capacidad de transmisión y mejorar la eficiencia de la transmisión, a menudo es necesario combinar varias señales digitales de baja velocidad en señales digitales de alta velocidad y luego transmitidas a través de canales de alta velocidad y descompuestas en señales digitales de baja velocidad en el extremo receptor según sea necesario. La tecnología de recableado digital es una tecnología especializada que realiza la fusión (recableado) y la descomposición (tapping) de esta señal digital [1].

1.1 División del sistema

Los terminales de multiplexación digital síncrono incluyen la parte Multiplexor digital síncrono (Multiplexor digital síncrono) y Demultiplexor digital síncrono (Demultiplexor digital síncrono), como se muestra en la Figura 1. El multiplexor digital multiplexa las señales digitales de dos o más ramas en una única señal digital combinada según la división de tiempo; el divisor digital descompone la única señal digital combinada en la señal digital de la rama original. Por lo general, los multiplexores digitales y los divisores digitales siempre se instalan juntos para formar un dispositivo, llamado divisor multiplexor (Muldex), generalmente llamado multiplexor digital [2].

El multiplexor digital síncrono consta de unidades de temporización y multiplexación; la unidad de temporización a divisor de palabras consta de unidades de sincronización, temporización y demultiplexación. La unidad de temporización proporciona varias señales de temporización al equipo. El reloj principal de la máquina rebobinadora puede generarse internamente o proporcionarse externamente, mientras que el reloj principal del cambiador de tomas se extrae de la señal recibida y se controla mediante rectificación de alta velocidad del síncrono. circuito, de modo que la señal de temporización de referencia del cambiador de tomas y la señal de temporización de referencia del rebobinador mantengan la relación de fase correcta, es decir, la transmisión y la recepción estén sincronizadas. La sincronización se establece mediante una unidad de sincronización [1].

1.2 Sincronización de bits [3]

En la comunicación digital, la sincronización de bits es la sincronización más básica. El significado básico de la sincronización de bits es que las señales de reloj del extremo receptor y del extremo transmisor deben tener la misma frecuencia y fase, para que el extremo receptor pueda recibir y juzgar correctamente cada símbolo enviado por el extremo transmisor. Para darse cuenta de que los relojes del extremo receptor y del extremo transmisor están en la misma frecuencia y fase, el extremo receptor necesita extraer la señal de reloj del extremo transmisor del flujo de código recibido para controlar el reloj del extremo receptor. logrando así la sincronización de bits. Los métodos de sincronización de bits se dividen en dos categorías: método de guía de frecuencia de inserción y método directo. El método directo se puede dividir aproximadamente en método de filtrado y método de bloqueo de fase según el método de extracción de la señal de sincronización. El principio del método de bloqueo de fase es: en el extremo receptor, se utiliza un detector de fase para comparar la fase del símbolo recibido con la fase de la señal de sincronización de bits generada localmente. Si las dos son inconsistentes, la señal de error emitida por el. El detector de fase se utiliza para controlar la fase de la señal de sincronización local, hasta que la fase de la señal de sincronización de bits local sea consistente con la fase de la señal recibida.

1.3 Sincronización de cuadros

Al recablear y derivar, si las señales digitales derivadas simplemente se recablean cíclicamente, una vez que se fusionan en señales digitales combinadas, será difícil lograr una derivación correcta.

Para garantizar que el sistema de derivación del extremo receptor pueda ser coherente con el del extremo transmisor, además de mantener la sincronización de bits, también se necesita un sistema de sincronización de tramas para lograr la sincronización de tramas entre el extremo transmisor y el extremo receptor [2 ].

El método básico de sincronización de tramas es insertar un grupo de códigos de sincronización de tramas de un patrón especial en el intervalo de tiempo preespecificado (es decir, el intervalo de tiempo del código de sincronización de tramas) en el extremo de envío; El circuito en el extremo receptor detecta el grupo de códigos para garantizar la sincronización de las tramas de envío y recepción [2].

Existen cuatro estados de detección de sincronización de tramas: estado de desincronización, estado de verificación de sincronización, estado de sincronización y estado de protección de sincronización.

2 Diseño e implementación de multiplexación digital síncrona basada en FPGA

FPGA/CPLD no solo hereda las ventajas de gran escala, alta integración y alta confiabilidad de ASIC, sino que también supera lo ordinario Los ASIC tienen las desventajas de un ciclo de diseño largo, una gran inversión y poca flexibilidad, y gradualmente se han convertido en la primera opción ideal para el diseño de circuitos digitales complejos [4].

ISE es un entorno integrado de desarrollo FPGA/CPLD proporcionado por XILINX. Sus herramientas integradas pueden completar todo el proceso desde la entrada de diseño, simulación funcional, síntesis y optimización, simulación post-síntesis, ubicación y enrutamiento, simulación de tiempo. al proceso de desarrollo de FPGA CPLD.

Este diseño fue desarrollado utilizando el entorno integrado ISE e implementado utilizando dispositivos FPGA de la serie SPARTAN-3.

2.1 Diseño del sistema de reescritura Lizi

Hay dos formas principales de reescribir señales digitales [1]: una es "reescritura bit a bit" y la otra es "reescritura de palabras clave " ". Uno de ellos es el "reciclado bit a bit" y el otro es el "reciclado de palabras en clave". El "cambio de cableado de palabras clave" preserva la estructura de las palabras clave y facilita diversos intercambios y procesamientos sintéticos. Este diseño consiste en realizar la multiplexación de 32 señales. Los bits de información circulan a través de cada rama. Cada vez que se inserta un bit de información de 8 bits en el formulario de multiplexación de la palabra código para formar una señal digital, el CCITT recomienda el código de sincronización de trama. 10011011. Una es recibir 32 señales de rama de 64 kbps en un bucle, cada rama alimenta 8 bits de información a la vez (la primera rama alimenta el código de sincronización de trama fija 10011011) para formar un número combinado; la otra es combinar las señales a una velocidad de; 2048 kbps Los datos se envían para formar una señal combinada: la señal de velocidad del grupo base.

El diagrama esquemático del circuito multiplexor digital síncrono se muestra en la Figura 2. El multiplexor consta de un registro de desplazamiento y un módulo de temporización. Los registros de desplazamiento se dividen en dos grupos, cada grupo consta de 32 registros de desplazamiento de 8 bits. Dentro de un tiempo de cuadro (125 μs), cuando un grupo de registros de desplazamiento cambia simultáneamente los datos de 32 ramas bajo el control de un reloj de 64 kHz, otro grupo de registros de desplazamiento envía los datos de las ramas en secuencia. En el siguiente cuadro, el primer grupo de registros de desplazamiento emite la señal combinada de 2048 kbps y el segundo grupo de registros de desplazamiento lee 32 datos de rama de 64 kbps. De acuerdo con esta regla, bajo el control del módulo de sincronización, los dos conjuntos de registros de turnos intercambian y transforman tareas de trabajo para lograr la continuidad de la entrada de la rama y la salida fusionada. El módulo de sincronización está compuesto por un contador (cnt), un multiplexor (mu12 ~ mu15), etc., y proporciona la señal de selección de conmutación de la señal de permiso de trabajo y la salida de señal combinada para los dos conjuntos de registros de desplazamiento.

Para mejorar la confiabilidad del reloj, reducir la fluctuación del retraso del reloj y mejorar la capacidad de conducción del reloj, a fin de completar mejor la reconexión sincrónica, este diseño utiliza los recursos de reloj global proporcionados. por la propia FPGA para controlar el reloj principal, el reloj externo ingresa desde el pin de reloj global del chip y, después de pasar por BUFGP (IBUFG BUFG), pasa a través de la red de reloj global a la parte de reconexión de sincronización. La parte es una red de sincronización utilizada para sincronizar el reloj externo.

La función de un divisor es la opuesta a la de un multiplexor. Bajo el control de su unidad de sincronización, el divisor realiza escritura de datos de 2048 kbps y lectura de datos de 64 kbps en dos conjuntos de registros de desplazamiento respectivamente, logrando una división de 32 vías de la señal digital combinada de velocidad base.

2.1.2 Diseño de circuito de extracción de sincronización de bits

Para lograr la ramificación de señales digitales combinadas, es necesario extraer información de sincronización de reloj del flujo de datos. Actualmente, en los sistemas de comunicación digitales se suele utilizar el bloqueo de fase digital para extraer señales de sincronización de bits [3].

El circuito de extracción de sincronización de bits se muestra en la Figura 3(a), que consta principalmente de módulos de identificación de fase y diferencial, un módulo de control de puerta Tim/puerta reductora, un módulo de reloj de alta frecuencia y un divisor de frecuencia (clk_gen). . La función del circuito diferencial (diff) es convertir el código distinto de cero en el código de retorno cero para extraer información de sincronización. La función del detector de fase es comparar la fase del símbolo recibido (code_in) con la fase de la señal del reloj local (clk_out) emitida por el divisor de frecuencia. Si la fase del reloj local adelanta la fase del símbolo recibido, el detector de fase El convertidor de fase emitirá un pulso de sobreimpulso al circuito de puerta de resta y deducirá un pulso estrecho de alta frecuencia en el extremo de entrada del divisor de 16 frecuencias, lo que hará que el divisor de frecuencia emita una señal de reloj con un retraso de fase de 1/16 ciclos; si el reloj local va por detrás de la frecuencia de fase del símbolo recibido, el detector de fase emite un pulso a la puerta de resta. La fase del pulso de salida del divisor avanza 1/16 de ciclo en comparación con el pulso estrecho de frecuencia de fase del símbolo recibido. El módulo de reloj de alta frecuencia convierte la señal de entrada de reloj local de alta frecuencia clk_in en dos secuencias de pulsos estrechas con una diferencia de fase de 90°, proporcionando secuencias de pulsos estrechas de alta frecuencia para el temporizador y el obturador respectivamente. La puerta del temporizador es una puerta normalmente cerrada, que siempre está cerrada cuando no hay control de pulso de histéresis; la puerta del botón es una puerta normalmente abierta, y cuando no hay control de pulso por encima del límite, la señal de pulso estrecho pasa a través de esta puerta. El divisor de frecuencia divide la señal de reloj de alta frecuencia de entrada y emite la señal de sincronización de bits clk_out.

Realice una simulación de temporización en el circuito de extracción de sincronización de bits y la forma de onda de simulación de temporización resultante se muestra en la Figura 3(b). En la figura, code_in es el flujo de código de entrada y clk_out es la salida de la señal de sincronización de bits. Como se puede ver en la figura, el circuito puede extraer con precisión la señal de sincronización de bits del flujo de código de entrada, y cuando cambia la fase del flujo de código, la señal de sincronización de bits puede ajustar rápidamente la fase para mantener la sincronización.

2.1.3 Diseño de la unidad de sincronización de cuadros

Para implementar el tapping correctamente, la detección de sincronización de cuadros de la señal combinada debe ser realizada por la unidad de paso de cuadros antes del tapping.

La unidad de sincronización de tramas es una parte relativamente compleja e importante del equipo de multiplexación. Como se muestra en la Figura 4, consta principalmente de dos partes: módulo de detección de código de sincronización (chk) y módulo de control de detección de sincronización (chk_ctrl). Entre ellos, el módulo de detección de código de sincronización busca el flujo de datos de entrada. Una vez que se detecta el código de sincronización de trama (10011011), emite inmediatamente la señal de pulso de captura (gen); y un contador de tramas para completar la trama. Funciones tales como control de transición de estado de la unidad de sincronización y control de detección del encabezado de sincronización en cada trama.

La parte clave de la sincronización de fotogramas es el diseño de la preprotección y la postprotección. Para acortar el tiempo desde la desincronización hasta la recuperación de la sincronización, reducir el impacto de los errores de canal en el estado de sincronización y obtener una mejor calidad de comunicación, este diseño adopta esquemas de postprotección de 2 fotogramas y preprotección de 3 fotogramas.

El diagrama de transición de estado del sistema de sincronización de tramas se muestra en la Figura 5. Después de encender y restablecer la ingeniería del sistema, se encuentra en un estado desincronizado (STATE0_1xx, donde x representa un valor irrelevante) en el momento inicial. El sistema busca el código de sincronización de trama "10011011" en la entrada externa. flujo de código combinado si no hay sincronización de trama en el código de flujo de código combinado, el contador de estado permanece en 1xx; si se detecta un código de sincronización (get="1") del flujo de código combinado, el contador de estado se borra a 000; , el sistema ingresa al estado de verificación de sincronización (STATE1_000) y comienza a fusionar el flujo de código. Al escribir en el registro de desplazamiento, el interruptor de salida del grifo permanece cerrado (switch="0"). En el estado de verificación de sincronización, si el código de sincronización del siguiente cuadro de confirmación es incorrecto y se considera una sincronización falsa, el contador de estado disminuirá de 1 a 111 y el sistema volverá al estado fuera de sincronización; por el contrario, si la sincronización del siguiente cuadro de confirmación es realmente correcta, el sistema ingresa al estado de sincronización (STATE2_001), el interruptor de salida de tap se enciende (switch="1") y comienza el flujo normal de código de toque y fusión.

Después de que el sistema ingresa al estado de sincronización, si el código de sincronización de trama se pierde en el flujo de código de empalme, el contador de estado aumenta en 1 y el sistema ingresa al estado de protección de sincronización 1 (STATE3_010) si el código de sincronización de trama no se detecta en el; siguiente cuadro, el contador de estado aumenta nuevamente 1. El sistema ingresa al estado de protección de sincronización 2 (STATE4_011); si el código de sincronización de cuadro no se recibe por tercer cuadro consecutivo, el contador de estado aumenta nuevamente en 1 y pasa a 100. El sistema ingresa al estado de desincronización y deja de dividir y empalmar el flujo del código de ruta (switch = "0"), mientras reanuda la búsqueda y captura del código de sincronización del cuadro "10011011". El sistema está en el estado de protección de sincronización (el valor del contador de estado es 01x. Si el código de sincronización de trama se detecta correctamente, el contador de estado se establece en 001 y el sistema vuelve al estado de sincronización).

2.2 Simulación y verificación del sistema

En el entorno integrado ISE, el software de simulación ModelSim está llamado a realizar simulación funcional, simulación post-síntesis y simulación post-colocación y sincronización del cableado de cada módulo del sistema. Los resultados de la simulación muestran que el diseño de todos los módulos, como multiplexores, cambiadores de tomas y unidades de sincronización, cumple con los requisitos de diseño.

Figura 6

Para garantizar aún más la practicidad del diseño del sistema, cada módulo componente del sistema se conecta de acuerdo con el estado de funcionamiento del bucle automático y se realiza una simulación conjunta. en cada módulo del sistema. El esquema de verificación de bucle automático del dispositivo recableado se muestra en la Figura 6.

La señal derivada de 32 canales de 64 kbps Ts_sin (31:0) se envía al terminal de entrada de señal derivada Ts (31:0) del multiplexor, y se conecta el terminal de salida de señal combinada E1_out del multiplexor. A la entrada de señal combinada E1_in (autobucle) de la unidad de sincronización syn_module (incluida la sincronización de bits y la sincronización de tramas), la señal combinada se extrae mediante la señal de sincronización de bits y la sincronización de tramas la detecta. señal de sincronización de bits clk_out, que se envía al terminal de entrada xclk-2M del divisor demultiplexado, la salida de secuencia combinada por la unidad de sincronización se envía al terminal de entrada de señal combinada E1_in del divisor y es ejecutada por el divisor. adentro, y después de que el divisor implementa la división, la señal de salida Ts_out de cada rama finalmente se puede obtener desde el extremo de salida de la unidad de control de salida de rama puerta_salida (31:).

La Figura 7 muestra el diagrama de tiempo de simulación de la verificación de bucle automático del dispositivo de recableado. Entre ellos, Ts_in es la señal de excitación de 64 kbps enviada por 32 ramas; mul_E1_out es la señal combinada después de la reconfiguración por el multiplexor; E1_check_in es la secuencia combinada que ingresa al módulo de detección del código de sincronización de tramas; get_syn es el resultado de la detección del código de sincronización de tramas; Es la señal de control de detección del código de sincronización de trama requerida para la verificación de sincronización y la protección de sincronización; syn_n es la señal de fuera de sincronización del sistema; syn_E1_out es la secuencia de fusión en el estado no fuera de sincronización; señal de permiso; Ts_out es cada rama después de la implementación de la bifurcación. La señal de salida de 64 kbps; Ts_in (1) es la señal de entrada de la primera rama del multiplexor. Ts_out (1) es la señal de salida de la primera rama del multiplexor.

Al comparar la señal de excitación de entrada Ts_in con la señal de salida de la rama del sistema Ts_out, los resultados muestran que durante el tiempo desde la sincronización hasta la siguiente desincronización, las formas de onda de la señal de Ts_out y Ts_in son básicamente las mismas. - hay algunos unos en los valores de transición Ts_out ~2ns, estos valores de transición son causados ​​por el tiempo inconsistente de las señales de las 32 ramas en el bus Ts_out que llegan a la salida del registro, que está determinado por la incertidumbre del retardo de la FPGA dispositivo. Al comparar las formas de onda de Ts_in(1) y Ts_out(1), se puede encontrar que para cada señal de rama individual, no existe tal valor de transición y la señal de derivación es consistente con la señal de entrada de rama del multiplexor. Por tanto, la presencia de valores de transición en el bus Ts_out no afecta el rendimiento del sistema.

Los resultados de la simulación de sincronización muestran que las funciones de recableado, sincronización y derivación son normales y cumplen con los requisitos de diseño.

El diseño se implementó en un dispositivo FPGA xc3s50 de la serie SPARTAN-3 de 50 000 puertas utilizando los siguientes recursos de hardware: 319 cortes, 263 flip-flops, 562 LUT de 4 entradas, 70 IOB enlazados y 2 GCLK. Este diseño se ha utilizado como módulo en otros sistemas y tiene cierto valor práctico. Este diseño se ha utilizado como módulo en otros sistemas y tiene cierto valor práctico. Al mismo tiempo, debido a que la tecnología se describe en lenguaje VHDL, es portátil y las funciones del sistema se pueden implementar utilizando FPGA simples de tamaño pequeño y mediano.