圖書簡介
本書內容來自作者實際工作經驗的總結及平常收集整理的相關資料,步驟詳細,實例豐富,講述循序漸進,是廣大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