視頻網(wǎng)址:
https://www.bilibili.com/video/BV1yf4y1R7gH?t=407
Verilog 的歷史
在傳統(tǒng)硬件電路的設(shè)計(jì)方法中,當(dāng)設(shè)計(jì)工程師需要設(shè)計(jì)一個(gè)新的硬件窄俏、數(shù)字電路或數(shù)字邏輯系統(tǒng)時(shí)涕刚,需要為此設(shè)計(jì)并畫出一張線路圖末患,隨后在 CAE(計(jì)算機(jī)輔助工程分析)工作站上進(jìn)行設(shè)計(jì)伏恐。所設(shè)計(jì)的線路圖由線和符號(hào)組成咙咽,其中線代表了線路亿傅,符號(hào)代表了基本設(shè)計(jì)單元媒峡,其取自于工程師構(gòu)造此線路圖使用的零件符號(hào)庫(kù)。對(duì)于不同邏輯器件的設(shè)計(jì)葵擎,需要選擇對(duì)應(yīng)的符號(hào)庫(kù)谅阿,如當(dāng)設(shè)計(jì)工程師選擇的時(shí)標(biāo)準(zhǔn)邏輯器件(74 系列等)作為板級(jí)設(shè)計(jì)線路圖,那么此線路圖的符號(hào)則需要取自標(biāo)準(zhǔn)邏輯零件符號(hào)庫(kù);若設(shè)計(jì)工程師進(jìn)行了 ASIC 設(shè)計(jì)签餐,線路圖的符號(hào)就要取自 ASIC 庫(kù)專用的宏單元寓涨。
這就是傳統(tǒng)的原理圖設(shè)計(jì)方法碑幅,原理圖設(shè)計(jì)法存在著許多弊端捐顷,如當(dāng)設(shè)計(jì)者想要實(shí)現(xiàn)線路圖的邏輯優(yōu)化時(shí)玄柏,就需要利用 EDA 工具或者人工進(jìn)行布爾函數(shù)邏輯優(yōu)化鼻种。除此之外稍途,傳統(tǒng)原理圖設(shè)計(jì)還存在難以驗(yàn)證的缺點(diǎn)索绪,設(shè)計(jì)工程師想要驗(yàn)證設(shè)計(jì)斤贰,必須通過搭建硬件平臺(tái)(比如電路板)佑淀,為設(shè)計(jì)驗(yàn)證工作帶來了麻煩耗拓。
隨著人們對(duì)于科技的要求與期待越來越高拇颅,電子設(shè)計(jì)技術(shù)發(fā)展也越來越快,設(shè)計(jì)的集成度乔询、復(fù)雜程度也逐漸加深樟插,傳統(tǒng)的設(shè)計(jì)方法已經(jīng)無法滿足高級(jí)設(shè)計(jì)的需求,最終出現(xiàn)了借助先進(jìn) EDA 工具的一種描述語(yǔ)言設(shè)計(jì)方法竿刁,可以對(duì)數(shù)字電路和數(shù)字邏輯系統(tǒng)進(jìn)行形式化的描述黄锤,這種語(yǔ)言就是硬件描述語(yǔ)言。硬件描述語(yǔ)言食拜,英文全稱為 Hardware Description Language鸵熟,簡(jiǎn)稱 HDL,HDL 是一種用形式化方法來描述數(shù)字電路和數(shù)字邏輯系統(tǒng)的語(yǔ)言负甸。設(shè)計(jì)工程師可以使用這種語(yǔ)言來表述自己的設(shè)計(jì)思路流强,通過利用 EDA 工具進(jìn)行仿真、自動(dòng)綜合到門級(jí)電路呻待,最終在 ASIC 或 FPGA 實(shí)現(xiàn)其功能打月。
以 2 輸入的與門為例來對(duì)比原理圖設(shè)計(jì)方法與 HDL 設(shè)計(jì)方法之間的區(qū)別,在傳統(tǒng)的設(shè)計(jì)方法中設(shè)計(jì) 2 輸入與門可能需到標(biāo)準(zhǔn)器件庫(kù)中調(diào)用 74 系列的器件蚕捉,但在硬件描述語(yǔ)言中“&”就是一個(gè)與門的形式描述奏篙,“C = A & B”就是一個(gè) 2 輸入與門的描述。而“&”就代表了一個(gè)與門器件迫淹。硬件描述語(yǔ)言發(fā)展至今已有二十多年歷史秘通,當(dāng)今業(yè)界的標(biāo)準(zhǔn)中(IEEE 標(biāo)準(zhǔn))主要有 VHDL 和Verilog HDL 這兩種硬件描述語(yǔ)言。本書采用的是 VerilogHDL 硬件描述語(yǔ)言千绪,接下來著重對(duì)其發(fā)展的歷史及特點(diǎn)進(jìn)行介紹充易。
Verilog HDL 語(yǔ)言最初是在 1983 年由 Gateway Design Automation 公司為其模擬器產(chǎn)品開發(fā)的硬件建模語(yǔ)言,當(dāng)時(shí)這只是公司產(chǎn)品的專用語(yǔ)言荸型。隨著公司模擬、仿真器產(chǎn)品的廣泛使用,Verilog HDL 作為一種實(shí)用語(yǔ)言逐漸為眾多設(shè)計(jì)者所接受瑞妇。1990 年一次致力于增加語(yǔ)言普及性的活動(dòng)中稿静,Verilog HDL 語(yǔ)言被推向公眾領(lǐng)域從而被更多人熟知。
Open Verilog International(OVI)是促進(jìn) Verilog 發(fā)展的國(guó)際性組織辕狰。1992 年改备,OVI 決定致力于推廣 Verilog OVI 標(biāo)準(zhǔn)成為 IEEE 標(biāo)準(zhǔn)。這一推廣最后獲得成功蔓倍,Verilog 語(yǔ)言于 1995 年成為IEEE 標(biāo)準(zhǔn)悬钳,稱為 IEEE Std1364-1995。其完整標(biāo)準(zhǔn)在 Verilog 硬件描述語(yǔ)言參考手冊(cè)中有詳細(xì)描述偶翅。
Verilog HDL 語(yǔ)言具有許多優(yōu)點(diǎn)默勾,例如 Verilog HDL 語(yǔ)言提供了編程語(yǔ)言接口,通過該接口可以在模擬聚谁、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì)母剥,包括模擬的具體控制和運(yùn)行。 Verilog HDL 語(yǔ)言不僅定義了語(yǔ)法形导,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的模擬环疼、仿真語(yǔ)義。因此朵耕,用這種語(yǔ)言編寫的模型能夠使用 Verilog 仿真器進(jìn)行驗(yàn)證炫隶。Verilog HDL 提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解阎曹,但是 Verilog HDL 語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用等限,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然芬膝,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述望门。
綜合和仿真
綜合
Verilog 是硬件描述語(yǔ)言,顧名思義锰霜,就是用代碼的形式描述硬件的功能筹误,最終在硬件電路上實(shí)現(xiàn)該功能。在 Verilog 描述出硬件功能后需要使用綜合器對(duì) Verilog 代碼進(jìn)行解釋并將代碼轉(zhuǎn)化成實(shí)際的電路來表示癣缅,最終產(chǎn)生實(shí)際的電路厨剪,也被稱為網(wǎng)表。這種將 Verilog 代碼轉(zhuǎn)成網(wǎng)表的工具就是綜合器友存。
上圖左上角是一段 Verilog 代碼祷膳,該代碼實(shí)現(xiàn)了一個(gè)加法器的功能。在經(jīng)過綜合器解釋后該代碼被轉(zhuǎn)化成一個(gè)加法器電路屡立。QUARTUS直晨、ISE 和 VIVADO 等 FPGA 開發(fā)工具都是綜合器,而在集成電路設(shè)計(jì)領(lǐng)域常用的綜合器是 DC。
仿真
在 FPGA 設(shè)計(jì)的過程中勇皇,不可避免會(huì)出現(xiàn)各種 BUG罩句。如果在編寫好代碼、綜合成電路敛摘、燒寫到FPGA 后才發(fā)現(xiàn)問題门烂,此時(shí)再去定位問題就會(huì)非常地困難。而在綜合前兄淫,設(shè)計(jì)師可以在電腦里通過仿真軟件對(duì)代碼進(jìn)行仿真測(cè)試屯远,檢測(cè)出 BUG 并將其解決,最后再將程序燒寫進(jìn) FPGA捕虽。一般情況下可以認(rèn)為沒有經(jīng)過仿真驗(yàn)證的代碼慨丐,一定是存在 BUG 的。
為了模擬真實(shí)的情況薯鳍,需要編寫測(cè)試文件咖气。該文件也是用 Verilog 編寫的,其描述了仿真對(duì)象的輸入激勵(lì)情況挖滤。該激勵(lì)力求模仿最真實(shí)的情況崩溪,產(chǎn)生最接近的激勵(lì)信號(hào),將該信號(hào)的波形輸入給仿真對(duì)象斩松,查看仿真對(duì)象的輸出是否與預(yù)期一致伶唯。需要注意的是:在仿真過程中沒有將代碼轉(zhuǎn)成電路,仿真器只是對(duì)代碼進(jìn)行仿真驗(yàn)證惧盹。至于該代碼是否可轉(zhuǎn)成電路乳幸,仿真器并不關(guān)心。
由此可見钧椰,Verilog 的代碼不僅可以描述電路粹断,還可以用于測(cè)試。事實(shí)上嫡霞,Verilog 定義的語(yǔ)法非常之多瓶埋,但絕大部分都是為了仿真測(cè)試來使用的,只有少部分才是用于電路設(shè)計(jì)诊沪。