計算機硬件課程設計指導-CPLD部分_第1頁
計算機硬件課程設計指導-CPLD部分_第2頁
計算機硬件課程設計指導-CPLD部分_第3頁
計算機硬件課程設計指導-CPLD部分_第4頁
計算機硬件課程設計指導-CPLD部分_第5頁
已閱讀5頁,還剩74頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、硬件課程設計指導CPLD部分硬件課程設計-基于CPLD的模型機設計21 硬件基礎知識一、CPLD簡介具有固定輸入和輸出數目的任何組合邏輯函數可以在可編程只讀存儲器(PROM)中,以輸出為輸入的查找表方式來實現,許多實現組合邏輯的結構變型已從這一簡單的概念引申出來,然而利用VISI的密度產生更通用的,能實現PCB板上幾個簡單PAL互連功能的器件是PAL/PROM這類范例的擴展,稱為PAL構造的PLD,也就是說復雜可編程邏輯器件CPLD(Complex programmable logic devices)。它是隨著半導體工藝不斷完善、用戶對器件集成度要求不斷提高的形勢下所發展起來的。CPLD是復

2、雜的PLD,專指那些集成規模大于1000門以上的可編程邏輯器件。傳統的CPLD編程是在編程器上完成的,因為那里對CPLD編程需要較高的電壓和較特殊的波型。然而,由于工藝的改進,對CPLD器件的編程可在其工作電壓下進行。因此,可將CPLD芯片安裝在系統中,在其工作環境下,依靠編程軟件完成,這就是所謂在系統編程(In System Program)。具有在系統編程功能的CPLD芯片的每個I/O端口(pin)都有一個三態門和一個可配置的上拉電阻,正常工作時這些三態門處于選通狀態,而上拉電阻根據設計要求連在引腳上或者不連。芯片上還有專供在系統編程使用的引腳,例如LATTICE公司的ispLSI1016

3、芯片上有5個這樣的控制端ispEN、SDI、SDO、SCLK和RESET。它們可通過編程電纜與計算機并口相連,正常工作時ispEN加高電平,編程(通常稱此過程為下載)時加低電平,此時所有I/Opin內的三態門處于斷開狀態。將芯片內部與周邊電路的聯系隔斷,而每個IO單元中的觸發器被串接起來,成了一個移位寄存器。在系統編程技術的出現,可以將器件先裝配在系統板或目標板上,然后下載將要設計的電路,這樣,就改變了CPLD器件先下載后裝配的程式,避免了因多次拔插而損壞芯片引腳,方便了實驗中的調試,加快了生產的進度,而且在不改變系統硬件結構的情況下,實現對系統的重構或升級。在試制新產品和學生實驗等需要經常更

4、換芯片信息的場合,在系統編程最為適用。所以,現在的CPLD芯片幾乎全部采用了在系統編程原理。二、在系統可編程器件簡介1、在系統可編程特點在系統編程技術與傳統編程技術的最大區別在于它不使用編程器,通過下載電纜與計算機相連,直接在用戶自己設計的目標系統中或電路板上對PLD編程。這就打破了使用PLD必先編程后裝配的慣例,而可以先裝配后編程,成為產品后還可反復編程,是一種全新的設計方法,使生產維護和系統更新都發生了革命性的變化,開創了數字系統設計的新紀元。在系統編程技術的主要特點如下:(1)縮短了設計試制的周期,降低了試制成本。由于ISP技術可以在器件被焊接在電路板上的情況下對系統編程或重構,因而在設

5、計系統時,可以先制作電路板,然后再對ISP器件編程。若要改變設計時,無須改動元器件或電路板,只要通過相應的開發系統軟件在數分鐘內即可完成,雖然設計的是硬件,卻像軟件一樣方便。(2)縮小了芯片的體積并簡化生產流程。由于在系統編程器件集成度高,且可以先裝配在電路板上后編程,從而省去了插拔帶來的損傷,系統的可靠性更高,體積可以做得更小,引腳數可以做得更多。采用傳統的PLC,系統生產必須通過標準邏輯編程器來進行人工編程,因而要有巾標簽、入庫、裝配、測試等過程,如采用ISP技術,新器件從包裝盒中取出即可安裝在電路板上,完全清潔衛生了單個編程和標記等工序,各個器件的組態可以通過自動測試設備(ATE)、PC

6、或工作丫等今后任務平臺,在最終板子測試時下載,簡化了生產流程,節省了生產時間。(3)方便了系統的維護和升級。在制成產品裝運以后,由于ISP技術所具有的獨特特點,使得對系統的維護和現場升級只要用一臺筆記本電腦和下載電纜就能實現,在信息技術迅速發展的今天,完全可以通過互聯網或其他通信工具對遠隔千里的用戶系統進行硬件版本升級換代。(4)提高系統的可測試性,嗇系統的可靠性。隨著系統板上元器件、芯片密度以及I/O口數量的增加,測試電路板上關鍵節點的難度就越來越大。可以把診斷用的測試模式暫時編程到ISP器件中,以毫無遺漏的方式運行電路板上的各項功能。此外,利用可編程數字開關,還可以測試環境中把編程信號引導

7、到所需部位,來進一眇強化板級的測試。采用邊界掃描測試后,通過測試傳輸口將原告用歀測試方法無法接觸的關鍵節點用環路串接起來,大大簡化了現場診斷與測試過程,更進一步提高了整修系統的質量,同時使測試成本下降。由于ISP技術的一系列的優點,以及它緞帶用戶所帶來的時間和經濟效益,使得它的應用越來越廣。可以預測,不嚴的硬件系統將越來越多針使用ISP器件,各種中、小規模的專用集成芯片都將逐漸被淘汰,人們再也不用為系統的升級而擔心硬件設備的報廢。在將來,系統設計者將需要接受新的思想去開發硬件,要考慮整個板子將能被重組,以適應任何應用。配件不再是“凝固不變”的,ISP器件的采用將使硬件設計更具有通用的組態,通過

