ppt電路計(jì)算機(jī)輔助設(shè)計(jì)_第1頁(yè)
ppt電路計(jì)算機(jī)輔助設(shè)計(jì)_第2頁(yè)
ppt電路計(jì)算機(jī)輔助設(shè)計(jì)_第3頁(yè)
ppt電路計(jì)算機(jī)輔助設(shè)計(jì)_第4頁(yè)
ppt電路計(jì)算機(jī)輔助設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩102頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 電路計(jì)算機(jī)輔助設(shè)計(jì)電路計(jì)算機(jī)輔助設(shè)計(jì) 吉林大學(xué)通信工程學(xué)院吉林大學(xué)通信工程學(xué)院 高燕梅高燕梅教學(xué)內(nèi)容與要求教學(xué)內(nèi)容與要求第第1 1章章 edaeda技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介第第2 2章章 verilog hdlverilog hdl語(yǔ)言編程語(yǔ)言編程 (10學(xué)時(shí))第第3 3章章 vhdlvhdl語(yǔ)言編程語(yǔ)言編程(4學(xué)時(shí)) 第第4 4章章 matlabmatlab程序入門程序入門 (12學(xué)時(shí))第第5 5章章 matlabmatlab在電路中的應(yīng)用在電路中的應(yīng)用(4學(xué)時(shí)) 每章有實(shí)驗(yàn)室上機(jī)實(shí)驗(yàn)每章有實(shí)驗(yàn)室上機(jī)實(shí)驗(yàn) 實(shí)驗(yàn)教學(xué) 成績(jī)?cè)u(píng)定標(biāo)準(zhǔn)成績(jī)?cè)u(píng)定標(biāo)準(zhǔn)五級(jí)分制五級(jí)分制作業(yè)加上機(jī)考核:作業(yè)加上機(jī)考核:1、作業(yè)必

2、做,上機(jī)交作業(yè)時(shí)隨機(jī)考兩個(gè)問(wèn)題。、作業(yè)必做,上機(jī)交作業(yè)時(shí)隨機(jī)考兩個(gè)問(wèn)題。2、點(diǎn)名沒(méi)有缺勤,加分。、點(diǎn)名沒(méi)有缺勤,加分。第第1章章 eda技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介1.1 eda技術(shù)的主要內(nèi)容技術(shù)的主要內(nèi)容1.2 eda軟件系統(tǒng)的構(gòu)成軟件系統(tǒng)的構(gòu)成1.3 eda的工程設(shè)計(jì)流程的工程設(shè)計(jì)流程1.4 數(shù)字系統(tǒng)的設(shè)計(jì)方法數(shù)字系統(tǒng)的設(shè)計(jì)方法第第2 2章章 verilog hdlverilog hdl語(yǔ)言編程語(yǔ)言編程2.1 verilog hdl2.1 verilog hdl設(shè)計(jì)模塊的基本結(jié)構(gòu)設(shè)計(jì)模塊的基本結(jié)構(gòu)2.2 verilog hdl2.2 verilog hdl詞法構(gòu)成詞法構(gòu)成2.3 verilog hdl

3、2.3 verilog hdl的語(yǔ)句的語(yǔ)句2.4 verilog hdl2.4 verilog hdl模型模型2.5 verilog hdl2.5 verilog hdl設(shè)計(jì)電路流程設(shè)計(jì)電路流程2.6 2.6 用用verilog hdlverilog hdl描述邏輯電路的實(shí)例描述邏輯電路的實(shí)例第第3章章 vhdl 語(yǔ)言編程基礎(chǔ)語(yǔ)言編程基礎(chǔ)3.1 概述概述 3.2 vhdl程序基本結(jié)構(gòu)程序基本結(jié)構(gòu) 3.3 vhdl語(yǔ)言要素語(yǔ)言要素 3.4 vhdl順序語(yǔ)句順序語(yǔ)句 3.5 vhdl并行語(yǔ)句并行語(yǔ)句 3.6 子程序子程序(subprogram) 3.7 庫(kù)、程序包及其他庫(kù)、程序包及其他 3.8 v

4、hdl描述風(fēng)格描述風(fēng)格 3.9 基本邏輯電路設(shè)計(jì)基本邏輯電路設(shè)計(jì) 3.10 狀態(tài)機(jī)的狀態(tài)機(jī)的vhdl設(shè)計(jì)設(shè)計(jì) 第第4章章 matlab程序入門程序入門4.1基本語(yǔ)法基本語(yǔ)法4.1.1 變量及其賦值變量及其賦值4.4.2 矩陣的初等運(yùn)算矩陣的初等運(yùn)算4.1.3 元素群運(yùn)算元素群運(yùn)算4.1.4 邏輯判斷及流程控制邏輯判斷及流程控制4.2 基本繪圖方法基本繪圖方法4.2.1 m文件及程序調(diào)試文件及程序調(diào)試4.2.2 matlab的開發(fā)環(huán)境和工具的開發(fā)環(huán)境和工具第第5章章 matlab在電路中的應(yīng)用在電路中的應(yīng)用5.1 電阻電路和動(dòng)態(tài)電路電阻電路和動(dòng)態(tài)電路5.2 正弦穩(wěn)態(tài)電路和頻率響應(yīng)正弦穩(wěn)態(tài)電路和頻

5、率響應(yīng)5.3 二端口電路二端口電路5.4 濾波器濾波器第第1章章 eda技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介 1.1 eda技術(shù)的主要內(nèi)容技術(shù)的主要內(nèi)容eda是電子設(shè)計(jì)自動(dòng)化(是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的)的縮寫??s寫。 eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件平臺(tái)上,用軟件平臺(tái)上,用硬件描述語(yǔ)言硬件描述語(yǔ)言hdl完成設(shè)計(jì)完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯輯編譯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真仿真,直至,直至對(duì)于特定目標(biāo)芯片的對(duì)于特定目標(biāo)

6、芯片的適配編譯適配編譯、邏輯映射和、邏輯映射和編程下載編程下載等工作。等工作。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可靠性,減技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可靠性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。在電子技術(shù)設(shè)計(jì)領(lǐng)域,在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件可編程邏輯器件(如(如cpld、fpga)的)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。極大的靈活性。cpld、fpga器件可以通過(guò)器件可以通過(guò)軟件編程軟件編程而對(duì)硬件結(jié)構(gòu)和工作方式而對(duì)硬件結(jié)構(gòu)和工作方式進(jìn)行進(jìn)行重構(gòu)重構(gòu),從而使得硬件的

7、設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快,從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。促進(jìn)了捷。促進(jìn)了eda技術(shù)的迅速發(fā)展。技術(shù)的迅速發(fā)展。eda技術(shù)涉及面廣,內(nèi)容豐富,主要應(yīng)掌握如下四個(gè)方面的技術(shù)涉及面廣,內(nèi)容豐富,主要應(yīng)掌握如下四個(gè)方面的內(nèi)容:內(nèi)容: 大規(guī)??删幊踢壿嬈骷?,大規(guī)??删幊踢壿嬈骷抢么笠?guī)模可編程邏輯器件,大規(guī)??删幊踢壿嬈骷抢胑da技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的載體。技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的載體。 fpga和和cpld 硬件描述語(yǔ)言,硬件描述語(yǔ)言是利用硬件描述語(yǔ)言,硬件描述語(yǔ)言是利用eda技術(shù)進(jìn)行電子系技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的主要表達(dá)手段。統(tǒng)設(shè)計(jì)的主要表達(dá)手段。vhdl、verilog、

8、abel 軟件開發(fā)工具,軟件開發(fā)工具是利用軟件開發(fā)工具,軟件開發(fā)工具是利用eda技術(shù)進(jìn)行電子系技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的智能化的自動(dòng)化設(shè)計(jì)工具。統(tǒng)設(shè)計(jì)的智能化的自動(dòng)化設(shè)計(jì)工具。altera的的max+plus ii、lattice的的ispexpert、xilinx的的foundation series。 實(shí)驗(yàn)開發(fā)系統(tǒng),實(shí)驗(yàn)開發(fā)系統(tǒng)則是利用實(shí)驗(yàn)開發(fā)系統(tǒng),實(shí)驗(yàn)開發(fā)系統(tǒng)則是利用eda技術(shù)進(jìn)行電子技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的下載工具及硬件驗(yàn)證工具。系統(tǒng)設(shè)計(jì)的下載工具及硬件驗(yàn)證工具。 1 大規(guī)模可編程邏輯器件大規(guī)??删幊踢壿嬈骷?可編程邏輯器件可編程邏輯器件(簡(jiǎn)稱簡(jiǎn)稱pld)是一種由用戶編程以實(shí)現(xiàn)是一種由用戶編

