本書結(jié)合“十二五”普通高等教育本科國家級規(guī)劃教材《Verilog HDL 數(shù)字集成電路設(shè)計原理與應(yīng)用(第二版)》(蔡覺平等,西安電子科技大學(xué)出版社,2016),以習(xí)題和實驗例程的方式,對采用Verilog HDL的數(shù)字集成電路和FPGA設(shè)計方法進行了介紹,同時對教材中的課后習(xí)題也一一給予了解答。書中實驗例程多,可綜合和測試針對性強,且大部分內(nèi)容來源于工程案例,通過對理論教學(xué)的歸納和總結(jié),進一步加強了設(shè)計的可參考性,因此,本書主要用于Verilog HDL數(shù)字集成電路的實驗教學(xué)中。
本書可作為研究生和本科生的實驗教材,也可作為數(shù)字集成電路設(shè)計工程師的參考書。
本書與“十二五”普通高等教育本科國家級規(guī)劃教材《Verilog HDL 數(shù)字集成電路設(shè)計原理與應(yīng)用(第二版)》(蔡覺平,西安電子科技大學(xué)出版社,2016)相配套,主要用于Verilog HDL的上機實驗,是相關(guān)課程理論教學(xué)的補充。本書通過對比性例程,對Verilog HDL基本語法和設(shè)計規(guī)則進行了詳細的分析,給出了大量數(shù)字集成電路基本電路的設(shè)計例程和一些具有典型特點的中小規(guī)模數(shù)字集成電路實例,有助于讀者對Verilog HDL的學(xué)習(xí)。
此外,為了擴大設(shè)計的可參考性,在配套教材的基礎(chǔ)上,增加了一些相關(guān)的例程(以 *標示的內(nèi)容),以提高讀者靈活運用該語言的能力。
十分感謝對于本書的出版作出貢獻的老師和學(xué)生們。感謝湘潭大學(xué)黃嵩人教授、西安交通大學(xué)張鴻教授、北京工業(yè)大學(xué)侯立剛教授、西北工業(yè)大學(xué)張盛兵教授對本書提出的建設(shè)性意見;感謝馬原、徐維佳、宋喆喆、同亞娜和溫凱林等同學(xué)在集成電路設(shè)計流程過程、代碼質(zhì)量評估等方面大量的實際工作;感謝課題組其他同學(xué)對于本書出版所作出的努力。
本書共分7章,由蔡覺平統(tǒng)稿,馮必先完成了第1~4章的內(nèi)容和程序驗證,翁靜純完成了第5~7章的內(nèi)容和程序驗證,國際留學(xué)生阮文長和王科完成了部分程序的驗證工作。
希望本書的出版,能為致力于集成電路設(shè)計的同學(xué)和工程師提供幫助。
編著者
2016年4月
第1章 Verilog HDL數(shù)字集成電路設(shè)計方法概述 1
1.1 數(shù)字集成電路的發(fā)展和設(shè)計方法的演變 1
1.2 硬件描述語言 1
1.3 Verilog HDL的發(fā)展和國際標準 2
1.4 Verilog HDL和VHDL 2
1.5 Verilog HDL在數(shù)字集成電路設(shè)計中的優(yōu)點 3
1.6 功能模塊的可重用性 3
1.7 IP核和知識產(chǎn)權(quán)保護 4
1.8 Verilog HDL在數(shù)字集成電路設(shè)計流程中的作用 4
教材思考題和習(xí)題解答 4
第2章 Verilog HDL基礎(chǔ)知識 7
2.1 Verilog HDL的語言要素 7
2.2 數(shù)據(jù)類型 8
2.3 運算符 8
2.4 模塊 13
教材思考題和習(xí)題解答 14
第3章 Verilog HDL程序設(shè)計語句和描述方式 16
3.1 數(shù)據(jù)流建模 16
3.2 行為級建模 21
3.3 結(jié)構(gòu)化建模 30
教材思考題和習(xí)題解答 37
第4章 Verilog HDL數(shù)字邏輯電路設(shè)計方法 43
4.1 Verilog HDL的設(shè)計思想和可綜合特性 43
4.2 組合電路的設(shè)計 50
4.2.1 數(shù)字加法器 50
4.2.2 數(shù)據(jù)比較器 50
4.2.3 數(shù)據(jù)選擇器 53
4.2.4 數(shù)字編碼器 54
4.2.5 數(shù)字譯碼器 56
4.2.6 奇偶校驗器 59
*4.2.7 其它類型的組合電路 59
4.3 時序電路的設(shè)計 62
4.3.1 觸發(fā)器 62
4.3.2 計數(shù)器 64
4.3.3 移位寄存器 72
4.3.4 序列信號發(fā)生器 74
*4.3.5 分頻器 77
4.4 有限同步狀態(tài)機 80
教材思考題和習(xí)題解答 89
第5章 仿真驗證與Testbench編寫 97
5.1 Verilog HDL電路仿真和驗證概述 97
5.2 Verilog HDL測試程序設(shè)計基礎(chǔ) 98
5.2.1 組合邏輯電路仿真環(huán)境 98
5.2.2 時序邏輯電路仿真環(huán)境 103
5.3 與仿真相關(guān)的系統(tǒng)任務(wù) 106
5.3.1 $display和$write 106
5.3.2 $monitor和$strobe 107
5.3.3 $time和 $realtime 109
5.3.4 $finish和 $stop 110
5.3.5 $readmemh和$readmemb 111
5.3.6 $random 112
5.4 信號時間賦值語句 114
5.4.1 時間延遲的描述形式 114
5.4.2 邊沿觸發(fā)事件控制 118
5.4.3 電平敏感事件控制 119
5.5 任務(wù)和函數(shù) 120
5.5.1 任務(wù)(task) 120
5.5.2 函數(shù)(function) 122
5.5.3 任務(wù)與函數(shù)的區(qū)別 123
5.6 典型測試向量的設(shè)計 126
5.6.1 變量初始化 126
5.6.2 數(shù)據(jù)信號測試向量的產(chǎn)生 126
5.6.3 時鐘信號測試向量的產(chǎn)生 127
5.6.4 總線信號測試向量的產(chǎn)生 129
5.7 用戶自定義元件模型 132
5.7.1 組合電路UDP元件 132
5.7.2 時序電路UDP元件 133
5.8 基本門級元件和模塊的延時建模 134
5.8.1 門級延時建模 134
5.8.2 模塊延時建模 135
5.8.3 與時序檢查相關(guān)的系統(tǒng)任務(wù) 137
5.9 編譯預(yù)處理語句 141
5.10 Verilog HDL測試方法簡介 141
教材思考題和習(xí)題解答 141
第6章 Verilog HDL高級程序設(shè)計舉例 151
6.1 Verilog HDL典型電路設(shè)計 151
6.1.1 向量乘法器 151
6.1.2 除法器 152
6.1.3 相關(guān)器 155
6.1.4 鍵盤掃描程序 155
6.1.5 查找表矩陣運算 157
6.1.6 巴克碼相關(guān)器設(shè)計 158
6.1.7 數(shù)字頻率計 161
6.1.8 簡易微處理器的設(shè)計 166
*6.2 FPGA與DSP外部拓展接口(XINTF)通信舉例 168
*6.3 FPGA從ADC采集數(shù)據(jù)舉例 181
*6.4 FPGA最大功耗測試 190
教材思考題和習(xí)題解答 191
第7章 仿真測試工具和綜合工具 219
教材思考題和習(xí)題解答 246
附錄 模擬試題 252
模擬試題(一) 252
模擬試題(二) 254
模擬試題(三) 257
模擬試題(四) 260
參考文獻 262