秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

電路計算機輔助設計課件優(yōu)秀課件

上傳人:痛*** 文檔編號:253120802 上傳時間:2024-11-29 格式:PPT 頁數:105 大?。?.36MB
收藏 版權申訴 舉報 下載
電路計算機輔助設計課件優(yōu)秀課件_第1頁
第1頁 / 共105頁
電路計算機輔助設計課件優(yōu)秀課件_第2頁
第2頁 / 共105頁
電路計算機輔助設計課件優(yōu)秀課件_第3頁
第3頁 / 共105頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《電路計算機輔助設計課件優(yōu)秀課件》由會員分享,可在線閱讀,更多相關《電路計算機輔助設計課件優(yōu)秀課件(105頁珍藏版)》請在裝配圖網上搜索。

1、單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,電路計算機輔助設計課件,,,教學內容與要求,第,1,章,,EDA,技術簡介,,,第,2,章,Verilog HDL,語言編程,(,10,學時),,,第,3,章,VHDL,語言編程,(,4,學時),,,第,4,章,MATLAB,程序入門,(,12,學時),,,第,5,章,MATLAB,在電路中的應用,(,4,學時),,每章有實驗室上機實驗,,, EDA,技術的主要內容,,1.2 EDA,軟件系統的構成,,1.3 EDA,的工程設計流程,,1.4,數字系統的設計方法,,第,2,章,Verilog

2、 HDL,語言編程,,2.1 Verilog HDL,設計模塊的基本結構,,2.2 Verilog HDL,詞法構成,,2.3 Verilog HDL,的語句,,2.4 Verilog HDL,模型,,2.5 Verilog HDL,設計電路流程,,2.6,用,Verilog HDL,描述邏輯電路的實例,,第,3,章,VHDL,語言編程基礎,,3.1,概述,,3.2 VHDL,程序基本結構,,3.3 VHDL,語言要素,,3.4 VHDL,順序語句,,3.5 VHDL,并行語句,,3.6,子程序,(SUBPROGRAM),,3.7,庫、程序包及其他,,3.8 VHDL,描述風格,,3.

3、9,基本邏輯電路設計,,3.10,狀態(tài)機的,VHDL,設計,,,,第,4,章,MATLAB,程序入門,,4.1,基本語法,,4.1.1,變量及其賦值,,4.4.2,矩陣的初等運算,,4.1.3,元素群運算,,4.1.4,邏輯判斷及流程控制,,4.2,基本繪圖方法,,4.2.1 M,文件及程序調試,,4.2.2 MATLAB,的開發(fā)環(huán)境和工具,,第,5,章,MATLAB,在電路中的應用,,5.1,電阻電路和動態(tài)電路,,5.2,正弦穩(wěn)態(tài)電路和頻率響應,,5.3,二端口電路,,5.4,濾波器,第,1,章,EDA,技術簡介,,,1.1 EDA,技術的主要內容,,EDA,是電子設計自動化(,Electr

4、onic Design Automation,)的縮寫。,,,EDA,技術就是以計算機為工具,設計者在,EDA,軟件平臺上,用,硬件描述語言,HDL,完成設計,文件,然后由計算機自動地完成邏輯,編譯,、化簡、分割、綜合、優(yōu)化、布局、布線和,仿真,,直至對于特定目標芯片的,適配編譯,、邏輯映射和,編程下載,等工作。,,EDA,技術的出現,極大地提高了電路設計的效率和可靠性,減輕了設計者的勞動強度。,,在電子技術設計領域,,可編程邏輯器件,(如,CPLD,、,FPGA,)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。,,CPLD,、,FPGA,器件可以通過,軟件編程,而對硬

5、件結構和工作方式進行,重構,,從而使得硬件的設計可以如同軟件設計那樣方便快捷。促進了,EDA,技術的迅速發(fā)展。,EDA,技術涉及面廣,內容豐富,主要應掌握如下四個方面的內容:,,① 大規(guī)??删幊踢壿嬈骷?,大規(guī)??删幊踢壿嬈骷抢?EDA,技術進行電子系統設計的載體。,FPGA,和,CPLD,,②,硬件描述語言,硬件描述語言是利用,EDA,技術進行電子系統設計的主要表達手段。,VHDL,、,Verilog,、,ABEL,,③,軟件開發(fā)工具,軟件開發(fā)工具是利用,EDA,技術進行電子系統設計的智能化的自動化設計工具。,,Altera,的,MAX+plus II,、,Lattice,的,ispEXP

6、ERT,、,Xilinx,的,Foundation Series,。,,④ 實驗開發(fā)系統,實驗開發(fā)系統則是利用,EDA,技術進行電子系統設計的下載工具及硬件驗證工具。,1,大規(guī)??删幊踢壿嬈骷?,,可編程邏輯器件,(,簡稱,PLD),是一種由用戶編程以實現某種邏輯功能的新型邏輯器件。,,FPGA,是現場可編程門陣列的簡稱,,,CPLD,是復雜可編程邏輯器件的簡稱。,,高集成度、高速度和高可靠性是,FPGA/CPLD,最明顯的特點,其時鐘延時可小至,ns,級,結合其并行工作方式,在超高速應用領域和實時測控方面有著非常廣闊的應用前景。,,FPGA/CPLD,的高可靠性還表現在幾乎可將整個系統下載于

7、同一芯片中,實現所謂片上系統,從而大大縮小了體積,易于管理和屏蔽。,2,硬件描述語言,(HDL),,,常用的硬件描述語言有,VHDL,、,Verilog,、,ABEL,。,,,VHDL,:作為,IEEE,的工業(yè)標準硬件描述語言,在電子工程領域,已成為事實上的通用硬件描述語言。,,,Verilog,:支持的,EDA,工具較多,適用于,RTL,級(,寄存器轉換級),和門電路級的描述,其綜合過程較,VHDL,稍簡單,但其在高級描述方面不如,VHDL,。,,有專家認為,在新世紀中,,VHDL,與,Verilog,語言將承擔幾乎全部的數字系統設計任務。,3,軟件開發(fā)工具,,目前比較流行的、主流廠家的,E