9、程以實(shí)現(xiàn)某種邏輯功能的新型邏輯器件。某種邏輯功能的新型邏輯器件。fpga是現(xiàn)場(chǎng)可編程門陣列的簡(jiǎn)稱,是現(xiàn)場(chǎng)可編程門陣列的簡(jiǎn)稱,cpld是復(fù)雜可編程邏輯器件的簡(jiǎn)稱。是復(fù)雜可編程邏輯器件的簡(jiǎn)稱。高集成度、高速度和高可靠性是高集成度、高速度和高可靠性是fpga/cpld最明顯最明顯的特點(diǎn),其時(shí)鐘延時(shí)可小至的特點(diǎn),其時(shí)鐘延時(shí)可小至ns級(jí),結(jié)合其并行工作方級(jí),結(jié)合其并行工作方式,在超高速應(yīng)用領(lǐng)域和實(shí)時(shí)測(cè)控方面有著非常廣闊式,在超高速應(yīng)用領(lǐng)域和實(shí)時(shí)測(cè)控方面有著非常廣闊的應(yīng)用前景。的應(yīng)用前景。fpga/cpld的高可靠性還表現(xiàn)在幾乎可將整個(gè)系統(tǒng)的高可靠性還表現(xiàn)在幾乎可將整個(gè)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所謂片上系

10、統(tǒng),從而大大縮下載于同一芯片中,實(shí)現(xiàn)所謂片上系統(tǒng),從而大大縮小了體積,易于管理和屏蔽。小了體積,易于管理和屏蔽。 2 硬件描述語(yǔ)言硬件描述語(yǔ)言(hdl) 常用的硬件描述語(yǔ)言有常用的硬件描述語(yǔ)言有vhdl、verilog、abel。 vhdl:作為:作為ieee的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,在的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。 verilog:支持的:支持的eda工具較多,適用于工具較多,適用于rtl級(jí)級(jí)(寄存器轉(zhuǎn)換級(jí))和門電路級(jí)的描述,其綜合過(guò)程(寄存器轉(zhuǎn)換級(jí))和門電路級(jí)的描述,其綜合過(guò)程較較vhdl稍簡(jiǎn)單,但其在高

11、級(jí)描述方面不如稍簡(jiǎn)單,但其在高級(jí)描述方面不如vhdl。有專家認(rèn)為,在新世紀(jì)中,有專家認(rèn)為,在新世紀(jì)中,vhdl與與verilog語(yǔ)言將語(yǔ)言將承擔(dān)幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。承擔(dān)幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。 3 軟件開發(fā)工具軟件開發(fā)工具 目前比較流行的、主流廠家的目前比較流行的、主流廠家的eda的軟件工具有:的軟件工具有:altera的的max+plus ii、升級(jí)版、升級(jí)版quartus ii;lattice的的ispexpert;xilinx的的foundation series。 max+plus ii是是altera公司開發(fā)的公司開發(fā)的eda工具軟件。工具軟件。altera公司是世界上最

12、大的可編程邏輯器件供應(yīng)商之一。公司是世界上最大的可編程邏輯器件供應(yīng)商之一。max+plus ii軟件是一個(gè)集成化的可編程邏輯器件開發(fā)軟件是一個(gè)集成化的可編程邏輯器件開發(fā)環(huán)境,設(shè)計(jì)者能在這個(gè)環(huán)境下進(jìn)行邏輯設(shè)計(jì),完成設(shè)計(jì)環(huán)境,設(shè)計(jì)者能在這個(gè)環(huán)境下進(jìn)行邏輯設(shè)計(jì),完成設(shè)計(jì)文件的輸入編輯、編譯、仿真、綜合、布局布線和編程文件的輸入編輯、編譯、仿真、綜合、布局布線和編程下載等設(shè)計(jì)工作。軟件界面友好、方便易學(xué)、功能全面,下載等設(shè)計(jì)工作。軟件界面友好、方便易學(xué)、功能全面,是非常流行的大眾化是非常流行的大眾化eda平臺(tái)。平臺(tái)。max+plus ii:支持原理圖、:支持原理圖、vhdl和和verilog語(yǔ)語(yǔ)言文本

13、文件,以及以波形與言文本文件,以及以波形與edif等格式的文件作等格式的文件作為設(shè)計(jì)輸入,并支持這些文件的任意混合設(shè)計(jì)。為設(shè)計(jì)輸入,并支持這些文件的任意混合設(shè)計(jì)。它具有門級(jí)仿真器,可以進(jìn)行功能仿真和時(shí)序仿它具有門級(jí)仿真器,可以進(jìn)行功能仿真和時(shí)序仿真,能夠產(chǎn)生精確的仿真結(jié)果。真,能夠產(chǎn)生精確的仿真結(jié)果。在適配之后,在適配之后,max+plus ii生成供時(shí)序仿真用的生成供時(shí)序仿真用的edif、vhdl和和verilog這三種不同格式的網(wǎng)表文這三種不同格式的網(wǎng)表文件。件。它界面友好,使用便捷,被譽(yù)為業(yè)界最易學(xué)易用它界面友好,使用便捷,被譽(yù)為業(yè)界最易學(xué)易用的的eda的軟件的軟件 ,并支持主流的第三方

14、,并支持主流的第三方eda工具,工具,支持所有支持所有altera公司的公司的fpga/cpld大規(guī)模邏輯器大規(guī)模邏輯器件。件。 4 實(shí)驗(yàn)開發(fā)系統(tǒng)實(shí)驗(yàn)開發(fā)系統(tǒng) 提供芯片下載電路及eda實(shí)驗(yàn)/開發(fā)的外圍資源(類似于用于單片機(jī)開發(fā)的仿真器),供硬件驗(yàn)證用。一般包括: 實(shí)驗(yàn)或開發(fā)所需的各類基本信號(hào)發(fā)生模塊,包括時(shí)鐘、脈沖、高低電平等; fpga/cpld輸出信息顯示模塊,包括數(shù)碼顯示、發(fā)光管顯示、聲響指示等; 監(jiān)控程序模塊,提供“電路重構(gòu)軟配置”; 目標(biāo)芯片適配座以及上面的fpga/cpld目標(biāo)芯片和編程下載電路。自己閱讀 1.2 eda軟件系統(tǒng)的構(gòu)成軟件系統(tǒng)的構(gòu)成eda技術(shù)研究的對(duì)象是電子設(shè)計(jì)的全

15、過(guò)程,有系統(tǒng)級(jí)、技術(shù)研究的對(duì)象是電子設(shè)計(jì)的全過(guò)程,有系統(tǒng)級(jí)、電路級(jí)和物理級(jí)電路級(jí)和物理級(jí)3個(gè)層次的設(shè)計(jì)。個(gè)層次的設(shè)計(jì)。涉及的電子系統(tǒng)從低頻、高頻到微波,從線性到非線性,涉及的電子系統(tǒng)從低頻、高頻到微波,從線性到非線性,從模擬到數(shù)字,從通用集成電路到專用集成電路構(gòu)造的從模擬到數(shù)字,從通用集成電路到專用集成電路構(gòu)造的電子系統(tǒng),因此電子系統(tǒng),因此eda技術(shù)研究的范疇相當(dāng)廣泛。技術(shù)研究的范疇相當(dāng)廣泛。eda軟件系統(tǒng)應(yīng)當(dāng)包含以下子模塊:軟件系統(tǒng)應(yīng)當(dāng)包含以下子模塊:設(shè)計(jì)輸入子模塊、設(shè)計(jì)輸入子模塊、設(shè)計(jì)數(shù)據(jù)庫(kù)子模塊、設(shè)計(jì)數(shù)據(jù)庫(kù)子模塊、分析驗(yàn)證子模塊、分析驗(yàn)證子模塊、綜合仿真子模塊、綜合仿真子模塊、布局布線子

