Directorio de libros con explicaciones detalladas de ejemplos de programación de Verilog HDL
Contenido:
Este libro explica el lenguaje de programación veriloghdl en detalle a través de más de 100 ejemplos de módulos. El libro completo está dividido en 13 capítulos, que cubren los conceptos básicos y la construcción de veriloghdl. Módulo, diseño síncrono, diseño asíncrono, verificación funcional, etc. Los ejemplos incluyen varios sumadores/contadores, multiplicadores/divisores, codificadores/decodificadores, máquinas de estado, spimastercontroller, i2cmastercontroller, canprotocolcontroller, módulo de memoria, módulo de compresión de imágenes jpeg, módulo de cifrado. controlador ata, risc-cpu de 8 bits, etc. y el banco de pruebas correspondiente de cada módulo de ejemplo. Los ejemplos citados son muy prácticos y representativos. Cada ejemplo proporciona una introducción, análisis funcional, código de programa y demostración de resultados.
El contenido de este libro proviene del resumen de la experiencia laboral real del autor y de la información relevante recopilada y compilada diariamente. Los pasos son detallados, los ejemplos son abundantes y la descripción es paso a paso. Es un recurso poco común para la mayoría de los ingenieros de diseño de circuitos integrados, ingenieros electrónicos y profesores y estudiantes universitarios. Un libro de referencia veriloghdl.
Contenido
Capítulo 1 Conocimientos básicos de veriloghdl 1
1.1 Conocimientos básicos del lenguaje de veriloghdl 1
1.1.1 Resumen 1 p>
p>
1.1.2 características de sintaxis de veriloghdl 2
1.1.3 tipo de datos de veriloghdl 4
1.1.4 operador de veriloghdl 5
1.1.5 estructura del programa veriloghdl 6
1.2 Introducción al uso de modelsimse 8
Capítulo 2 Ejemplo de sumador/contador 10
Diseño de sumador de medio sumador de 2.11 bits ejemplo 10
2.1.Diseño de sumador de medio sumador de 11 bits 10
2.1.2 diseño de addertestbench 11
2.1.3 resultados de ejecución de addertestbench y forma de onda de simulación 12
Ejemplo de diseño de sumador completo de 2.21 bits full_add 13
2.2.Diseño de sumador completo de 11 bits full_add 13
2.2.2diseño de full_addtestbench 15
2.2.3resultados de ejecución de full_addtestbench y formas de onda de simulación 16
p>2.3 Ejemplo de diseño de sumador completo síncrono de 4 bits adder4 17
2.3.1 Diseño de sumador completo síncrono de 4 bits adder4 17
2.3 .2 diseño de adder4testbench 18
2.3.3resultados de ejecución de adder4testbench y formas de onda de simulación 20
ejemplo de diseño de contador de 2,44 bits 4 22
2.4.diseño de contador de 14 bits4 22
2.4.2Diseño de count4testbench 22
2.4.3 Resultados de ejecución de Count4testbench y formas de onda de simulación 23
Ejemplo de diseño de count60 del contador de código de 2.58 bits 24
2.5.Contador de código 18bitbcd diseño count60 24
2.5.2diseño de count60testbench 27
2.5.3resultados de ejecución de count60testbench y formas de onda de simulación 27
Capítulo 3 Ejemplo de multiplicador/divisor 29
3.1 Agregar multiplicador de árbol ejemplo de diseño add_tree_mult 29
3.1.1 Agregar multiplicador de árbol diseño add_tree_mult 29
3.1.2 diseño add_tree_multtestbench 32
3.1.3 Resultados de ejecución de add_tree_multtestbench y forma de onda de simulación 33
3.2 Ejemplo de diseño de lookup_mult del multiplicador de tabla de búsqueda 34
3.2.1 Diseño de lookup_mult del multiplicador de tabla de búsqueda 34
3.2 .2 diseño lookup_multtestbench 37
p>
3.2.3 resultados de ejecución de lookup_multtestbench y formas de onda de simulación 37
3.3 Ejemplo de diseño de Boot_mult con multiplicador booleano 39
3.3. 1 Multiplicador booleano diseño Booth_mult 39
3.3.2Diseño Booth_multtestbench 42
3.3.3Resultados de ejecución de Booth_multtestbench y formas de onda de simulación 44
3.4 Ejemplo de diseño Shift divisor shift_divider 46 p>
3.4.1 Diseño del divisor de bits Shift_divider 46
3.4.2 Diseño de shift_dividertestbench 52
3.4.3 Resultados de ejecución de shift_dividertestbench y forma de onda de simulación 55
Capítulo 4 Ejemplo de codificador/decodificador 57
4.1 Ejemplo de diseño bin_enc del codificador binario 57
4.1.1 Diseño bin_enc del codificador binario 57
4.1.2 Diseño bin_enctestbench 59
4.1.3 Resultados de ejecución de bin_enctestbench y formas de onda de simulación 60
4.2 Ejemplo de diseño manch_ed del códec Manchester 60
4.2.1 Diseño manch_en del codificador Manchester 60
4.2.2 diseño manch_entestbench 63
4.2.3 resultados de ejecución de manch_entestbench y forma de onda de simulación 64
4.2.4 Dispositivo de decodificación Manchester diseño manch_de 65
4.2.5 diseño manch_detestbench 67
4.2.6 resultados de ejecución de manch_detestbench y forma de onda de simulación 68
4.2.7 Diseño manch_ed del códec Manchester 69
4.3 Miller Ejemplo de diseño del decodificador miller_de 70
4.3.1 Diseño general del decodificador Miller miller_de 70
4.3.2 Diseño del módulo de detección signal_detect 71
4.3.3Diseño del banco de prueba de señal_detect 73 p>
4.3.4resultados de ejecución de signal_detecttestbench y forma de onda de simulación 75
4.3.5 diseño de decodificación del módulo de decodificación 76
4.3.6diseño dedecodetestbench 79
4.3. Resultados de ejecución de 7decodetestbench y formas de onda de simulación 80
4.3.8 Diseño de nivel superior del decodificador Miller miller_de 81
No 5 Capítulo Ejemplo de máquina de estados 83
5.1 Máquina de estados Introducción 83
Implementación de la máquina de estados multiplicadores de 5.216 bits 84
5.2.Diseño Multiplicador Mult16 de 116 bits 84
p>5.2.2Diseño de banco de pruebas mult16 86
5.3 Diseño de control de semáforo de control de tráfico 87
5.3.1 Arquitectura general del tráfico de semáforo de control de tráfico 87
5.3 Diseño de 2 máquinas de estado de tráfico 88
5.3.3 diseño de Traffictestbench 91
5.3.4 resultados de ejecución de Traffictestbench y formas de onda de simulación 93
5.4 diseño de máquina de estado de la interfaz de destino del bus pci 93
5.4.1bus pci introducción 93
5.4.2 arquitectura general de la interfaz de destino del bus pci 94
5.4.3 diseño de máquina de estados de la interfaz de destino del bus pci 95
5.4.4 diseño de pcitargettestbench 106
5.4.5 resultados de ejecución de pcitargettestbench y formas de onda de simulación 108
Capítulo 6 ejemplo de spimastercontroller 111
6.1 Introducción al protocolo spi 111
6.2 diseño de spimastercontroller 113 p>
6.2.1 Arquitectura general de spimastercontroller 113
6.2.2 Diseño spi_clgen del módulo de generación de reloj 113
6.2.3 Diseño spi_shift del módulo de interfaz serie 115
6.2.4 Diseño del módulo de nivel superior spi_top 121
6.3 Diseño spimastercontrollertestbench 126
6.3.1 Arquitectura general de spi_toptestbench 126
6.3 .2 Simular Wishbonemas
diseño del módulo ter 126
6.3.3 Diseño del módulo analógico spislave 128
6.3.4 diseño del módulo de nivel superior spi_toptestbench 129
6.3.5 resultados de ejecución de spi_toptestbench y formas de onda de simulación 129
Capítulo 7 Ejemplo de i2cmastercontroller 132
Introducción al bus 7.1i2c 132
Diseño de 7.2i2cmastercontroller 135
7.2.Arquitectura general de 1i2cmastercontroller 135
p>Módulo de transmisión de 7.2.2 bits i2c_master_bit_ctrl diseño 136
Módulo de transmisión de 7.2.3 bytes i2c_master_byte_ctrl diseño 142
7.2.4i2c_master_top diseño del módulo 146
7.3i2cmastercontrollertestbench Diseño 150
7.3.1i2c_master_toptestbench arquitectura general 150
7.3.2diseño del módulo Wishbonemaster 150
7.3.3i2c_slave_model diseño del módulo 151
7.3.Diseño del módulo de nivel superior 4i2c_master_toptestbench 155
7.3.5Resultados de ejecución de i2c_master_toptestbench y formas de onda de simulación 160
Capítulo 8 ejemplo de controlador de protocolo can 162
8.1 controlador de protocolo can en general arquitectura 162
8.2 diseño del módulo controlador de protocolo can 165
8.2.1 arquitectura general del controlador de protocolo can 165
8.2.2 diseño del módulo de operación de temporización de bits can_btl 166
8.2.3 Diseño can_bsp del módulo de procesamiento de flujo de bits 171
8.3 Diseño canprotocolcontrollertestbench 181
8.3.1 Arquitectura general de can_toptestbench 181
8.3.2 Diseño testtask 181 p>
8.3.3 can_toptestbench nivel superior Diseño del módulo 185
8.3.4 resultados de ejecución de can_toptestbench y formas de onda de simulación 187
Capítulo 9 ejemplo de módulo de memoria 190
9.1 Ejemplo de diseño FIFO asincrónico 190
9.1.1 Introducción a FIFO asincrónico 190
9.1.2 Diseño FIFO asincrónico 192
9.1.3 Diseño FIFO asincrónico 194
9.2Ejemplo de diseño de ddrsdramcontroller 200
9.2.1 Introducción a SDRAM 200
9.2.2DDRSDRAMController Diseño 201
9.2.3DDRSDRAMControllerTestbench Diseño 212
Capítulo 10 Ejemplo de módulo de compresión de imágenes JPEG 218
10.1 Introducción al módulo de compresión de imágenes jpeg 218
10.2 Ejemplo de diseño csc de conversión de espacio cromático 219
10.2.1 Introducción al espacio croma 219
10.2.2 Diseño csc de conversión de espacio croma 220
10.2.3 Diseño csctestbench de conversión de espacio croma 223
10.3 Discreto Ejemplo de diseño dct de transformación de coseno 226
10.3.1 Introducción a la transformada de coseno discreto 226
10.3.2 Coseno discreto
Diseño de transformación dct 227
10.3.3 Transformada de coseno discreta diseño dcttestbench 235
10.4 Ejemplo de diseño qnr de redondeo de cuantificación 238
10.4.1 Introducción al redondeo de cuantificación 238
10.4.2 Diseño qnr de redondeo cuantitativo 239
10.4.3 Diseño qnrtestbench de redondeo cuantitativo 244
10.5 Ejemplo de diseño de huffman_enc de codificación Huffman 248
p>10.5.1 Introducción a la codificación Huffman 248
10.5.2 Codificación Huffman diseño huffman_enc 248
10.5.3 Codificación Huffman diseño huffman_enctestbench 252 p>
Capítulo 11 des Ejemplos del módulo de cifrado /aes 258
Diseño del módulo de cifrado 11.1des 258
Introducción al algoritmo de cifrado 11.1.1des 258
Diseño del módulo de cifrado 11.1 .2des 260
Diseño del banco de pruebas del módulo de cifrado 11.1.3des 276
Diseño del módulo de cifrado 11.2aes 279
Introducción al algoritmo de cifrado 11.2.1aes 279 p>
Cifrado 11.2.2aes diseño del módulo 280
Diseño del banco de pruebas del módulo de cifrado 11.2.3aes 295
Capítulo 12 instancia del controlador de host ata 300
Introducción al protocolo 12.1ata 300
12.1.1protocolo ata 300
12.1.2método de transmisión de datos ata 300
12.1.3transmisión de comandos ata 301
12.2diseño del controlador de host ata 302
12.2.1arquitectura general del controlador de host ata 302
12.2.2diseño de atahost_controller 304
12.2.3controlador de temporización pio diseño de atahost_pio_tctrl 307
12.2.4 Contador en ejecución módulo ro_cnt diseño 310
12.2.5atahost_wb_slave diseño 311
12.3ata host controlador testbench diseño 317
12.3.1ata host controlador testbench arquitectura general 317
12.3.2dispositivo ata diseño ata_device 317
12.3.3io_test1task diseño 321
12.3.4io_test2task diseño 323
12.3.5int_testtask diseño 327
12.3.6rst_testtask diseño 329
12.3.7test_bench_top diseño 330
12.3.8ata host controlador testbench Resultados de ejecución y formas de onda de simulación 332
Capítulo 13 8- ejemplo de bit risc-cpu 335
13.1 Introducción a risc-cpu 335
13.1.1 Arquitectura básica de risc-cpu 335
13.1.2 Funciones y módulo división de risc-cpu 336
13.2 Diseño de risc-cpu 336
13.2.1 Arquitectura general de risc-cpu 336
p>13.2.2 Aritmética unidad lógica alu diseño 339
13.2.3 Módulo de expansión opcional exp diseño 340
13.2.4 Decodificador de instrucciones idec diseño 342
p>13.2.5 Archivo de registro diseño de regs 345
13.2.6 Diseño de cochecito de memoria programable 346
13.2.7diseño de cpu 347
13.3risc -diseño de cputestbench 358
13.3.1
Arquitectura general de risc-cputestbench 358
13.3.2 Diseño de risc-cputask 359
13.3.3 Diseño de nivel superior de risc-cputestbench 363
13.3.4 risc -Resultados de ejecución de cputestbench y forma de onda de simulación 364
Abreviatura 366
Referencia 368