8、在系統可編程邏輯和組件的互聯,將獲得它們的“個性”。ISP器件廣泛的應用前景以及強大的生命力使我們能夠確信,真正的可編程系統的新時代不久將會到來。2、在系統可編程器件簡介ispLSI1032和ispLSI1032E有32個GLB。每個GLB有18個輸入,一個可編程與/或/異或陣列,4個可以重組為組合型或寄存型的輸出。進入GLB的信號可以來自全局布線區(GRP),也可以直接輸入。GLB的所有輸出都進入GRP,以便能同器件上的其他GLB相連接。ispLSI1000E器件是ispLSI1000器件的功能增強型,除1000E系列每個器件具有兩個新的全局輸出使能引腳(1016B僅一個)和編程輸出轉換速率

9、(slew rate)控制外,它們的結構是類似的。ispLSI1032E都有64個I/O單元,每一單元對應一個I/O腳。每個I/O單元可以獨立編程為組合輸入、寄存輸入、鎖存輸入、輸出或帶有三態控制的雙向I/O腳。另外,所有輸出可選擇有源高電平或低電平極性。信號電平與TTL電壓兼容,輸出能驅動4mA源電流或8mA吸收電流。每16個I/O單元成為一組,每組都要通過ORP與一個巨型塊(Megablock)相連接。8個GLB、16個I/O單元、1個ORP和2個專用輸入被連接在一起構成一個巨型塊。8個GLB的輸出通過ORP與16個通用I/O單元為一組連起來。每個巨型塊共享一個輸出使能信號。ispLSI1

10、032E各有4個巨型塊。全局布線區(GRP)的輸入來自所有GLB的輸出以及雙向I/O單元所有的輸入。這些信號有效地構成了GLBS的輸入。器件內的時鐘通過時鐘分配網絡(CDN)選擇。專用時鐘引腳(Y0、Y1、Y2和Y3)進入分配網絡,而5個輸出(CLK0、CLK1、CLK2、IOCLK0和IOCLK1)連到GLBs和各I/O單元的時鐘線路上。時鐘分配網絡也能被專用GLB(如ispLSI1032和1032E中的C0)驅動。這個專用GLB的邏輯允許設計者產生一個由器件內部信號組合的內部時鐘。除增加了可選擇的全局輸出使能GOE引腳外,ispLSI1000E系列與ispLSI1000系列功能是完全相同的

11、。ispLSI1016E有一個GOE選擇引腳,而其余ispLSI1000E系列器件有兩個GOE。在ispLSI1016E、ispLSI1024E和ispLSI1032E中,這些引腳與專用輸入腳是復用的。(1)通用邏輯塊通用邏輯塊(GLB)包括18個輸入、4個輸出,并能完成大多數標準邏輯功能,是Lattice Semiconductor Corporation(LSC)高密度ispLSI器件的標準邏輯塊。GLB的內部邏輯可以分為4個獨立部分:與陣列、乘積項共享陣列(PTSAProduct TermSharing Array)、可重構寄存器以及功能控制。與陣列包括20個乘積項,它基本上可以產生GL

12、B18個輸入的任何邏輯和。16個來自全局布線區(GRP)的輸入,或者外部I/O單元,或者任一個GLB的反饋信號。剩余的兩個輸入直接來自兩個專用輸入引腳。這些信號可以對乘積項的補碼形式和邏輯真進行更有效的布爾邏輯化簡。4個帶有一個異或門輸入的D型觸發器組成可重構寄存器。GLB中的異或門能作為一個邏輯元件或重構D型觸發器以仿真JK觸發器或T型觸發器,簡化了計算器、比較器和ALU類功能的設計。如果設計者只需要一個組合輸出,寄存器可以被旁路。每一個寄存器輸出送回GRP,并且經ORP引到I/O單元。當使用了4個乘積項旁路時,重構寄存器失效。乘積項共享陣列可以類似現場可編程FPGA器件那樣共享乘積項,還能

13、用一個旁路電路給每一個輸出提供4個乘積項,以提高該單元的性能。控制功能提供控制GLB輸出操作的各種信號。寄存器時鐘可以來自時鐘分配網絡的三個時鐘源或者GLB內部的乘積項。GLB的復位信號可以來自全局復位引腳。全局復位引腳總是被連接并與PT復位形成邏輯“或”的關系。有效的復位信號總是把寄存器的Q位置為邏輯0狀態。與GLB有關的I/O單元的輸出使能來自該塊內的乘積項。對于控制功能來說,使用一個乘積項會使該乘積項作為一個邏輯項失效。(2)巨型塊一個巨型塊由8個GLB、1個輸出布線區、16個I/O單元、2個專用輸入和1個公共乘積項OE組成。ispLSI1000系列的不同成員的單個器件由1個到6個巨型塊

14、組合而成。對ispLSI1000系列,巨型塊內的8個GLB共享兩個專用輸入引腳。這些專用輸入引腳對任何其他巨型塊中的GLB是無效的。這些引腳僅是專用的輸入而且是由軟件自動指定的。由于在巨型塊內的邏輯共享,共享公共功能的各種信號都是在同一個巨型塊內被分組。因此設計者獲得邏輯在器件內的最佳利用,并且可以有效的消除布線瓶頸。(3)IO單元IO單元是引導輸入、輸出或雙向信號線與I/O引腳相連的單元。一個邏輯輸入來自輸出布線區(ORP),另一個來自較快的ORP旁路。一對多路轉換器選擇應該使用哪些信號以及信號的極性。I/O單元的輸出使能受每個巨型塊中產生的OE信號的控制。正如數據通路一樣,多路轉換器選擇信