16、模塊等。布局布線子模塊等。自己閱讀 (1) 設(shè)計(jì)輸入子模塊;用戶編輯輸入模塊的設(shè)計(jì)描設(shè)計(jì)輸入子模塊;用戶編輯輸入模塊的設(shè)計(jì)描述,并進(jìn)行語(yǔ)義正確性、語(yǔ)法規(guī)則的檢查,檢查通述,并進(jìn)行語(yǔ)義正確性、語(yǔ)法規(guī)則的檢查,檢查通過(guò)后,將用戶的設(shè)計(jì)描述數(shù)據(jù)轉(zhuǎn)換為過(guò)后,將用戶的設(shè)計(jì)描述數(shù)據(jù)轉(zhuǎn)換為eda軟件系統(tǒng)軟件系統(tǒng)的內(nèi)部數(shù)據(jù)格式,存入設(shè)計(jì)數(shù)據(jù)庫(kù)被其他子模塊調(diào)的內(nèi)部數(shù)據(jù)格式,存入設(shè)計(jì)數(shù)據(jù)庫(kù)被其他子模塊調(diào)用。用。設(shè)計(jì)輸入子模塊不僅能接受圖形描述輸入、硬件描設(shè)計(jì)輸入子模塊不僅能接受圖形描述輸入、硬件描述語(yǔ)言述語(yǔ)言(hdl)描述輸入,還能接受圖文混合描述輸描述輸入,還能接受圖文混合描述輸入。入。該子模塊一般包含針對(duì)不同

17、描述方式的編輯器,如該子模塊一般包含針對(duì)不同描述方式的編輯器,如圖形編輯器、文本編輯器等,同時(shí)包含對(duì)應(yīng)的分析圖形編輯器、文本編輯器等,同時(shí)包含對(duì)應(yīng)的分析器。器。自己閱讀 (2)設(shè)計(jì)數(shù)據(jù)庫(kù)子模塊:該模塊存放系統(tǒng)提供的庫(kù)單設(shè)計(jì)數(shù)據(jù)庫(kù)子模塊:該模塊存放系統(tǒng)提供的庫(kù)單元以及用戶的設(shè)計(jì)描述和中間設(shè)計(jì)結(jié)果。元以及用戶的設(shè)計(jì)描述和中間設(shè)計(jì)結(jié)果。 (3) 分析驗(yàn)證子模塊:該模塊包括各個(gè)層次的模擬驗(yàn)分析驗(yàn)證子模塊:該模塊包括各個(gè)層次的模擬驗(yàn)證、設(shè)計(jì)規(guī)則的檢查、故障診斷等。證、設(shè)計(jì)規(guī)則的檢查、故障診斷等。 (4) 綜合仿真子模塊:該模塊包括各個(gè)層次的綜合工綜合仿真子模塊:該模塊包括各個(gè)層次的綜合工具,理想的情況是

18、:從高層次到低層次的綜合仿真具,理想的情況是:從高層次到低層次的綜合仿真全部由全部由eda工具自動(dòng)實(shí)現(xiàn)。工具自動(dòng)實(shí)現(xiàn)。 (5) 布局布線子模塊:該模塊實(shí)現(xiàn)由邏輯設(shè)計(jì)到物理布局布線子模塊:該模塊實(shí)現(xiàn)由邏輯設(shè)計(jì)到物理實(shí)現(xiàn)的映射,因此與物理實(shí)現(xiàn)的方式密切相關(guān)。例實(shí)現(xiàn)的映射,因此與物理實(shí)現(xiàn)的方式密切相關(guān)。例如,最終的物理實(shí)現(xiàn)可以是門陣列、可編程邏輯器如,最終的物理實(shí)現(xiàn)可以是門陣列、可編程邏輯器件等,由于對(duì)應(yīng)的器件不同,因此各自的布局布線件等,由于對(duì)應(yīng)的器件不同,因此各自的布局布線工具會(huì)有很大的差異。工具會(huì)有很大的差異。 自己閱讀1.3 eda的工程設(shè)計(jì)流程的工程設(shè)計(jì)流程1 源程序的編輯和編譯源程序的編

19、輯和編譯 利用利用eda技術(shù)進(jìn)行一項(xiàng)工程設(shè)計(jì),首先需利用技術(shù)進(jìn)行一項(xiàng)工程設(shè)計(jì),首先需利用eda工工具的文本編輯器或圖形編輯器將它用文本方式或圖形方式具的文本編輯器或圖形編輯器將它用文本方式或圖形方式表達(dá)出來(lái),進(jìn)行排錯(cuò)編譯,變成表達(dá)出來(lái),進(jìn)行排錯(cuò)編譯,變成verilog、vhdl文件格式,文件格式,為進(jìn)一步的邏輯綜合作準(zhǔn)備。為進(jìn)一步的邏輯綜合作準(zhǔn)備。 常用的源程序輸入方式有三種。常用的源程序輸入方式有三種。 (1) 原理圖輸入方式:利用原理圖輸入方式:利用eda工具提供的圖形編輯器以工具提供的圖形編輯器以原理圖的方式進(jìn)行輸入。原理圖輸入方式比較容易掌握,原理圖的方式進(jìn)行輸入。原理圖輸入方式比較容

20、易掌握,直觀且方便,所畫的電路原理圖與傳統(tǒng)的器件連接方式完直觀且方便,所畫的電路原理圖與傳統(tǒng)的器件連接方式完全一樣,很容易被人接受,而且編輯器中有許多現(xiàn)成的單全一樣,很容易被人接受,而且編輯器中有許多現(xiàn)成的單元器件可以利用,自己也可以根據(jù)需要設(shè)計(jì)元件。元器件可以利用,自己也可以根據(jù)需要設(shè)計(jì)元件。 (2) 狀態(tài)圖輸入方式狀態(tài)圖輸入方式:以圖形的方式表示狀態(tài)圖進(jìn)行輸入。當(dāng)填好時(shí)鐘信號(hào)名、狀態(tài)轉(zhuǎn)換條件、狀態(tài)機(jī)類型等要素后,就可以自動(dòng)生成vhdl程序。這種設(shè)計(jì)方式簡(jiǎn)化了狀態(tài)機(jī)的設(shè)計(jì),比較流行。 (3) verilog、vhdl軟件程序的文本方式軟件程序的文本方式:最一般化、最具普遍性的輸入方法,任何支

21、持vhdl的eda工具都支持文本方式的編輯和編譯。 2 邏輯綜合和優(yōu)化邏輯綜合和優(yōu)化 將vhdl的軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,需要利用eda軟件系統(tǒng)的綜合器進(jìn)行邏輯綜合。 綜合器的功能就是將設(shè)計(jì)者在eda平臺(tái)上完成的針對(duì)某個(gè)系統(tǒng)項(xiàng)目的hdl、原理圖或狀態(tài)圖形的描述,針對(duì)給定硬件結(jié)構(gòu)組件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級(jí)電路甚至更底層的電路描述文件。綜合器工作前,必須給定最后實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式聯(lián)系起來(lái)。綜合器是軟件描述與硬件實(shí)現(xiàn)的一座橋梁。綜合過(guò)程就是將電路的高級(jí)語(yǔ)言描述轉(zhuǎn)換成低級(jí)的,可與fpga/cpld或構(gòu)成asic的門陣列基

22、本結(jié)構(gòu)相映射的網(wǎng)表文件。自己閱讀 1.4數(shù)字系統(tǒng)的設(shè)計(jì)方法數(shù)字系統(tǒng)的設(shè)計(jì)方法 數(shù)字系統(tǒng)設(shè)計(jì)有多種方法,如模塊設(shè)計(jì)法、自頂向下設(shè)計(jì)法和自底向上設(shè)計(jì)法等。 數(shù)字系統(tǒng)的設(shè)計(jì)一般采用自頂向下、由粗到細(xì)、逐步求精的方法。自頂向下是指將數(shù)字系統(tǒng)的整體逐步分解為各個(gè)子系統(tǒng)和模塊,若子系統(tǒng)規(guī)模較大,則還需將子系統(tǒng)進(jìn)一步分解為更小的子系統(tǒng)和模塊,層層分解,直至整個(gè)系統(tǒng)中各子系統(tǒng)關(guān)系合理,并便于邏輯電路級(jí)的設(shè)計(jì)和實(shí)現(xiàn)為止。采用該方法設(shè)計(jì)時(shí),高層設(shè)計(jì)進(jìn)行功能和接口描述,說(shuō)明模塊的功能和接口,模塊功能的更詳細(xì)的描述在下一設(shè)計(jì)層次說(shuō)明,最底層的設(shè)計(jì)才涉及具體的寄存器和邏輯門電路等實(shí)現(xiàn)方式的描述。 采用自頂向下的設(shè)計(jì)方法

