Red de conocimiento informático - Material del sitio web - ¿Cómo implementar el algoritmo de Viterbi utilizando el lenguaje Verilog HDL?

¿Cómo implementar el algoritmo de Viterbi utilizando el lenguaje Verilog HDL?

Verilog HDL es un lenguaje de descripción de hardware utilizado para modelar sistemas digitales en varios niveles de abstracción de diseño, desde el nivel de algoritmo hasta el nivel de puerta y el nivel de interruptor. La complejidad de los objetos del sistema digital que se modelan puede variar desde simples puertas hasta sistemas digitales electrónicos completos. Los sistemas digitales se pueden describir jerárquicamente y la sincronización se puede modelar explícitamente dentro de la misma descripción.

El lenguaje Verilog HDL puede describir: las características de comportamiento del diseño, las características de flujo de datos del diseño, la composición estructural del diseño, así como el mecanismo de generación de formas de onda y retraso, incluido el diseño y el monitoreo de respuesta. verificación. Todos utilizan el mismo lenguaje de modelado. Además, el lenguaje Verilog HDL proporciona una interfaz de lenguaje de programación a través de la cual se puede acceder al diseño desde fuera del diseño durante la simulación y la verificación, incluidos los controles y operaciones específicos de la simulación.

El lenguaje Verilog HDL define no solo una sintaxis, sino también una semántica explícita de simulación y emulación para cada construcción de sintaxis. Por tanto, los modelos escritos en este lenguaje se pueden verificar utilizando un simulador Verilog. Verilog HDL proporciona capacidades de modelado ampliadas, muchas de las cuales son inicialmente difíciles de entender. Sin embargo, el subconjunto principal del lenguaje Verilog HDL es fácil de aprender y usar y es suficiente para la mayoría de las aplicaciones de modelado. Por supuesto, un lenguaje de descripción de hardware completo es suficiente para describir todo, desde el chip más complejo hasta un sistema electrónico completo.

Historia

El lenguaje Verilog HDL fue desarrollado originalmente por Gateway Design Automation en 1983 como un lenguaje de modelado de hardware para sus productos de simulación. En aquel momento era un lenguaje especializado. Debido al uso generalizado de sus productos simuladores y emuladores, muchos diseñadores aceptan Verilog HDL como un lenguaje práctico y fácil de usar. En un esfuerzo por aumentar la popularidad del lenguaje, Verilog HDL se introdujo al dominio público en 1990. En 1992, Open Verilog International (OVI), una organización internacional que promueve Verilog, decidió promover el estándar Verilog OVI como estándar IEEE. El esfuerzo tuvo éxito y el lenguaje Verilog se convirtió en un estándar IEEE en 1995, IEEE Std 1364-1995. El estándar completo se describe en detalle en el Manual de referencia del lenguaje de descripción de hardware de Verilog.

Funciones principales

Las funciones principales del lenguaje de descripción de hardware de Verilog son las siguientes:

* Las puertas lógicas básicas como and, or y nand están integradas en el idioma.

* Flexibilidad en la creación de lenguaje primitivo definido por el usuario (UDP). Las primitivas definidas por el usuario pueden ser primitivas de lógica combinacional o primitivas de lógica secuencial.

* El lenguaje también tiene modelos estructurales básicos integrados a nivel de conmutador, como pmos y nmos.

* Proporciona construcciones de lenguaje explícito para especificar retrasos de puerto a puerto y de ruta en un diseño y verificaciones de tiempo del diseño.

*Los diseños se pueden modelar de tres formas diferentes o una combinación de ellas. Estos incluyen: métodos de descripción de comportamiento que utilizan modelado de estructura de procesos; métodos de flujo de datos que utilizan métodos de declaración de asignación continua y métodos estructurados que utilizan modelado de descripción de declaración de instancia de módulo y puerta.

* Verilog HDL tiene dos tipos de datos: tipo de datos de red cableada y tipo de datos de registro. Los tipos de red representan conexiones físicas entre componentes, mientras que los tipos de registro representan elementos de almacenamiento de datos abstractos.

* La capacidad de describir diseños jerárquicos permite describir cualquier jerarquía utilizando una estructura de instancia de módulo.

* Los diseños pueden ser de cualquier tamaño; el lenguaje no impone restricciones en el tamaño (amplitud) de los diseños.

*Verilog HDL ya no es un lenguaje propietario de algunas empresas, sino un estándar IEEE.

* El lenguaje Verilog es legible por máquinas humanas y, por lo tanto, puede usarse como lenguaje de interacción entre las herramientas EDA y los diseñadores.

* Las capacidades de descripción del lenguaje Verilog HDL se pueden ampliar aún más mediante el uso del mecanismo de interfaz de lenguaje de programación (PLI), que es un conjunto de rutinas que permiten que funciones externas accedan a información en los módulos Verilog y permite a los diseñadores interactuar con el emulador para interactuar.

* Los diseños se pueden describir en múltiples niveles, desde el nivel de conmutador, el nivel de puerta, el nivel de transferencia de registro (RTL) hasta el nivel de algoritmo, incluidos los niveles de proceso y cola.

* Los diseños se pueden modelar completamente a nivel de interruptor utilizando primitivas de nivel de interruptor integradas.

* El mismo lenguaje se puede utilizar para generar estímulos de simulación y especificar restricciones de verificación para pruebas, como especificaciones de valores de entrada.

* Verilog HDL puede monitorear la ejecución de la verificación de la simulación, es decir, monitorear y mostrar los valores de diseño durante la ejecución de la verificación de la simulación. Estos valores también se pueden utilizar para comparar con los valores esperados e imprimir información del informe si hay una discrepancia.

* En términos de descripción a nivel de comportamiento, Verilog HDL no solo puede describir el diseño a nivel RTL, sino también describir el diseño y su comportamiento a nivel de algoritmo a nivel arquitectónico.

* La capacidad de utilizar declaraciones de creación de instancias de puertas y módulos para la descripción estructural a nivel de arquitectura.

* Verilog HDL es capaz de modelar de forma híbrida, donde cada módulo del diseño se puede modelar en un nivel de diseño diferente.

* Verilog HDL también tiene funciones lógicas integradas como & (bit-sum) y | (bit-or).

* Este lenguaje está disponible para construcciones de lenguajes de programación de alto nivel, como condicionales, declaraciones de casos y bucles.

* La simultaneidad y el tiempo se pueden modelar explícitamente.

*Tiene potentes capacidades de lectura y escritura de archivos.

* El lenguaje no es determinista en ciertos casos, es decir, el modelo producirá resultados diferentes en diferentes simuladores; por ejemplo, el orden de los eventos en una cola de eventos no está definido en el estándar.