15、號的極性。當輸出引腳需要時,輸出使能可被置為邏輯高電平(即允許),當輸入引腳需要時,被置為邏輯低電平(即禁止)。全局復位信號通過芯片復位引腳的有效低電平驅動。這個復位總是連接到所有的GLB和I/O寄存器。每個I/O單元可以獨立選擇兩個時鐘信號(IOCLK0或IOCLK1)中的一個。時鐘信號可以由時鐘分配網絡產生。I/O單元可以被配置為輸入、輸出、三態輸出或雙向I/O。通過多路轉換器可以實現這三種不同功能的選擇。D型寄存器可以被配置為一個電平觸發透明鎖存器或一個邊緣觸發的觸發器,以存儲新來的數據。當I/O引腳沒有被連接時,該引腳自動采用一個有源上拉電阻。通過選擇可使有源上拉電阻所有引腳,有利于消

16、除噪聲,減小器件的Icc。(4)輸出使能控制在每一個GLB內利用OE乘積項PT(PT19)都可以產生OE信號。因此,巨型塊中有一個OE信號被連接到該巨型塊包括的所有I/O單元。這個OE信號可同時控制所有16個以三態模式使用的I/O單元。各個I/O單元也可以單獨控制作為永久允許或禁止的輸出緩沖器(參考I/O單元部分)。每一個巨型塊以三態工作,僅允許一個OE信號。這種方式的優點是,輸出使能信號可以在巨型塊內的任何GLB內產生,而該巨型塊中正好有一個未用的OE乘積項,使其他輸出使能乘積項釋放出來用作邏輯。ispLSI1000E和ispLSI1048E器件也有可選擇的全局輸出使能GOE。ispLSI1

17、016E、ispLSI1024E、ispLSI1032E器件GOE與專用輸入復用。(5)輸出布線區輸出布線區(ORP)作用是引導各種信號從GLB輸出到配置為輸出或雙向管腳的I/O單元。設置輸出布線區的目的是為了更靈活地確定I/O引腳。它也簡化了布線軟件的工作量,增加了利用率。一個GLB輸出可連接到4個I/O單元的其中之一。使用乘積項共享陣列(PTSA)會帶來更大的靈活性,使GLB輸出可以完全互換,這樣的結構使布線程序能自由地互換輸出以獲得最好的布線率。這是一個自動處理過程,不需要設計者的介入。輸出布線區旁路連接進一步增強了器件的適應性。ORP旁路以較快的速度連接指定的GLB輸出到指定的I/O單

18、元。旁路路徑制約了設備的布線率,只能為特殊信號使用。(6)輸入布線器件內的信號輸入以兩種方式處理:器件內的每個I/O單元將其輸入直接連到全局布線區(GRP),使器件內的每一個GLB能選取每個I/O單元輸入。每個巨型塊有兩個專用的輸入與巨型塊內的8個GLB直接相連。(7)全局布線區全局布線區(GRP)以完備的連接提供了快速、可預設的速度,是專有的互聯結構。GRP允許來自GLB的輸出或I/O單元的輸入與GLB的輸入連接。任何GLB的輸出都可以作為其他GLB的輸入;同樣,來自I/O引腳的一個輸入可作所有GLB的任一輸入。由于ispLSI器件的相同構造,通過GRP的延時是一致的和可預知的,然而,延時會

19、受到GLB的輕微影響。(8)時鐘分配網絡時鐘分配網絡(CDN)共產生5個全局誤:CLK0、CLK1、CLK2、IOCLK0和IOCLK1。IOCLK0和IOCLK1信號用來給器件內的所有I/O單元計時。CLK0、CLK1和CLK2用來給器件內的所有GLB計時。器件有4個專用的系統時鐘(Y0、Y1、Y2、Y3),對于ISPLSI1016有3個(Y0、Y1、Y2),通過時鐘分配網絡,這些系統時鐘引腳可直接分給任何GLB或任何I/O單元。時鐘分配網絡的其他輸入是專用時鐘GLB(對ISPLSI1032為“CO”)的4個輸出。這些時鐘GLB的輸出可用來生成一個設計者自定義的內部時鐘配置。如,時鐘GLB可

20、以利用外部主時鐘引腳Y0連接到全局時鐘信號CLK0進行計時。時鐘GLB的輸出可依次產生一個CLK0的“分頻”信號,它可連接到CLK1、CLK2、IOCLK0或IOCLK1全局時鐘線上。所有GLB都可以利用時鐘乘積項PT(PT12)產生它們自己的異步時鐘。在所有的GLB中,CLK0、CLK1和CLK2加到它們對應的時鐘MUX輸入。兩個I/O時鐘IOCLK0和IOCLK1是在時鐘分配網絡內產生的。并被加到所有I/O單元,設計者可以利用兩者之一對I/O單元編程。(9)定時模型通過器件決定定時的任務非常簡單。只需決定數據期望遵循的路徑,然后把不同的延時加起來。定時模型(TM)中每個環節的延時各用一個號

21、碼代表,查Lattice相應器件的數據手冊,找到這些號碼對應的延時量,就能求出總延時,也就可以由此決定通過器件取送數據的時間。3、ispLSI1032和ispLSI1048結構圖22 硬件描述語言及設計軟件2.2.1 ABEL語言簡介ABELHDL語言是一種層次結構的邏輯描述語言,由美國DATAI/O公司研制開發,目前被廣泛應用于可編程邏輯電路設計。ABELHDL語言也能夠通過標準形式文件轉換后在其它開發環境中使用。用ABELHDL語言進行設計,可以很少去關心或不去關心器件的內部結構,并且設計可以通過模擬得到驗證,大大縮短了設計周期,降低了設計成本,提高了設計效率和成功率,受到電子設計工程技術