23、有如下優(yōu)點(diǎn)采用自頂向下的設(shè)計(jì)方法有如下優(yōu)點(diǎn): (1) 自頂向下設(shè)計(jì)方法是一種模塊化設(shè)計(jì)方法。對(duì)設(shè)計(jì)的描述從自頂向下設(shè)計(jì)方法是一種模塊化設(shè)計(jì)方法。對(duì)設(shè)計(jì)的描述從上到下逐步由粗略到詳細(xì),符合常規(guī)的邏輯思維習(xí)慣。由于高層上到下逐步由粗略到詳細(xì),符合常規(guī)的邏輯思維習(xí)慣。由于高層設(shè)計(jì)同器件無(wú)關(guān),設(shè)計(jì)易于在各種集成電路工藝或可編程器件之設(shè)計(jì)同器件無(wú)關(guān),設(shè)計(jì)易于在各種集成電路工藝或可編程器件之間移植。間移植。 (2) 適合多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì)。隨著技術(shù)的不斷進(jìn)步,許多適合多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì)。隨著技術(shù)的不斷進(jìn)步,許多設(shè)計(jì)由一個(gè)設(shè)計(jì)者已無(wú)法完成,必須經(jīng)過(guò)多個(gè)設(shè)計(jì)者分工協(xié)作完設(shè)計(jì)由一個(gè)設(shè)計(jì)者已無(wú)法完成,必須

24、經(jīng)過(guò)多個(gè)設(shè)計(jì)者分工協(xié)作完成一項(xiàng)設(shè)計(jì)的情況越來(lái)越多。在這種情況下,應(yīng)用自頂向下的設(shè)成一項(xiàng)設(shè)計(jì)的情況越來(lái)越多。在這種情況下,應(yīng)用自頂向下的設(shè)計(jì)方法便于由多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì),對(duì)設(shè)計(jì)任務(wù)進(jìn)行合理分計(jì)方法便于由多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì),對(duì)設(shè)計(jì)任務(wù)進(jìn)行合理分配,用系統(tǒng)工程的方法對(duì)設(shè)計(jì)進(jìn)行管理。配,用系統(tǒng)工程的方法對(duì)設(shè)計(jì)進(jìn)行管理。 針對(duì)具體的設(shè)計(jì),實(shí)施自頂向下的設(shè)計(jì)方法的形式會(huì)有所不同,針對(duì)具體的設(shè)計(jì),實(shí)施自頂向下的設(shè)計(jì)方法的形式會(huì)有所不同,但均需遵循以下兩條原則:逐層分解功能,分層次進(jìn)行設(shè)計(jì)。同但均需遵循以下兩條原則:逐層分解功能,分層次進(jìn)行設(shè)計(jì)。同時(shí),應(yīng)在各個(gè)設(shè)計(jì)層次上,考慮相應(yīng)的仿真驗(yàn)證問(wèn)題。時(shí),應(yīng)

25、在各個(gè)設(shè)計(jì)層次上,考慮相應(yīng)的仿真驗(yàn)證問(wèn)題。自己閱讀第第2章章 verilog hdl語(yǔ)言語(yǔ)言 2.1 verilog hdl設(shè)計(jì)模塊的基本結(jié)構(gòu)設(shè)計(jì)模塊的基本結(jié)構(gòu)verilog hdl程序設(shè)計(jì)由模塊程序設(shè)計(jì)由模塊(module)構(gòu)成的,構(gòu)成的, 設(shè)計(jì)模塊的基本結(jié)構(gòu)如圖,設(shè)計(jì)模塊的基本結(jié)構(gòu)如圖,一個(gè)完整的一個(gè)完整的verilog hdl設(shè)計(jì)模塊包括端口定義、設(shè)計(jì)模塊包括端口定義、i/o聲明、信號(hào)類型聲明和聲明、信號(hào)類型聲明和功能描述功能描述4個(gè)部分。個(gè)部分。 一、模塊端口的定義一、模塊端口的定義模塊端口定義用來(lái)聲明電路設(shè)計(jì)模塊模塊端口定義用來(lái)聲明電路設(shè)計(jì)模塊 的輸入的輸入/輸出端口,端口定義格式如

26、下:輸出端口,端口定義格式如下: module 模塊名模塊名 (端口(端口1,端口,端口2,端口,端口3,););在端口定義的括號(hào)中,是設(shè)計(jì)電路模塊與外界聯(lián)系的全部輸入在端口定義的括號(hào)中,是設(shè)計(jì)電路模塊與外界聯(lián)系的全部輸入/輸出端口信號(hào)輸出端口信號(hào)或引腳,是設(shè)計(jì)實(shí)體對(duì)外的一個(gè)通信界面,是外界可以看到的部分(不包含或引腳,是設(shè)計(jì)實(shí)體對(duì)外的一個(gè)通信界面,是外界可以看到的部分(不包含電源和接地端),多個(gè)端口之間用電源和接地端),多個(gè)端口之間用“,”分隔。例如分隔。例如1位全加器位全加器adder模塊的模塊的端口定義為端口定義為module adder (sum, cout, ina, inb, ci

27、n); 模塊名模塊名adder 二、模塊內(nèi)容二、模塊內(nèi)容 模塊內(nèi)容包括模塊內(nèi)容包括i/o聲明、信號(hào)類型聲明和功能描述。聲明、信號(hào)類型聲明和功能描述。 (1)模塊的)模塊的i/o聲明聲明 模塊的模塊的i/o聲明用來(lái)聲明模塊端口定義中各端口數(shù)據(jù)流動(dòng)方向,包聲明用來(lái)聲明模塊端口定義中各端口數(shù)據(jù)流動(dòng)方向,包括輸入括輸入(input)、輸出、輸出(output)和雙向和雙向(inout)。i/o聲明格式如下:聲明格式如下: input 端口端口1,端口,端口2,端口,端口3,; /聲明輸入端口聲明輸入端口 output 端口端口1,端口,端口2,端口,端口3,;/聲明輸出端口聲明輸出端口例如,例如,1位

28、全加器的位全加器的i/o聲明為聲明為 input ina, inb, cin; output sum, cout; (2)信號(hào)類型聲明)信號(hào)類型聲明信號(hào)類型聲明是聲明設(shè)計(jì)電路的功能描述中所用的信號(hào)的數(shù)信號(hào)類型聲明是聲明設(shè)計(jì)電路的功能描述中所用的信號(hào)的數(shù)據(jù)類型和函數(shù)。信號(hào)的數(shù)據(jù)類型主要有連線(據(jù)類型和函數(shù)。信號(hào)的數(shù)據(jù)類型主要有連線(wire)、寄存)、寄存器(器(reg)、整型()、整型(integer)、實(shí)型()、實(shí)型(real)、和時(shí)間)、和時(shí)間(time)等。)等。 (3)功能描述)功能描述 功能描述是功能描述是verilog hdl程序設(shè)計(jì)中最主要的部分,用程序設(shè)計(jì)中最主要的部分,用來(lái)描

29、述設(shè)計(jì)模塊的內(nèi)部結(jié)構(gòu)和模塊端口間的邏輯關(guān)系,在電來(lái)描述設(shè)計(jì)模塊的內(nèi)部結(jié)構(gòu)和模塊端口間的邏輯關(guān)系,在電路上相當(dāng)于器件的內(nèi)部電路結(jié)構(gòu)。功能描述可以用路上相當(dāng)于器件的內(nèi)部電路結(jié)構(gòu)。功能描述可以用assign語(yǔ)語(yǔ)句、元件例化(句、元件例化(instantiate)方式、)方式、always塊語(yǔ)句、塊語(yǔ)句、initial塊語(yǔ)句等方法來(lái)實(shí)現(xiàn),通常將設(shè)計(jì)模塊描述的方法稱為建模。塊語(yǔ)句等方法來(lái)實(shí)現(xiàn),通常將設(shè)計(jì)模塊描述的方法稱為建模。 用用assign語(yǔ)句建模語(yǔ)句建模 用用assign語(yǔ)句建模的方法很簡(jiǎn)單,只需要在語(yǔ)句建模的方法很簡(jiǎn)單,只需要在“assign”后面再后面再加一個(gè)表達(dá)式。加一個(gè)表達(dá)式。assign

