Verilog HDL是一種廣泛應用的硬件描述語言,無論是專用集成電路設計,還是嵌入式FPGA開發,都會使用Verilog HDL語言進行編程。 本書力求讓讀者快速掌握關鍵語法,能夠在短時間內結合核心語法完成設計,同時注意梯度設置,引導讀者從簡單模塊到複雜設計,逐漸掌握Verilog HDL。全書精簡語法,重點突出,語句凝練,具有工程設計的風格。 為了更好地配合學習,書中設有習題和相應解答,並配備了多個實驗,所有代碼均經過仿真,完整的實例均可供下載,方便讀者調試和使用。對於重點和難點,輔以視頻教學,更好幫助讀者理解和掌握。 本書可作為電子、通信、計算機、自動化及集成電路設計相關專業的本科生的教材,同時也適合對Verilog HDL感興趣的愛好者或專業人士閱讀。
黃海,哈爾濱理工大學軟件與微電子學院副院長、教授、碩士生導師。長期從事信息安全、可重構計算、數字信號處理以及集成電路設計等方向的教學和科研工作,承擔了“數字信號處理”“信號與系統”“硬件描述語言”等課程教學。近5年來,主持或參與、省級教學綜合改革項目8項,其中新工科研究與實踐項目1項,黑龍省高等教育教學改革項目3項,發表教改論文5篇,出版書籍1部;主持科研項目10項,其中國家自然基金項目1項,國家重點研發計劃項目子課題1項,省級項目5項;發表SCI和EI期刊學術論文7篇;申請專利10項,其中授權發明專利2項、實用新型專利3項。
於斌,哈爾濱理工大學軟件與微電子學院教師,於哈爾濱工業大學獲學士、碩士學位。長期從事信息安全和集成電路設計等方向的教學和科研工作,承擔了“Verilog與數字系統設計”“集成電路驗證技術”“計算機組成原理與結構”等課程教學。編寫《ModelSim電子系統分析及仿真》(已累計三版)和《Verilog HDL數字系統設計及仿真》(已累計兩版)等教材。
(1)精簡語法,保留核心,凝練語句,集中介紹和討論重點內容,去除旁枝末節的干擾。
(2)語法→示例→練習→實驗→綜合設計,更合理地開展教學,更有效率地提升技能。
(3)配套豐富教學資源,包括完整PPT課件、詳細習題解答、多類代碼實例、實驗參考和指導,教學講解視頻等。
(4)開設交流群,及時溝通、互助和答疑,隨時解決學習中的困擾,並可持續獲得教學資源更新。
近年來,集成電路產業蓬勃發展,越來越多的優秀人才投身於集成電路設計行業。在集成電路設計過程中,HDL語言有著重要的應用,無論是專用集成電路設計,還是嵌入式FPGA開發,都要使用HDL語言進行編程,進而通過EDA流程得到終產品。Verilog HDL語言相較而言更容易上手,受到企業界的廣泛推薦,也因此走進更多的高校。
作者常年從事Verilog HDL的課程教學,閱讀並使用過國內外形形色色的各類教材,其中各有閃光之處; 在教學和科研的過程中,也深感於教材與工程實踐的脫節,教材不應是一本語法書,也不應是一本代碼集,而應該是一個引導讀者從簡單代碼到複雜設計的領路者。
眾所周知,語法本就十分煩瑣,所以很多讀者本懷著熱情投入到Verilog HDL的學習中,但陷入了語法的糾纏,慢慢打起了退堂鼓。Verilog HDL與其他語法略有不同,只需要簡單的幾個語法就可以完成大多數的電路設計,所以介紹這些語法後就應該及時地讓讀者親自實踐,在此基礎上再逐漸增加驗證類的語法,可以讓讀者在編寫一個個程序後體會到HDL語言的樂趣。同時,語法的介紹並不需要事無巨細,就像一個單詞一樣,並不需要知道它的所有含義,只是知道常用的幾個詞義就不會妨礙對它的使用——這樣的思想其實也適用於Verilog HDL的學習。
本書結合作者的種種心得,對語法做了大幅精簡,僅保留設計和驗證中的關鍵語法,力求減少讀者的負擔,能夠讓讀者全力掌握核心語法。本書的講解思路和推薦使用方法如下:
第1~4章是部分,這一部分的用意在於快速讓讀者進入仿真環節,同時介紹Verilog HDL的語法框架,能夠讓讀者動手在計算機上完成一個代碼。本部分的圖形相對較多,能夠幫助讀者更好地理解HDL語法的特性,與電路產生關聯。
第5~10章是第二部分,本部分是語法核心,會給出語法結構和代碼示例,配以大量注釋來解釋語法的使用方法,當然,是常用的幾種使用方法。讀者能夠讀懂代碼,清楚語法的使用格式,並完成簡單設計即可,同時在上一部分的基礎上,可以在工具軟件上對自己的代碼進行編譯和仿真。
第11~14章是第三部分,是設計思想的一個提升,主要介紹綜合、狀態機和流水線等問題,這些都是在工程實踐中會直接面對的問題,但需要一定的代碼積累才能夠更好地理解,所以這部分的學習可以等到讀者已掌握前10章內容後再開始。
第15~17章是第四部分,這是一個靈活的部分,每個範例都配有代碼說明,既可以供教師在授課的過程中選用部分代碼配合語法講解,也可以供讀者自學時參考調試。為方便選取,對代碼的難度做了簡單分類。
練習會出現在大多數語法的章節後,並給出參考答案,在學習完語法後及時完成練習,會有效地加深理解和記憶。
對於部分重要的章節,練習所起到的作用也不足以支持對語法的掌握,所以額外配備了10個實驗,可以供教師選取。若是自學,推薦在第4章後完成實驗1,在第6章後完成實驗2,在第7章後完成實驗3,在第9章後完成實驗4,在第10章後完成實驗5,在第13章後完成實驗6,在第14章後完成實驗7,在第15章後完成實驗8~10。
全書配有PPT,可供課堂授課時選用(掃描前言下方二維碼下載)。在重點環節還錄制了視頻,做了精煉的講解,可以作為輔助教學資源在課後學習(掃描書中二維碼可以觀看)。
為了更好地幫助讀者掌握Verilog HDL,作者開設了交流互助群(QQ: 684948434),有時困擾初學者幾天的疑惑,在精通者眼中只用幾句話便可說破,希望讀者能夠借助群內的交流更好地使用本書,更快地掌握Verilog HDL設計。
本書第1~14章和習題部分由哈爾濱理工大學黃海編寫,第15~17章和實驗部分由哈爾濱理工大學於斌編寫。書中的代碼都經過了編譯和仿真,力求準確,但錯漏之處難以避免,敬請廣大讀者批評指正。讀者可通過電子郵件
tupwenyi@163.com與我們交流。
作者
2021年4月
原理篇
1章入門簡介及環境準備
1.1Verilog簡介
1.1.1Verilog的作用
1.1.2Verilog的發展
1.1.3Verilog的使用
1.1.4Verilog的結構
1.2準備好工作環境
1.2.1仿真軟件的準備
1.2.2代碼編輯軟件的準備
1.2.3其他工具介紹
1.3如何使用本書
2章模塊結構與門級建模
2.1Verilog模塊的基本結構
2.2語法介紹及示例
2.2.1模塊定義
2.2.2端口聲明
2.2.3內部資源聲明
2.2.4功能描述
2.3門級補充說明
練習題
3章模塊的實例化與層次化建模
3.1模塊的實例化
3.1.1實例化示例及語法
3.1.2按順序連接方式
3.1.3按名稱連接方式
3.2層次化建模
3.2.1自頂向下的設計
3.2.2層次化名稱
3.2.3層次化建模實例
練習題
4章使用仿真軟件驗證設計
4.1仿真前的準備
4.2完整的仿真流程
4.2.1建立工程
4.2.2添加文件
4.2.3編譯與調試
4.2.4啟動仿真
4.2.5觀察結果
練習題
5章RTL建模語法——assign
5.1assign語句
5.2作數
5.2.1數值
5.2.2參數
5.3按位作符
練習題
6章作符與優先級
6.1作符
6.1.1算術作符
6.1.2邏輯作符
6.1.3關係作符
6.1.4等式作符
6.1.5移位作符
6.1.6拼接作符
6.1.7縮減作符
6.1.8條件作符
6.2作符優先級
練習題
7章RTL建模語法——always
7.1always語句
7.1.1使用示例
7.1.2always語法介紹
7.2順序塊與並行塊
7.3if語句
7.4case語句
練習題
8章賦值語句與循環語句
8.1賦值語句
8.1.1阻塞賦值語句
8.1.2非阻塞賦值語句
8.1.3兩種賦值語句對比
8.2initial結構
8.3循環語句
8.3.1while循環
8.3.2for循環
8.3.3repeat循環
8.3.4forever循環
練習題
9章任務與函數的使用
9.1任務
9.2函數
9.3常見的系統任務和系統函數
9.3.1顯示輸出任務
9.3.2仿真控制任務$s和$finish
9.3.3隨機函數
9.3.4文件控制任務
9.3.5存儲器讀取任務
練習題
10章測試模塊的編寫
10.1測試模塊的結構
10.2編譯指令
10.2.1`define
……
11章 綜合的概念及相關
12章 摩爾形狀態機
13章 米利行狀態機
14章 時序相關問題
15章 代碼範例—基礎篇
16章 代碼範例—提高篇
17章 代碼範例—高級篇
實驗篇
習題答案
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。