22、人員的重視和歡迎。ABELHDL語言支持多種輸入形式,包括邏輯方程、狀態圖和真傎表等。ABELHDL語言設計文件是ASC11格式的文本文件,叫作ABELHDL源文件。用ABELHDL語言來設計,其基本單位是模塊,一項設計可以是一個模塊,也可以是多個模塊。如果一項設計包含多個模塊,則按照層次結構將它們組織起來。頂層的模塊只有一個,它描述設計的總體輪廓,其它低層的模塊詳細描述頂層模塊中包含的各子功能塊,層次數不受限制。一項設計的所有模塊,可以包含在一個文件中,也可以包含在幾個文件中。這些模塊經過編譯、優化、連接、模擬、器件適配等步驟,生成一個JEDEC格式的文件。最后將JEDEC文件下載到器件中,

23、就完成了對器件的編程。一、 ABEL語言的基本語法1標識符與關鍵字標識符用來表示標識器件名稱、器件引腳名稱、輸入或輸出信號的名稱、狀態名稱、集合名稱、常量、變量及模塊名稱等。標識符必須以英文字母或下劃線“ ”開始,其后可跟數字、英文字母、波浪線“”和下劃線“ ”,標識符最長不得超過31個字符;標識符不能使用空格,單詞中的分隔需用下劃線;標識符與字母的大小寫有關。如En和en是兩個不同的標識符。關鍵字是一些具有特殊用途的保留標識符。關鍵字不得用來給器件、引腳、節點、常量、集合、宏或信號命名。關鍵字不分大、小寫,可以用大寫、小寫或大小寫混合方式輸入,它們表示的含義相同。表2-1ABEL語言的關鍵字

24、關鍵字功能說明Async_reset異步復位狀態描述語句Case-Endcase條件選擇語句Cycle周期關鍵字Declarations說明段關鍵字Device器件說明語句End模塊結束語句Equations邏輯方程關鍵字Function_block功能模塊說明語句Fuses熔絲狀態說明語句Goto無條件轉移語句If-Then-Else條件轉移語句(只能用在狀態圖輸入)Interface功能模塊接口語句Istype屬性說明語句Library庫引用語句Macro宏說明語句Module模塊開始語句Node節點說明語句Options控制選項定義語句Pin引腳說明語句Property特征說明語句Sta

25、te狀態說明語句State_diagram狀態圖關鍵字State_register狀態寄存器說明語句Sync_reset同步復位狀態描述語句Test_vectors測試向量Title標題語句Trace跟蹤選項關鍵字Truth_table真值表關鍵字Wait等待關鍵字When-Then-Else條件轉移語句(只能用在方程中)With轉移方程語句Xor_factors異或因子關鍵字2 專用常量專用常量字母可以用大寫或者小寫字母輸入,表示的含義相同。表示方法是在英文字母的左下方及右下方各加一個圓點。專用常量可用于賦值、真值表和測試向量中。如果將專用常量賦值給一個標識符,那么該標識符在整個模塊中都代表

26、該常量,如X.X.;則X代表任意態。表2-2專用常量常 量說 明.C. 時鐘輸入(低電平高電平低電平轉換).D. 脈沖下降沿(高電平低電平轉換).F. 懸浮的輸入或輸出信號.K. 時鐘輸入(高電平低電平高電平轉換).P. 寄存器預置數.SVn.N2-9,驅動輸入到超級電平2-9.U. 時鐘上升沿(低電平高電平轉換).X. 任意值.Z. 三態值3注釋用戶可用兩種方式進行注釋:(1) 用一對雙引號 括起來或用雙引號開始,以行的末尾來結束。(2) 用一雙斜杠/開始,以行的末尾來結束。4數ABELHDL中所有數值在計算機中都是以128位的形式存儲,因而合法數值應在0到21281之間。數有五種表示形式:

27、(1) b,o,d及h(或B,O,D及H)表示,d可以省略不寫。(2) 可以用英文字母的字符串表示數, 如:A= h41,AE= h4145。表2-3數制表示數制名基數符號舉例二進制2bb1011八進制8oo13十進制10d(缺省)d11(11)十六進制16hhb5運算符和邏輯表達式(1)算術運算符表2-4算術運算符運算符表達式舉例說 明運算優先級A求二進制補碼1AB減3AB加3下述運算符不支持集合運算*A*B乘2/A/B無符號整除2%A%B取模:無符號數整除的余數2AABA右移B位2注意:(1)符號“”當在一個數的前面時,表示對這個數取二進制補碼;當在兩個數之間時表示兩個數相減。(2)除法是

28、無符號整數除法,結果是整數,余數可通過取模得到。(3)移位運算是邏輯無符號移位,移位運算時用“0”來補缺位。(2)邏輯運算符表2-5邏輯運算符運算符表達式舉例說 明運算優先級!!A非1&A&B與2#A#B或3$A$B異或3!$A!$B異或非(同或)3(3)關系運算符表2-6關系運算符運算符表達式舉例說 明運算優先級= =A= =B等于4!=A!=B不等于4AB小于4=AAB大于4=A=B大于或等于4注意:運算的結果是邏輯值真1或邏輯假0,邏輯真在計算機內部以“1”表示,即128位置全1,邏輯假128位置全0。所有的關系運算都是無符號運算。如“12”的值為真,因為1的補碼是128位均為1的二進制

29、數。由于關系運算符的優先級比較低,使用時用圓括號來保證它所處的位置。如(AB)C,如不加圓括號,則相當于A(BC)。(4)賦值運算符表2-7賦值運算符運算符舉例說明=A=B組合型確定態賦值 (把B的值立即賦給A,沒有時延): =A: =B寄存器型確定態賦值 (在下一個時鐘脈沖有效沿來后,把B的值賦予A)?=A?=B組合型任意態賦值?:=A?:=B寄存器型任意態賦值注意:在使用點擴展名時用和?=來賦值。:=和?:=只能用于寫引腳到引腳的寄存器方程中。使用任意態賦值時,要用指示字DCSET設置,或用屬性定義ISTYPE指定“DC”屬性,以表明未指定邏輯是任意態,否則?=和?:=邏輯方程將被忽略。如

