Catálogo de trabajo del tutorial de diseño del sistema digital Verilog
Parte 1: Conceptos básicos del diseño digital de Verilog
Capítulo 1 Conocimientos básicos de Verilog
1.1 Lenguaje de descripción de hardware HDL
1.2 Historia de Verilog HDL
1.2.1 Qué es Verilog HDL
1.2.2 El surgimiento y desarrollo de Verilog HDL
1.3 Comparación entre Verilog HDL y VHDL
1.4 Aplicaciones Verilog y diseños aplicables
1.5 Ventajas de utilizar Verilog HDL para diseñar circuitos digitales complejos
1.5.1 Método de diseño tradicional: método de entrada del esquema del circuito
p>
1.5.2 Comparación entre el método de diseño Verilog HDL y el método de entrada de esquema de circuito tradicional
1.5.3 Estandarización de Verilog y reutilización del núcleo blando
1.5.4 Los conceptos de software núcleo, núcleo sólido y núcleo duro y su reutilización
1.6 Introducción al proceso de diseño mediante lenguaje de descripción hardware (Verilog HDL)
1.6.1 Top_Down Conceptos básicos de diseño
1.6.2 Conceptos básicos de gestión jerárquica
1.6.3 Proceso de diseño, compilación y simulación de módulos específicos
1.6.4 Procesos específicos Optimización, imagen y colocación y enrutamiento de dispositivos
Resumen
Preguntas para pensar
Capítulo 2 Conceptos básicos de la sintaxis de Verilog
Descripción general
p>2.1 Conceptos básicos de los módulos Verilog
2.2 Verilog utilizado para las pruebas de módulos
Resumen
Preguntas para pensar
Capítulo 3 Estructura del módulo, datos. tipos, variables y símbolos de operación básica
Descripción general
3.1 Estructura del módulo
3.1.1 Definición del puerto del módulo
3.1.2 Contenido del módulo
3.1.3 Comprender los puntos clave
3.1.4 Resumen de los puntos clave
3.2 Tipos de datos y sus constantes y variables
p>3.2.1 Constantes
3.2.2 Variables
3.3 Operadores y expresiones
3.3.1 Operadores aritméticos básicos
p>3.3 .2 Operadores de bits
Resumen
Preguntas para pensar
Capítulo 4 Operadores, declaraciones de asignación y declaraciones de descripción de estructura
Descripción general
4.1 Operadores lógicos
4.2 Operadores relacionales
4.3 Operadores de igualdad
4.4 Operador de operaciones de desplazamiento
Operador de concatenación de 4,5 bits
4.6 Operador de reducción
4.7 Nivel de prioridad
4.8 Palabras clave
4.9 Enunciados de asignación y enunciados de bloque
4.9. 1 Declaraciones de tarea
4.9.2 Declaraciones de bloque
Resumen
Preguntas para pensar
p>
Capítulo 5 Declaraciones condicionales, bucle Declaraciones, declaraciones en bloque y declaraciones generadas
Descripción general
5.1 Declaraciones condicionales (declaraciones if_else)
5.2 Declaración de caso
5.3 Sintaxis de condicional declaración
5.4 Declaración de rama multidireccional
5.5 Declaración de bucle
5.5.1 declaración para siempre
5.5.2 declaración de repetición p>
5.5.3 sentencia while
5.5.4 sentencia for
5.6 Bloque secuencial y bloque paralelo
5.
6.1 Tipos de sentencias de bloque
5.6.2 Características de las sentencias de bloque
5.7 Generación de bloques
5.7.1 Sentencias generadoras de bucles
5.7 .2 Declaración de generación condicional
5.7.3 Declaración de generación de caso
5.8 Ejemplo
5.8.1 Selector multidireccional de cuatro selecciones y uno
5.8.2 Contador de cuatro dígitos
Resumen
Preguntas para pensar
Capítulo 6 Declaraciones estructurales, tareas del sistema, declaraciones de funciones y tareas del sistema de visualización p>
Descripción general
6.1 Declaración de descripción de la estructura
6.1.1 Declaración inicial
6.1.2 Declaración siempre
6.2 Tarea y declaración de descripción de función
6.2.1 La diferencia entre declaraciones de descripción de tarea y función
6.2.2 Declaración de descripción de tarea
6.2.3 Declaración de descripción de función p>
6.2.4 Ejemplos de uso de funciones
6.2.5 Funciones automáticas (recursivas)
6.2.6 Funciones constantes
6.2.7 Con signo funciones
6.3 Resumen sobre el uso de tareas y funciones
6.4 Tareas del sistema más utilizadas
6.4.1 Tareas de $display y $write
6.4.2 Salida del archivo
6.4.3 Jerarquía de visualización
6.4.4 Visualización cerrada
6.4.5 Archivo de volcado de cambio de valor
6.5 Otras funciones y tareas del sistema
Resumen
Preguntas para pensar
Capítulo 7 Depuración de tareas del sistema y declaraciones preparadas de compilación de uso común
Descripción general
7.1 Tarea del sistema $monitor
7.2 Función del sistema de medición del tiempo $time
7.3 Tarea del sistema $finish
7.4 Tarea del sistema $stop
7.5 Tareas del sistema $readmemb y $readmemh
7.6 Tarea del sistema $random
7.7 Preprocesamiento de compilación
7.7.1 ¿Definición de macro?
7.7.2 ¿Procesamiento de inclusión de archivos?include
7.7.3 ¿Escala de tiempo?timescale
7.7.4 Comando de compilación condicional?ifdef, ?else, ?endif
7.7.5 Ejecución condicional
Resumen
Preguntas para pensar
Capítulo 8 Ejercicio de repaso general de conceptos gramaticales
Descripción general
Resumen
Parte 2 Parte de diseño y verificación
Capítulo 9 Diferentes niveles de abstracción del modelo Verilog HDL
Descripción general
9.1 Descripción de la estructura a nivel de puerta
9.1.1 Puerta NAND, puerta OR e inversor y su sintaxis de descripción
9.1.2 Utilice la estructura a nivel de puerta para describir D flip- fracasos
9.1.3 Construir un módulo de nivel superior a partir del módulo diseñado
9.2 Modelado de descripción del comportamiento de Verilog HDL
9.2.1 Modelado de descripción del comportamiento de Verilog HDL solo se utiliza para generar señales de prueba de simulación
9.2.2 El papel del modelado Verilog HDL en el diseño TopDown y la cuestión de la sintetizabilidad del modelado de comportamiento
9.3 Primitivas definidas por el usuario
Resumen
Preguntas para pensar
Capítulo 10 Cómo escribir y verificar módulos simples de lógica combinacional pura
Descripción general
10.1 Sumador<
/p>
10.2 Multiplicador
10.3 Comparador
10.4 Multiplexor
10.5 Operación de bus y bus
10.6 Tubería
Resumen
Preguntas para pensar
Capítulo 11 Composición de sistemas digitales complejos
Descripción general
11.1 Componentes de operaciones y lógica de control para flujo de datos
11.1.1 Tipos de circuitos lógicos digitales
11.1.2 Estructura de los circuitos lógicos digitales
11.2 Datos en registros Guardar temporalmente
11.3 Control del flujo de datos
11.4 Habilitar la lógica de temporización síncrona en el diseño Verilog HDL
11.5 Método de sincronización de la interfaz de datos
Resumen
Preguntas para pensar
Capítulo 12 Principios, estructura y diseño de máquinas de estados síncronas
Descripción general
12.1 Estructura de las máquinas de estados
12.2 diferencia entre la máquina de estados de Mealy y la máquina de estados de Moore
12.3 Cómo usar Verilog para describir una máquina de estados sintetizada
12.3.1 Usar Verilog sintetizado Métodos típicos para el diseño de módulos de máquinas de estados
12.3.2 Usar módulos Verilog sintetizados para diseñar máquinas de estado que usan códigos one-hot para representar estados
12.3.3 Usar módulos Verilog sintetizados Diseñar una máquina de estados cuyo estado esté representado por un código especificado por la salida
12.3.4 Métodos comúnmente utilizados al diseñar máquinas de estado complejas de múltiples salidas utilizando módulos Verilog sintetizados
Resumen
Preguntas para pensar
Capítulo 13 Principios rectores para el diseño de máquinas de estados sintetizables
Descripción general
13.1 Diseño de estados sintetizables con principios rectores de máquinas en lenguaje Verilog HDL
13.2 Ejemplos típicos de máquinas de estados
13.3 Principios generales de síntesis
13.4 Principios rectores del lenguaje
13.5 Ejemplo de módulo Verilog HDL de estilo sintetizable
13.5.1 Circuito lógico combinacional ejemplo de diseño
13.5.2 Ejemplo de diseño de circuito lógico secuencial
13.6 Configuración y reinicio de la máquina de estados
13.6.1 Configuración y reinicio asincrónicos de la máquina de estados
13.6.2 Configuración y reinicio sincrónicos de la máquina de estados
Resumen
Preguntas para pensar
Capítulo 14 Comprensión profunda de las diferencias entre bloqueo y asignaciones sin bloqueo
Descripción general
14.1 Similitudes y diferencias entre asignaciones con bloqueo y sin bloqueo
14.1.1 Asignación con bloqueo
14.1 .2 Asignación sin bloqueo
14.2 Puntos clave de la programación del módulo Verilog
14.3 Cola de eventos jerárquica de Verilog
14.4 Bloqueo siempre autoactivado
14.5 Modelo de registro de desplazamiento
14.6 Asignación de bloqueo y algunos ejemplos simples
14.7 Módulo de construcción de registro de desplazamiento con retroalimentación de tiempo
14.8 La asignación de bloqueo debe usarse al modelar combinacional lógica
14.9 Lógica mixta de secuencial y combinacional: use asignación sin bloqueo
14.10 Otras asignaciones de bloqueo y sin bloqueo Principios del uso de bloqueo mixto
14.11 Múltiple asignaciones a la misma variable
14.12 Malentendidos comunes sobre las asignaciones sin bloqueo
Resumen
Preguntas para pensar
Capítulo 15 Lógica secuencial más compleja Práctica de diseño de circuitos
Descripción general
Resumen
Preguntas para pensar
Capítulo 16 Práctica de diseño de circuitos de lógica secuencial compleja
<p>Descripción general
16.1 Breve introducción a la EEPROM serial I2C CMOS de dos cables
16.2 Introducción a las características del bus I2C
16.3 Lectura del EEPROM serial I2C CMOS de dos cables Operación de escritura
Programa Verilog HDL de 16.4 EEPROM
Resumen
Preguntas para pensar
Capítulo 17 RISC_CPU simplificado diseño
Descripción general
17.1 Origen del tema e introducción al entorno de diseño
17.2 ¿Qué es la CPU?
17.3 Estructura RISC_CPU p>
17.3.1 Generador de reloj
17.3.2 Registro de instrucciones
17.3.3 Acumulador
17.3.4 Operador aritmético
17.3.5 Controlador de datos
17.3.6 Multiplexor de direcciones
17.3.7 Contador de programa
17.3.8 Controlador de estado
17.3.9 Módulos periféricos
17.4 Operación y temporización de RISC_CPU
17.4.1 Operación de reinicio y arranque del sistema
17.4.2 Operación de lectura del bus
17.4.3 Operación de escritura del bus
17.5 Modo de direccionamiento RISC_CPU y sistema de instrucciones
17.6 Depuración del módulo RISC_CPU
17.6.1 Prefacio de simulación del módulo RISC_CPU
17.6.2 Síntesis del módulo RISC_CPU
17.6.3 Optimización, ubicación y enrutamiento del módulo RISC_CPU
Resumen
Preguntas para pensar
Resumen
Preguntas para pensar
Capítulo 18 Dispositivos/interfaces virtuales, IP y métodos de diseño basados en plataformas y su papel en el diseño de grandes sistemas digitales
Descripción general
18.1 Núcleo blando y núcleo duro , macroceldas, dispositivos virtuales, diseño y verificación de IP, y métodos de diseño basados en plataformas
18.2 Diseño y verificación de proveedores de IP
18.3 Diseño de módulos virtuales
18.4 Ejemplos de módulo de interfaz virtual
Resumen
Preguntas para pensar
Parte 3, demostración de diseño y ejercicios experimentales
Descripción general
p>Ejercicio 1: Diseño lógico combinacional simple
Ejercicio 2: Diseño de un circuito lógico secuencial por división de frecuencia simple
Ejercicio 3: Uso de declaraciones condicionales para implementar un circuito secuencial por división de frecuencia de conteo
p >Ejercicio 4: La diferencia entre asignación con bloqueo y asignación sin bloqueo
Ejercicio 5: Utilice bloques siempre para implementar circuitos lógicos combinacionales más complejos
Ejercicio 6: Uso de funciones en Verilog HDL
p>Ejercicio 7: Usar tareas en Verilog HDL
Ejercicio 8: Usar máquinas de estados finitos para diseñar lógica secuencial
Ejercicio 9: Usar estado máquinas para implementar diseños de interfaces más complejos
Ejercicio 10: Diseño de sistemas a gran escala mediante llamadas de instancias de módulos
Ejercicio 11: Diseño de convolver simple
Apéndice 1 Convertidor A/D Parámetros técnicos necesarios para la máquina modelo Verilog HDL
Apéndice 2 RAM estática CMOS asíncrona de 2K*8 bits modelo HM65162
Ejercicio 12 Diseño de una FIFO usando SRAM
Parte 4 Gramática
Gramática 1 Introducción a Verilog HDL
1 Acerca del estándar IEEE 1364
2 Introducción a Verilog
3. Resumen de sintaxis
4. Estándares para escribir código fuente Verilog HDL
5. Proceso de diseño
Sintaxis Parte 2 Manual de referencia del lenguaje de descripción de hardware de Verilog
1. Declaraciones Verilog HDL e identificadores de uso común (ordenados alfabéticamente)<. /p>
2. Tareas y funciones del sistema
3. Instrucciones detalladas para tareas y funciones comunes del sistema
4. Opciones de línea de comandos
5. Introducción al estándar IEEE Verilog 13642001
Referencias
.