Verilog程序設(shè)計(jì)與EDA(二版) 課件 第1章 Verilog HDL的基本結(jié)構(gòu)與描述方式_第1頁
Verilog程序設(shè)計(jì)與EDA(二版) 課件 第1章 Verilog HDL的基本結(jié)構(gòu)與描述方式_第2頁
Verilog程序設(shè)計(jì)與EDA(二版) 課件 第1章 Verilog HDL的基本結(jié)構(gòu)與描述方式_第3頁
Verilog程序設(shè)計(jì)與EDA(二版) 課件 第1章 Verilog HDL的基本結(jié)構(gòu)與描述方式_第4頁
Verilog程序設(shè)計(jì)與EDA(二版) 課件 第1章 Verilog HDL的基本結(jié)構(gòu)與描述方式_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

0.1關(guān)于VerilogHDL

0.2關(guān)于EDA隨著科學(xué)技術(shù)的發(fā)展,硬件電路與系統(tǒng)的設(shè)計(jì)發(fā)生了新的變革,現(xiàn)代硬件電路與系統(tǒng)的設(shè)計(jì)蓬勃興起。依據(jù)先進(jìn)的設(shè)計(jì)思想,利用現(xiàn)代化的設(shè)計(jì)手段,使用可編程的新型器件來設(shè)計(jì)現(xiàn)代電路與系統(tǒng)已成為一種趨勢。先進(jìn)的設(shè)計(jì)思想是自上而下的設(shè)計(jì)思想,即先設(shè)計(jì)頂層、再設(shè)計(jì)底層。這種一氣呵成的設(shè)計(jì)思想只能借助于現(xiàn)代化的設(shè)計(jì)手段實(shí)現(xiàn)。即應(yīng)用計(jì)算機(jī)技術(shù)將硬件電路與系統(tǒng)設(shè)計(jì)要做的許多工作用軟件設(shè)計(jì)來完成,這就是電子設(shè)計(jì)自動化EDA,也就是硬件設(shè)計(jì)軟件化。要應(yīng)用計(jì)算機(jī)做到硬件設(shè)計(jì)軟件化,必須要有計(jì)算機(jī)和設(shè)計(jì)者都能識別的硬件描述語言HDL及其綜合、編譯、仿真、下載的EDA開發(fā)軟件??删幊痰男滦推骷菍?shí)現(xiàn)各種現(xiàn)代硬件電路與系統(tǒng)的載體、實(shí)體??删幊唐骷删幊踢壿嬈骷LD、復(fù)雜可編程邏輯器件CPLD、現(xiàn)場可編程門陣列FPGA、可編程模擬器件PAD、可編程模擬電路PAC、通用數(shù)字開關(guān)GDS、通用數(shù)字交叉GDX器件、可編程智能混合器件SmartFusion等??偠灾?,現(xiàn)代硬件電路與系統(tǒng)的最終實(shí)現(xiàn),不僅需要先進(jìn)的設(shè)計(jì)思想和理念,還需要現(xiàn)代化的設(shè)計(jì)手段——計(jì)算機(jī)平臺和硬件描述語言程序設(shè)計(jì)、可編程的新型器件和功能設(shè)計(jì)工具(EDA軟件開發(fā)工具)、連接計(jì)算機(jī)與可編程器件的下載接口JTAG和編程電纜。本書首先討論Verilog程序設(shè)計(jì),接著討論與EDA有關(guān)的可編程器件功能設(shè)計(jì)工具(軟件開發(fā)工具)應(yīng)用。0.1關(guān)于VerilogHDLVerilog是一種用于數(shù)字電路與系統(tǒng)設(shè)計(jì)的硬件描述語言,可以從算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次對數(shù)字系統(tǒng)建模。使用VerilogHDL,用戶能靈活地進(jìn)行各種級別的邏輯設(shè)計(jì),方便地進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時(shí)序分析和邏輯綜合。Verilog是1983年由GDA公司的PhilipR.Moorby為其模擬器產(chǎn)品開發(fā)的硬件建模語言,那時(shí)它只是一種專用語言。PhilipR.Moorby本人后來成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一合伙人。其間,他設(shè)計(jì)了第一個(gè)關(guān)于Verilog-XL的仿真器,并推出了用于快速門級仿真的XL算法。1989年,Cadence公司收購了GDA公司,Verilog歸Cadence公司所有。兩年后,該公司成立了OVI,決定致力于推廣VerilogOVI標(biāo)準(zhǔn),使其成為IEEE標(biāo)準(zhǔn)。這一努力最后獲得成功,Verilog語言于1995年成為IEEE標(biāo)準(zhǔn),稱為IEEEStd1364-1995。從此,VerilogHDL成為一種極具競爭力的用于數(shù)字電路與系統(tǒng)設(shè)計(jì)的硬件描述語言。通過不斷實(shí)踐,VerilogHDL又增加了Verilog-2001、Verilog-2005,使其使用更加方便。我國《集成電路/計(jì)算機(jī)硬件描述語言Verilog》(國家標(biāo)準(zhǔn)編號為GB/T18349—2001)于2001年10月1日已正式實(shí)施。VerilogHDL是一種簡潔清晰、功能強(qiáng)大、容易掌握、便于學(xué)習(xí)的硬件描述語言,只要有C語言的編程基礎(chǔ),在了解了VerilogHDL的基本結(jié)構(gòu)與描述方式、基本要素、基本句法等以后,再輔助上機(jī)操作,就能很快掌握VerilogHDL程序設(shè)計(jì)技術(shù)。0.2關(guān)于EDAEDA是電子設(shè)計(jì)自動化的縮寫,它是在20世紀(jì)80年代初從計(jì)算機(jī)輔助設(shè)計(jì)CAD、計(jì)算機(jī)輔助制造CAM、計(jì)算機(jī)輔助測試CAT和計(jì)算機(jī)輔助工程CAE的概念發(fā)展而來的??删幊唐骷恼Q生,使現(xiàn)代硬件電路與系統(tǒng)的電子設(shè)計(jì)技術(shù)發(fā)生了革命性的變化?,F(xiàn)代硬件電路與系統(tǒng)的EDA技術(shù)以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA開發(fā)軟件平臺上,用硬件描述語言HDL完成硬件電路的源文件設(shè)計(jì),然后通過計(jì)算機(jī)自動地完成編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至完成對選定的目標(biāo)芯片(可編程器件)的適配、邏輯映射、布局布線和下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可靠性,有效地減輕了設(shè)計(jì)者的勞動強(qiáng)度,縮短了產(chǎn)品的設(shè)計(jì)周期,加快了產(chǎn)品的上市時(shí)間。從20世紀(jì)70年代起,國際上電子和計(jì)算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、集成器件、開發(fā)工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性??删幊棠M器件、可編程數(shù)字開關(guān)及互聯(lián)器件的研制成功,為各種現(xiàn)代電路與系統(tǒng)硬件的設(shè)計(jì)注入了新的活力。這些器件可以通過軟件編程對其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu)、重組態(tài),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了甚至是顛覆了傳統(tǒng)的電路與系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展?,F(xiàn)代EDA的應(yīng)用相當(dāng)廣泛,包括機(jī)械、電子、通信、航空航天、航海、交通、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域。例如在飛機(jī)、汽車制造過程中,從設(shè)計(jì)、性能測試及特性分析直到飛機(jī)試飛、汽車試車模擬,都可能涉及EDA技術(shù)。本書所指的EDA技術(shù),是針對電子電路與系統(tǒng)設(shè)計(jì)的電子設(shè)計(jì)自動化,且主要討論現(xiàn)代數(shù)字電路與系統(tǒng)的硬件技術(shù)。第1章VerilogHDL的基本結(jié)構(gòu)與描述方式1.1基本結(jié)構(gòu)