30、DCSETFA!B!ABF?=!A!B;6塊塊是括在大括號“”內的一段ASCII碼文本,括號內的文本可以是一行,也可以是多行。塊用于邏輯方程、狀態圖、宏定義和標識符中,塊可以嵌套使用,即塊中包含塊。例: WHEN (Mode = = S_Data) THEN Out_data := S_in; S_Valid := 1; ELSE WHEN (Mode = = T_Data) THEN Out_data := T_in; T_Valid := 1; 7集合集合是作為一個整體參與運算的一組信號或常量。它采用一個標識符,用方括號內的一組信號或常量表示,其中的每一個信號或常量稱為集合的元素。例1:A

31、ddr = A7, A6, A5, A4,A3,A2,A1,A0; 為枚舉法Addr = A7 . A0; 為界限符法Addr = A7 . A2,A1,A0; 為兩種方法的組合 例2:集合的賦值設集合AA1,A2,A3,若A1,0,1,則等效于A11,A20,A31,也可以表示為A5若 A1,A2,A32,則等效于A10,A21,A30用于集合賦值或比較的數要轉換成二進制形式,并遵從以下規則: 如果二進制數的有效位多于集合中元素的個數,要從左邊截去多余的位。 如果二進制位的有效位少于集合中的元素個數,要從左邊用0補齊缺少的位。 單個信號對集合賦值時,則用此信號對每個元素賦值。如:c,d=a,

32、則 c=a,d=a;c,d=a&b, 則 c=a&b,d=a&b二、ABEL源文件的基本結構邏輯關系描述部分(三者取一或其任意組合)說明部分module模塊名; 模塊開始title 標題說明 Declarations器件名 device 器件的工業標號 ;低層模塊名INTERFACE(輸入輸出);例化名FUNCTIONLBLOCK低層模塊名;信號名, 信號名 pin 引腳號, 引腳號 istype 屬性 ;信號名, 信號名 node istype 屬性 ;常量說明語句;集合的定義;宏定義語句;equations邏輯方程;truth-table(輸入變量 輸出變量) 真值表;state-diag

33、ram(狀態變量) 狀態圖描述;測試向量部分test-vectors(輸入變量 輸出變量) 測試向量表;end 模塊名 ; 模塊結束MODULE低層模塊名上面帶有方括號的可根據需要選擇,不是每個程序中都必須有的。如果在引腳和節點的說明中沒有指明屬性,則表明屬性為com。下面是一個完整描述可逆十進制計數器的ABEL程序可逆十進制計數器可作加法計數器,又可作減法計數器,設計要求:使能端EN,低電平有效。加、減法計數選擇信號M,M0時,加法計數;M1時,減法計數。進位信號CO,借位信號CI,輸出Q3Q0,高位為Q3。MODULEcounterTitle ADD and SUB changeable

34、counterCLK,EN,M PIN;Q3.Q0,CI,CO PIN ISTYPE REG;C,X,Z,P=.C.,.X.,.Z.,.P.;Q=Q3.Q0;EQUATIONSQ.CLK=CLK;Q.OE=!EN;CI.CLK=CLK;CO.CLK=CLK;CI.OE=!EN;CO.OE=!EN;WHEN(M=0)&(Q=0)&(Q0)&(QQ,CI,CO)1,X,X-X,X,X;0,X,P-0,0,0;REPEAT 110,0,C-X,X,X;REPEAT 110,1,C-X,X,X;END1.信號屬性的說明:用ISTYPE語句定義信號屬性。它可以在節點或引腳說明語句中使用,也可以單獨使用。

35、單獨使用時須放在引腳或節點說明語句之后。屬性規定了器件結構或信號的限制。輸入信號不指定屬性,輸出信號有屬性,缺省的屬性為COM。某些屬性與器件結構有關,另一些則與器件結構無關。由于ABELHDL是與器件無關的通用語言,若不規定信號屬性或者其他信息(如點擴展名),則設計從一種器件移植到另一種器件時,可能工作不正常。要求信號的屬性并不意味著設計必須總是指定一個特定器件。如果設計不使用與器件結構有關的屬性,則設計適用的范圍廣。使用與器件結構有關的屬性越多,適合該設計的器件種類就越受限制。當然,在針對某些特定器件進行設計時,使用屬性可以更精確地描述電路的行為,排除模棱兩可的情況。表2-8 引腳、節點屬

36、性表屬性與結構無關意 義buffer目標器件中寄存器輸出到引腳輸出之間無反相器collapse優化時此信號可能去掉com組合輸出dc未指定的邏輯為任意態invert目標器件中寄存器輸出到引腳輸出之間有反相器keep不將此信號從方程式中簡化掉neg未規定的邏輯為0pos未規定的邏輯為1retain不對輸出進行最小化優化,保留冗余乘積項reg寄存器型輸出reg_g鐘控D觸發器reg_dD型觸發器JK型觸發器reg_jkreg_srSR型觸發器reg_tT型觸發器xor目標器件中的異或門表中neg,pos,dc這三個屬性是互斥的,在屬性說明中只能使用其中的一個。2.點擴展名主要用于寄存器邏輯方程中,