30、語(yǔ)句一般適合對(duì)組合邏輯進(jìn)行賦值,稱語(yǔ)句一般適合對(duì)組合邏輯進(jìn)行賦值,稱為連續(xù)賦值方式。為連續(xù)賦值方式。例例1 一位全加器的設(shè)計(jì)一位全加器的設(shè)計(jì)1位全加器的邏輯符號(hào):位全加器的邏輯符號(hào):sum是全加器的和輸出端,是全加器的和輸出端,cout是進(jìn)位輸出端,是進(jìn)位輸出端,ina和和inb是兩個(gè)加數(shù)輸入端,是兩個(gè)加數(shù)輸入端,cin是低位進(jìn)位輸入端。是低位進(jìn)位輸入端。全加器的全加器的verilog hdl源程序如下:源程序如下: module adder1 (sum, cout, ina, inb, cin); input ina, inb, cin; output sum, cout; assign c

31、out, sum = ina+inb+cin; endmodule “assign cout, sum = ina+inb+cin;”語(yǔ)句實(shí)現(xiàn)語(yǔ)句實(shí)現(xiàn)1位全加器的進(jìn)位輸出位全加器的進(jìn)位輸出cout與和輸出與和輸出sum的建模。的建模。在語(yǔ)句表達(dá)式中,用拼接運(yùn)算符在語(yǔ)句表達(dá)式中,用拼接運(yùn)算符“”將將cout、sum這這兩個(gè)兩個(gè)1位操作數(shù)拼接為一個(gè)位操作數(shù)拼接為一個(gè)2位操作數(shù)。位操作數(shù)。 用元件例化(用元件例化(instantiate)方式建模)方式建模元件例化方式建模是利用元件例化方式建模是利用verilog hdl提供的元件庫(kù)實(shí)現(xiàn)的。提供的元件庫(kù)實(shí)現(xiàn)的。例如,用與門例化元件定義一個(gè)三輸入端與門

32、可以寫為例如,用與門例化元件定義一個(gè)三輸入端與門可以寫為and myand3(y,a,b,c); and是是verilog hdl元件庫(kù)中與門元件元件庫(kù)中與門元件名,名,myand3是例化出的三輸入端與門名,是例化出的三輸入端與門名,y是與門輸出端,是與門輸出端,a、b、c是輸入端。是輸入端。 用用always塊語(yǔ)句建模塊語(yǔ)句建模 always塊語(yǔ)句可以產(chǎn)生各種邏輯,常用于時(shí)序邏輯的功能塊語(yǔ)句可以產(chǎn)生各種邏輯,常用于時(shí)序邏輯的功能描述。一個(gè)程序設(shè)計(jì)模塊中,可以包含一個(gè)或多個(gè)描述。一個(gè)程序設(shè)計(jì)模塊中,可以包含一個(gè)或多個(gè)always語(yǔ)句。語(yǔ)句。程序運(yùn)行中,在某種條件滿足時(shí),就重復(fù)執(zhí)行一遍程序運(yùn)行中

33、,在某種條件滿足時(shí),就重復(fù)執(zhí)行一遍always結(jié)構(gòu)結(jié)構(gòu)中的語(yǔ)句。中的語(yǔ)句。 例例2 8位二進(jìn)制加法計(jì)數(shù)器的設(shè)計(jì)位二進(jìn)制加法計(jì)數(shù)器的設(shè)計(jì)8位二進(jìn)制加法計(jì)數(shù)器的邏輯符號(hào)如圖。位二進(jìn)制加法計(jì)數(shù)器的邏輯符號(hào)如圖。out是是8位二進(jìn)制計(jì)數(shù)器的輸出端(位二進(jìn)制計(jì)數(shù)器的輸出端(8位位向量);向量);cout是進(jìn)位輸出端(是進(jìn)位輸出端(1位);位);data是并行數(shù)據(jù)輸入端(是并行數(shù)據(jù)輸入端(8位向量);位向量);load是計(jì)數(shù)器的預(yù)置控制輸入端,是計(jì)數(shù)器的預(yù)置控制輸入端,當(dāng)當(dāng)load=1時(shí),時(shí),out=data;clk是時(shí)鐘控制輸入端,上升沿為有效是時(shí)鐘控制輸入端,上升沿為有效邊沿;邊沿;clr是同步復(fù)位輸

34、入端,當(dāng)是同步復(fù)位輸入端,當(dāng)clk的上升的上升沿到來(lái)時(shí)且沿到來(lái)時(shí)且clr=1,則計(jì)數(shù)器被復(fù)位,則計(jì)數(shù)器被復(fù)位,out=00000000。(邏輯符號(hào)圖是由計(jì)算機(jī)對(duì)計(jì)數(shù)器電路的(邏輯符號(hào)圖是由計(jì)算機(jī)對(duì)計(jì)數(shù)器電路的verilog hdl源代碼源代碼編譯后產(chǎn)生的元件符號(hào),圖中的輸入編譯后產(chǎn)生的元件符號(hào),圖中的輸入/輸出標(biāo)識(shí)符自動(dòng)被改為大輸出標(biāo)識(shí)符自動(dòng)被改為大寫,而源程序中的標(biāo)識(shí)符都是小寫。)寫,而源程序中的標(biāo)識(shí)符都是小寫。) 8位二進(jìn)制加法計(jì)數(shù)器的位二進(jìn)制加法計(jì)數(shù)器的verilog hdl 源程序如下:源程序如下: module cnt8 (out, cout,data,load,cin,clk, c

35、lr); input 7:0 data; input load, cin, clk, clr output 7:0 out; output cout; reg 7:0 out; always (posedge clk) begin if (load) out=data; else if(clr) out=b00000000; else out=out+1; end assign cout = &out; endmodule用用always塊語(yǔ)句實(shí)現(xiàn)塊語(yǔ)句實(shí)現(xiàn)8位二進(jìn)制加法計(jì)數(shù)器的建模。位二進(jìn)制加法計(jì)數(shù)器的建模。(posedge clk)是時(shí)間控制敏感函數(shù),表示是時(shí)間控制敏感函數(shù),表示c

36、lk上升沿到來(lái)上升沿到來(lái)的敏感時(shí)刻。每當(dāng)?shù)拿舾袝r(shí)刻。每當(dāng)clk的上升沿到來(lái)時(shí),的上升沿到來(lái)時(shí),always塊語(yǔ)句中的塊語(yǔ)句中的全部語(yǔ)句就執(zhí)行一遍。全部語(yǔ)句就執(zhí)行一遍?!癮ssign cout = &out;”語(yǔ)句產(chǎn)生進(jìn)語(yǔ)句產(chǎn)生進(jìn)位輸出位輸出cout,在語(yǔ)句中,在語(yǔ)句中“&out”是與的縮減運(yùn)算式,只有是與的縮減運(yùn)算式,只有out中數(shù)字全為中數(shù)字全為1時(shí),結(jié)果才為時(shí),結(jié)果才為1。 用用initial塊語(yǔ)句建模塊語(yǔ)句建模initial塊語(yǔ)句與塊語(yǔ)句與always語(yǔ)句類似,不過(guò)在程序中它只執(zhí)行語(yǔ)句類似,不過(guò)在程序中它只執(zhí)行1次就結(jié)束了。次就結(jié)束了。initial塊語(yǔ)句的使用格式塊語(yǔ)句

