




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
引言咱們數(shù)電PLD實驗關于AHDL的入門教程,看看蠻有勁第一章 概 述本章將對Altera硬件描述語言(Altera Hardware Description Language)作簡要地描述,還要講述如何處理AHDL文件,介紹AHDL語言的基本概念和基本元素,以使學生能夠更好地使用AHDL設計電路。一、 AHDL簡要介紹AHDL語言是Altera公司設計的配合Altera MAX+PLUS設計軟件使用的一種硬件描述語言。它是一種模塊化的高級語言,完全集成于MAX+PLUS系統(tǒng)中,它將用戶的設計以各種設計文件(文本設計文件TDF、圖形設計文件GDF等等)形式保存,并可對其進行編譯(COMPILE)、調試、檢錯、模擬(SIMULATE)、下載(DOWNLOAD)等操作。這些操作都在MAX+PLUS開發(fā)系統(tǒng)中完成。AHDL語言還特別適合于描述復雜的組合邏輯、組(group)運算、狀態(tài)機、真值表和時序邏輯。一個TDF文件中必須包含一個子設計段和一個邏輯段。l 子設計段(Subdesign Section ): 說明TDF文件的輸入、輸出和雙向端口。 l 邏輯段(Logic Section):定義文件中各種邏輯運算。AHDL是一種并行語言。在TDF文件邏輯段中所定義的所有動作都是同時進行的,而不是串行的。給同一個AHDL結點或變量賦值的多個等式在邏輯上是相聯(lián)的(如果該結點或變量是高電平有效,那么這些等式之間就是“或”的關系,如果是低電平有效,就是“與”的關系)。二、 AHDL語言的基本元素AHDL包含許多基本元素,用以在語句中對各種邏輯進行描述。本章講述如何用AHDL語言進行設計,介紹這些基本元素和基本語句的使用。(一) 基本概念以下介紹AHDL語言的基本概念,這些概念無論是在時序邏輯電路設計還是在組合邏輯電路設計中都是組成AHDL 語言(TDF文件)的最基本元素。1.數(shù)值數(shù)值被用來在布爾表達式和等式中指定常量值。AHDL支持十進制數(shù)、二進制數(shù)、八進制數(shù)和十六進制數(shù)的所有組合。數(shù)值在AHDL中是以以下形式表示的:數(shù)制值十進制二進制B“”X表示無關項八進制O“”十六進制H“”下面是AHDL有效數(shù)字的例子:B“0110X1X10”,O “4761223”,H“123AECF”,787878。注意:l MAX+PLUS編譯器總把數(shù)值編譯成一組二進制數(shù)。l 數(shù)值不能賦值給結點(NODE),而必須用Vcc和GND。編程舉例:下例中的decodel.tdf文件表示一個地址譯碼器,當?shù)刂窞槭M制數(shù)370時產生一個高電平有效的地址使能信號。SUBDESIGN decode1(address15.0 : INPUT;chip_enable : OUTPUT;)BEGINchip_enable = (address15.0= H“0370”);END;在這個例子中,15和0這兩個十進制數(shù)字用以指定地址總線上的位。十六進制數(shù)子H“0370”表示被譯碼的地址。圖1-1表示一個與decode1.tdf具有相同功能的圖形設計文件(.gdf)。圖1-1 decode1.gdf2. 常量在AHDL文件中,常量代表數(shù)值的描述性名稱。這個名稱可以在文件中到處使用,它比數(shù)值更直觀。例如,常量UPPER_LIMIT就比一個數(shù)值103更加直觀。在AHDL中,常量由Constant語句定義。下面的decode2.tdf文件與decode1.tdf具有相同的功能,但它用常量IO_ADDRESS代替了數(shù)值H“370”。CONSTANT IO_ADDRESS= H“0370”;SUBDESIGN decode2(a15.0 : INPUT ;ce : OUTPUT;)BEGINce = (a15.0= IO_ADDRESS);END;注意:常量對于在文件中多次重復使用同一個數(shù)值的這種情況是十分有用的,如果要修改這個值,只要修改CONSTANT語句就可以了。3.模板在MAX+PLUS中建立一個AHDL設計的最快辦法就是使用模板。模板是為方便TDF文件輸入而準備的一定格式的未完成的語句,用戶只要在相應位置添上所需內容就可以完成語句。利用MAX+PLUS文本編輯器所提供的Template命令(在Template菜單中),學生可以向自己的TDF中插入一個AHDL模板,這樣可以加快設計文件的輸入速度。選擇Template命令后,在屏幕上就會顯示如下圖1-2所示的對話框。圖1-2 AHDL模板對話框在AHDL的所有模板中有一個完整AHDL文件結構的模板,叫做“Overall structure”,在該模板中,所有AHDL結構按照它們應該在TDF文件中出現(xiàn)的順序以注釋形式分別列在不同行中。這些段和語句并不是以準確的語法規(guī)則寫出,必須按自己的需要以符合AHDL語法規(guī)則的語句或段來替換這些注釋行。MAX+PLUS還提供了許多AHDL結構的模板。這些模板按字母順序排列,可用這些模板替代“Overall structure”模板中的各注釋行。下例給出了Defaults語句的模板。DEFAULTS_node_name = _constant_value;END DEFAULTS;一旦在文件中插入一個模板,就必須把模板中所有待定符用自己的標識符和表達式替代。每一個待定符都以兩個下劃線(_)開始,以便于識別,每個關鍵字都要大寫。AHDL語言概述(2)2009-03-09 22:044結點和組結點是由變量段的結點說明語句定義的,它可被用來記載一個中間表達式的值。結點在AHDL中十分類似于變量在計算機高級語言(如C)中的作用。如果一個布爾表達式要被重復使用,結點定義就顯得十分有用了。該布爾表達式可用一個結點名稱替代,這更便于提高設計的可讀性。下例的boole1.tdf文件與P.6頁的boole2.tdf具有同樣的邏輯,但它只有一個輸出。SUBDESIGN boole1(a0 ,a1, b : INPUT;out : OUTPUT;)VARIABLEa_equals_2 : NODE;BEGINa_equals_2 =a1 & !a0;out = a_equals_2 # b;END;在這個文件中定義了一個結點a_equals_2,并把表達式a1 & !a0的值賦給它。圖1-3給出了與boole1.tdf具有同樣邏輯功能的GDF文件。注意:在多個表達式中使用同一個結點,可以節(jié)省可編程器件的資源。組的定義:一個組最多可包含256個成員(或者說“位”),它是許多結點的集合,并被當作一個整體來操作。在布爾等式中,一個組可以被設置成等于一個布爾表達式的值、另一個組的值、一個單獨的結點的值、Vcc、GND、1或0,在上述各種情況下,組的值是不同的。一個組被定義之后, 可用來代表該組的所有單元。例如:a4.1可用a 來代表。 下例中的group1.tdf給出了一個定義了兩個組的簡單的布爾等式。SUBDESIGN group1(a1.2 :INPUT;d1.2 :OUTPUT;)BEGINd =a +B“01”;END;在這個例子中,數(shù)字1(十進制)被加到組a 上。如果a 的初值是00,那么這個程序的結果就是d =1(數(shù)字)。下面的例子給出了正確的組值l 如果一個組被設置為等于另外一個組,那么這兩個組的位數(shù)必須相同,第一組的各位分別與第二組相應的位相連。例d2.0 =q8.6,即d2與q8相連,d1與q7相連,d0與q6相連。 l 當一個組被設置等于一個單獨的結點時,這個組的所有位都與該結點相連。例d2.0 = n, 即d2、d1和d0與n相連。如果一個組被設置等于Vcc或GND,那么該組的所有位都被設置為該值。例d2.0 = Vcc,即d2、d1和d0都連為Vcc。l 如果一個組被設置等于1(十進制數(shù)), 那么該組只有最低有效位被連到Vcc上,而其它位都被連接到GND上。例d2.0 = 1,即只有d0被連到Vcc上;數(shù)值“1”被擴展為B“001”。AHDL語言概述(3)2009-03-09 22:045布爾表達式布爾表達式由操作數(shù)及它們之間的邏輯運算符、算術運算符、比較符、括號組成。布爾表達式可以用在布爾等式中,還可以用在IF、CASE等語句中。(1) 邏輯運算符 AHDL支持以下這些邏輯運算符:運算符實例說明!或 NOT!tob 或 NOT ACC求反(求非)運算&或ANDbre&butt或bre AND butt與!&或 NANDA3.1 !& b5.3與非# 或 ORTrick # treat或!# 或 NORC !# d或非$或 XORFoo $ boo異或!$ 或 XNORX2 !$ X4同或(2) 算術運算符運算符實例說明+ (一元)+1正號- (一元)-a7.4負號+Count7.0 + Delta7.0加-Right - left減注意:l AHDL僅支持以上算術運算,其它運算(乘或除)必須調用器件才能實現(xiàn)。l 運算符只能用在都為結點組或數(shù)值的兩個操作數(shù)之間。l 如果兩個操作數(shù)都是結點組,那么這兩組的長度必須相同。l AHDL還支持“=”、“!=”、“”、“=”、“”、“= ”等算術比較符。(3) 布爾表達式布爾表達式是由一組被運算符或比較符(有時還有括號)分隔開的結點、數(shù)值、常量和另外的一些布爾表達式所組成,布爾等式則是把一個布爾表達式的值賦給一個結點或組。下面的boole2.tdf文件給出了兩個簡單的布爾表達式,它們各表示一個邏輯門。SUBDESIGN boole2(a0, a1,b :INPUT;out1, out2 :OUTPUT;)BEGINout1 = a1 & ! a0;out2 = out1 # b;END;在boole2.tdf中,out1由a1和反向的a0的邏輯“與”所驅動,而out2由out1和b的邏輯“或”所驅動。由于這兩個等式是同時運算的,所以它們在文件中的順序無關緊要。下圖1-4給出了與boole2.tdf具有相同功能的GDF。AHDL語言概述(4)2009-03-09 22:05(二) 基本語句AHDL語言擁有大約40個保留關鍵字,其中大部分構成了AHDL的所有行為語句。本節(jié)僅介紹其中最基本的一些語句。這些語句是構成AHDL組合邏輯和時序邏輯的基本單元。1 變量聲明語句在變量聲明語句中可以聲明一些在本模塊內部使用的變量,例如狀態(tài)機,寄存器等。變量聲明格式:VARIABLE變量符號:變量類型;狀態(tài)機、寄存器等變量的具體聲明格式,將在后面介紹。2 IF語句AHDL的條件語句是實現(xiàn)組合邏輯的基本方法,條件語句包括IF語句、CASE語句、真值表語句等。IF 語句格式:IF THEN 語句1ELSIF 語句2END IF;注:為布爾表達式。如果表達式值為“真”(或是“Vcc”)則執(zhí)行THEN后的語句1,否則執(zhí)行ELSIF后的語句2。AHDL中ELSIF 為可選項,并允許IF語句嵌套。下例中,Priority.tdf是一個優(yōu)先級編碼器,它把當前輸入中處于有效狀態(tài)的級別最高的輸入級轉化為一個數(shù)值。它產生一個2位代碼,表示由Vcc驅動的優(yōu)先級最高的那個輸入端。SUBDESIGN priority(low, middle, high : INPUT;hightest_level1.0 : OUTPUT;)BEGINIF high THEN hightest_level =3;ELSIF middle THEN hightest_level =2;ELSIF low THEN hightest_level =1;ELSE hightest_level =0;END IF;END;下圖1-5給出了與Priority.tdf具有相同功能的GDF文件。圖1-5 Priority.gdf在這個例子中,程序要查看high、middle和low這三個輸入端是否由Vcc驅動,然后去執(zhí)行跟在條件成立的IF或ELSE從句后的那個等式,也就是說如果high是由Vcc驅動的,那么hightest_level就是3。如果有多個輸入都由Vcc驅動,那么IF語句就會根據(jù)IF和ELSE語句的順序來確定輸入的優(yōu)先級(第一個語句的優(yōu)先級最高)。在Priority.tdf中,high的優(yōu)先級最高,middle的優(yōu)先級次之,low的優(yōu)先級最低。IF語將執(zhí)行跟在布爾表達式的值為真的優(yōu)先級最高的IF或ELSE語句后的那個等式。如果所有輸入端都不是由Vcc驅動的,跟在ELSE關鍵字后的那個等式就會被執(zhí)行。AHDL語言概述(5)2009-03-09 22:063 CASE語句CASE語句也是條件語句,它的格式是: CASE 組 ISWHEN 值1 = 語句1WHEN 值2 = 語句2WHEN 值3 = 語句3END CASE;CASE語句根據(jù)組的取值選擇執(zhí)行相應語句。下例中, decoder.tdf是一個2位轉為4位的譯碼器。它把一個二進制的代碼輸入轉化為一個只有一位為1(“one-hot”)的代碼。 SUBDESIGN decoder ( code1.0 : INPUT; out 3.0 : OUTPUT; ) BEGIN CASE code IS WHEN 0 = out =B“0001”;WHEN 1 = out =B“0010”;WHEN 2 = out =B“0100”;WHEN 3 = out =B“1000”; END CASE; END;在這個例子中,輸入組code1.0有值0、1、2和3。Case語句中跟在符號=后的等式將被執(zhí)行。例如,如果code為1,那么out 就會被設置為B“0010”。由于左側表達式的值互不相同,所以在一個時刻只會有一個WHEN從句被執(zhí)行。圖1-6給出與decoder.tdf具有相同功能的GDF。圖1-6 decoder.gdfl IF語句與CASE語句的比較IF語句與CASE語句大致相同,在某些情況下無論使用哪種語句都會得到相同結果。下面的例子給出了采用IF與CASE兩種語句所表示的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一個難忘的生日派對寫人記事作文15篇范文
- 醫(yī)藥行業(yè)實習生培訓計劃報告
- 市政工程項目管理與技術措施探討
- 一年級故事分享閱讀活動計劃
- 汽車行業(yè)交貨期管理及保障措施
- 初三語文中考詞匯記憶方法計劃
- 三年級科學知識普及活動策劃
- 軟件開發(fā)項目質量管理及質量保證措施
- 2025年軟管式尾嘴項目市場調查研究報告
- 游戲制作公司玩家數(shù)據(jù)挖掘與價值挖掘方案設計
- 電子商務教師資格證教學理念試題及答案
- 地下工程防水技術規(guī)范
- 《醫(yī)院手術室凈化施工方案》培訓
- 【正版授權】 ISO/IEC 19790:2025 EN Information security,cybersecurity and privacy protection - Security requirements for cryptographic modules
- 國家安全教育大學生讀本課件高教2024年8月版課件-第七章堅持以軍事、科技、文化、社會安全為保障
- 整套課件-證券投資學(第二版)趙錫軍
- 2025年《教師專業(yè)成長與專業(yè)發(fā)展》培訓心得(3篇)
- 2025年重慶市環(huán)衛(wèi)集團有限公司招聘筆試參考題庫含答案解析
- 植物的逆境生理-課件
- TSG 07-2019電梯安裝修理維護質量保證手冊程序文件制度文件表單一整套
- 高等院校國際交流管理制度
評論
0/150
提交評論