37、它說明了寄存器引腳的性質。表2-9ABEL的點后綴點擴展名與結構無關意 義.ACLR異步復位.AP異步寄存器預置位.AR異步寄存器復位.ASET異步置位.CE鐘控觸發器時鐘使能端.CLK邊沿觸發器的時鐘.CLR同步復位.COM組合反饋.DD觸發器的D端.FB寄存器反饋.FC觸發模式控制.JJK觸發器的J端.KJK觸發器的K端.LD鎖存器的D端.LE鎖存器鎖存使能端.LH鎖存器鎖存使能(H)端.OE輸出使能.PIN引腳反饋.PR寄存器預置位.Q寄存器輸出.RRS觸發器R端.RE寄存器復位.SRS觸發器S端.SET同步置位.SP同步寄存器預置位.SR同步寄存器復位.TT觸發器T端3.真值表描述真值

38、表用表格的形式直觀地說明不同輸入下的邏輯輸出。真值表可用于組合電路也可用于時序電路。格式:TRUTHTABEL(輸入-輸出)輸入-輸出;.或TRUTHTABEL(輸入:寄存器輸出)輸入:寄存器輸出;.或TRUTHTABEL(輸入:寄存器輸出-輸出)輸入:寄存器輸出-輸出;.其中:(1)-表示輸入與輸出關系為組合型;(2):表示輸入與輸出關系為寄存型;例:狀態機有四個狀態和一個輸出,集合A,B代表當前狀態,集合C,D表示下一個狀態,E是一個簡單組合型輸出。該狀態機工作時,在各個不同狀態間循環。TRUTHTABEL(A,B:C,D-E)0,0:0,1-1;0,1:1,0-0;1,0:1,1-1;1

39、,1:0,0-1;4.狀態圖描述狀態圖十分適合用來設計時序電路中的狀態機,利用狀態圖可以設計復雜的時序邏輯。狀態圖首先用關鍵詞STATEDIAGRAM定義一個狀態機,狀態機的工作過程由IFTHENELSE、CASE和GOTO語句定義。(1)STATEDIAGRAM狀態圖語句格式:STATEDIAGRAM狀態寄存器-狀態輸出STATE狀態表達式:方程;方程;.;狀態轉移語句;STATEDIAGRAM結構定義了一個狀態機,狀態寄存器定義狀態機的當前狀態,它由狀態表達式定義的某一狀態開始運行,其輸出由狀態表達式后的方程給出,在下一個時鐘之后執行轉移語句,使狀態機轉移到下一個狀態。方程為可選項,每一狀

40、態必須包含轉移語句。(2)轉移語句無條件轉移語句GOTO格式:GOTO狀態表達式;無條件轉移到下一個狀態,后面可跟WITH語句。例:STATES0:YY1;GOTOS1;條件轉移語句IFTHENELSE格式:IF表達式THEN狀態表達式ELSE狀態表達式;若IF后的表達式為真,則轉向THEN后的狀態表達式所定義的狀態,否則,轉向ELSE后狀態表達式所定義的狀態,它所規定的轉移條件是互斥的。IFTHENELSE語句可跟WITH語句,也可以嵌套。嵌套的條件轉移語句稱為鏈接式條件轉移語句,格式如下:IF表達式THEN狀態表達式ELSEIF表達式THEN狀態表達式ELSE狀態表達式;鏈接的數目沒有限制

41、,但最后一個語句必須用分號結束。鏈接式條件語句適合條件不互斥的情況,條件互斥的情況用CASE語句更清楚。選擇語句CASEENDCASE格式:CASE表達式:狀態表達式;表達式:狀態表達式;.ENDCASE;選擇語句中的表達式必須滿足互斥條件,即在任何時候,有且只有一個表達式條件為真。狀態表達式后可跟WITH語句。如STATES0:CASEC0:S1;WITHA1;C1:S2;C2:S3;ENDCASE;轉移方程語句WITH格式:轉移語句狀態表達式WITH方程;方程;.轉移語句指GOTO、IFTHENELSE和CASE等語句,狀態表達式是下一個狀態,WITH后面的方程指定本次轉移相應的輸出。WI

42、TH特別適用于Mealy型狀態機,因為它的狀態轉換與條件有關。如:STATES5:IFA1THENS1WITHX:=1;Y:=1;ELSES2WITHX:=0;Y:=1;5.ABEL語言的指示字ABEL語言的指示字以開頭,這些指示字在源文件中所起的作用是指示語言處理程序如何對源文件的內容加以處理,能夠實現有條件地采用某段源程序、將另一個源文件包含在該源文件中、或在處理中輸出某些必要的信息。利用它們可以簡化編程,方便調試。(1)重復指示字REPEAT格式:REPEAT表達式塊作用:將塊中的內容重復插入源文件中N次,N是表達式的值。例:REPEAT5H,執行該語句后,在源文件中插入“H,H,H,H

43、,H,”。(2)任意態設置指示字DCSET格式:DCSET作用:將任意態設置為1態或0態,以滿足對邏輯方程優化的需要。例:DCSETFA!B!A;F?!A!B;在邏輯方程優化的過程中,!A!B既可作1處理,也可作0處理。(3)退出指示字EXIT格式:EXIT作用:指示語言處理程序,當出錯位被置1時,停止對源文件進行分析處理。(4)其它替代指示字ALTERNATE,標準指示字STANDARD,表達式指示字EXPR,引用指示字IFCLUDE,字符無重復指示字IRPC,基數指示字RADIX,無限重復指示字IRP,這些指示字的說明請參看ABELHDL手冊。6邏輯方程關鍵字:EQUATIONS格式:EQ

44、UATIONS信號名?=表達式;信號名?:表達式;WHENTHENELSE語句;2.2.2 ispDesign EXPERT軟件的使用一、ispDesign EXPERT軟件簡介 運用大規模、超大規模可編程邏輯器件與電子設計自動化(EDA)技術是現代數字電子 技術發展的潮流,將其引入高校教學、科研、研究所、電子產品生產企業勢在必行。美國 Lattice半導體公司推出的ISP技術為電子系統設計提供了功能完善的設計手段,特別適 合教學、科研和產品開發。 ISP技術使用戶能夠在無需從電路板上拆下芯片的情況下,改變芯片的邏輯內容。這 種技術能大大縮短電子系統設計周期,簡化生產流程,降低生產成本,并可在