8、DA,的軟件工具有:,,Altera,的,MAX+plus II,、升級版,Quartus II;,,Lattice,的,ispEXPERT,;,,Xilinx,的,Foundation Series,。,,,MAX+plus II,是,Altera,公司開發(fā)的,EDA,工具軟件。,Altera,公司是世界上最大的可編程邏輯器件供應商之一。,MAX+plus II,軟件是一個集成化的可編程邏輯器件開發(fā)環(huán)境,設計者能在這個環(huán)境下進行邏輯設計,完成設計文件的輸入編輯、編譯、仿真、綜合、布局布線和編程下載等設計工作。軟件界面友好、方便易學、功能全面,是非常流行的大眾化,EDA,平臺。,MAX+plu

9、s II,:支持原理圖、,VHDL,和,Verilog,語言文本文件,以及以波形與,EDIF,等格式的文件作為設計輸入,并支持這些文件的任意混合設計。,,它具有門級仿真器,可以進行功能仿真和時序仿真,能夠產生精確的仿真結果。,,在適配之后,,MAX+plus II,生成供時序仿真用的,EDIF,、,VHDL,和,Verilog,這三種不同格式的網表文件。,,它界面友好,使用便捷,被譽為業(yè)界最易學易用的,EDA,的軟件 ,并支持主流的第三方,EDA,工具,支持所有,Altera,公司的,FPGA/CPLD,大規(guī)模邏輯器件。,4,實驗開發(fā)系統,,提供芯片下載電路及,EDA,實驗,/,開發(fā)的外圍資源

10、,(,類似于用于單片機開發(fā)的仿真器,),,供硬件驗證用。一般包括:,,① 實驗或開發(fā)所需的各類基本信號發(fā)生模塊,包括時鐘、脈沖、高低電平等;,,②,FPGA/CPLD,輸出信息顯示模塊,包括數碼顯示、發(fā)光管顯示、聲響指示等;,,③ 監(jiān)控程序模塊,提供“電路重構軟配置”;,,④ 目標芯片適配座以及上面的,FPGA/CPLD,目標芯片和編程下載電路。,自己閱讀,1.2 EDA,軟件系統的構成,,EDA,技術研究的對象是電子設計的全過程,有系統級、電路級和物理級,3,個層次的設計。,,涉及的電子系統從低頻、高頻到微波,從線性到非線性,從模擬到數字,從通用集成電路到專用集成電路構造的電子系統,因此,E

11、DA,技術研究的范疇相當廣泛。,,EDA,軟件系統應當包含以下子模塊:,,設計輸入子模塊、,,設計數據庫子模塊、,,分析驗證子模塊、,,綜合仿真子模塊、,,布局布線子模塊等。,自己閱讀,(1),設計輸入子模塊;用戶編輯輸入模塊的設計描述,并進行語義正確性、語法規(guī)則的檢查,檢查通過后,將用戶的設計描述數據轉換為,EDA,軟件系統的內部數據格式,存入設計數據庫被其他子模塊調用。,,設計輸入子模塊不僅能接受圖形描述輸入、硬件描述語言,(HDL),描述輸入,還能接受圖文混合描述輸入。,,該子模塊一般包含針對不同描述方式的編輯器,如圖形編輯器、文本編輯器等,同時包含對應的分析器。,自己閱讀,(2),設計

12、數據庫子模塊:該模塊存放系統提供的庫單元以及用戶的設計描述和中間設計結果。,,,(3),分析驗證子模塊:該模塊包括各個層次的模擬驗證、設計規(guī)則的檢查、故障診斷等。,,,(4),綜合仿真子模塊:該模塊包括各個層次的綜合工具,理想的情況是:從高層次到低層次的綜合仿真全部由,EDA,工具自動實現。,,,(5),布局布線子模塊:該模塊實現由邏輯設計到物理實現的映射,因此與物理實現的方式密切相關。例如,最終的物理實現可以是門陣列、可編程邏輯器件等,由于對應的器件不同,因此各自的布局布線工具會有很大的差異。,,自己閱讀,1.3 EDA,的工程設計流程,,1,源程序的編輯和編譯,,,利用,EDA,技術進行一

13、項工程設計,首先需利用,EDA,工具的文本編輯器或圖形編輯器將它用文本方式或圖形方式表達出來,進行排錯編譯,變成,Verilog,、,VHDL,文件格式,為進一步的邏輯綜合作準備。,,常用的源程序輸入方式有三種。,,,(1),原理圖輸入方式:利用,EDA,工具提供的圖形編輯器以原理圖的方式進行輸入。原理圖輸入方式比較容易掌握,直觀且方便,所畫的電路原理圖與傳統的器件連接方式完全一樣,很容易被人接受,而且編輯器中有許多現成的單元器件可以利用,自己也可以根據需要設計元件。,,(2),狀態(tài)圖輸入方式,:以圖形的方式表示狀態(tài)圖進行輸入。當填好時鐘信號名、狀態(tài)轉換條件、狀態(tài)機類型等要素后,就可以自動生成

14、,VHDL,程序。這種設計方式簡化了狀態(tài)機的設計,比較流行。,,,(3) Verilog,、,VHDL,軟件程序的文本方式,:最一般化、最具普遍性的輸入方法,任何支持,VHDL,的,EDA,工具都支持文本方式的編輯和編譯。,2,邏輯綜合和優(yōu)化,,將,VHDL,的軟件設計與硬件的可實現性掛鉤,需要利用,EDA,軟件系統的綜合器進行邏輯綜合。,,綜合器的功能就是將設計者在,EDA,平臺上完成的針對某個系統項目的,HDL,、原理圖或狀態(tài)圖形的描述,針對給定硬件結構組件進行編譯、優(yōu)化、轉換和綜合,最終獲得門級電路甚至更底層的電路描述文件。,,綜合器工作前,必須給定最后實現的硬件結構參數,它的功能就是將