37、的使用格式 : initial begin 語(yǔ)句語(yǔ)句1; 語(yǔ)句語(yǔ)句2; : end例例3 用用initial過(guò)程語(yǔ)句對(duì)測(cè)試變量賦值過(guò)程語(yǔ)句對(duì)測(cè)試變量賦值 initial begin for(addr=0; addr 大于大于= 大于等于大于等于 右移右移4 結(jié)果結(jié)果a=8b00001101而而a4 結(jié)果結(jié)果a=8b00010000。條件條件操作操作符符 ?: 操作數(shù)操作數(shù)=條件?表達(dá)式條件?表達(dá)式1:表:表達(dá)式達(dá)式2;當(dāng)條件為真(值為當(dāng)條件為真(值為1)時(shí),操)時(shí),操作數(shù)作數(shù)=表達(dá)式表達(dá)式1;為假(值為為假(值為0)時(shí),操作數(shù))時(shí),操作數(shù)=表達(dá)式表達(dá)式2。 三元操作符,即條件操作符有三個(gè)操作數(shù)

38、。三元操作符,即條件操作符有三個(gè)操作數(shù)。例如例如 a?b:c若條件操作數(shù)若條件操作數(shù)a是邏輯是邏輯1,則算子返回表達(dá)式,則算子返回表達(dá)式1操操作數(shù)作數(shù)b;若若a是邏輯是邏輯0,則算子返回表達(dá)式,則算子返回表達(dá)式2操作數(shù)操作數(shù)c。 并接并接操作操作符符 , 例如例如 a,2a,b 等價(jià)于等價(jià)于a,a,b,a,b。 將將1位全加器的進(jìn)位位全加器的進(jìn)位cout和和sum并接,表達(dá)式為并接,表達(dá)式為將兩個(gè)或兩個(gè)以上用逗號(hào)分隔的表達(dá)式按位連將兩個(gè)或兩個(gè)以上用逗號(hào)分隔的表達(dá)式按位連接在一起。還可以用常數(shù)來(lái)指定重復(fù)的次數(shù)。接在一起。還可以用常數(shù)來(lái)指定重復(fù)的次數(shù)。cout,sum=ina+inb+cin; 同

39、其他高級(jí)語(yǔ)言類似,各類操作符號(hào)之間有優(yōu)先級(jí)之分,如下表:同其他高級(jí)語(yǔ)言類似,各類操作符號(hào)之間有優(yōu)先級(jí)之分,如下表:優(yōu)先級(jí)序號(hào)優(yōu)先級(jí)序號(hào)操作符操作符操作符名稱操作符名稱! 、 邏輯非、按位取反邏輯非、按位取反*、/、%乘、除、求余乘、除、求余+、-加、減加、減左移、右移左移、右移、 、=小于、小于等于、大于、大于等于小于、小于等于、大于、大于等于=、!=、=、!=等于、不等于、全等、不全等等于、不等于、全等、不全等&、& 縮減與、縮減與非縮減與、縮減與非 、縮減異或、縮減同或縮減異或、縮減同或|、 |縮減或、縮減或非縮減或、縮減或非&邏輯與邏輯與|邏輯或邏輯或?: 條件操

40、作符條件操作符列表頂部是最高優(yōu)先級(jí),底部是最低優(yōu)先級(jí)。列在同一行中的操作符具有相同的優(yōu)先級(jí)。所有列表頂部是最高優(yōu)先級(jí),底部是最低優(yōu)先級(jí)。列在同一行中的操作符具有相同的優(yōu)先級(jí)。所有操作符(?:除外)在表達(dá)式中都是從左向右結(jié)合的。圓括號(hào)()用于改變優(yōu)先級(jí)或使得表達(dá)操作符(?:除外)在表達(dá)式中都是從左向右結(jié)合的。圓括號(hào)()用于改變優(yōu)先級(jí)或使得表達(dá)式中運(yùn)算順序更加清晰,提高源文件的可讀性。式中運(yùn)算順序更加清晰,提高源文件的可讀性。 (3)數(shù)值常量)數(shù)值常量 verilog hdl中的數(shù)值常量有整型和實(shí)型兩大類,分為十進(jìn)制、十六進(jìn)中的數(shù)值常量有整型和實(shí)型兩大類,分為十進(jìn)制、十六進(jìn)制、八進(jìn)制或二進(jìn)制。若在

41、前面加上一個(gè)正制、八進(jìn)制或二進(jìn)制。若在前面加上一個(gè)正“+”或負(fù)或負(fù)“”號(hào)就表示有號(hào)就表示有符號(hào)數(shù),否則所代表的就是無(wú)符號(hào)數(shù)。在數(shù)值常量的任意位置可以隨意符號(hào)數(shù),否則所代表的就是無(wú)符號(hào)數(shù)。在數(shù)值常量的任意位置可以隨意插入下劃線插入下劃線“_”以提高可讀性。以提高可讀性。常量定義格式為:常量定義格式為:parameter 常量名常量名1=表達(dá)式,常量名表達(dá)式,常量名2=表達(dá)式,表達(dá)式,常量名,常量名n=表達(dá)式;表達(dá)式;parameter是常量定義關(guān)鍵字,常量名是用戶定義的標(biāo)識(shí)符,表達(dá)式為常是常量定義關(guān)鍵字,常量名是用戶定義的標(biāo)識(shí)符,表達(dá)式為常量賦值。量賦值。例如例如 parameter vcc=5

42、, fbus=8b11010001;verilog hdl中的整型數(shù)值常量就是整數(shù),有兩種書寫格式:一種是無(wú)中的整型數(shù)值常量就是整數(shù),有兩種書寫格式:一種是無(wú)位寬的十進(jìn)制表示法,如位寬的十進(jìn)制表示法,如-132。第二種是定義位寬和進(jìn)制的表示法,這。第二種是定義位寬和進(jìn)制的表示法,這種表示方法通常是無(wú)符號(hào)數(shù)。種表示方法通常是無(wú)符號(hào)數(shù)。常數(shù)書寫格式是:常數(shù)書寫格式是:sizebase value其中其中size是位寬,定義了數(shù)值常量的位數(shù)(長(zhǎng)度);是位寬,定義了數(shù)值常量的位數(shù)(長(zhǎng)度);base 代表這個(gè)數(shù)據(jù)的代表這個(gè)數(shù)據(jù)的進(jìn)制,取值范圍和相應(yīng)的進(jìn)制如下表;進(jìn)制,取值范圍和相應(yīng)的進(jìn)制如下表;valu

43、e是一個(gè)數(shù)值常量的值,書是一個(gè)數(shù)值常量的值,書寫格式與進(jìn)制寫格式與進(jìn)制base相對(duì)應(yīng)。相對(duì)應(yīng)。例如例如 4h6a8c,表示一個(gè)表示一個(gè)4位十六進(jìn)制數(shù)。位十六進(jìn)制數(shù)。 2hf5 等于等于8b11110101; 8b1111xxxx 等價(jià)等價(jià)2hfx; 8b1101zzzz 等價(jià)等價(jià)2hdz。verilog hdl中的進(jìn)制中的進(jìn)制base進(jìn)制代碼取值進(jìn)制代碼取值對(duì)應(yīng)的進(jìn)制對(duì)應(yīng)的進(jìn)制b或或b二進(jìn)制二進(jìn)制o或或o八進(jìn)制八進(jìn)制d或或d十進(jìn)制十進(jìn)制h或或h十六進(jìn)制十六進(jìn)制 verilog hdl中的實(shí)型數(shù)值常量就是浮點(diǎn)數(shù),可以用十進(jìn)制與科學(xué)計(jì)數(shù)法兩中的實(shí)型數(shù)值常量就是浮點(diǎn)數(shù),可以用十進(jìn)制與科學(xué)計(jì)數(shù)法兩種形

44、式書寫。如果采用十進(jìn)制格式,小數(shù)點(diǎn)兩邊必須都有數(shù)字。種形式書寫。如果采用十進(jìn)制格式,小數(shù)點(diǎn)兩邊必須都有數(shù)字。 verilog hdl的編程最終是與硬件相對(duì)應(yīng)的。由于硬件電路中信號(hào)的邏輯的編程最終是與硬件相對(duì)應(yīng)的。由于硬件電路中信號(hào)的邏輯狀態(tài)具有特殊性,即不僅有狀態(tài)具有特殊性,即不僅有0(低電平)和(低電平)和1(高電平),還有可能是(高電平),還有可能是x(未知(未知狀態(tài))和狀態(tài))和z(高阻態(tài)),因此(高阻態(tài)),因此verilog hdl數(shù)值集合有四個(gè)基本值:數(shù)值集合有四個(gè)基本值:0:邏輯:邏輯0或假狀態(tài);或假狀態(tài);1:邏輯:邏輯1或真狀態(tài);或真狀態(tài);x:邏輯不確定;:邏輯不確定;z:高阻態(tài)。