1.2描述方式

1.2.1數(shù)據(jù)流描述方式

1.2.2行為描述方式

1.2.3結(jié)構(gòu)化描述方式

1.2.4混合描述方式1.1基本結(jié)構(gòu)模塊是Verilog的基本描述單位。模塊用于描述某個(gè)電路設(shè)計(jì)的功能或結(jié)構(gòu)以及與其他模塊通信的外部端口。每個(gè)模塊與其他模塊之間通過端口聯(lián)系,模塊自身通過端口與其描述的內(nèi)容聯(lián)系。一個(gè)硬件電路用Verilog設(shè)計(jì)的基本結(jié)構(gòu)組成一個(gè)模塊,它是實(shí)現(xiàn)硬件電路的源文件。一個(gè)硬件電路用Verilog程序設(shè)計(jì)的過程叫做編寫源文件或建模。一個(gè)模塊又可以在另一個(gè)模塊中使用。圖1.1是一位全加器的電路。該電路的函數(shù)表達(dá)式為sum=a⊕b⊕cincout=(a⊕b)cin+ab其中:a、b分別為兩個(gè)一位二進(jìn)制的加數(shù)、被加數(shù);cin為低位向本位的進(jìn)位;sum為本位和;cout是本位向高位的進(jìn)位。當(dāng)一個(gè)完成某一功能的電路圖或函數(shù)表達(dá)式已知時(shí),可依據(jù)電路圖或函數(shù)表達(dá)式用Verilog設(shè)計(jì)其源文件。Verilog實(shí)現(xiàn)硬件電路的源文件,即模塊的基本結(jié)構(gòu):(1)?Verilog程序是由模塊構(gòu)成的。每個(gè)模塊中包含不同的內(nèi)容,這些內(nèi)容被安排在module和endmodule兩個(gè)關(guān)鍵字之間。(2)每一個(gè)模塊完成一個(gè)特定的功能。模塊是可以進(jìn)行層次嵌套的。一個(gè)大型的數(shù)字電路與系統(tǒng)可以分割成若干個(gè)實(shí)現(xiàn)一定功能的子模塊,然后通過頂層模塊調(diào)用子模塊,完成系統(tǒng)的整體功能。(3)在每一個(gè)模塊中要對端口進(jìn)行定義,說明輸入、輸出口,并對模塊的功能進(jìn)行邏輯描述。(4)模塊是Verilog的基本設(shè)計(jì)單位。一個(gè)模塊由兩部分組成:一部分描述接口;另一部分描述邏輯功能。這種描述實(shí)際上就是說明輸入是如何影響輸出的。下面給出了一個(gè)通用的模塊或源文件的基本結(jié)構(gòu)。在一個(gè)程序模塊中,第一行是模塊的端口(或叫接口)定義,其格式為module模塊名(端口1,端口2,端口3,…);它聲明了模塊的輸入、輸出端口。接下來的Declarations說明部分用于定義不同的項(xiàng),例如模塊I/O(輸入/輸出)的信號流向,哪些是輸入、哪些是輸出;定義描述中使用的數(shù)據(jù)類型、寄存器和參數(shù)等。I/O說明的格式為input輸入端口名1,輸入端口名2,…,輸入端口名N;output輸出端口名1,輸出端口名2,…輸出端口名N;當(dāng)它們有規(guī)律地排列時(shí),可使用簡略寫法。如上述4位二進(jìn)制加法器電路源代碼中第三行、第五行和3位二進(jìn)制乘法器電路源代碼中第五行、第六行那樣。我們也可以把I/O說明直接放在端口定義語句里,其格式為modulemodulename(輸入端口名1,輸入端口名2,…,輸入端口名N,輸出端口名1,輸出端口名2,…,輸出端口名N);Statements語句的定義部分則用于定義設(shè)計(jì)的功能和結(jié)構(gòu),它是模塊的核心。說明部分和語句定義部分可以散布在模塊中的任何地方,但是變量、寄存器、線網(wǎng)和參數(shù)等的說明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性,最好將所有的說明部分放在語句前。1.2描