15、軟件描述與給定硬件結構用某種網表文件的方式聯系起來。,,綜合器是軟件描述與硬件實現的一座橋梁。綜合過程就是將電路的高級語言描述轉換成低級的,可與,FPGA/CPLD,或構成,ASIC,的門陣列基本結構相映射的網表文件。,自己閱讀,1.4,數字系統的設計方法,,數字系統設計有多種方法,如模塊設計法、自頂向下設計法和自底向上設計法等。,,數字系統的設計一般采用自頂向下、由粗到細、逐步求精的方法。,,自頂向下是指將數字系統的整體逐步分解為各個子系統和模塊,若子系統規(guī)模較大,則還需將子系統進一步分解為更小的子系統和模塊,層層分解,直至整個系統中各子系統關系合理,并便于邏輯電路級的設計和實現為止。,,采

16、用該方法設計時,高層設計進行功能和接口描述,說明模塊的功能和接口,模塊功能的更詳細的描述在下一設計層次說明,最底層的設計才涉及具體的寄存器和邏輯門電路等實現方式的描述。,,采用自頂向下的設計方法有如下優(yōu)點,:,,(1),自頂向下設計方法是一種模塊化設計方法。對設計的描述從上到下逐步由粗略到詳細,符合常規(guī)的邏輯思維習慣。由于高層設計同器件無關,設計易于在各種集成電路工藝或可編程器件之間移植。,,,(2),適合多個設計者同時進行設計。隨著技術的不斷進步,許多設計由一個設計者已無法完成,必須經過多個設計者分工協作完成一項設計的情況越來越多。在這種情況下,應用自頂向下的設計方法便于由多個設計者同時進行

17、設計,對設計任務進行合理分配,用系統工程的方法對設計進行管理。,,針對具體的設計,實施自頂向下的設計方法的形式會有所不同,但均需遵循以下兩條原則:逐層分解功能,分層次進行設計。同時,應在各個設計層次上,考慮相應的仿真驗證問題。,自己閱讀,第,2,章,Verilog HDL,語言,,,2.1 Verilog HDL,設計模塊的基本結構,,Verilog HDL,程序設計由模塊,(module),構成的, 設計模塊的基本結構如圖,一個完整的,Verilog HDL,設計模塊包括端口定義、,I/O,聲明、信號類型聲明和功能描述,4,個部分。,,,一、模塊端口的定義,,模塊端口定義用來聲明電路設計模塊

18、,,的輸入,/,輸出端口,端口定義格式如下:,,,module,模塊名 (端口,1,,端口,2,,端口,3,,,…,);,,在端口定義的括號中,是設計電路模塊與外界聯系的全部輸入,/,輸出端口信號或引腳,是設計實體對外的一個通信界面,是外界可以看到的部分(不包含電源和接地端),多個端口之間用“,”分隔。例如,1,位全加器,adder,模塊的端口定義為,,module adder (sum, cout, ina, inb, cin),; 模塊名,adder,,二、模塊內容,,模塊內容包括,I/O,聲明、信號類型聲明和功能描述。,,(,1,)模塊的,I/O,聲明,,模塊的,I/O,聲明用來聲明模

19、塊端口定義中各端口數據流動方向,包括輸入,(input),、輸出,(output),和雙向,(inout),。,I/O,聲明格式如下:,,,input,端口,1,,端口,2,,端口,3,,,…,;,//,聲明輸入端口,,,output,端口,1,,端口,2,,端口,3,,,…,;,//,聲明輸出端口,,例如,,1,位全加器的,I/O,聲明為,,,input ina, inb, cin;,,output sum, cout;,,(,2,)信號類型聲明,,信號類型聲明是聲明設計電路的功能描述中所用的信號的數據類型和函數。信號的數據類型主要有連線(,wire,)、寄存器(,reg,)、整型(,i

20、nteger,)、實型(,real,)、和時間(,time,)等。,,(,3,)功能描述,,功能描述是,Verilog HDL,程序設計中最主要的部分,用來描述設計模塊的內部結構和模塊端口間的邏輯關系,在電路上相當于器件的內部電路結構。功能描述可以用,assign,語句、元件例化(,instantiate,)方式、,always,塊語句、,initial,塊語句等方法來實現,通常將設計模塊描述的方法稱為建模。,,,①,用,assign,語句建模,,,用,assign,語句建模的方法很簡單,只需要在“,assign”,后面再加一個表達式。,Assign,語句一般適合對組合邏輯進行賦值,稱為連續(xù)賦

21、值方式。,,例,1,一位全加器的設計,,,,,1,位全加器的邏輯符號:,,sum,是全加器的和輸出端,,,cout,是進位輸出端,,ina,和,inb,是兩個加數輸入端,,,cin,是低位進位輸入端。,全加器的,Verilog HDL,源程序如下:,,,module,adder1 (sum, cout, ina, inb, cin);,,input ina, inb, cin;,,output sum, cout;,,,assign {cout, sum} = ina+inb+cin,;,,,endmodule,,“assign {cout, sum} = ina+inb+cin

22、;”,語句實現,1,位全加器的進位輸出,cout,與和輸出,sum,的建模。,,在語句表達式中,用拼接運算符“,{},”,將,cout,、,sum,這兩個,1,位操作數拼接為一個,2,位操作數。,,②,用元件例化(,instantiate,)方式建模,,元件例化方式建模是利用,Verilog HDL,提供的元件庫實現的。例如,用與門例化元件定義一個三輸入端與門可以寫為,,and myand3(y,a,b,c);,and,是,Verilog HDL,元件庫中與門元件名,,myand3,是例化出的三輸入端與門名,,y,是與門輸出端,,a,、,b,、,c,是輸入端。,,③用,always,塊語句建