45、:高阻態(tài)。(4)字符串)字符串字符串是雙引號(hào)字符串是雙引號(hào)“”“”括起來(lái)的字符序列,必須包含在同括起來(lái)的字符序列,必須包含在同 一行中,不一行中,不能多行書寫。在表達(dá)式或賦值語(yǔ)句中作為操作數(shù)的字符串被看作能多行書寫。在表達(dá)式或賦值語(yǔ)句中作為操作數(shù)的字符串被看作ascii值序列,即一個(gè)字符串中的每一個(gè)字符對(duì)應(yīng)一個(gè)值序列,即一個(gè)字符串中的每一個(gè)字符對(duì)應(yīng)一個(gè)8位位ascii值。值。(5)標(biāo)識(shí)符)標(biāo)識(shí)符標(biāo)識(shí)符是模塊、寄存器、端口、連線、示例和標(biāo)識(shí)符是模塊、寄存器、端口、連線、示例和begin-end塊等元素的塊等元素的名稱,是賦給對(duì)象的唯一的名稱。標(biāo)識(shí)符可以是字母、數(shù)字、名稱,是賦給對(duì)象的唯一的名稱。

46、標(biāo)識(shí)符可以是字母、數(shù)字、$符和符和下劃線下劃線“_”字符的任意組合序列。字符的任意組合序列。定義標(biāo)識(shí)符規(guī)則:定義標(biāo)識(shí)符規(guī)則:首字符不能是數(shù)字,必須以字母或下劃線首字符不能是數(shù)字,必須以字母或下劃線“_”開頭。開頭。字符數(shù)不能多于字符數(shù)不能多于1024。標(biāo)識(shí)符區(qū)分大小寫。標(biāo)識(shí)符區(qū)分大小寫。不要與關(guān)鍵字同名。不要與關(guān)鍵字同名。例如例如 ina、inb、adder、adder8、name_adder是正確的,而是正確的,而1a ?b是錯(cuò)誤的。是錯(cuò)誤的。(6)關(guān)鍵字)關(guān)鍵字關(guān)鍵字是關(guān)鍵字是verilog hdl預(yù)先定義的專用詞。在預(yù)先定義的專用詞。在ieee標(biāo)準(zhǔn)標(biāo)準(zhǔn)verilog hdl 1364-1

47、995中規(guī)定了中規(guī)定了102個(gè)關(guān)鍵詞,都采用小寫形式。關(guān)鍵詞有個(gè)關(guān)鍵詞,都采用小寫形式。關(guān)鍵詞有其特定和專有的語(yǔ)法作用,用戶不能再對(duì)它們做新的定義。其特定和專有的語(yǔ)法作用,用戶不能再對(duì)它們做新的定義。關(guān)鍵字關(guān)鍵字alwaysandassignattributebeginbufbufif0bufif1casecasexcasezcmosdeassigndefaultdefparamdisableedgeelseendendattributeendcaseendfunctionendmoduleendprimitiveendspecifyendtableendtaskeventforforcefo

48、reverforkfunctionhighz0 highzlifinitialinoutinputintegerjoinlargemacromodulemediummodulenandnegedgenmosnornotnotif0 notifloroutputparameterpmosposedgeprimitivepull0pull1pulldownpulluprcmosrealrealtimeregreleaserepeat rtraniflscalaredsignedsmallspecifyspecpramstrengthstrong0strong1supply0supply1table

49、tasktimetrantranif0tranif1 tritri0tri1triandtriortritegunsignedvectoredwaitwandweak0weak1whilewireworxnorxor (7)變量)變量變量是在程序運(yùn)行時(shí)其值可以改變的量。在變量是在程序運(yùn)行時(shí)其值可以改變的量。在verilog hdl中,變量分為網(wǎng)中,變量分為網(wǎng)絡(luò)型(絡(luò)型(nets type)和寄存器型()和寄存器型(register type)兩種。)兩種。 網(wǎng)絡(luò)型變量網(wǎng)絡(luò)型變量nets型變量是輸出值始終根據(jù)輸入變化而更新的變量,一般用來(lái)定義硬型變量是輸出值始終根據(jù)輸入變化而更新的變量,一般用來(lái)

50、定義硬件電路中的各種物理連線。件電路中的各種物理連線。verilog hdl提供了多種提供了多種nets型變量。型變量。常見(jiàn)的常見(jiàn)的nets型變量及說(shuō)明型變量及說(shuō)明類型類型功能說(shuō)明功能說(shuō)明wire、 tri連線類型(兩者功能完全相同)連線類型(兩者功能完全相同)wor、 trior具有線或特性的連線(兩者功能一致)具有線或特性的連線(兩者功能一致)wand、 triand具有線與特性的連線(兩者功能一致)具有線與特性的連線(兩者功能一致)tri1、 tri0分別為上拉電阻和下拉電阻分別為上拉電阻和下拉電阻supply1、 supply0分別為電源(邏輯分別為電源(邏輯1)和地(邏輯)和地(邏輯

51、0)s1s2s3 寄存器型變量寄存器型變量register型變量是用來(lái)描述硬件系統(tǒng)的基本數(shù)據(jù)對(duì)象。作為一種數(shù)值容型變量是用來(lái)描述硬件系統(tǒng)的基本數(shù)據(jù)對(duì)象。作為一種數(shù)值容器,可以容納當(dāng)前值,也可以保持歷史值。與寄存器的記憶功能相對(duì)應(yīng),器,可以容納當(dāng)前值,也可以保持歷史值。與寄存器的記憶功能相對(duì)應(yīng),可以作為模塊各器件間的信息傳遞通道??梢宰鳛槟K各器件間的信息傳遞通道。register型變量與型變量與wire型變量的區(qū)別在于型變量的區(qū)別在于register型變量需要被明確的型變量需要被明確的賦值,賦值, 并且在重新賦值前一直保持原值。并且在重新賦值前一直保持原值。register型變量是在型變量是在

52、always、initial等過(guò)程語(yǔ)句種定義,并通過(guò)過(guò)程語(yǔ)句賦值。等過(guò)程語(yǔ)句種定義,并通過(guò)過(guò)程語(yǔ)句賦值。常見(jiàn)的常見(jiàn)的register型變量及說(shuō)明型變量及說(shuō)明類型類型功能說(shuō)明功能說(shuō)明reg常用的寄存器型變量常用的寄存器型變量integer32位帶符號(hào)整數(shù)型變量位帶符號(hào)整數(shù)型變量real64位帶符號(hào)實(shí)數(shù)型變量位帶符號(hào)實(shí)數(shù)型變量time無(wú)符號(hào)時(shí)間型變量無(wú)符號(hào)時(shí)間型變量2.3 verilog hdl的語(yǔ)句的語(yǔ)句verilog hdl的語(yǔ)句包括賦值語(yǔ)句、條件語(yǔ)句、循環(huán)語(yǔ)句、結(jié)構(gòu)聲明語(yǔ)的語(yǔ)句包括賦值語(yǔ)句、條件語(yǔ)句、循環(huán)語(yǔ)句、結(jié)構(gòu)聲明語(yǔ)句和編譯預(yù)處理語(yǔ)句等類型,每一類語(yǔ)句又包括幾種不同的語(yǔ)句。在這句和編譯預(yù)

53、處理語(yǔ)句等類型,每一類語(yǔ)句又包括幾種不同的語(yǔ)句。在這些語(yǔ)句中,有些語(yǔ)句屬于順序執(zhí)行語(yǔ)句,有些語(yǔ)句屬于并行執(zhí)行語(yǔ)句。些語(yǔ)句中,有些語(yǔ)句屬于順序執(zhí)行語(yǔ)句,有些語(yǔ)句屬于并行執(zhí)行語(yǔ)句。(1)賦值語(yǔ)句)賦值語(yǔ)句在在verilog hdl中,賦值語(yǔ)句常用于描述硬件設(shè)計(jì)電路輸出與輸入之間中,賦值語(yǔ)句常用于描述硬件設(shè)計(jì)電路輸出與輸入之間的信息傳送,改變輸出結(jié)果。的信息傳送,改變輸出結(jié)果。verilog hdl有有4種賦值方法:門基元、連種賦值方法:門基元、連續(xù)賦值、過(guò)程賦值和非阻塞賦值。續(xù)賦值、過(guò)程賦值和非阻塞賦值。門基元賦值語(yǔ)句門基元賦值語(yǔ)句門基元賦值語(yǔ)句的格式為:門基元賦值語(yǔ)句的格式為:基本邏輯門關(guān)鍵字基