45、現場對系統 進行邏輯重構和升級。ISP技術的發明,使硬件隨時能夠改變組態,實現了硬件設計軟件 化,革命性地改變了電子系統設計的傳統概念和方法。 Lattice公司推出的ispEXPERT的數字系統設計軟件,它是一套完整的EDA軟件。設 計輸入可采用原理圖、硬件描述語言、混合輸入三種方式。能對所設計的數字電子系統進行功能仿真和時序仿真。ispEXPERT編譯器是此軟件的核心,能進行邏輯優化,將邏輯映射到器件中去,自動完成布局與布線并生成編程所需要的熔絲圖文件。軟件支持所有 Lattice公司的ispLSI器件。軟件主要特征有輸入方式原理圖輸入,ABEL-HDL輸入,VHDL輸入,Verilog-

46、HDL輸 入邏輯模擬功能模擬,時序模擬,靜態時序分析編譯器 結構綜合,映射,自動布局和布線支持的器件含有宏庫,有500個宏元件可供調用,支持所有ISP器件下載軟件ISP菊花鏈下載軟件二、ISP Expert System的原理圖輸入1啟動ispExpertSystem 2創建一個新的設計項目1)選擇菜單File2)選擇New Project.3)鍵入項目名c:examplesdemo.syn4)你可以看到默認的項目名和器件型號: Untitled and ispLSI1032E-125LT1003.項目命名(1)鼠標雙擊Untitled。(2)在Title文本框中輸入“Demo Project

47、”,并選OK。4.選擇器件(1)雙擊ispLSI1032E-125LT100,你會看到Choose Device對話框(如下圖所示)。(2)在Choose Device窗口中選擇ispLSI1000項。(3)按動器件目錄中的滾動條,直到找到并選中器件ispLSI 1032E-70LJ84。(4)撳OK按鈕,選擇這個器件。5.在設計中增加源文件 一個設計項目由一個或多個源文件組成。這些源文件可以是原理圖文件(*.sch)、ABEL HDL文件(*.abl)、VHDL設計文件(*.vhd)、Verilog HDL設計文件(*.v)、測試向量文件 (*.abv)或者是文字文件(*.doc, *.wr

48、i, *.txt)。在以下操作步驟中,你要在設計項目中添加一張空白的原理圖紙。(1)菜單上選擇Source項。 (2)選擇New.(3)在對話框中,選擇Schematic(原理圖),并按OK(4)選擇路徑: c: examples 并輸入文件名demo.sch(5)確認后按OK6.原理圖輸入 你現在應該進入原理圖編輯器。在下面的步驟中,你將要在原理圖中畫上幾個元件符號,并用引線將它們相互連接起來。(1)從菜單欄選擇Add ,然后選擇Symbol,你會看到如下圖所示的對話框(2)選擇GATES.LIB庫,然后選擇G_2AND元件符號。(3)將鼠標移回到原理圖紙上,注意此刻AND門粘連在你的光標上

49、,并隨之移動。(4)單擊鼠標左鍵,將符號放置在合適的位置。(5)再在第一個AND門下面放置另外一個AND門。(6)將鼠標移回到元件庫的對話框,并選擇G_2OR元件。(7)將OR門放置在兩個AND門的右邊。(8)現在選擇Add菜單中的Wire項。(9)單擊上面一個AND門的輸出引腳,并開始畫引線。(10)隨后每次單擊鼠標,便可彎折引線(雙擊便終止連線)。(11)將引線連到OR門的一個輸入腳。(12)重復上述步驟,連接下面一個AND門。7.添加更多的元件符號和連線(1)采用上述步驟,從REGS.LIB庫中選一個g_d寄存器,并從IOPADS.LIB庫中選擇G_OUTPUT符號。(2)將它們互相連接

50、,實現如下的原理圖:8.完成你的設計 在這一節,通過為連線命名和標注I/O Markers來完成原理圖。當要為連線加信號名稱時,你可以使用Synario的特點,同時完成兩件事-同時添加連線和連線的信號名稱。這是一個很有用的特點,可以節省設計時間。I/O Markers是特殊的元件符號,它指明了進入或離開這張原理圖的信號名稱。注意連線不能被懸空(dangling),它們必需連接到I/O Marker或邏輯符號上。這些標記采用與之相連的連線的名字,與I/O Pad符號不同,將在下面定義屬性(Add Attributes)的步驟中詳細解釋。(1)為了完成這個設計,選擇Add菜單中的Net Name項

51、。(2)屏幕底下的狀態欄將要提示你輸入的連線名,輸入A并按Enter鍵,連線名會粘連在鼠標的光標上。(3)光標移到最上面的與門輸入端,并在引線的末連接端(也即輸入腳左端的紅色方塊), 按鼠標左鍵,并向左邊拖動鼠標。這可以在放置連線名稱的同時,畫出一根輸入連線。(4)名稱現在應該是加注到引線的末端。(5)重復這一步驟,直至加上全部的輸入B,C,D和CK,以及輸出OUT。(6)現在在Add菜單的I/O Marker項。(7)將會出現一個對話框,請選擇Input。(8)將鼠標的光標移至輸入連線的末端(位于連線和連線名之間),并單擊鼠標的左鍵。這時會出現一個輸入I/O Marker,標記里面是連線名。