23、模,,,always,塊語句可以產生各種邏輯,常用于時序邏輯的功能描述。一個程序設計模塊中,可以包含一個或多個,always,語句。程序運行中,在某種條件滿足時,就重復執(zhí)行一遍,always,結構中的語句。,,例,2 8,位二進制加法計數器的設計,,8,位二進制加法計數器的邏輯符號如圖。,,OUT,是,8,位二進制計數器的輸出端(,8,位向量);,,COUT,是進位輸出端(,1,位);,,DATA,是并行數據輸入端(,8,位向量);,,LOAD,是計數器的預置控制輸入端,,,當,LOAD=1,時,,OUT=DATA,;,,CLK,是時鐘控制輸入端,上升沿為有效邊沿;,,CLR,是同步復位輸入

24、端,當,CLK,的上升沿到來時且,CLR=1,,則計數器被復位,,OUT=00000000,。,(邏輯符號圖是由計算機對計數器電路的,Verilog HDL,源代碼編譯后產生的元件符號,圖中的輸入,/,輸出標識符自動被改為大寫,而源程序中的標識符都是小寫。),,8,位二進制加法計數器的,Verilog HDL,源程序如下:,,,module,cnt8 (out, cout,data,load,cin,clk, clr);,,input [7:0] data;,,input load, cin, clk, clr,,output [7:0] out;,,output cout;,,reg

25、 [7:0] out;,,always @(posedge clk),,begin,,if (load) out=data;,,else if(clr) out=’b00000000;,,else out=out+1;,,end,,assign cout = ,,endmodule,,用,always,塊語句實現,8,位二進制加法計數器的建模。,@(posedge clk),是時間控制敏感函數,表示,clk,上升沿到來的敏感時刻。每當,clk,的上升沿到來時,,always,塊語句中的全部語句就執(zhí)行一遍?!?assign cout = ”,語句產生進位輸出,cout,,在語句