式在設(shè)計(jì)的源文件即模塊中,可以采用下述四種描述方式:(1)數(shù)據(jù)流描述方式。(2)行為描述方式。(3)結(jié)構(gòu)化描述方式。(4)混合描述方式(前三種方式的混合)。下面通過實(shí)例分別說明這四種描述方式。1.2.1數(shù)據(jù)流描述方式用數(shù)據(jù)流描述方式對要求實(shí)現(xiàn)的硬件電路建?;蛟O(shè)計(jì)源文件,最基本的方法就是使用連續(xù)賦值語句。在連續(xù)賦值語句中,若干個(gè)值(或數(shù)據(jù))被指定為線網(wǎng)變量。線網(wǎng)變量是數(shù)據(jù)類型的一種。連續(xù)賦值語句的格式為assign[delay]LHS_net=RHS_expression;等號右邊表達(dá)式中的操作數(shù)無論在什么時(shí)候發(fā)生變化,該表達(dá)式都會重新計(jì)算,并在設(shè)定的時(shí)延[delay]后將變化了的值賦予等號左邊的線網(wǎng)變量。時(shí)延[delay]定義了等號右邊表達(dá)式中的操作數(shù)變化與賦值給等號左邊之間的持續(xù)時(shí)間。[delay]是可選的,如果沒有定義它的值,缺省時(shí)延為0。1.2.2行為描述方式一個(gè)設(shè)計(jì)用行為描述方式給出其行為功能,可使用如下語句:(1)?initial語句:該語句只執(zhí)行一次,通常多用于仿真。(2)?always語句:該語句總是循環(huán)執(zhí)行,或者說該語句重復(fù)執(zhí)行。需要特別注意的是:①

只有寄存器類型數(shù)據(jù)能夠在這兩種語句中被賦值;②

寄存器類型數(shù)據(jù)在被賦給新值前保持原值不變;③

所有的初始化語句initial和總是語句always在0時(shí)刻并發(fā)執(zhí)行。1.2.3結(jié)構(gòu)化描述方式在VerilogHDL中可使用如下方式進(jìn)行結(jié)構(gòu)化描述。(1)門語句(門原語,在門級)。(2)開關(guān)級語句(開關(guān)級原語,在晶體管級)。(3)用戶定義語句(用戶定義的原語,在門級)。(4)模塊實(shí)例(創(chuàng)建成層次結(jié)構(gòu))。結(jié)構(gòu)化描述方式通過線網(wǎng)來相互連接。1.2.4混合描述方式在一個(gè)模塊中,結(jié)構(gòu)化描述、行為描述、數(shù)據(jù)流描述可以自由混合。也就是說,一個(gè)模塊中可以包含實(shí)例化的門(門原語或叫門基元)、模塊實(shí)例化語句、連續(xù)賦值語句、初始化語句initial和總是語句always的混合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論