54、本邏輯門關(guān)鍵字 (門輸出,門輸入(門輸出,門輸入1,門輸入,門輸入2,門輸入,門輸入n););例如例如 4輸入與非門的門基元賦值語(yǔ)句為輸入與非門的門基元賦值語(yǔ)句為 nand (y,a,b,c,d); /與語(yǔ)句與語(yǔ)句assign y=(a&b&c&d)等效等效 連續(xù)賦值語(yǔ)句連續(xù)賦值語(yǔ)句連續(xù)賦值語(yǔ)句的關(guān)鍵字連續(xù)賦值語(yǔ)句的關(guān)鍵字assign,賦值符號(hào)是,賦值符號(hào)是“=”,賦值語(yǔ)句的格式為,賦值語(yǔ)句的格式為 assign 賦值變量賦值變量=表達(dá)式;表達(dá)式;例如例如 assign y=(a&b&c&d);連續(xù)賦值語(yǔ)句的連續(xù)賦值語(yǔ)句的“=”兩邊的變量都應(yīng)該是

55、兩邊的變量都應(yīng)該是wire型變量。在執(zhí)行中,輸出型變量。在執(zhí)行中,輸出y的變化跟隨輸入的變化跟隨輸入a、b、c、d的變化而變化,反映了信息傳送的連續(xù)性。的變化而變化,反映了信息傳送的連續(xù)性。連續(xù)賦值語(yǔ)句用于邏輯門和組合邏輯電路的描述。連續(xù)賦值語(yǔ)句用于邏輯門和組合邏輯電路的描述。例例1 四輸入端與非門的四輸入端與非門的verilog hdl源程序源程序 module example1(y,a,b,c,d); output y; input a,b,c,d; assign #1 y=(a&b&c&d); /#1表示輸出與輸入信號(hào)之間具有表示輸出與輸入信號(hào)之間具有1個(gè)單位的時(shí)

56、間延遲個(gè)單位的時(shí)間延遲 endmodule 過(guò)程賦值語(yǔ)句過(guò)程賦值語(yǔ)句過(guò)程賦值語(yǔ)句出現(xiàn)在過(guò)程賦值語(yǔ)句出現(xiàn)在initial和和always塊語(yǔ)句中,賦值符號(hào)是塊語(yǔ)句中,賦值符號(hào)是“=”,語(yǔ)句格式為:,語(yǔ)句格式為: 賦值變量賦值變量=表達(dá)式;表達(dá)式;過(guò)程賦值語(yǔ)句過(guò)程賦值語(yǔ)句“=”左邊的賦值變量必須是(寄存器)左邊的賦值變量必須是(寄存器)reg型型變量,其值在該語(yǔ)句結(jié)束時(shí)即可得到。變量,其值在該語(yǔ)句結(jié)束時(shí)即可得到。如果一個(gè)塊語(yǔ)句中包含若干條過(guò)程賦值語(yǔ)句,按順序一條一如果一個(gè)塊語(yǔ)句中包含若干條過(guò)程賦值語(yǔ)句,按順序一條一條執(zhí)行,前面的語(yǔ)句沒(méi)完成,后面的語(yǔ)句就不能執(zhí)行。條執(zhí)行,前面的語(yǔ)句沒(méi)完成,后面的語(yǔ)句

57、就不能執(zhí)行。因此,過(guò)程賦值語(yǔ)句也稱為阻塞賦值語(yǔ)句。因此,過(guò)程賦值語(yǔ)句也稱為阻塞賦值語(yǔ)句。 非阻塞賦值語(yǔ)句非阻塞賦值語(yǔ)句非阻塞賦值語(yǔ)句也是出現(xiàn)在非阻塞賦值語(yǔ)句也是出現(xiàn)在initial和和always塊語(yǔ)句中,賦值符號(hào)是塊語(yǔ)句中,賦值符號(hào)是“=”,語(yǔ),語(yǔ)句格式為:句格式為: 賦值變量賦值變量=表達(dá)式;表達(dá)式;非阻塞賦值語(yǔ)句非阻塞賦值語(yǔ)句“=”左邊的賦值變量必須是(寄存器)左邊的賦值變量必須是(寄存器)reg型變量,其值在型變量,其值在塊語(yǔ)句結(jié)束時(shí)才可得到,與過(guò)程賦值語(yǔ)句不同。塊語(yǔ)句結(jié)束時(shí)才可得到,與過(guò)程賦值語(yǔ)句不同。例如例如 下面的塊語(yǔ)句包含下面的塊語(yǔ)句包含4條賦值語(yǔ)句條賦值語(yǔ)句 always (

58、posedge clock) m=3; n=75; n=m; r=n;語(yǔ)句執(zhí)行結(jié)束后,語(yǔ)句執(zhí)行結(jié)束后,r的值是的值是75,而不是,而不是3,因?yàn)榈?,因?yàn)榈?行是非阻塞賦值語(yǔ)句行是非阻塞賦值語(yǔ)句“n=m”,該語(yǔ)句要等到本塊語(yǔ)句結(jié)束時(shí),該語(yǔ)句要等到本塊語(yǔ)句結(jié)束時(shí),n的值才能改變。的值才能改變。塊語(yǔ)句的塊語(yǔ)句的“(posedge clock)”是定時(shí)控制敏感函數(shù),表示時(shí)鐘信號(hào)是定時(shí)控制敏感函數(shù),表示時(shí)鐘信號(hào)clock的的上升沿到來(lái)的敏感時(shí)刻。上升沿到來(lái)的敏感時(shí)刻。例例2 上升沿觸發(fā)的上升沿觸發(fā)的d觸發(fā)器的觸發(fā)器的verilog hdl源程序源程序 module d_ff(q,d,clock); in

59、put d,clock; /屬于屬于wire型變量,由隱含規(guī)則定義。型變量,由隱含規(guī)則定義。 output q; /屬于屬于reg型變量型變量 reg q; always (posedge clock) q=d; endmodule (2)條件語(yǔ)句)條件語(yǔ)句條件語(yǔ)句包含條件語(yǔ)句包含if語(yǔ)句和語(yǔ)句和case語(yǔ)句,它們都是順序語(yǔ)句,應(yīng)放在語(yǔ)句,它們都是順序語(yǔ)句,應(yīng)放在always塊中。塊中。 if語(yǔ)句語(yǔ)句完整的完整的verilog hdl的的if語(yǔ)句結(jié)構(gòu)如下:語(yǔ)句結(jié)構(gòu)如下: if(表達(dá)式)(表達(dá)式) begin 語(yǔ)句;語(yǔ)句; end else if(表達(dá)式)(表達(dá)式) begin 語(yǔ)句;語(yǔ)句; e

60、nd else begin 語(yǔ)句;語(yǔ)句; end在在if語(yǔ)句中,語(yǔ)句中,“表達(dá)式表達(dá)式”是邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是位寬為是邏輯表達(dá)式或關(guān)系表達(dá)式,也可以是位寬為1位的位的變量。變量。系統(tǒng)對(duì)表達(dá)式的值進(jìn)行判斷,系統(tǒng)對(duì)表達(dá)式的值進(jìn)行判斷, 若為若為0,x,z按按“假假”處理;若為處理;若為1,按,按“真真”處理,執(zhí)行指定的語(yǔ)句。處理,執(zhí)行指定的語(yǔ)句。 例例3 8線線-3線優(yōu)先編碼器的設(shè)計(jì)線優(yōu)先編碼器的設(shè)計(jì)8線線-3線優(yōu)先編碼器的功能表線優(yōu)先編碼器的功能表 module code(y,a); input7:0 a; output2:0 y; reg2:0 y; always (a) begin if(a7) y=3b111; else if(a6) y=3b110; else if(a5) y=3

溫馨提示

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

評(píng)論

0/150

提交評(píng)論