52、(9)光標移至下一個輸入,重復上述步驟,直至所有的輸入都有I/O Marker。(10)現在請在對話框中選擇Output, 然后單擊輸出連線端,加上一個輸出I/O Marker。(11)至此原理圖就基本完成,它應該如下圖所示。9. 定義ISPLSI/ispLSI器件的屬性(Attributes) 你可以為任何一個元件符號或連線定義屬性。在這個例子中,你可以為輸出端口符號添加引腳鎖定LOCK的屬性。請注意,在ispEXPERT中,引腳的屬性實際上是加到I/O Pad 符號上,而不是加到I/O Marker上。同時也請注意,只有當你需要為一個引腳增加屬性時,才需要I/O Pad符號,否則,你只需要

53、一個I/O Marker.(1)在菜單條上選擇Edit = Attribute = Symbol Attribute項,這時會出現一個 Symbol Attribute Editor 對話框。(2)單擊需要定義屬性的輸出I/O Pad.(3)在對話框里會出現一系列可供選擇的屬性。(4)選擇Synario Pin屬性,并且把文本框中的 * 替換成4.(5)關閉對話框。(6)請注意,此時數字4出現在I/O Pad 符 號內。10.保存已完成的設計(1)從菜單條上選擇File,并選Save命令。(2)再次選File,并選Exit命令。三、設計的編譯與仿真1.建立仿真測試向量(Simulation T

54、est Vectors)(1)已選擇ispLSI1032E-70LJ84器件的情況下,選擇Source菜單中的New. 命令。(2)在對話框中,選擇ABEL Test Vectors并按OK。(3)輸入文件名demo.abv 作為你的測試向量文件名。(4)按 OK。(5)文本編輯器彈出后,輸入下列測試向量文本:module demo;c,x = .c.,.x.;CK,A,B,C,D,OUT PIN;TEST_VECTORS(CK, A, B, C, D-OUT) c , 0 , 0 , 0 , 0 - x ; c , 0 , 0 , 1 , 0 - x ; c , 1 , 1 , 0 , 0

55、- x ; c , 0 , 1 , 0 , 1 - x ; END(6)完成后,選擇File 菜單中的Save命令,以保留你的測試向量文件。(7)再次選擇File,并選Exit命令。(8)此時你的項目管理器(Project Navigator)應如下圖所示。2、編譯原理圖與測試向量 現在你已為你的設計項目建立起所需的源文件,下一步是執行每一個源文件所對應的 處理過程。選擇不同的源文件,你可以從項目管理器窗口中觀察到該源文件所對應的可執行過程。在這一步,請你分別編譯原理圖和測試向量。(1)在項目管理器左邊的項目源文件( Sources in Project )清單中選擇原理圖 (demo.sch

56、)。(2)雙擊原理圖編譯(Compile Schematic) 處理過程。這時會出現一個如右的對話框。 (3)編譯通過后,Compile Schematic過程的左邊會出現一個綠色的查對記號,以表明編譯成功。編譯結果將以邏輯方程的形式表現出來。(4)然后從源文件清單中選擇測試向量源文件(demo.abv)。 (5)雙擊測試向量編譯(Compile Test Vectors )處理過程。 這時會出現另一個狀態對話 框。3、 設計的仿真 ISP Expert開發系統較先前的ISP Synario開發系統而言,在仿真功能上有了極大的改進。它不但可以進行功能仿真(Functional Simulati

57、on),而且可以進行時序仿真(Timing Simulation)。在仿真過程中ISP Expert開發系統提供了單步運行、斷點設置以及跟蹤調試等新的功能。(1) 功能仿真 在ispEXPERT System Project Navigator 的主窗口左側,選擇測試向量源文件 (demo.abv),雙擊右側的Functional Simulation功能條。將彈出如下圖所示的仿真控制窗口(Simulator Control Panel)。 在上述窗口中按 Debug 鈕,該窗口將進入跟蹤調試模式,其狀態如下圖所示。在Available Signals工具條中,選中所要跟蹤查看的信號名,如:A

58、,B,C,CK,D,OUT,按 Monitor鈕,可跟蹤查看這些信號的狀態。 在Simulator Control Panel中,按Run鈕將根據(*.abv)文件中所給出的輸入波形進行一步到位的仿真。 在 Simulator Control Panel中,按Window = Waveform Viewer菜單,將打開波形觀察器 Waveform Viewer如下圖所示。 為了能觀察到波形,你必須選擇Edit菜單中的Show命令。你會看到如下的對話框,其中列出了輸入、輸出端口的信號名。 單擊每一個你想看的信號名,然后單Show。每一個你所選的波形現在都顯示在波形觀察器的窗口中,如下圖所示: 如

59、需查看內部節點波形,可在Simulator Control Panel窗口中選中該節點,然后按Monitor 鈕,即可在Waveform Viewer窗口中看到該信號波形。 單步仿真。 按Simulator Control Panel 窗口中的Step鈕可對您的設計進行單步仿真。ispEXPERT系統中仿真器的默認步長為100ns,您可根據需要在按File=Setup菜單所激活的對話框(Setup Simulator)中重新設置您所需要的步長。按Simulator Control Panel 窗口中的File=Reset菜單,可將仿真狀態退回至初始狀態(0時刻)。隨后,每按一次Step鈕,仿真

60、器便仿真一個步長。下圖是按了七次Step鈕后所顯示的波形(所選步長為100ns)。設置斷點(Breakpoint)。在Simulator Control Panel窗口中,按 Windows= Breakpoints 菜 單,會顯示如下圖所示的斷點設置控制的Breakpoint窗口。 在該窗口中按New按鈕,開始設置一個新的斷點。在Available Signals欄中單擊鼠標選擇所需的信號,在窗口中間的下拉滾動條中可選擇設置斷點時該信號的變化要求,例如: -0,指該信號變化到0狀態;!=1,指該信號處于非1狀態。一個斷點可以用多個信號所處的狀態來作為定義條件,這些條件在邏輯上是與的關系。最后

溫馨提示

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

最新文檔

評論

0/150

提交評論