26、中“,&out”,是與的縮減運算式,只有,out,中數字全為,1,時,結果才為,1,。,④,用,initial,塊語句建模,,Initial,塊語句與,always,語句類似,不過在程序中它只執(zhí)行,1,次就結束了。,,Initial,塊語句的使用格式 :,,,Initial,,,Begin,,,語句,1;,,,語句,2;,,:,,,end,,例,3,用,Initial,過程語句對測試變量賦值,,,,initial,,,begin,,for(addr=0; addr

27、end,,,從以上例子中可以看出,,,Verilog HDL,程序設計模塊的,基本結構,:,,①,Verilog HDL,程序是由模塊構成的。每個模塊的內容都是嵌套在,module,和,endmodule,兩語句之間,每個模塊實現特定的功能,模塊是可以進行層次嵌套的。,,②每個模塊首先要進行端口定義,并聲明輸入(,input,)、輸出(,output,)或雙向(,inouts,),然后對模塊的功能進行邏輯描述。,,③,Verilog HDL,程序的書寫格式自由,一行可以有一條或多條語句,一條語句也可以分為多行寫。,,④除了,end,或以,end,開頭的關鍵字(如,endmodule,)語句外,

28、每條語句后必須要有分號“;”。,,⑤可以用,/*……*/,或,//……,對,Verilog HDL,程序的任何部分注釋。一個完整的源程序都應當加上必要的注釋,以加強程序的可讀性。,,2.2 Verilog HDL,詞法構成,,Verilog HDL,的詞法標識符包括:間隔符與注釋符、操作符、數值常量、字符串、標識符和關鍵字。,,,(,1,)間隔符與注釋符,,間隔符又稱空白符,包括空格符、,tab,符號、換行符及換頁符等。它們的作用是分隔其他詞法標識符。在必要的地方插入間隔符可以增強源文件的可讀性。但在字符串中空格符和,tab,符號(制表符)是有意義的字符。,,Verilog HDL,有單行注釋

29、和多行段注釋兩種注釋形式。單行注釋以字符“,//”,起始,到本行結束;而段注釋則以“,/*”,起始以“*,/”,結束,在段注釋中不允許嵌套,段注釋中單行注釋標識符“,//”,沒有任何特殊意義。,,,(,2,)操作符,,Verilog HDL,中定義了操作符,又稱運算符,按照操作數的個數,可以分為一元、二元和三元操作符;按功能可以大致分為算術操作符、邏輯操作符、比較操作符等幾大類。,表,1 Verilog HDL,的操作符及簡要說明,分類,操作符及功能,簡要說明,算術操作符,+,,加,,-,,,減,,*,,乘,,/,,除,,%,,整除,二元操作符,即有兩個操作數。操作數可以是物理數據類型,也可

30、以是抽象數據類型。,,%,是求余操作符,在兩個整數相除基礎上,取余數。,,例如,,5%6,的值是,5,;,13%5,余數,3,。,,關系操作符,>,,大于,,<,,小于,,>=,,大于等于,,<=,,小于等于,,==,,相等,,!=,,不相等,,===,,全等,,!==,,非全等,關系運算是二元操作符,關系運算的結果是,1,位邏輯值。如果操作數之間的關系成立,返回值為,1,;關系不成立,則返回值為,0,。,,若某一個操作數的值不定,則關系是模糊的,返回值是不定值,X,。,,,,相等與全等操作符的區(qū)別:相等運算兩個操作數必須逐位相等,不定態(tài)和高阻態(tài)的比較結果為不定值。全等運算要求兩個操作數完全一

31、致,。,,例如:,A=8’b1101xx01 B=8’b1101xx01,,則,A= =B,運算結果為,x,(未知);,,A= = =B,運算結果為,1,(真)。,位操作符,,~,,按位非,,&,,按位與,,|,按位或,,^,,按位異或,,^ ~ (~ ^),,按位同或,位運算是將兩個操作數按對應位進行邏輯操作。,,“,~”,是一元操作符,其余都是二元操作符。將操作數按位進行邏輯運算。,,,例如:,A=8’b11010001 ~A=8’B00101110,,B=8’b00011001 A&B=8b’00010001,分類,操作符及功能,簡要說明,邏輯操作符,&&,邏輯與,,||,

32、,邏輯或,,!,,邏輯非,&&,和,||,為二元操作符;,,,!為一元操作符,即只有一個操作數。,縮減操作符,&,,歸約與,,~&,,歸約與非,,|,,歸約或,,~|,,歸約或非,,^,,歸約異或,,~ ^ (^ ~),,歸約同或,一元操作符,對操作數各位的值進行運算。如“,&”,是對操作數各位的值進行邏輯與運算,得到一個一位的結果值,1,或,0,。,,例如:,A=8’b11010001,,則,&A=0,與縮減運算,A,中的數字全為,1,時,結果才為,1,。,,,|A=1,或縮減運算,A,中的數字全為,0,時,結果才為,0,。,分類,操作符及功能,簡要說明,移位操作符,>>,,右移,,<<,,

33、左移,二元操作符,對左側的操作數進行它右側操作數指明的位數的移位,空出的位用,0,補全。,,例如:設,A=8’b11010001,,,則,A>>4,,結果,A=8’b00001101,,而,A<<4,,結果,A=8’b00010000,。,條件操作符,?:,,操作數,=,條件?表達式,1,:表達式,2,;,,當條件為真(值為,1,)時,操作數,=,表達式,1,;,,為假(值為,0,)時,操作數,=,表達式,2,。,三元操作符,即條件操作符有三個操作數。,,,例如,a,?,b,:,c,,若條件操作數,a,是邏輯,1,,則算子返回表達式,1,操作數,b,;,,若,a,是邏輯,0,,則算子返回表達式

34、,2,操作數,c,。,并接操作符,{, },,,例如,{a,{2{a,b}}},,,等價于,{a,a,b,a,b},。,,,將,1,位全加器的進位,cout,和,sum,并接,表達式為,將兩個或兩個以上用逗號分隔的表達式按位連接在一起。還可以用常數來指定重復的次數。,,,,{cout,sum}=ina+inb+cin;,,同其他高級語言類似,各類操作符號之間有優(yōu)先級之分,如下表:,優(yōu)先級序號,操作符,操作符名稱,1,!,、,~,邏輯非、按位取反,2,*,、,/,、,%,乘、除、求余,3,+,、,-,加、減,4,<<,、,>>,左移、右移,5,<,、,<=,、,>,、,>=,小于、小于等于、大于

35、、大于等于,6,==,、,!=,、,===,、,!==,等于、不等于、全等、不全等,7,&,、,~&,,縮減與、縮減與非,8,^,、,^~,縮減異或、縮減同或,9,|,、,~ |,縮減或、縮減或非,10,&&,邏輯與,11,||,邏輯或,12,?,:,條件操作符,列表頂部是最高優(yōu)先級,底部是最低優(yōu)先級。列在同一行中的操作符具有相同的優(yōu)先級。所有操作符(?:除外)在表達式中都是從左向右結合的。圓括號()用于改變優(yōu)先級或使得表達式中運算順序更加清晰,提高源文件的可讀性。,,(,3,)數值常量,,,Verilog HDL,中的數值常量有整型和實型兩大類,分為十進制、十六進制、八進制或二進制。若在前面

36、加上一個正“,+”,或負“,—”,號就表示有符號數,否則所代表的就是無符號數。在數值常量的任意位置可以隨意插入下劃線“,_”,以提高可讀性。,,常量定義格式為:,,parameter,常量名,1=,表達式,常量名,2=,表達式,,…,,常量名,n=,表達式;,,parameter,是常量定義關鍵字,常量名是用戶定義的標識符,表達式為常量賦值。,,例如,parameter Vcc=5, fbus=8’b11010001;,,Verilog HDL,中的整型數值常量就是整數,有兩種書寫格式:一種是無位寬的十進制表示法,如,-132,。第二種是定義位寬和進制的表示法,這種表示方法通常是無符號數

37、。,,常數書寫格式是:,,[size]’base value,,其中,size,是位寬,定義了數值常量的位數(長度);,base,代表這個數據的進制,取值范圍和相應的進制如下表;,value,是一個數值常量的值,書寫格式與進制,base,相對應。,,例如,4’h6a8c,,,表示一個,4,位十六進制數。,,,2’hf5,,等于,8’b11110101,;,8’b1111xxxx,,等價,2’hfx,;,,,8’b1101zzzz,,等價,2’hdz,。,Verilog HDL,中的進制,base,進制代碼取值,對應的進制,b,或,B,二進制,o,或,O,八進制,d,或,D,十進制,h,或,H,

38、十六進制,,Verilog HDL,中的實型數值常量就是浮點數,可以用十進制與科學計數法兩種形式書寫。如果采用十進制格式,小數點兩邊必須都有數字。,,,Verilog HDL,的編程最終是與硬件相對應的。由于硬件電路中信號的邏輯狀態(tài)具有特殊性,即不僅有,0,(低電平)和,1,(高電平),還有可能是,X,(未知狀態(tài))和,Z,(高阻態(tài)),因此,Verilog HDL,數值集合有四個基本值:,,0,:邏輯,0,或假狀態(tài);,,1,:邏輯,1,或真狀態(tài);,,X,:邏輯不確定;,,Z,:高阻態(tài)。,(,4,)字符串,,字符串是雙引號“”括起來的字符序列,必須包含在同 一行中,不能多行書寫。在表達式或賦值語句

39、中作為操作數的字符串被看作,ASCII,值序列,即一個字符串中的每一個字符對應一個,8,位,ASCII,值。,,(,5,)標識符,,標識符是模塊、寄存器、端口、連線、示例和,begin-end,塊等元素的名稱,是賦給對象的唯一的名稱。標識符可以是字母、數字、,$,符和下劃線“,_”,字符的任意組合序列。,,定義標識符規(guī)則:,,①首字符不能是數字,必須以字母或下劃線“,_”,開頭。,,②字符數不能多于,1024,。,,③標識符區(qū)分大小寫。,,④不要與關鍵字同名。,,例如,ina,、,inb,、,adder,、,adder8,、,name_adder,是正確的,而,1a ?b,是錯誤的。,,(,6

40、,)關鍵字,,關鍵字是,Verilog HDL,預先定義的專用詞。在,IEEE,標準,——Verilog HDL 1364-1995,中規(guī)定了,102,個關鍵詞,都采用小寫形式。關鍵詞有其特定和專有的語法作用,用戶不能再對它們做新的定義。,關鍵字,,Alwaysand,,Assignattribute,,Begin,,Buf,,Bufif0,,Bufif1,,Case,,Casex,,Casez,,Cmos,,Deassign,,Defaultdefparam,,Disable,,edge,,else,,end,,endattribute,,endcase,,endfunction,,endm

41、odule,,endprimitive,,endspecify,,endtable,,endtask,,event,,for,,force,,forever,,fork,,function,,highz0,highzl,,if,,initial,,inout,,input,,integer,,join,,large,,macromodule,,medium,,module,,nand,,negedge,,nmos,,nor,,not,,notif0,notifl,,or,,output,,parameter,,pmos,,posedge,,primitive,,pull0,,pull1,,pu

42、lldown,,pullup,,rcmos,,real,,realtime,,reg,,release,,repeat,rtranifl,,scalared,,signed,,small,,specify,,specpram,,strength,,strong0,,strong1,,supply0,,supply1,,table,,task,,time,,tran,,tranif0,,tranif1,tri,,tri0,,tri1,,triand,,trior,,triteg,,unsigned,,vectored,,wait,,wand,,weak0,,weak1,,while,,wire,

43、,wor,,xnor,,xor,,(,7,)變量,,變量是在程序運行時其值可以改變的量。在,Verilog HDL,中,變量分為網絡型(,nets type,)和寄存器型(,register type,)兩種。,,①網絡型變量,,nets,型變量是輸出值始終根據輸入變化而更新的變量,一般用來定義硬件電路中的各種物理連線。,Verilog HDL,提供了多種,nets,型變量。,,常見的,nets,型變量及說明,,,類型,功能說明,wire,、,tri,連線類型(兩者功能完全相同),wor,、,trior,具有線或特性的連線(兩者功能一致),wand,、,triand,具有線與特性的連線(兩者功

44、能一致),tri1,、,tri0,分別為上拉電阻和下拉電阻,supply1,、,supply0,分別為電源(邏輯,1,)和地(邏輯,0,),s1,s2,s3,,②,寄存器型變量,,register,型變量是用來描述硬件系統的基本數據對象。作為一種數值容器,可以容納當前值,也可以保持歷史值。與寄存器的記憶功能相對應,可以作為模塊各器件間的信息傳遞通道。,,register,型變量與,wire,型變量的區(qū)別在于,register,型變量需要被明確的賦值, 并且在重新賦值前一直保持原值。,register,型變量是在,always,、,initial,等過程語句種定義,并通過過程語句賦值。,,常見的

45、,register,型變量及說明,,,類型,功能說明,reg,常用的寄存器型變量,integer,32,位帶符號整數型變量,real,64,位帶符號實數型變量,time,無符號時間型變量,2.3 Verilog HDL,的語句,,Verilog HDL,的語句包括賦值語句、條件語句、循環(huán)語句、結構聲明語句和編譯預處理語句等類型,每一類語句又包括幾種不同的語句。在這些語句中,有些語句屬于順序執(zhí)行語句,有些語句屬于并行執(zhí)行語句。,,(,1,)賦值語句,,在,Verilog HDL,中,賦值語句常用于描述硬件設計電路輸出與輸入之間的信息傳送,改變輸出結果。,Verilog HDL,有,4,種賦值方法

46、:門基元、連續(xù)賦值、過程賦值和非阻塞賦值。,,①門基元賦值語句,,門基元賦值語句的格式為:,,基本邏輯門關鍵字 (門輸出,門輸入,1,,門輸入,2,,,…,,門輸入,n,);,,例如,4,輸入與非門的門基元賦值語句為,,,nand (y,a,b,c,d);,//,與語句,assign y=~(a&b&c&d),等效,,②,連續(xù)賦值語句,,連續(xù)賦值語句的關鍵字,assign,,賦值符號是“,=”,,賦值語句的格式為,,,assign,賦值變量,=,表達式;,,例如,assign y=~(a&b&c&d),;,,連續(xù)賦值語句的“,=”,兩邊的變量都應該是,wire,型變量。在執(zhí)行中,輸出,y

47、,的變化跟隨輸入,a,、,b,、,c,、,d,的變化而變化,反映了信息傳送的連續(xù)性。連續(xù)賦值語句用于邏輯門和組合邏輯電路的描述。,,例,1,四輸入端與非門的,Verilog HDL,源程序,,,module,,example1(y,a,b,c,d);,,output y;,,input a,b,c,d;,,assign #1 y=~(a,,,//#1,表示輸出與輸入信號之間具有,1,個單位的時間延遲,,,endmodule,,③,過程賦值語句,,過程賦值語句出現在,initial,和,always,塊語句中,賦值符號是“,=”,,語句格式為:,,,賦值變量,=,表達式;,,過程賦值語句“

48、,=”,左邊的賦值變量必須是(寄存器),reg,型變量,其值在該語句結束時即可得到。,,如果一個塊語句中包含若干條過程賦值語句,按順序一條一條執(zhí)行,前面的語句沒完成,后面的語句就不能執(zhí)行。,,因此,過程賦值語句也稱為阻塞賦值語句。,,④,非阻塞賦值語句,,非阻塞賦值語句也是出現在,initial,和,always,塊語句中,賦值符號是“,<=”,,語句格式為:,,,賦值變量,<=,表達式;,,非阻塞賦值語句“,<=”,左邊的賦值變量必須是(寄存器),reg,型變量,其值在塊語句結束時才可得到,與過程賦值語句不同。,,例如 下面的塊語句包含,4,條賦值語句,,,always @(posedge

49、 clock),,m=3; n=75; n<=m; r=n;,,語句執(zhí)行結束后,,r,的值是,75,,而不是,3,,因為第,3,行是非阻塞賦值語句“,n<=m”,,該語句要等到本塊語句結束時,,n,的值才能改變。,,塊語句的“,@(posedge clock)”,是定時控制敏感函數,表示時鐘信號,clock,的上升沿到來的敏感時刻。,,例,2,上升沿觸發(fā)的,D,觸發(fā)器的,Verilog HDL,源程序,,,module,,D_FF(q,d,clock);,,,input d,clock;,//,屬于,wire,型變量,由隱含規(guī)則定義。,,,output q;,//,屬于

50、,reg,型變量,,,reg q;,,always @(posedge clock),,q=d;,,,endmodule,,(,2,)條件語句,,條件語句包含,if,語句和,case,語句,它們都是順序語句,應放在,always,塊中。,,,①,if,語句,,完整的,Verilog HDL,的,if,語句結構如下:,,,if,(表達式),,,begin,,,語句;,,,end,,else if,(表達式),,,begin,,,語句;,,,end,,else,,begin,,,語句;,,,end,,在,if,語句中,“表達式”是邏輯表達式或關系表達式,也可以是位寬為,1,位的變量。,,系統對

51、表達式的值進行判斷, 若為,0,,,x,,,z,按“假”處理;若為,1,,按“真”處理,執(zhí)行指定的語句。,,例,3 8,線,-3,線優(yōu)先編碼器的設計,,8,線,-3,線優(yōu)先編碼器的功能表,,,,module,,code(y,a);,,input[7:0] a;,,output[2:0] y;,,reg[2:0] y;,,always @(a),,begin,,if(~a[7]) y<=3’b111;,,else if(~a[6]) y<=3’b110;,,else if(~a[5]) y<=3’b101;,,else if(~a[4]) y<=3’b100;,,else i

52、f(~a[3]) y<=3’b011;,,else if(~a[2]) y<=3’b010;,,else if(~a[1]) y<=3’b001;,,else y<=3’b000;,,end,,,endmodule,輸入,輸出,in0 in1 in2 in3 in4 in5 in6 in7,out2 out1 out0,x x x x x x x 0,,x x x x x x 0 1,,x x x x x 0 1 1,,x x x x

53、 0 1 1 1,,x x x 0 1 1 1 1,,x x 0 1 1 1 1 1,,x 0 1 1 1 1 1 1,,0 1 1 1 1 1 1 1,1 1 1,,1 1 0,,1 0 1,,1 0 0,,0 1 1,,0 1 0,,0 0 1,,0 0 0,,,②case,語句,,case

54、,語句是一種多分支的條件語句,,case,語句的格式為:,,,,case,(表達式),,選擇值,1,: 語句,1,;,,選擇值,2,: 語句,2,;,,,…,,,選擇值,n,: 語句,n,;,,,default: n+1,,,endcase,,執(zhí)行,case,語句時,首先計算表達式的值,然后執(zhí)行條件句中相應的“選擇值”的語句。當所有的條件句的“選擇值”與表達式的值不同時,則執(zhí)行“,default”,后的語句。,default,可以省略。,,case,語句多用于數字系統中的譯碼器、數據選擇器、狀態(tài)機及微處理器的指令譯碼器等電路的描述。,,例,4,:用,case,語句描述,4,選,1

55、,數據選擇器,,控制信號,s1,s2,有,4,種組合,控制,a,b,c,d,中的一個數據送到輸出端。,,4,選,1,數據選擇器,Verilog HDL,的描述如下:,,,,module,,mux41(z,a,b,c,d,s1,s2);,,input s1,s2;,,input a,b,c,d;,,output z;,,reg z;,,always @(s1 or s2),,begin,,case({s1,s2}),,2’b00: z=a;,,2’b01: z=b;,,2’b10: z=c;,,2’b11: z=d;,,endcase,,end,,,endmodule,,case,語句

56、還有兩種變體形式,,casez,和,casex,語句。與,case,語句的區(qū)別是不考慮語句中的高阻,z,和未知,x,的那些位,只關注其他位的比較結果。,s1 s2,z,0 0,,0 1,,1 0,,1 1,a,,b,,c,,d,,4,選,1,數據選擇器功能表,,(,3,)循環(huán)語句,,循環(huán)語句包含,for,語句、,repeat,語句、,while,語句和,forever,語句,4,種。,,,①,for,語句,,for,語句的格式為:,,,for,(循環(huán)指針,=,初值;循環(huán)指針,<,終值;循環(huán)指針,=,循環(huán)指針,+,步長值),,,begin,,,語句;,,,end,,fo

57、r,語句可以是一組語句重復執(zhí)行,語句中的參數一般屬于整型變量或常量。語句重復執(zhí)行的次數由語句中的參數確定。即,,,循環(huán)重復次數,=,(終值,-,初值),/,步長值,,例,5,:,8,位奇偶校驗器的描述,,用,a,表示輸入信號,長度為,8,位的向量。在程序中,用,for,語句對,a,的值,逐位進行模,2,加運算(即異或,XOR,),循環(huán)指針變量,n,控制模,2,加的次數。,11100110,奇數個,1,,循環(huán)變量的初值為,0,,終值為,8,,因此,控制循環(huán)共執(zhí)行了,8,次。,,例,5,用,Verilog HDL,對,8,位奇偶校驗器的描述如下:,,,,module,,test8(a,out);,

58、,input[7:0] a;,,output out;,,reg out;,,integer n;,,always @(a),,begin,,out=0;,,for(n=0;n<8;n=n+1) out=out^a[n]; //,異或,,,end,,,endmodule,,②repeat,語句,,repeat,語句的語法格式為:,,,repeat,(循環(huán)次數表達式)語句;,,例,6,用,repeat,語句實現,8,位奇偶校驗器的描述如下:,,,module,,test8_1(a,out);,,parameter size=7;,,input[7:0] a;,,outpu

59、t out;,,reg out;,,integer n;,,always @(a),,begin,,out=0;,,n=0;,,repeat(size),,begin,,out=out^a[n];,,n=n+1;,,end,,end,,,endmodule,//MAX+plus II,軟件不支持,repeat,語句,但,synplify,軟件支持。,,③while,語句,,while,語句的語法格式為:,,,while,(循環(huán)執(zhí)行條件表達式),,,begin,,,重復執(zhí)行語句;,,修改循環(huán)條件語句;,,,end,,while,語句在執(zhí)行時,首先判斷循環(huán)執(zhí)行條件表達式是否為真。若為真,

60、則執(zhí)行其后面的語句;若為假,則不執(zhí)行 ,表示循環(huán)結束。為了使語句能夠結束,在循環(huán)執(zhí)行的語句中必須包含一條能改變循環(huán)條件的語句。,,,④,forever,語句,,forever,語句的語法格式為:,,,forever,,begin,,,語句;,,,end,,forever,是一種無窮循環(huán)控制語句,它不斷地執(zhí)行其后的語句或語句塊,永遠不會結束。,Forever,語句常用來產生周期性的波形,作為仿真激勵信號。例如產生時鐘,clk,的語句為:,,,#10 forever #10 clk=!clk;,,//#10,表示輸出與輸入信號之間具有,10,個單位的時間延遲,,!clk,取非,,(,4,)結構聲明

61、語句,,Verilog HDL,的任何過程模塊都是放在結構聲明語句中,結構聲明語句包括,always,、,initial,、,task,和,function,等,4,種結構。,,,①,always,塊語句,,在一個,Verilog HDL,模塊(,module,)中,,always,塊語句的使用次數是不受限制的,塊內的語句也是不斷重復執(zhí)行的。,always,塊語句的語法結構為:,,,always @(),,begin,,//,過程賦值語句;,,,//if,語句,,case,語句;,,,//for,語句,,while,語句,,repeat,語句;,,,//task,語句、,function,語句

62、;,,,end,,在,always,塊語句中,敏感信號表達式應該列出影響塊內取值的所有信號(指設計電路的輸入信號),多個信號之間用“,or”,連接。當表達式中任何信號發(fā)生變化時,就會執(zhí)行一遍塊內的語句。塊內語句可以包括:過程賦值、,if,、,case,、,for,、,while,、,repeat,、,task,和,function,等語句。,,在進行時序邏輯電路的描述中,敏感信號表達式中經常使用“,posedge”,和“,negedge”,這兩個關鍵字來聲明事件是由輸入信號的正邊沿(上升沿)或負邊沿(下降沿)觸發(fā)的。如“,always @(posedge clk) ”,表示模塊的事件是由,cl

63、k,的上升沿觸發(fā)的;而“,always @(negedge clk) ”,表示模塊的事件是由,clk,的下降沿觸發(fā)的。,,②initial,語句,,initial,語句的語法格式為:,,,initial,,begin,,,語句,1,;,,語句,2,;,,,…,;,,,end,,initial,語句的使用次數是不受限制的,但塊內的語句僅執(zhí)行一次,因此,initial,語句常用于仿真中的初始化。,,③task,語句,,在,Verilog HDL,模塊中,,task,語句用來定義任務。任務類似高級語言中的子程序,用來單獨完成某項具體任務,并可以被模塊或其他任務調用。利用任務可以把一個大的程序模塊分解

64、成為若干小的任務,使程序清晰易懂。,,可以被調用的任務必須事先用,task,語句定義,定義格式如下:,,,,task,,任務名;,,,端口聲明語句;,,類型聲明語句;,,,begin,,,語句,,,end,,,endtask,,任務定義與模塊(,module,)定義的格式相同,區(qū)別在于任務是用,task -endtask,語句來定義,而且沒有端口名列表。,,例如,,8,位加法器的任務定義如下:,,,,task,,adder8,,output[7:0] sum;,,output cout;,,input[7:0] ina,inb;,,input cin;,,assign{co

65、ut,sum}=ina+inb+cin;,,,endtask,任務調用的格式如下:,,,任務名 (端口名列表);,,例如,8,位加法器任務調用,,,adder8 (tsum, tcout, tina, tinb);,,,使用任務時,需要注意幾點:,,(,1,)任務的定義和調用必須在同一個,module,模塊內。,,(,2,)定義任務時,沒有端口名列表,但要進行端口和數據的聲明。,,(,3,)當任務調用時,任務被激活。任務調用與模塊調用一樣,通過任務名實現,調用時需列出端口名列表,端口名和類型必須與任務定義的排序和類型一致。,,例如,8,位加法器任務調用時的端口名列表中的,tsum,、,tc

66、out,、,tina,、,tinb,端口,與任務定義中的端口,sum,、,cout,、,ina,、,inb,排序和類型保持一致。,,(,4,)一個任務可以調用別的任務或函數,可調用的任務和函數的個數不受限制。,,④function,語句,,在,Verilog HDL,模塊中,,function,語句用來定義函數。函數類似高級語言中的函數,用來單獨完成某項具體操作,并可以作為表達式中的一個操作數,被模塊或任務及其他函數調用,函數調用時返回一個用于表達式的值。,,可以被調用的函數必須事先定義,函數定義格式如下:,,,function,[,最高有效位:最低有效位,],函數名;,,端口聲明語句;,,類型聲明語句;,,,begin,,,語句;,,,end,,,endfunction,,在函數定義語句中,“,[,最高有效位:最低有效位,]”,是函數調用返回值位寬或類型聲明。,,例,8,

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  sobing.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!