标题：verilog hdl程序设计实例详解
基本信息
书名:
veriloghdl程序设计实例详解
书号:
作者:
张延伟杨金岩葛爱学
图书简介
本书通过100多个模块实例，详细地讲解了veriloghdl程序设计语言，全书共分13章，内容涉及veriloghdl语言基本概念、建模、同步设计、异步设计、功能验证等，实例包括各种加法器/计数器、乘法器/除法器、编码器/译码器、状态机、spimastercontroller、i2cmastercontroller、canprotocolcontroller、memory模块、jpeg图像压缩模块、加密模块、ata控制器、8位risc-cpu等及各个实例模块相应的testbench，所举实例具有很强的实用性和代表性，每个实例均给出了介绍、功能分析、程序代码和结果演示。
本书内容来自作者实际工作经验的总结及平常收集整理的相关资料，步骤详细，实例丰富，讲述循序渐进，是广大ic设计工程师、电子工程人员和高校师生不可多得的一本veriloghdl参考用书。
书籍目录
目录:
本书通过100多个模块实例，详细地讲解了veriloghdl程序设计语言，全书共分13章，内容涉及veriloghdl语言基本概念、建模、同步设计、异步设计、功能验证等，实例包括各种加法器/计数器、乘法器/除法器、编码器/译码器、状态机、spimastercontroller、i2cmastercontroller、canprotocolcontroller、memory模块、jpeg图像压缩模块、加密模块、ata控制器、8位risc-cpu等及各个实例模块相应的testbench，所举实例具有很强的实用性和代表性，每个实例均给出了介绍、功能分析、程序代码和结果演示。
本书内容来自作者实际工作经验的总结及平常收集整理的相关资料，步骤详细，实例丰富，讲述循序渐进，是广大ic设计工程师、电子工程人员和高校师生不可多得的一本veriloghdl参考用书。
目录
第1章veriloghdl基础知识1
1.1veriloghdl的基础语言知识1
1.1.1综述1
1.1.2veriloghdl语法特性2
1.1.3veriloghdl数据类型4
1.1.4veriloghdl运算符5
1.1.5veriloghdl程序结构6
1.2modelsimse使用简介8
第2章加法器/计数器实例10
2.11bit半加法器adder设计实例10
2.1.11bit半加法器adder设计10
2.1.2addertestbench设计11
2.1.3addertestbench执行结果及仿真波形12
2.21bit全加法器full_add设计实例13
2.2.11bit全加法器full_add设计13
2.2.2full_addtestbench设计15
2.2.3full_addtestbench执行结果及仿真波形16
2.3同步4bit全加法器adder4设计实例17
2.3.1同步4bit全加法器adder4设计17
2.3.2adder4testbench设计18
2.3.3adder4testbench执行结果及仿真波形20
2.44bit计数器count4设计实例22
2.4.14bit计数器count4设计22
2.4.2count4testbench设计22
2.4.3count4testbench执行结果及仿真波形23
2.58bitbcd码计数器count60设计实例24
2.5.18bitbcd码计数器count60设计24
2.5.2count60testbench设计27
2.5.3count60testbench执行结果及仿真波形27
第3章乘法器/除法器实例29
3.1加法树乘法器add_tree_mult设计实例29
3.1.1加法树乘法器add_tree_mult设计29
3.1.2add_tree_multtestbench设计32
3.1.3add_tree_multtestbench执行结果及仿真波形33
3.2查找表乘法器lookup_mult设计实例34
3.2.1查找表乘法器lookup_mult设计34
3.2.2lookup_multtestbench设计37
3.2.3lookup_multtestbench执行结果及仿真波形37
3.3布尔乘法器booth_mult设计实例39
3.3.1布尔乘法器booth_mult设计39
3.3.2booth_multtestbench设计42
3.3.3booth_multtestbench执行结果及仿真波形44
3.4移位除法器shift_divider设计实例46
3.4.1移位除法器shift_divider设计46
3.4.2shift_dividertestbench设计52
3.4.3shift_dividertestbench执行结果及仿真波形55
第4章编码器/译码器实例57
4.1二进制编码器bin_enc设计实例57
4.1.1二进制编码器bin_enc设计57
4.1.2bin_enctestbench设计59
4.1.3bin_enctestbench执行结果及仿真波形60
4.2曼彻斯特编译码器manch_ed设计实例60
4.2.1曼彻斯特编码器manch_en设计60
4.2.2manch_entestbench设计63
4.2.3manch_entestbench执行结果及仿真波形64
4.2.4曼彻斯特译码器manch_de设计65
4.2.5manch_detestbench设计67
4.2.6manch_detestbench执行结果及仿真波形68
4.2.7曼彻斯特编译码器manch_ed设计69
4.3密勒译码器miller_de设计实例70
4.3.1密勒译码器miller_de总体设计70
4.3.2检测模块signal_detect设计71
4.3.3signal_detecttestbench设计73
4.3.4signal_detecttestbench执行结果及仿真波形75
4.3.5译码模块decode设计76
4.3.6decodetestbench设计79
4.3.7decodetestbench执行结果及仿真波形80
4.3.8密勒译码器miller_de顶层设计81
第5章状态机实例83
5.1状态机介绍83
5.216位乘法器状态机实现84
5.2.116位乘法器mult16设计84
5.2.2mult16testbench设计86
5.3交通控制灯控制设计87
5.3.1交通控制灯traffic总体构架87
5.3.2traffic状态机设计88
5.3.3traffictestbench设计91
5.3.4traffictestbench执行结果及仿真波形93
5.4pci总线目标接口状态机设计93
5.4.1pci总线介绍93
5.4.2pci总线目标接口总体构架94
5.4.3pci总线目标接口statemachine设计95
5.4.4pcitargettestbench设计106
5.4.5pcitargettestbench执行结果及仿真波形108
第6章spimastercontroller实例111
6.1spi协议介绍111
6.2spimastercontroller设计113
6.2.1spimastercontroller总体构架113
6.2.2时钟产生模块spi_clgen设计113
6.2.3串行接口模块spi_shift设计115
6.2.4spi_top顶层模块设计121
6.3spimastercontrollertestbench设计126
6.3.1spi_toptestbench总体构架126
6.3.2模拟wishbonemaster模块设计126
6.3.3模拟spislave模块设计128
6.3.4spi_toptestbench顶层模块设计129
6.3.5spi_toptestbench执行结果及仿真波形129
第7章i2cmastercontroller实例132
7.1i2c总线介绍132
7.2i2cmastercontroller设计135
7.2.1i2cmastercontroller总体构架135
7.2.2bit传输模块i2c_master_bit_ctrl设计136
7.2.3byte传输模块i2c_master_byte_ctrl设计142
7.2.4i2c_master_top模块设计146
7.3i2cmastercontrollertestbench设计150
7.3.1i2c_master_toptestbench总体构架150
7.3.2wishbonemaster模块设计150
7.3.3i2c_slave_model模块设计151
7.3.4i2c_master_toptestbench顶层模块设计155
7.3.5i2c_master_toptestbench执行结果及仿真波形160
第8章canprotocolcontroller实例162
8.1canprotocolcontroller总体构架162
8.2canprotocolcontroller模块设计165
8.2.1canprotocolcontroller总体构架165
8.2.2位时序操作模块can_btl设计166
8.2.3bitstream处理模块can_bsp设计171
8.3canprotocolcontrollertestbench设计181
8.3.1can_toptestbench总体构架181
8.3.2testtask设计181
8.3.3can_toptestbench顶层模块设计185
8.3.4can_toptestbench执行结果及仿真波形187
第9章memory模块实例190
9.1异步fifo设计实例190
9.1.1异步fifo简介190
9.1.2异步fifo设计192
9.1.3异步fifotestbench设计194
9.2ddrsdramcontroller设计实例200
9.2.1sdram简介200
9.2.2ddrsdramcontroller设计201
9.2.3ddrsdramcontrollertestbench设计212
第10章jpeg图像压缩模块实例218
10.1jpeg图像压缩模块简介218
10.2色度空间转换csc设计实例219
10.2.1色度空间简介219
10.2.2色度空间转换csc设计220
10.2.3色度空间转换csctestbench设计223
10.3离散余弦变换dct设计实例226
10.3.1离散余弦变换简介226
10.3.2离散余弦变换dct设计227
10.3.3离散余弦变换dcttestbench设计235
10.4量化取整qnr设计实例238
10.4.1量化取整简介238
10.4.2量化取整qnr设计239
10.4.3量化取整qnrtestbench设计244
10.5哈夫曼编码huffman_enc设计实例248
10.5.1哈夫曼编码简介248
10.5.2哈夫曼编码huffman_enc设计248
10.5.3哈夫曼编码huffman_enctestbench设计252
第11章des/aes加密模块实例258
11.1des加密模块设计258
11.1.1des加密算法介绍258
11.1.2des加密模块设计260
11.1.3des加密模块testbench设计276
11.2aes加密模块设计279
11.2.1aes加密算法介绍279
11.2.2aes加密模块设计280
11.2.3aes加密模块testbench设计295
第12章ata主机控制器实例300
12.1ata协议介绍300
12.1.1ata协议300
12.1.2ata数据传输方式300
12.1.3ata命令传输301
12.2ata主机控制器设计302
12.2.1ata主机控制器总体构架302
12.2.2atahost_controller设计304
12.2.3pio时序控制器atahost_pio_tctrl设计307
12.2.4运行计数器模块ro_cnt设计310
12.2.5atahost_wb_slave设计311
12.3ata主机控制器testbench设计317
12.3.1ata主机控制器testbench总体构架317
12.3.2ata设备ata_device设计317
12.3.3io_test1task设计321
12.3.4io_test2task设计323
12.3.5int_testtask设计327
12.3.6rst_testtask设计329
12.3.7test_bench_top设计330
12.3.8ata主机控制器testbench执行结果及仿真波形332
第13章8位risc-cpu实例335
13.1risc-cpu介绍335
13.1.1risc-cpu基本构架335
13.1.2risc-cpu的功能及模块的划分336
13.2risc-cpu设计336
13.2.1risc-cpu总体构架336
13.2.2算术逻辑单元alu设计339
13.2.3可选扩展模块exp设计340
13.2.4指令译码器idec设计342
13.2.5寄存器文件regs设计345
13.2.6可编程存储器pram设计346
13.2.7cpu设计347
13.3risc-cputestbench设计358
13.3.1risc-cputestbench总体构架358
13.3.2risc-cputask设计359
13.3.3risc-cputestbench顶层设计363
13.3.4risc-cputestbench执行结果及仿真波形364
缩略语366
参考文献368[1]