出版時間:2008-6 出版社:北京航空航天大學(xué)出版社 作者:夏宇聞 頁數(shù):477
Tag標(biāo)簽:無
前言
數(shù)字信號處理(DSP)系統(tǒng)的研究人員一直在努力尋找各種優(yōu)化的算法來解決相關(guān)的信號處理問題。當(dāng)他們產(chǎn)生了比較理想的算法思路后,就在計算機上用C語言或其他語言程序來驗證該算法,并不斷修改以期完善,然后與別的算法作性能比較。在現(xiàn)代通信和計算機系統(tǒng)中,對于DSP算法評價最重要的指標(biāo)是看它能否滿足工程上的需要。而許多工程上的需要都有實時響應(yīng)的要求,也就是所設(shè)計的數(shù)字信號處理(DSP)系統(tǒng)必須在限定的時間內(nèi),如在幾個毫秒(ms)甚至于幾個微秒(μs)內(nèi),對所輸入的大量數(shù)據(jù)完成相當(dāng)復(fù)雜的運算,并輸出處理結(jié)果。這時如果僅僅使用通用的微處理器,即使是專用于信號處理的微處理器,往往也無法滿足實時響應(yīng)的要求。因此,不得不設(shè)計專用的高速硬線邏輯來完成這樣的運算。設(shè)計這樣的有苛刻實時要求的、復(fù)雜的高速硬線運算邏輯是一件很有挑戰(zhàn)性的工作,即使有了好的算法而沒有好的設(shè)計工具和方法也很難完成?! 〗?0年來,我國在復(fù)雜數(shù)字電路設(shè)計技術(shù)領(lǐng)域與國外的差距越來越大。作為一名在大學(xué)講授專用數(shù)字電路與系統(tǒng)設(shè)計課程的老師深深感到責(zé)任的重大。我個人認(rèn)為,我國在這一技術(shù)領(lǐng)域的落后與大學(xué)的課程設(shè)置和教學(xué)條件有關(guān)。因為我們沒有及時把國外最先進(jìn)的設(shè)計方法和技術(shù)介紹給學(xué)生,也沒有給他們創(chuàng)造實踐的機會。1995年我受學(xué)校的委托,籌建世行貸款的電路設(shè)計自動化(EDA)實驗室。通過13年的摸索、實踐,逐步掌握了利用VerilogHDL設(shè)計復(fù)雜數(shù)字電路的仿真和綜合技術(shù)。在此期間為航天部等有關(guān)單位設(shè)計了衛(wèi)星信道加密用的復(fù)雜數(shù)字電路,提供給他們經(jīng)前后仿真驗證的VerilogHDL源代碼,得到很高的評價。在其后的幾年中又為該單位設(shè)計了衛(wèi)星下行信道RS(255,223)編碼/解碼電路和衛(wèi)星上行信道BCH(64,56)編碼/解碼電路,這幾個項目已先后通過有關(guān)單位的驗收。1999年到2000年期間,又成功地設(shè)計了用于小波(Wavelet)圖像壓縮/解壓縮的小波卷積器和改進(jìn)的零修剪樹算法(即SPIHT算法)的RTL級VerilogHDL模型。不但成功地對該模型進(jìn)行了仿真和綜合,而且制成的可重新配置硬線邏輯(采用ALTERAFLEX10K系列CPLD/10/30/50各一片)的PCI線路板,能完成約2000條C語句程序才能完成的圖像/解壓縮算法。運算結(jié)果與軟件完成的完全一致,而且速度比用微型計算機快得多。2003年由我協(xié)助指導(dǎo)的JPEG2000算法硬線邏輯設(shè)計,在清華同行的努力下完成了FPGA驗證后并成功地投片,該芯片目前已應(yīng)用于實時監(jiān)控系統(tǒng)。近年來我?guī)ьI(lǐng)的研究生分別為日本某公司、香港科技大學(xué)電子系、革新科技公司和神州龍芯集成電路設(shè)計公司完成多項設(shè)計,其中包括SATA接口、AMBA總線接口、LED控制器和USB控制器等在內(nèi)的多項IP設(shè)計,取得了良好的社會效益和聲譽。2006年秋,正式受聘于神州龍芯集成電路設(shè)計公司擔(dān)任技術(shù)顧問,為中國的龍芯二號等IC事業(yè)提供必要的技術(shù)支持?! ”緯窃?998年北京航空航天大學(xué)出版社出版的《復(fù)雜數(shù)字電路與系統(tǒng)的VerilogHDL設(shè)計技術(shù)》和2003年《Verilog數(shù)字系統(tǒng)設(shè)計教程》基礎(chǔ)上修訂的,是一本既有理論又有實踐的設(shè)計大全。由于教學(xué)、科研、技術(shù)資料翻譯和實驗室的各項工作很忙,只能利用零碎時間,一點一滴地把積累的教學(xué)經(jīng)驗和新收集到的材料補充輸入到計算機中,抽空加以整理。我們使用Verilog設(shè)計復(fù)雜數(shù)字邏輯電路雖然已經(jīng)有13年的時間,但仍舊在不斷地學(xué)習(xí)提高之中,書中難免存在疏忽、錯誤之處,敬請細(xì)心的讀者不吝指教。我之所以在原版基礎(chǔ)上把這本書再版,是想把原教材中一些不足的地方作一些必要的補充和修改,在大學(xué)生和研究生中加快Verilog設(shè)計技術(shù)的推廣,盡快培養(yǎng)一批掌握先進(jìn)設(shè)計技術(shù)的跨世紀(jì)的人才。期望本書能在這一過程中起到拋磚引玉的作用?! 』叵肫饋?,這本書實質(zhì)上是我們實驗室全體老師和同學(xué)們多年的勞動成果,其中在EDA實驗室工作過的歷屆研究生張琰、山崗、王靜璇、田玉文、馮文楠、楊柳、傅紅軍、龔劍、王書龍、胡瑛、楊雷、邢偉、管麗、劉曦、王進(jìn)磊、王煜華、蘇宇、張云帆、楊鑫、徐偉俊、邢小地、霍強、宋成偉、邢志成、李鵬、李琪、陳巖、趙宗民等都幫我做了許多工作,如部分素材的翻譯、整理、錄入和一些VerilogHDL模塊的設(shè)計修改和驗證?! ”敬卧侔媸窃诒緯?次印刷之后受北航出版社之托進(jìn)行的,趁此機會讓我衷心地感謝在編寫本書過程中所有給過我?guī)椭凸膭畹睦蠋熀屯瑢W(xué)們。 教學(xué)中使用的多媒體課件已在本書第3次印刷后交給出版社,有需要者可向北航出版社發(fā)行部索取,可以免費提供給有關(guān)教師指導(dǎo)教學(xué)和備課演示之用。
內(nèi)容概要
本書講述了自20世紀(jì)90年代開始在美國和其他先進(jìn)的工業(yè)化國家逐步推廣的利用硬件描述語言(Verilog HDL)建模、仿真和綜合的設(shè)計復(fù)雜數(shù)字邏輯電路與系統(tǒng)的方法和技術(shù)。書中內(nèi)容從算法和計算的基本概念出發(fā),講述如何由硬線邏輯電路來實現(xiàn)復(fù)雜數(shù)字邏輯系統(tǒng)的方法。全書共分4部分。第一部分共8章,即Verilog數(shù)字設(shè)計基礎(chǔ)篇,可作為本科生的入門教材。第二部分共10章,即設(shè)計和驗證篇,可作為本科高年級學(xué)生或研究生學(xué)習(xí)數(shù)字系統(tǒng)設(shè)計的參考書。第三部分為實踐篇,共提供12個上機練習(xí)和實驗范例。第四部分是語法篇,即Verilog 硬件描述語言參考手冊;IEEE Verilog13642001標(biāo)準(zhǔn)簡介,以反映Verilog語法的最新變化,可供讀者學(xué)習(xí)、查詢之用。 本書的教學(xué)方式以每2學(xué)時講授一章為宜,每次課后需要花10 h復(fù)習(xí)思考。完成10章學(xué)習(xí)后,就可以開始做上機練習(xí),由簡單到復(fù)雜,由典型到一般,循序漸進(jìn)地學(xué)習(xí)Verilog HDL基礎(chǔ)知識。按照書上的步驟,可以使大學(xué)電子類及計算機工程類本科及研究生,以及相關(guān)領(lǐng)域的設(shè)計工程人員在半年內(nèi)掌握Verilog HDL設(shè)計技術(shù)。 本書可作為電子工程類、自動控制類、計算機類的大學(xué)本科高年級及研究生教學(xué)用書,亦可供其他工程人員自學(xué)與參考。
作者簡介
夏宇聞,北京航空航天大學(xué)EDA實驗室教授。
書籍目錄
第一部分 Verilog數(shù)字設(shè)計基礎(chǔ) 第1章 Verilog的基本知識 1.1 硬件描述語言HDL 1.2 Verilog HDL的歷史 1.2.1 什么是Verilog HDL 1.2.2 Verilog HDL的產(chǎn)生及發(fā)展 1.3 Verilog HDL和 VHDL的比較 1.4 Verilog的應(yīng)用情況和適用的設(shè)計 1.5 采用Verilog HDL設(shè)計復(fù)雜數(shù)字電路的優(yōu)點 1.5.1 傳統(tǒng)設(shè)計方法——電路原理圖輸入法 1.5.2 Verilog HDL設(shè)計法與傳統(tǒng)的電路原理圖輸入法的比較 1.5.3 Verilog的標(biāo)準(zhǔn)化與軟核的重用 1.5.4 軟核、固核和硬核的概念及其重用 1.6 采用硬件描述語言(Verilog HDL)的設(shè)計流程簡介 1.6.1 自頂向下(Top_Down)設(shè)計的基本概念 1.6.2 層次管理的基本概念 1.6.3 具體模塊的設(shè)計編譯和仿真的過程 1.6.4 具體工藝器件的優(yōu)化、映像和布局布線 小結(jié) 思考題 第2章 Verilog語法的基本概念 概述 2.1 Verilog模塊的基本概念 2.2 Verilog用于模塊的測試 小結(jié) 思考題 第3章 模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運算符號 概述 3.1 模塊的結(jié)構(gòu) 3.1.1 模塊的端口定義 3.1.2 模塊內(nèi)容 3.1.3 理解要點 3.1.4 要點總結(jié) 3.2 數(shù)據(jù)類型及其常量和變量 3.2.1 常量 3.2.2 變量 3.3 運算符及表達(dá)式 3.3.1 基本的算術(shù)運算符 3.3.2 位運算符 小結(jié) 思考題 第4章 運算符、賦值語句和結(jié)構(gòu)說明語句 概述 4.1 邏輯運算符 4.2 關(guān)系運算符 4.3 等式運算符 4.4 移位運算符 4.5 位拼接運算符 4.6 縮減運算符 4.7 優(yōu)先級別 4.8 關(guān) 鍵 詞 4.9 賦值語句和塊語句 4.9.1 賦值語句 4.9.2 塊語句 小結(jié) 思考題 第5章 條件語句、循環(huán)語句、塊語句與生成語句 概述 5.1 條件語句(if_else語句) 5.2 case語句 5.3 條件語句的語法 5.4 多路分支語句 5.5 循環(huán)語句 5.5.1 forever語句 5.5.2 repeat語句 5.5.3 while語句 5.5.4 for語句 5.6 順序塊和并行塊 5.6.1 塊語句的類型 5.6.2 塊語句的特點 5.7 生成塊 5.7.1 循環(huán)生成語句 5.7.2 條件生成語句 5.7.3 case生成語句 5.8舉例 5.8.1 四選一多路選擇器 5.8.2 四位計數(shù)器 小結(jié) 思考題 第6章 結(jié)構(gòu)語句、系統(tǒng)任務(wù)、函數(shù)語句和顯示系統(tǒng)任務(wù) 概述 6.1 結(jié)構(gòu)說明語句 6.1.1 initial語句 6.1.2 always語句 6.2 task和function說明語句 6.2.1 task和function說明語句的不同點 6.2.2 task說明語句 6.2.3 function說明語句 6.2.4 函數(shù)的使用舉例 6.2.5 自動(遞歸)函數(shù) 6.2.6 常量函數(shù) 6.2.7 帶符號函數(shù) 6.3 關(guān)于使用任務(wù)和函數(shù)的小結(jié) 6.4 常用的系統(tǒng)任務(wù) 6.4.1 $display和$write任務(wù) 6.4.2 文件輸出 6.4.3 顯示層次 6.4.4 選通顯示 6.4.5 值變轉(zhuǎn)儲文件 6.5 其他系統(tǒng)函數(shù)和任務(wù) 小結(jié) 思考題 第7章 調(diào)試用系統(tǒng)任務(wù)和常用編譯預(yù)處理語句 概述 7.1 系統(tǒng)任務(wù) $monitor 7.2 時間度量系統(tǒng)函數(shù)$time 7.3 系統(tǒng)任務(wù)$finish 7.4 系統(tǒng)任務(wù)$stop 7.5 系統(tǒng)任務(wù)$readmemb和$readmemh 7.6 系統(tǒng)任務(wù) $random 7.7 編譯預(yù)處理 7.7.1 宏定義?define 7.7.2 文件包含"處理?include 7.7.3 時間尺度?timescale 7.7.4 條件編譯命令?ifdef、?else、?endif 7.7.5 條件執(zhí)行 小結(jié) 思考題 第8章 語法概念總復(fù)習(xí)練習(xí) 概述 小結(jié)第二部分 設(shè)計和驗證部分 第9章 Verilog HDL模型的不同抽象級別 概述 9.1 門級結(jié)構(gòu)描述 9.1.1 與非門、或門和反向器及其說明語法 9.1.2 用門級結(jié)構(gòu)描述D觸發(fā)器 9.1.3 由已經(jīng)設(shè)計成的模塊構(gòu)成更高一層的模塊 9.2 Verilog HDL的行為描述建模 9.2.1 僅用于產(chǎn)生仿真測試信號的Verilog HDL行為描述建模 9.2.2 Verilog HDL建模在TopDown設(shè)計中的作用和行為建模的可綜合性問題 9.3 用戶定義的原語 小結(jié) 思考題 第10章 如何編寫和驗證簡單的純組合邏輯模塊 概述 10.1 加法器 10.2 乘法器 10.3 比較器 10.4 多路器 10.5 總線和總線操作 10.6 流水線 小結(jié) 思考題 第11章 復(fù)雜數(shù)字系統(tǒng)的構(gòu)成 概述 11.1 運算部件和數(shù)據(jù)流動的控制邏輯 11.1.1 數(shù)字邏輯電路的種類 11.1.2 數(shù)字邏輯電路的構(gòu)成 11.2 數(shù)據(jù)在寄存器中的暫時保存 11.3 數(shù)據(jù)流動的控制 11.4 在Verilog HDL設(shè)計中啟用同步時序邏輯 11.5 數(shù)據(jù)接口的同步方法 小結(jié) 思考題 第12章 同步狀態(tài)機的原理、結(jié)構(gòu)和設(shè)計 概述 12.1 狀態(tài)機的結(jié)構(gòu) 12.2 Mealy狀態(tài)機和Moore狀態(tài)機的不同點 12.3 如何用Verilog來描述可綜合的狀態(tài)機 12.3.1 用可綜合Verilog模塊設(shè)計狀態(tài)機的典型辦法 12.3.2 用可綜合的Verilog模塊設(shè)計、用獨熱碼表示狀態(tài)的狀態(tài)機 12.3.3 用可綜合的Verilog模塊設(shè)計、由輸出指定的碼表示狀態(tài)的狀態(tài)機 12.3.4 用可綜合的Verilog模塊設(shè)計復(fù)雜的多輸出狀態(tài)機時常用的方法 小結(jié) 思考題 第13章 設(shè)計可綜合的狀態(tài)機的指導(dǎo)原則 概述 13.1 用Verilog HDL語言設(shè)計可綜合的狀態(tài)機的指導(dǎo)原則 13.2 典型的狀態(tài)機實例 13.3 綜合的一般原則 13.4 語言指導(dǎo)原則 13.5 可綜合風(fēng)格的Verilog HDL模塊實例 13.5.1 組合邏輯電路設(shè)計實例 13.5.2 時序邏輯電路設(shè)計實例 13.6 狀態(tài)機的置位與復(fù)位 13.6.1 狀態(tài)機的異步置位與復(fù)位 13.6.2 狀態(tài)機的同步置位與復(fù)位 小結(jié) 思考題 第14章 深入理解阻塞和非阻塞賦值的不同 概述 14.1 阻塞和非阻塞賦值的異同 14.1.1 阻塞賦值 14.1.2 非阻塞賦值 14.2 Verilog模塊編程要點 14.3 Verilog的層次化事件隊列 14.4 自觸發(fā)always塊 14.5 移位寄存器模型 14.6 阻塞賦值及一些簡單的例子 14.7 時序反饋移位寄存器建?! ?4.8 組合邏輯建模時應(yīng)使用阻塞賦值 14.9 時序和組合的混合邏輯——使用非阻塞賦值 14.10 其他阻塞和非阻塞混合使用的原則 14.11 對同一變量進(jìn)行多次賦值 14.12 常見的對于非阻塞賦值的誤解 小結(jié) 思考題 第15章 較復(fù)雜時序邏輯電路設(shè)計實踐 概述 小結(jié) 思考題 第16章 復(fù)雜時序邏輯電路設(shè)計實踐 概述 16.1 二線制I2C CMOS串行EEPROM的簡單介紹 16.2 I2C總線特征介紹 16.3 二線制I2C CMOS串行EEPROM的讀寫操作 16.4 EEPROM的Verilog HDL程序 總結(jié) 思考題 第17章 簡化的 RISC_CPU設(shè)計 概述 17.1 課題的來由和設(shè)計環(huán)境介紹 17.2 什么是CPU 17.3 RISC_CPU結(jié)構(gòu) 17.3.1 時鐘發(fā)生器 17.3.2 指令寄存器 17.3.3 累加器 17.3.4 算術(shù)運算器 17.3.5 數(shù)據(jù)控制器 17.3.6 地址多路器 17.3.7 程序計數(shù)器 17.3.8 狀態(tài)控制器 17.3.9 外圍模塊 17.4 RISC_CPU 操作和時序 17.4.1 系統(tǒng)的復(fù)位和啟動操作 17.4.2 總線讀操作 17.4.3 總線寫操作 17.5 RISC_CPU尋址方式和指令系統(tǒng) 17.6 RISC_CPU模塊的調(diào)試 17.6.1 RISC_CPU模塊的前仿真 17.6.2 RISC_CPU模塊的綜合 17.6.3 RISC_CPU模塊的優(yōu)化和布局布線 小結(jié) 思考題 第18章 虛擬器件/接口、IP和基于平臺的設(shè)計方法及其在大型數(shù)字系統(tǒng)設(shè)計中的作用 概述 18.1 軟核和硬核、宏單元、虛擬器件、設(shè)計和驗證IP以及基于平臺的設(shè)計方法 18.2 設(shè)計和驗證IP供應(yīng)商 18.3 虛擬模塊的設(shè)計 18.4 虛擬接口模塊的實例 小結(jié) 思考題第三部分 設(shè)計示范與實驗練習(xí) 概述 練習(xí)一 簡單的組合邏輯設(shè)計 練習(xí)二 簡單分頻時序邏輯電路的設(shè)計 練習(xí)三 利用條件語句實現(xiàn)計數(shù)分頻時序電路 練習(xí)四 阻塞賦值與非阻塞賦值的區(qū)別 練習(xí)五 用always塊實現(xiàn)較復(fù)雜的組合邏輯電路 練習(xí)六 在Verilog HDL中使用函數(shù) 練習(xí)七 在Verilog HDL中使用任務(wù)(task) 練習(xí)八 利用有限狀態(tài)機進(jìn)行時序邏輯的設(shè)計 練習(xí)九 利用狀態(tài)機實現(xiàn)比較復(fù)雜的接口設(shè)計 練習(xí)十 通過模塊實例調(diào)用實現(xiàn)大型系統(tǒng)的設(shè)計 練習(xí)十一 簡單卷積器的設(shè)計 附錄一 A/D轉(zhuǎn)換器的Verilog HDL模型機所需要的技術(shù)參數(shù) 附錄二 2K*8位 異步 CMOS 靜態(tài)RAM HM65162模型 練習(xí)十二 利用SRAM設(shè)計一個FIFO第四部分 語法篇 語法篇1 關(guān)于Verilog HDL的說明 一、 關(guān)于 IEEE 1364標(biāo)準(zhǔn) 二、 Verilog簡介 三、 語法總結(jié) 四、 編寫Verilog HDL源代碼的標(biāo)準(zhǔn) 五、 設(shè)計流程 語法篇2 Verilog硬件描述語言參考手冊 一、 Verilog HDL語句與常用標(biāo)志符(按字母順序排列) 二、 系統(tǒng)任務(wù)和函數(shù)(System task and function) 三、 常用系統(tǒng)任務(wù)和函數(shù)的詳細(xì)使用說明 四、 Command Line Options 命令行的可選項 五、 IEEE Verilog 13642001標(biāo)準(zhǔn)簡介參考文獻(xiàn)
章節(jié)摘錄
第一部分 VerilOG數(shù)字設(shè)計基礎(chǔ) 數(shù)字通信和自動化控制等領(lǐng)域的高速發(fā)展和世界范圍內(nèi)的高技術(shù)競爭對數(shù)字系統(tǒng)提出了越來越高的要求,特別是需要設(shè)計具有實時信號處理能力的專用集成電路,要求把包括多個CPU內(nèi)核在內(nèi)的整個電子系統(tǒng)綜合到一個芯片(SOC)上。設(shè)計并驗證這樣復(fù)雜的電路及系統(tǒng)已不再是簡單的個人勞動,而需要綜合許多專家的經(jīng)驗和知識才能夠完成。近10年來電路制造工藝技術(shù)進(jìn)步非常迅速,目前國際上60 nm的制造工藝,已達(dá)到工業(yè)化生產(chǎn)的規(guī)模,而電路設(shè)計能力遠(yuǎn)遠(yuǎn)落后于制造技術(shù)的進(jìn)步。在數(shù)字邏輯設(shè)計領(lǐng)域,迫切需要一種共同的工業(yè)標(biāo)準(zhǔn)來統(tǒng)一對數(shù)字邏輯電路及系統(tǒng)的描述,這樣就能把系統(tǒng)設(shè)計工作分解為邏輯設(shè)計(前端)、電路實現(xiàn)(后端)和驗證三個互相獨立而又相關(guān)的部分。由于邏輯設(shè)計的相對獨立性就可以把專家們設(shè)計的各種常用數(shù)字邏輯電路和組件(如FFT算法、DCT算法部件,DDRAM讀寫控制器等)建成宏單元(megcell)或軟(固/硬)核,也稱作Soft(firm/hard)Core,即IP(知識產(chǎn)權(quán)內(nèi)核的英文縮寫)庫供設(shè)計者引用,設(shè)計者可以直接利用它們的行為模型設(shè)計并驗證其他電路,以減少重復(fù)勞動,提高工作效率。電路的實現(xiàn)則可借助于綜合工具和IP的重復(fù)利用,以及布局布線工具(與具體工藝技術(shù)有關(guān))自動地完成?! erilog HDL和VHDL這兩種工業(yè)標(biāo)準(zhǔn)的產(chǎn)生順應(yīng)了歷史的潮流,因而得到了迅速的發(fā)展。美國、日本等國由于高級設(shè)計工程師人力資源成本遠(yuǎn)高于中國,所以,近年來把許多設(shè)計工作轉(zhuǎn)移到中國大陸,以降低設(shè)計成本。作為新世紀(jì)的中國大學(xué)生和年輕的電子工程師應(yīng)該盡早掌握這種新的設(shè)計方法,使我國在復(fù)雜數(shù)字電路及系統(tǒng)的設(shè)計競爭中逐步縮小與美國等先進(jìn)的工業(yè)發(fā)達(dá)國家的差距?! 〉?章 Verilog的基本知識 1.1 硬件描述語言HDL 硬件描述語言(HDL,hardware description language)是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。數(shù)字電路系統(tǒng)的設(shè)計者利用這種語言可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后利用電子設(shè)計自動化(以下簡稱為EDA)工具逐層進(jìn)行仿真驗證,再把其中需要變?yōu)榫唧w物理電路的模塊組合經(jīng)由自動綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。接下去再用專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)自動布局布線工具把網(wǎng)表轉(zhuǎn)換為具體電路布線結(jié)構(gòu)的實現(xiàn)。在制成物理器件之前,還可以用Verilog的門級模型(原語元件或UDP)來代替具體基本元件。因其邏輯功能和延時特性與真實的物理元件完全一致,所以在仿真工具的支持下能驗證復(fù)雜數(shù)字系統(tǒng)物理結(jié)構(gòu)的正確性,使投片的成功率達(dá)到l00%。目前,這種稱為高層次設(shè)計(high—level—design)的方法已被廣泛采用。據(jù)統(tǒng)計,目前在美國硅谷約有90%以上的ASIC和FPGA已采用Verilog硬件描述語言方法進(jìn)行設(shè)計?! ∮布枋稣Z言的發(fā)展至今已有近30年的歷史,并成功地應(yīng)用于設(shè)計的各個階段:建模、仿真、驗證和綜合等。到20世紀(jì)80年代,已出現(xiàn)了上百種硬件描述語言,并對設(shè)計自動化曾起到了極大的促進(jìn)和推動作用。但是,這些語言一般各自面向特定的設(shè)計領(lǐng)域與層次,而且眾多的語言使用戶無所適從。因此急需一種面向設(shè)計的多領(lǐng)域、多層次、并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語言。進(jìn)入20世紀(jì)80年代后期,硬件描述語言向著標(biāo)準(zhǔn)化的方向發(fā)展。最終,VHDL和Verilog HDL語言適應(yīng)了這種趨勢的要求,先后成為IEEE標(biāo)準(zhǔn)。把硬件描述語言用于自動綜合還只有10多年的歷史。最近l0多年來,用綜合工具把可綜合風(fēng)格的HDL模塊自動轉(zhuǎn)換為具體電路發(fā)展非常迅速,大大地提高了復(fù)雜數(shù)字系統(tǒng)的設(shè)計生產(chǎn)率。在美國和日本等先進(jìn)電子工業(yè)國,Verilog語言已成為設(shè)計數(shù)字系統(tǒng)的基礎(chǔ)。本書第一部分將通過具體例子,由淺入深地幫助同學(xué)們學(xué)習(xí): ?。?)Verilog的基本語法; ?。?)簡單的可綜合Verilog模塊與邏輯電路的對應(yīng)關(guān)系; ?。?)簡單的Verilog測試模塊和它的意義。 書中第二部分將通過較復(fù)雜的設(shè)計實例,幫助同學(xué)們掌握: (1)如何編寫復(fù)雜的多層次的可綜合風(fēng)格的Verilog HDL模塊; ?。?)如何用可綜合的Verilog模塊構(gòu)成一個可靠的復(fù)雜IP軟核和固核模塊; ?。?)如何借助于Verilog語言,并利用已有的虛擬行為模塊對所設(shè)計的系統(tǒng)模塊(由可綜合的自主和商業(yè)IP模塊組成)進(jìn)行全面可靠的測試和驗證(包括軟/硬件協(xié)同測試的基本概念)?! ?.2 Verilog HDL的歷史 1.2.1什么是Verilog HDL Verilog HDL是硬件描述語言的一種,用于數(shù)字電子系統(tǒng)設(shè)計。該語言允許設(shè)計者進(jìn)行各種級別的邏輯設(shè)計,進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、邏輯綜合。它是目前應(yīng)用最廣泛的一種硬件描述語言。據(jù)有關(guān)文獻(xiàn)報道,目前在美國使用Verilog HDL進(jìn)行設(shè)計的工程師大約有l(wèi)0多萬人,全美國有200多所大學(xué)教授用Veril09硬件描述語言的設(shè)計方法。在我國臺灣地區(qū)幾乎所有著名大學(xué)的電子和計算機工程系都講授Verilog有關(guān)的課程?! ?.2.2 Verilog HDL的產(chǎn)生及發(fā)展 Verilog HDL是在1983年由GDA(GateWay Design Automation)公司的Phil Moorby首創(chuàng)的。Phil Moorby后來成為Veril09—XL的主要設(shè)計者和Cadence公司(Cadence DesignSystem)的第一個合伙人。在1984至1985年,Moorby設(shè)計出了第一個名為Veril09—XL的仿真器;l986年,他對Verilog HDL的發(fā)展又作出了另一個巨大貢獻(xiàn),即提出了用于快速門級仿真的XL算法?! ‰S著VerilOG—XL算法的成功,Verilog HDL語言得到迅速發(fā)展。1989年,Cadence公司收購了GDA公司,Verilog HDL語言成為Cadence公司的私有財產(chǎn)。l990年,Cadence公司決定公開Verilog HDL語言,于是成立了0VI(Open Verilog International)組織來負(fù)責(zé)促進(jìn)Verilog HDL語言的發(fā)展?;赩erilog HDL的優(yōu)越性,IEEE于1995年制定了VerilogHDL的IEEE標(biāo)準(zhǔn),即Verilog HDLl364—1995;2001年發(fā)布了Verilog HDLl364—2001標(biāo)準(zhǔn);2005年SystemVerilog IEEE l800—2005標(biāo)準(zhǔn)的公布,更使得Veril09語言在綜合、仿真驗證和模塊的重用等性能方面都有大幅度的提高?! D1.1展示了Veril09的發(fā)展歷史和未來?! ?.3 Verilog HDL和VHDL的比較 Verilog HDL和VHDL都是用于邏輯設(shè)計的硬件描述語言,并且都已成為IEEE標(biāo)準(zhǔn)。VHDL是在1987年成為IEEE標(biāo)準(zhǔn),Verilog HDL則在1995年才正式成為IEEE標(biāo)準(zhǔn)。之所以VHDL比Verilog HDL早成為IEEE標(biāo)準(zhǔn),這是因為VHDL是由美國軍方組織開發(fā)的,而Verilog HDL則是從一個普通的民間公司的私有財產(chǎn)轉(zhuǎn)化而來,基于Verilog HDL的優(yōu)越性,才成為IEEE標(biāo)準(zhǔn),因而有更強的生命力。 VHDL其英文全名為VHSIC Hardware Description Language,而VHSIC則是VeryHigh Speed Integerated Circuit的縮寫詞,意為甚高速集成電路,故VHDL其準(zhǔn)確的中文譯名為甚高速集成電路的硬件描述語言?! erilog HDL和VHDL作為描述硬件電路設(shè)計的語言,其共同的特點在于:能形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計中層次與范圍的描述;可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;具有電路仿真與驗證機制以保證設(shè)計的正確性;支持電路描述由高層到低層的綜合轉(zhuǎn)換;硬件描述與實現(xiàn)工藝無關(guān)(有關(guān)工藝參數(shù)可通過語言提供的屬性包括進(jìn)去);便于文檔管理;易于理解和設(shè)計重用?! 〉荲erilog HDL和VHDL又各有其自己的特點。由于Verilog HDL早在1983年就已推出,至今已有20多年的應(yīng)用歷史,因而Verilog HDL擁有更廣泛的設(shè)計群體,成熟的資源也遠(yuǎn)比VHDL豐富。與VHDL相比Verilog HDL的最大優(yōu)點是:它是一種非常容易掌握的硬件描述語言,只要有C語言的編程基礎(chǔ),通過20學(xué)時的學(xué)習(xí),再加上一段實際操作,一般同學(xué)可在2~3個月內(nèi)掌握這種設(shè)計方法的基本技術(shù)。而掌握VHDL設(shè)計技術(shù)就比較困難。這是因為VHDL不很直觀,需要有Ada編程基礎(chǔ),一般認(rèn)為至少需要半年以上的專業(yè)培訓(xùn),才能掌握VHDL的基本設(shè)計技術(shù)。2005年,SystemVerilog IEEEl800—2005標(biāo)準(zhǔn)公布以后,集成電路設(shè)計界普遍認(rèn)為Verilog HDL將在10年內(nèi)全面取代VHDL成為ASIC設(shè)計行業(yè)包攬設(shè)計、測試和驗證功能的的唯一語言。圖1.2所示的是Verilog HDL和VHDL建模能力的比較圖,供讀者參考。-2005標(biāo)準(zhǔn),不但使Veril09的可綜合性能和系統(tǒng)仿真性能方面有大幅度的提高,而且在IP的重用方面(包括設(shè)計和驗證模塊的重用)也有重大的突破。因此,Verilog HDL不但作為學(xué)習(xí)HDL設(shè)計方法的入門和基礎(chǔ)是比較合適的,而且對于ASIC設(shè)計專業(yè)人員而言,也是必須掌握的基本技術(shù)。學(xué)習(xí)掌握Verilog HDL建模、仿真、綜合、重用和驗證技術(shù)不僅可以使同學(xué)們對數(shù)字電路設(shè)計技術(shù)有更進(jìn)一步的了解,而且可以為以后學(xué)習(xí)高級的行為綜合、物理綜合、IP設(shè)計和復(fù)雜系統(tǒng)設(shè)計和驗證打下堅實的基礎(chǔ)。 1.4 Verilog的應(yīng)用情況和適用的設(shè)計 近10多年以來,EDA界一直對在數(shù)字邏輯設(shè)計中究竟采用哪一硬件描述語言爭論不休。 近二三年來,美國、日本和我國臺灣地區(qū)電子設(shè)計界的情況已經(jīng)清楚地表明,在高層次數(shù)字系統(tǒng)設(shè)計領(lǐng)域,Verilog已經(jīng)取得壓倒性的優(yōu)勢;
編輯推薦
《普通高等教育"十一五"國家級規(guī)劃教材?北京高等教育精品教材?Verilog數(shù)字系統(tǒng)設(shè)計教程(第2版)》可作為電子工程類、自動控制類、計算機類的大學(xué)本科高年級及研究生教學(xué)用書,亦可供其他工程人員自學(xué)與參考。 《Verilog數(shù)字系統(tǒng)設(shè)計教程》是在1998年北京航空航天大學(xué)出版社出版的《復(fù)雜數(shù)字電路與系統(tǒng)的Verilog HDL設(shè)計技術(shù)》和2003年《Verilog數(shù)字系統(tǒng)設(shè)計教程》基礎(chǔ)上修訂的,是一本既有理論又有實踐的設(shè)計大全。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Verilog數(shù)字系統(tǒng)設(shè)計教程 PDF格式下載