景松-CPLD-教學成果發(fā)表-課件_第1頁
景松-CPLD-教學成果發(fā)表-課件_第2頁
景松-CPLD-教學成果發(fā)表-課件_第3頁
景松-CPLD-教學成果發(fā)表-課件_第4頁
景松-CPLD-教學成果發(fā)表-課件_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CPLDMax+plusII數(shù)位邏輯設計Designby

:趙景松老師1CPLDMax+plusII數(shù)位邏輯設計Desig目錄第零篇一、(數(shù)位電路概論)----------P51、何謂數(shù)位邏輯2、組合邏輯3、順序邏輯二、(CPLD基礎知識)---------P121、何謂CPLD2、進入CPLD之背景知識三、(數(shù)位電路的發(fā)展歷程)---P162目錄第零篇2四、(VHDL程式語言介紹)-----P201、一個完整的VHDL程式2、VHDL三種電路架構(gòu)的描述

3、元件對應Mapping3四、(VHDL程式語言介紹)-----P203第零篇4第零篇4一、數(shù)位電路概論5一、數(shù)位電路概論5一、數(shù)位電路概論1、數(shù)位邏輯

基本上訊號可區(qū)分為兩大類,一為「類比」信號、而另一為「數(shù)位」信號。而所謂的「類比」信號,泛指隨時間做連續(xù)變化的信號,例如人類所講的「話」,就是一種類比信號。而「數(shù)位」信號是指不會隨時間做連續(xù)的改變之信號,例如「開關(guān)」,僅有打開及關(guān)掉而已,換成邏輯來說,也就是只有「0」與「1」而已。6一、數(shù)位電路概論1、數(shù)位邏輯6換句話說,數(shù)位信號就可以用邏輯來表示,如此做可簡化信號之處理,因為比較不會有雜訊干擾的問題。

所謂數(shù)位邏輯,就是專門為了處理數(shù)位訊號的一門學科。因電路中所有之元件皆為邏輯元件,固其組合出來之任何電路,皆為數(shù)位電路,所以其輸入、輸出訊號,也只會以邏輯狀態(tài)呈現(xiàn),如此可使輸出之訊號獲得相當之穩(wěn)定性及確定性。因為這樣的關(guān)係,使得數(shù)位系統(tǒng)被廣泛的使用,並不斷改良中。7換句話說,數(shù)位信號就可以用邏輯來表示,如此做可簡化信2、組合邏輯

所謂組合邏輯,乃是將基本的邏輯元件,例如:及閘(AND)、或閘(OR)、反閘(NOT)、互斥或閘(XOR)等元件,組合成一個數(shù)位(邏輯)電路,而達成某種功能(要求),即稱為「組合邏輯電路」。(及閘)(或閘)(反閘)(互斥或閘)82、組合邏輯(及閘)(或閘)(反閘)(互斥或閘)8布林代數(shù)&真值表ABY000011101111ABY0000101001111、及閘2、或閘Y=ABY=A+B9布林代數(shù)&真值表ABY000011101111ABY0000AY0110ABY000011101110布林代數(shù)&真值表4、反閘3、互斥或閘Y=A+BY=A10AY0110ABY000011101110布林代數(shù)&真值表43、順序邏輯

數(shù)位電路主要是包含兩類元件,一為邏輯閘而另一為儲存元件。之前所提之組合邏輯,沒有循序的功能,也就是輸出完全由輸入決定,當輸入訊號消失,輸出亦隨之不見,無儲存輸出結(jié)果之功用。然而電路要能循序,就需要一種能夠儲存原來信號的裝置,使新輸入的信號能參考原來輸入狀態(tài)來決定輸出變化。這種儲存裝置,稱為記憶裝置。將「組合邏輯」加上這種「記憶裝置」,使電路具有循序處理能力就是一種「順序邏輯電路」。順序邏輯電路中最基本的記憶元件,就是「正反器(Flip-Flop)」。113、順序邏輯11二、CPLD基礎知識12二、CPLD基礎知識12二、CPLD基礎知識1、何謂CPLD

由於資訊工業(yè)發(fā)展訊速,從一般人之日常生活就可見一般;小至每個人手上的行動電話、家家戶戶皆有之洗衣機、停車場的全自動化,大到銀行裏的資料庫、飛機上的自動駕駛,無一不是電腦所及的地方,而不論是電腦本身亦或其週邊之,皆為數(shù)位電路之產(chǎn)物。對於大部份學習數(shù)位電路設計的人來說,其學習過程大抵從最簡單的組合邏輯電路設計開始,接著便是順序邏輯、簡易之模組設計、至比較複雜完整之系統(tǒng)設計。13二、CPLD基礎知識1、何謂CPLD13

傳統(tǒng)的實驗方式,每做一個實驗就必須重組一個硬體線路,特別是複雜的線路,相當費時耗力且不易進行,因此也就常省略跳過,導致缺乏設計架構(gòu)稍大且完整的電路的經(jīng)驗。為了改進以往數(shù)位電路學習方式的缺點,並且縮短開發(fā)大型數(shù)位電路的時間,所以有了整合式數(shù)位電路設計環(huán)境的發(fā)展,此種環(huán)境是以個人電腦為平臺,配合電子設計自動化(EDA)軟體的執(zhí)行,達到從電路設計輸入、模擬、下載驗證、修改、燒錄一氣呵成,而且也讓自行設計開發(fā)邏輯晶片的夢想得以實現(xiàn)。14傳統(tǒng)的實驗方式,每做一個實驗就必須重組一個硬PLD(ProgrammableLogicDevice)

是何因素促成數(shù)位電路學習的方式改變呢?究其原因首推可程式邏輯元件(PLD)的快速發(fā)展。邏輯晶片大致上分成標準邏輯晶片(StandardLogic)與應用規(guī)格晶片(ASIC)兩類;而PLD為ASIC之一種。PLD由小而大分為以下幾種:小型/簡單型PLD(SimplePLD)、複雜型PLD(ComplexPLD)、場可規(guī)劃型閘陣列(FPGA)。而本課程以複雜型PLD為主,也就是俗稱之CPLD為教學重點,及發(fā)展基礎。15PLD(ProgrammableLogicDevice三、數(shù)位電路之

發(fā)展歷程16三、數(shù)位電路16數(shù)位電路之發(fā)展(一):整個數(shù)位電路的發(fā)展約可分為四個階段:第一階段:早期為利用電晶體、電阻、二極體…等電子元件設計而成各式之小型積體電路

SSI

(SmallScaleIntegratedCircuit)第二階段:之後再以這些基本邏輯閘配合卡諾圖的化簡,設計出解碼器Decoder、解多工器Demultiplexer、多工器Multiplexer、加法器Adder、正反器FlipFlop、移位暫存器Shift

Register、計數(shù)器Counter

等中型積體電路MSI(MediumScaleIntegratedCircuit)17數(shù)位電路之發(fā)展(一):整個數(shù)位電路的發(fā)展約可分為四個階段:第三階段:再由這些MSI慢慢的擴大成大型及超大型積體電路LSI、VLSI…等第四階段:隨著需求的快速變遷,除了晶片功能的複雜化及多元化之外產(chǎn)品的研發(fā)週期必須大幅的縮短以保持其競爭力。因此早期(前面三個階段)數(shù)位電路的設計方式已經(jīng)無法市場的需求,目前數(shù)位控制電路上所要求的功能,大都透過可程式化邏輯裝置(ProgrammableLogicDevice)

PLD、可程式化邏輯陣列(FiledProgrammavleGateArray)

FPGA

、微控器(MicroController)、微處理器

(MicroProcessor)以及特殊應用晶片ASIC(ApplicationSpecificIntegratedCircuit)等晶片來規(guī)劃完成。18第三階段:再由這些MSI慢慢的擴大成大型及18四、VHDL程式語言介紹19四、VHDL程式語言介紹19一完整的VHDL程式結(jié)構(gòu)如下面所示:Library宣告USE宣告PACKAGE宣告Entity宣告Configuration宣告Architecture資料物件宣告區(qū)...Begin

DataFlow描述

Behavior

描述

Structure描述end20一完整的VHDL程式結(jié)構(gòu)如下面所示:Library宣Architecture之

三種結(jié)構(gòu)敘述21Architecture21電路架構(gòu)的描述

(ArchitectureDescribe)VHDL架構(gòu)的風格有三大類:第一類:資料流描述(DataFlowDescription)

所謂資料流描述就是利用訊號的指定Assignment方式來描述電路內(nèi)訊號資料的流動情形,而這些指定的方式於VHDL語言中可以區(qū)分成下列三種:1、直接式的訊號設定“<=”2、條件式conditional的訊號設定“when…else”3、選擇式Selected的訊號設定“with…select…when”22電路架構(gòu)的描述(ArchitectureDescri第二類:

行為描述(BehaviorDescription),所謂行為模式是用process的敘述來描述一個硬體電路的行為模式BehaviorModel。而它與資料流描述的最大不同點為,在process的所描述的行為模式內(nèi)皆為順序性Sequential處理,而非資料流描述的共時性處理,意思是說於行為描述的風格,其程式的設計與一般的高階語言十分相似。一般而言由process敘述所描述的行為模式之宣告,必須在架構(gòu)Architecture內(nèi)進行,而其基本語法如下:Label:process(SensitivityList)Declarationarea;beginBehaviorstatement;endprocessLabel;23第二類:23IF…THEN…ENDIFif…then…endif為一個架構(gòu)不完整的條件判斷指令(內(nèi)部缺少了ELSE敘述),其基本語法為:if條件then敘述區(qū);endif;例子:以if…then…endif指令設計一個負緣動作的D型正反器:其程式的架構(gòu)Architecture部份為:if(CK’event)and(CK=‘1’)thenQ<=D;endif;24IF…THEN…ENDIF24IF…THEN…ELSE…ENDIFif…then…else…endif為一個架構(gòu)完整的條件判斷指令(內(nèi)部缺少了ELSE敘述),其基本語法為:if條件then敘述區(qū)T;else敘述區(qū)F;endif;例子:以if…then…else…endif指令設計一個比較器:其程式的架構(gòu)Architecture部份為:ifA=BthenF<=‘1‘;thenF<=‘0‘;endif;25IF…THEN…ELSE…END第三類: 所謂結(jié)構(gòu)描述

(StructureDescription)

,是將一個完整的硬體控制電路當成是一些相互連接的元件集合,在此種模式之下我們首先必須很清楚的宣告於硬體電路內(nèi)所使用的每一個元件Component。 採用結(jié)構(gòu)化?;淖畲髢?yōu)點是設計師可以利用階層式(Hierarcky)方式將一個很複雜的大型電路細分成數(shù)個功能獨立的小電路(模組),並將其獨立出來設計及模擬、驗證,等到所有的獨立模組皆設計完成之後再進一步將它們?nèi)拷M合起來。我們就可以在很短的時間內(nèi)完成一個龐大而複雜的電路。而使用結(jié)構(gòu)描述時,有兩個重要的步驟必須完成,其說明如下:26第三類:261、使用元件的宣告ComponentDeclaration。2、各元件間的連線對應Mapping。元件宣告ComponentDeclaration: ComponentComponent_name port( Signal_name1:modeDatatype; Signal_name2:modeDatatype; : : Signal_namen:modeDatatype; ); endComponent;271、使用元件的宣告ComponentDeclaration元件對應Mapping:可分為以下兩種,其基本語 法如下:一、名稱對應MappingByname: LABEL1:Component_name portmap( Signal_name1=>Signal_name1, Signal_name2=>Signal_name2, : : Signal_namen=>Signal_namen, ); endComponent;2828

1、LABEL:元件的標籤。 2、Component_name:所使用元件的名稱,須與現(xiàn)成之元件名稱相同。 3、portmap():括號內(nèi)之敘述是用來描述被叫用的現(xiàn)成元件內(nèi)部接腳與實際電路內(nèi)部元件接腳名稱,左邊為現(xiàn)成元件的接 腳名稱,右邊的為硬體電路的接腳名稱 ,中間以“=>”符號連接。2929二、位置對應MappingByposition: Label1:Component_nameportmap(Signal1,Signal2,……,Signaln); 1、LABEL:元件的標籤。 2、Component_name:所使用元件的名稱,須與現(xiàn)成之元件名稱相同。 3、portmap():括號內(nèi)之敘述是用來描述被叫用的現(xiàn)成元件內(nèi)部接腳與實際電路內(nèi)部port接腳中間的連線對應關(guān)係,因為真 實對應,故需按接腳順序去連接。3030數(shù)位電路之發(fā)展(二):1、SSI(SmallScaleIntegratedCircuit)

整個數(shù)位電路的發(fā)展,從第一階段,利用電晶體、電阻、二極體…等電子元件設計成各式各樣的基本邏輯閘,如NOT、AND、OR、NOR、等小型積體電路SSI。31數(shù)位電路之發(fā)展(二):1、SSI(SmallScale31-1SSI:(例如:SN74XX系列、SN54XX系列等)說明:為利用基本邏輯閘IC,例如SN7404、SN7408或者SN7432等最基本之組合邏輯元件,將這些元件組合而成所要求功能之數(shù)位電路。其缺點為電路之連接線路非常複雜,得多數(shù)人為之卻步。321-1322、MSI(MediumScaleIntegratedCircuit)

第二階段再以這些基本邏輯閘配合卡諾圖(Karnaugh-Map)的化簡,設計出解碼器Decoder、解多工器。(De-mulplexer)、移位暫存器(ShiftRegister)、以及計數(shù)器(counter)…等中型積體電路,而且簡稱為MSI。332、MSI(MediumScale332-1MSI:由SSI數(shù)位電路設計中可發(fā)現(xiàn),所有之組合邏輯電路,其輸出皆可由輸入之Minterm項經(jīng)由OR而得到。而我們發(fā)現(xiàn),解碼器之每一輸出恰為所有輸入之Minterm項。換句話說,所有之組合邏輯電路,皆可由一「解碼器」加上一「OR」之邏輯閘得到,而解碼器為一MSI。342-1343、LSI(LargeScaleIntegratedCircuit)說明:

第三階段,再由這些MSI慢慢擴大成為「大型」及「超大型」積體電路,LSI及VLSI…等。隨著市場需求的快速變遷,前面所提的三個階段已無法滿足市場需求,於是乎有第四階段PLD之發(fā)展。353、LSI(LargeScaleIntegrated33-1LSI:經(jīng)由MSI的發(fā)現(xiàn),我們可以很輕易的獲得所要之數(shù)位電路。根據(jù)這一項結(jié)論,將之推展擴大,於是成為現(xiàn)今之LSI甚至是VLSI,更發(fā)展成為PLD元件,從PROM、PLA、PAL、GAL、PEEL到FPGA等元件,其動作速度、燒錄方式、次數(shù)皆有進步,不管材質(zhì)如何改變,其所使用原理大致上皆相同。363-1364、PLD(ProgrammableLogicDevice)

說明:

目前於數(shù)位控制電路上所要求的功能,大都透過可程式邏輯裝置PLD、可程式化邏輯閘陣列FPGA、微控器MC、微處理器MP以及特殊應用IC,等晶片來規(guī)劃完成。374、PLD(ProgrammableLogic374-1PLD:(PROM、PLA、PAL、FPGA)PROM:可程式化唯讀記憶體PROM為最早出現(xiàn)的PLD元件,其原理便是利用前用所敘述之結(jié)論,它是利用每個ROM

內(nèi)部的解碼器電路(由NOT

及AND構(gòu)成解碼電路,故每個AND閘的輸出分別為兩個輸入的所有Minterm),且在後面加入一可規(guī)劃OR電路。384-1384-2PLD:(PROM、PLA、PAL、FPGA)PLA:可程式化邏輯陣列PLA

(ProgrammableLogicArray)的內(nèi)部結(jié)構(gòu)與PROM相似,而它們的最大不同為PLA的

AND項及OR項皆可以規(guī)劃。當然我們亦可將其規(guī)劃成任何兩個輸入的組合邏輯電路,但其成本會比PROM還要高。394-2394-3PLD:(PROM、PLA、PAL、FPGA)PAL:可程式化陣列邏輯PLA

(ProgrammableArrayLogic)的內(nèi)部結(jié)構(gòu)與PROM、PLA相似,而其不同點為PAL它的

AND項可以規(guī)劃,但OR項固定不能規(guī)劃。於PAL中可以發(fā)現(xiàn)到,製造成本為PLD

中最低的一種,因此也是最廣泛使用的一種。404-3404-4PLD:(PROM、PLA、PAL、FPGA)PEEL:電子方式可程式化可清除邏輯陣列PEEL(ProgrammableElectricallyErasableArrayLogic)

的內(nèi)部結(jié)構(gòu)與PAL相似,基本它也是一種AND項與OR

項的結(jié)構(gòu)。其每一OR輸出端皆有一個巨集結(jié)構(gòu)MACRO

CELL讓我們可用軟體規(guī)劃方式選擇輸方式為何。414-441場可規(guī)劃邏輯閘陣列FPGA

(FieldProgrammableGateArray)隨著控制電路的功能日益複雜,單一個PEEL的硬體結(jié)構(gòu)早已無法勝任,故FPGA的元件就立刻被發(fā)展出來,所謂的可規(guī)劃邏輯閘陣列

FPGA就是在一個超大型IC內(nèi)配置了相當數(shù)是的可程式42場可規(guī)劃邏輯閘陣列FPGA424-5PLD:(PROM、PLA、PAL、FPGA)FPGA:化邏輯元件,這些元件我們簡稱為CLB(ConfigurableLogicBlock),IC內(nèi)這些CLB是經(jīng)由可程式化的垂直通道及水平通道的連線所包圍。而CLB為陣列方式排列,並在其四周製造了無數(shù)的輸入-輸出緩衝器IOB,以便和外部控制電路連接。434-543導入篇第一章-------概論第二章-------CPLD實驗系統(tǒng)簡介第三章-------CPLD實驗系統(tǒng)硬體說明第四章-------CPLD實驗系統(tǒng)安裝與使用第五章-------CPLD電路發(fā)展實例44導入篇44第一章---概論45第一章---概論45a、軟體之裝設:可由書本所附之軟體安裝,並上網(wǎng)取得授權(quán)碼(或參閱書上P38-P45)。b、硬體的瞭解:亦可參考書上之P7-P36之介紹。c、語法之認識,硬體描述語言(HDL):CPLD所用之語言有AHDL及VHDL。進入CPLD之背景知識46a、軟體之裝設:進入CPLD之背景知識46AHDL基本架構(gòu):

SUBDESIGN__design_name(_input_name:INPUT;_output_name:OUTPUT;)

BEGIN

logicdescribe;

END;AHDL&VHDL(文字編輯)此段為SUBDESIGN敘述區(qū)此段為LOGIC敘述區(qū)47AHDL基本架構(gòu):AHDL&VHDL(文字編輯)此段為此範例1:SUBDESIGNTEST1(A,B:INPUT;

Y:OUTPUT;)BEGIN%--代表A和B做及閘運算%

Y=AB;%符號所包含之內(nèi)容為註解END;48範例1:48

實作篇1、解碼器的設計2、四輸入多工器3、邏輯運算單元LU 4、算術(shù)運算單元--全加器5、四位元加法器 6、算術(shù)邏輯運算單元7、BCD對七段顯示器解碼器8、正反器(Flip-Flop)9、八位元資料栓鎖及解碼顯示電路10、四位元二進位非同步計數(shù)器49實作篇49GDF(繪圖法)及AHDL(硬體描述語言法)50GDF(繪圖法)50GDF(繪圖法)51GDF(繪圖法)51單元一解碼器設計52單元一解碼器設計52單元二四輸入多工器設計53單元二四輸入多工器設計53單元三邏輯運算單元(LU)54單元三邏輯運算單元(LU)54單元四算術(shù)運算單元--全加器55單元四算術(shù)運算單元--全加器55單元五四位元全加器56單元五四位元全加器56AHDL(硬體描述語言)57AHDL57單元六算術(shù)邏輯運算單元SUBDESIGNUnit6(a[7..0],b[7..0],s[2..0]:INPUtT;

d:OUTPUT;)BEGINCASEs[]IS

WHEN0=>d[]=a[]+b[];58單元六算術(shù)邏輯運算單元SUBDESIGNUnitWHEN1=>d[]=a[]+b[];WHEN2=>d[]=a[]+b[];WHEN3=>d[]=a[]+b[];WHEN4=>d[]=a[]+b[];WHEN5=>d[]=a[]+b[];WHEN6=>d[]=a[]+b[];WHEN7=>d[]=a[]+b[];WHENOTHERS=>d[]=a[];

ENDCASEEND;59WHEN1=>59單元七BCD對七段顯示器解碼器SUBDESIGNUnit7(i[3..0]:INPUtT;

a,b,c,d,e,f,g:OUTPUT;)BEGIN %本次實習乃是利用查表法%60單元七BCD對七段顯示器解碼器SUBDESIGNTABLE

i[3..0]=>a,b,c,d,e,f,g;H”0”=>1,1,1,1,1,1,0;H”1”=>1,1,1,1,1,1,0;H”2”=>1,1,1,1,1,1,0;H”3”=>1,1,1,1,1,1,0;H”4”=>1,1,1,1,1,1,0;H”5”=>1,1,1,1,1,1,0;H”6”=>1,1,1,1,1,1,0;H”7”=>1,1,1,1,1,1,0;H”8”=>1,1,1,1,1,1,0;H”9”=>1,1,1,1,1,1,0;H”A”=>1,1,1,1,1,1,0;H”B”=>1,1,1,1,1,1,0;H”C”=>1,1,1,1,1,1,0;H”D”=>1,1,1,1,1,1,0;H”E”=>1,1,1,1,1,1,0;H”F”=>1,1,1,1,1,1,0;ENDTABLE;END;61TABLE61單元八正反器

SUBDESIGNUnit8(S,R,CLK,PRN,CLRN:INPUtT;

Q,/Q:OUTPUT;)VARIABLE ff:srff;BEGIN ff.s=; ff.r=; ff.clk=; ff.prn=; Q=ff.q; /Q=!ff.q;END;62單元八正反器SUBDESIGNUnit862單元九八位元資料栓鎖及解碼顯示電路FUNCTION7segd(x[3..0])RETURNS(s[6..0]);SUBDESIGNUnit9(clk,load,d[7..0]:INPUtT;

dpl[6..0],dp2[6..0]:OUTPUT;)VARIABLE ff[7..0] :DFFE; sd1,sd2 :7segd;63單元九八位元資料栓鎖及解碼顯示電路FUNCTION7%本次實習乃是利用函式呼叫%BEGIN ff[].clk=clk; ff[].ena=load; ff[].d=d[]; sd1.x[]=ff[7..4].q; sd2.x[]=ff[3..0].q; dp1[] =sd1.s[]; dp2[]=sd2.s[];END; 64%本次實習乃是利用函式呼叫%64單元十四位元二進位非同步計數(shù)器FUNCTION7segd(x[3..0])RETURNS(s[6..0]);SUBDESIGNUnit10(clk,en,rst:INPUtT;

dpl[6..0],q[4..1]:OUTPUT;)VARIABLE ff[4..1] :TFF; sd1 :7segd;65單元十四位元二進位非同步計數(shù)器FUNCTION7se%本次實習亦是利用函式呼叫%BEGIN q[]=ff[].q; ff[].t =en; ff[].clrn=rst; ff1.clk=clk; ff2.clk=ff1.q; ff3.clk=ff2.q; ff4.clk=ff3.q; sd1.x[]=ff[].q; dp1[] =sd1.s[];END; 66%本次實習亦是利用函式呼叫%66THEEND67THEEND67學生作業(yè)格式68學生作業(yè)格式68CPLDMax+plusII數(shù)位邏輯設計班級:組別:姓名:組員:座號:任課教師:單元日期分數(shù)一二三四五六七八69CPLDMax+plusII數(shù)位邏輯設計班級:單元名稱:

(實際電路圖繪製或硬體行為描述)70單元名稱:(實際電路圖繪製或硬體行為描述)電路(動作)說明:心得(感想):71(實際電路圖繪製或硬體行為描述)電路(動作)說明:心得(感想CPLDMax+plusII數(shù)位邏輯設計Designby

:趙景松老師72CPLDMax+plusII數(shù)位邏輯設計Desig目錄第零篇一、(數(shù)位電路概論)----------P51、何謂數(shù)位邏輯2、組合邏輯3、順序邏輯二、(CPLD基礎知識)---------P121、何謂CPLD2、進入CPLD之背景知識三、(數(shù)位電路的發(fā)展歷程)---P1673目錄第零篇2四、(VHDL程式語言介紹)-----P201、一個完整的VHDL程式2、VHDL三種電路架構(gòu)的描述

3、元件對應Mapping74四、(VHDL程式語言介紹)-----P203第零篇75第零篇4一、數(shù)位電路概論76一、數(shù)位電路概論5一、數(shù)位電路概論1、數(shù)位邏輯

基本上訊號可區(qū)分為兩大類,一為「類比」信號、而另一為「數(shù)位」信號。而所謂的「類比」信號,泛指隨時間做連續(xù)變化的信號,例如人類所講的「話」,就是一種類比信號。而「數(shù)位」信號是指不會隨時間做連續(xù)的改變之信號,例如「開關(guān)」,僅有打開及關(guān)掉而已,換成邏輯來說,也就是只有「0」與「1」而已。77一、數(shù)位電路概論1、數(shù)位邏輯6換句話說,數(shù)位信號就可以用邏輯來表示,如此做可簡化信號之處理,因為比較不會有雜訊干擾的問題。

所謂數(shù)位邏輯,就是專門為了處理數(shù)位訊號的一門學科。因電路中所有之元件皆為邏輯元件,固其組合出來之任何電路,皆為數(shù)位電路,所以其輸入、輸出訊號,也只會以邏輯狀態(tài)呈現(xiàn),如此可使輸出之訊號獲得相當之穩(wěn)定性及確定性。因為這樣的關(guān)係,使得數(shù)位系統(tǒng)被廣泛的使用,並不斷改良中。78換句話說,數(shù)位信號就可以用邏輯來表示,如此做可簡化信2、組合邏輯

所謂組合邏輯,乃是將基本的邏輯元件,例如:及閘(AND)、或閘(OR)、反閘(NOT)、互斥或閘(XOR)等元件,組合成一個數(shù)位(邏輯)電路,而達成某種功能(要求),即稱為「組合邏輯電路」。(及閘)(或閘)(反閘)(互斥或閘)792、組合邏輯(及閘)(或閘)(反閘)(互斥或閘)8布林代數(shù)&真值表ABY000011101111ABY0000101001111、及閘2、或閘Y=ABY=A+B80布林代數(shù)&真值表ABY000011101111ABY0000AY0110ABY000011101110布林代數(shù)&真值表4、反閘3、互斥或閘Y=A+BY=A81AY0110ABY000011101110布林代數(shù)&真值表43、順序邏輯

數(shù)位電路主要是包含兩類元件,一為邏輯閘而另一為儲存元件。之前所提之組合邏輯,沒有循序的功能,也就是輸出完全由輸入決定,當輸入訊號消失,輸出亦隨之不見,無儲存輸出結(jié)果之功用。然而電路要能循序,就需要一種能夠儲存原來信號的裝置,使新輸入的信號能參考原來輸入狀態(tài)來決定輸出變化。這種儲存裝置,稱為記憶裝置。將「組合邏輯」加上這種「記憶裝置」,使電路具有循序處理能力就是一種「順序邏輯電路」。順序邏輯電路中最基本的記憶元件,就是「正反器(Flip-Flop)」。823、順序邏輯11二、CPLD基礎知識83二、CPLD基礎知識12二、CPLD基礎知識1、何謂CPLD

由於資訊工業(yè)發(fā)展訊速,從一般人之日常生活就可見一般;小至每個人手上的行動電話、家家戶戶皆有之洗衣機、停車場的全自動化,大到銀行裏的資料庫、飛機上的自動駕駛,無一不是電腦所及的地方,而不論是電腦本身亦或其週邊之,皆為數(shù)位電路之產(chǎn)物。對於大部份學習數(shù)位電路設計的人來說,其學習過程大抵從最簡單的組合邏輯電路設計開始,接著便是順序邏輯、簡易之模組設計、至比較複雜完整之系統(tǒng)設計。84二、CPLD基礎知識1、何謂CPLD13

傳統(tǒng)的實驗方式,每做一個實驗就必須重組一個硬體線路,特別是複雜的線路,相當費時耗力且不易進行,因此也就常省略跳過,導致缺乏設計架構(gòu)稍大且完整的電路的經(jīng)驗。為了改進以往數(shù)位電路學習方式的缺點,並且縮短開發(fā)大型數(shù)位電路的時間,所以有了整合式數(shù)位電路設計環(huán)境的發(fā)展,此種環(huán)境是以個人電腦為平臺,配合電子設計自動化(EDA)軟體的執(zhí)行,達到從電路設計輸入、模擬、下載驗證、修改、燒錄一氣呵成,而且也讓自行設計開發(fā)邏輯晶片的夢想得以實現(xiàn)。85傳統(tǒng)的實驗方式,每做一個實驗就必須重組一個硬PLD(ProgrammableLogicDevice)

是何因素促成數(shù)位電路學習的方式改變呢?究其原因首推可程式邏輯元件(PLD)的快速發(fā)展。邏輯晶片大致上分成標準邏輯晶片(StandardLogic)與應用規(guī)格晶片(ASIC)兩類;而PLD為ASIC之一種。PLD由小而大分為以下幾種:小型/簡單型PLD(SimplePLD)、複雜型PLD(ComplexPLD)、場可規(guī)劃型閘陣列(FPGA)。而本課程以複雜型PLD為主,也就是俗稱之CPLD為教學重點,及發(fā)展基礎。86PLD(ProgrammableLogicDevice三、數(shù)位電路之

發(fā)展歷程87三、數(shù)位電路16數(shù)位電路之發(fā)展(一):整個數(shù)位電路的發(fā)展約可分為四個階段:第一階段:早期為利用電晶體、電阻、二極體…等電子元件設計而成各式之小型積體電路

SSI

(SmallScaleIntegratedCircuit)第二階段:之後再以這些基本邏輯閘配合卡諾圖的化簡,設計出解碼器Decoder、解多工器Demultiplexer、多工器Multiplexer、加法器Adder、正反器FlipFlop、移位暫存器Shift

Register、計數(shù)器Counter

等中型積體電路MSI(MediumScaleIntegratedCircuit)88數(shù)位電路之發(fā)展(一):整個數(shù)位電路的發(fā)展約可分為四個階段:第三階段:再由這些MSI慢慢的擴大成大型及超大型積體電路LSI、VLSI…等第四階段:隨著需求的快速變遷,除了晶片功能的複雜化及多元化之外產(chǎn)品的研發(fā)週期必須大幅的縮短以保持其競爭力。因此早期(前面三個階段)數(shù)位電路的設計方式已經(jīng)無法市場的需求,目前數(shù)位控制電路上所要求的功能,大都透過可程式化邏輯裝置(ProgrammableLogicDevice)

PLD、可程式化邏輯陣列(FiledProgrammavleGateArray)

FPGA

、微控器(MicroController)、微處理器

(MicroProcessor)以及特殊應用晶片ASIC(ApplicationSpecificIntegratedCircuit)等晶片來規(guī)劃完成。89第三階段:再由這些MSI慢慢的擴大成大型及18四、VHDL程式語言介紹90四、VHDL程式語言介紹19一完整的VHDL程式結(jié)構(gòu)如下面所示:Library宣告USE宣告PACKAGE宣告Entity宣告Configuration宣告Architecture資料物件宣告區(qū)...Begin

DataFlow描述

Behavior

描述

Structure描述end91一完整的VHDL程式結(jié)構(gòu)如下面所示:Library宣Architecture之

三種結(jié)構(gòu)敘述92Architecture21電路架構(gòu)的描述

(ArchitectureDescribe)VHDL架構(gòu)的風格有三大類:第一類:資料流描述(DataFlowDescription)

所謂資料流描述就是利用訊號的指定Assignment方式來描述電路內(nèi)訊號資料的流動情形,而這些指定的方式於VHDL語言中可以區(qū)分成下列三種:1、直接式的訊號設定“<=”2、條件式conditional的訊號設定“when…else”3、選擇式Selected的訊號設定“with…select…when”93電路架構(gòu)的描述(ArchitectureDescri第二類:

行為描述(BehaviorDescription),所謂行為模式是用process的敘述來描述一個硬體電路的行為模式BehaviorModel。而它與資料流描述的最大不同點為,在process的所描述的行為模式內(nèi)皆為順序性Sequential處理,而非資料流描述的共時性處理,意思是說於行為描述的風格,其程式的設計與一般的高階語言十分相似。一般而言由process敘述所描述的行為模式之宣告,必須在架構(gòu)Architecture內(nèi)進行,而其基本語法如下:Label:process(SensitivityList)Declarationarea;beginBehaviorstatement;endprocessLabel;94第二類:23IF…THEN…ENDIFif…then…endif為一個架構(gòu)不完整的條件判斷指令(內(nèi)部缺少了ELSE敘述),其基本語法為:if條件then敘述區(qū);endif;例子:以if…then…endif指令設計一個負緣動作的D型正反器:其程式的架構(gòu)Architecture部份為:if(CK’event)and(CK=‘1’)thenQ<=D;endif;95IF…THEN…ENDIF24IF…THEN…ELSE…ENDIFif…then…else…endif為一個架構(gòu)完整的條件判斷指令(內(nèi)部缺少了ELSE敘述),其基本語法為:if條件then敘述區(qū)T;else敘述區(qū)F;endif;例子:以if…then…else…endif指令設計一個比較器:其程式的架構(gòu)Architecture部份為:ifA=BthenF<=‘1‘;thenF<=‘0‘;endif;96IF…THEN…ELSE…END第三類: 所謂結(jié)構(gòu)描述

(StructureDescription)

,是將一個完整的硬體控制電路當成是一些相互連接的元件集合,在此種模式之下我們首先必須很清楚的宣告於硬體電路內(nèi)所使用的每一個元件Component。 採用結(jié)構(gòu)化?;淖畲髢?yōu)點是設計師可以利用階層式(Hierarcky)方式將一個很複雜的大型電路細分成數(shù)個功能獨立的小電路(模組),並將其獨立出來設計及模擬、驗證,等到所有的獨立模組皆設計完成之後再進一步將它們?nèi)拷M合起來。我們就可以在很短的時間內(nèi)完成一個龐大而複雜的電路。而使用結(jié)構(gòu)描述時,有兩個重要的步驟必須完成,其說明如下:97第三類:261、使用元件的宣告ComponentDeclaration。2、各元件間的連線對應Mapping。元件宣告ComponentDeclaration: ComponentComponent_name port( Signal_name1:modeDatatype; Signal_name2:modeDatatype; : : Signal_namen:modeDatatype; ); endComponent;981、使用元件的宣告ComponentDeclaration元件對應Mapping:可分為以下兩種,其基本語 法如下:一、名稱對應MappingByname: LABEL1:Component_name portmap( Signal_name1=>Signal_name1, Signal_name2=>Signal_name2, : : Signal_namen=>Signal_namen, ); endComponent;9928

1、LABEL:元件的標籤。 2、Component_name:所使用元件的名稱,須與現(xiàn)成之元件名稱相同。 3、portmap():括號內(nèi)之敘述是用來描述被叫用的現(xiàn)成元件內(nèi)部接腳與實際電路內(nèi)部元件接腳名稱,左邊為現(xiàn)成元件的接 腳名稱,右邊的為硬體電路的接腳名稱 ,中間以“=>”符號連接。10029二、位置對應MappingByposition: Label1:Component_nameportmap(Signal1,Signal2,……,Signaln); 1、LABEL:元件的標籤。 2、Component_name:所使用元件的名稱,須與現(xiàn)成之元件名稱相同。 3、portmap():括號內(nèi)之敘述是用來描述被叫用的現(xiàn)成元件內(nèi)部接腳與實際電路內(nèi)部port接腳中間的連線對應關(guān)係,因為真 實對應,故需按接腳順序去連接。10130數(shù)位電路之發(fā)展(二):1、SSI(SmallScaleIntegratedCircuit)

整個數(shù)位電路的發(fā)展,從第一階段,利用電晶體、電阻、二極體…等電子元件設計成各式各樣的基本邏輯閘,如NOT、AND、OR、NOR、等小型積體電路SSI。102數(shù)位電路之發(fā)展(二):1、SSI(SmallScale31-1SSI:(例如:SN74XX系列、SN54XX系列等)說明:為利用基本邏輯閘IC,例如SN7404、SN7408或者SN7432等最基本之組合邏輯元件,將這些元件組合而成所要求功能之數(shù)位電路。其缺點為電路之連接線路非常複雜,得多數(shù)人為之卻步。1031-1322、MSI(MediumScaleIntegratedCircuit)

第二階段再以這些基本邏輯閘配合卡諾圖(Karnaugh-Map)的化簡,設計出解碼器Decoder、解多工器。(De-mulplexer)、移位暫存器(ShiftRegister)、以及計數(shù)器(counter)…等中型積體電路,而且簡稱為MSI。1042、MSI(MediumScale332-1MSI:由SSI數(shù)位電路設計中可發(fā)現(xiàn),所有之組合邏輯電路,其輸出皆可由輸入之Minterm項經(jīng)由OR而得到。而我們發(fā)現(xiàn),解碼器之每一輸出恰為所有輸入之Minterm項。換句話說,所有之組合邏輯電路,皆可由一「解碼器」加上一「OR」之邏輯閘得到,而解碼器為一MSI。1052-1343、LSI(LargeScaleIntegratedCircuit)說明:

第三階段,再由這些MSI慢慢擴大成為「大型」及「超大型」積體電路,LSI及VLSI…等。隨著市場需求的快速變遷,前面所提的三個階段已無法滿足市場需求,於是乎有第四階段PLD之發(fā)展。1063、LSI(LargeScaleIntegrated33-1LSI:經(jīng)由MSI的發(fā)現(xiàn),我們可以很輕易的獲得所要之數(shù)位電路。根據(jù)這一項結(jié)論,將之推展擴大,於是成為現(xiàn)今之LSI甚至是VLSI,更發(fā)展成為PLD元件,從PROM、PLA、PAL、GAL、PEEL到FPGA等元件,其動作速度、燒錄方式、次數(shù)皆有進步,不管材質(zhì)如何改變,其所使用原理大致上皆相同。1073-1364、PLD(ProgrammableLogicDevice)

說明:

目前於數(shù)位控制電路上所要求的功能,大都透過可程式邏輯裝置PLD、可程式化邏輯閘陣列FPGA、微控器MC、微處理器MP以及特殊應用IC,等晶片來規(guī)劃完成。1084、PLD(ProgrammableLogic374-1PLD:(PROM、PLA、PAL、FPGA)PROM:可程式化唯讀記憶體PROM為最早出現(xiàn)的PLD元件,其原理便是利用前用所敘述之結(jié)論,它是利用每個ROM

內(nèi)部的解碼器電路(由NOT

及AND構(gòu)成解碼電路,故每個AND閘的輸出分別為兩個輸入的所有Minterm),且在後面加入一可規(guī)劃OR電路。1094-1384-2PLD:(PROM、PLA、PAL、FPGA)PLA:可程式化邏輯陣列PLA

(ProgrammableLogicArray)的內(nèi)部結(jié)構(gòu)與PROM相似,而它們的最大不同為PLA的

AND項及OR項皆可以規(guī)劃。當然我們亦可將其規(guī)劃成任何兩個輸入的組合邏輯電路,但其成本會比PROM還要高。1104-2394-3PLD:(PROM、PLA、PAL、FPGA)PAL:可程式化陣列邏輯PLA

(ProgrammableArrayLogic)的內(nèi)部結(jié)構(gòu)與PROM、PLA相似,而其不同點為PAL它的

AND項可以規(guī)劃,但OR項固定不能規(guī)劃。於PAL中可以發(fā)現(xiàn)到,製造成本為PLD

中最低的一種,因此也是最廣泛使用的一種。1114-3404-4PLD:(PROM、PLA、PAL、FPGA)PEEL:電子方式可程式化可清除邏輯陣列PEEL(ProgrammableElectricallyErasableArrayLogic)

的內(nèi)部結(jié)構(gòu)與PAL相似,基本它也是一種AND項與OR

項的結(jié)構(gòu)。其每一OR輸出端皆有一個巨集結(jié)構(gòu)MACRO

CELL讓我們可用軟體規(guī)劃方式選擇輸方式為何。1124-441場可規(guī)劃邏輯閘陣列FPGA

(FieldProgrammableGateArray)隨著控制電路的功能日益複雜,單一個PEEL的硬體結(jié)構(gòu)早已無法勝任,故FPGA的元件就立刻被發(fā)展出來,所謂的可規(guī)劃邏輯閘陣列

FPGA就是在一個超大型IC內(nèi)配置了相當數(shù)是的可程式113場可規(guī)劃邏輯閘陣列FPGA424-5PLD:(PROM、PLA、PAL、FPGA)FPGA:化邏輯元件,這些元件我們簡稱為CLB(ConfigurableLogicBlock),IC內(nèi)這些CLB是經(jīng)由可程式化的垂直通道及水平通道的連線所包圍。而CLB為陣列方式排列,並在其四周製造了無數(shù)的輸入-輸出緩衝器IOB,以便和外部控制電路連接。1144-543導入篇第一章-------概論第二章-------CPLD實驗系統(tǒng)簡介第三章-------CPLD實驗系統(tǒng)硬體說明第四章-------CPLD實驗系統(tǒng)安裝與使用第五章-------CPLD電路發(fā)展實例115導入篇44第一章---概論116第一章---概論45a、軟體之裝設:可由書本所附之軟體安裝,並上網(wǎng)取得授權(quán)碼(或參閱書上P38-P45)。b、硬體的瞭解:亦可參考書上之P7-P36之介紹。c、語法之認識,硬體描述語言(HDL):CPLD所用之語言有AHDL及VHDL。進入CPLD之背景知識117a、軟體之裝設:進入CPLD之背景知識46AHDL基本架構(gòu):

SUBDESIGN__design_name(_input_name:INPUT;_output_name:OUTPUT;)

BEGIN

logicdescribe;

END;AHDL&VHDL(文字編輯)此段為SUBDESIGN敘述區(qū)此段為LOGIC敘述區(qū)118AHDL基本架構(gòu):AHDL&VHDL(文字編輯)此段為此範例1:SUBDESIGNTEST1(A,B:INPUT;

Y:OUTPUT;)BEGIN%--代表A和B做及閘運算%

Y=AB;%符號所包含之內(nèi)容為註解END;119範例1:48

實作篇1、解碼器的設計2、四輸入多工器3、邏輯運算單元LU 4、算術(shù)運算單元--全加器5、四位元加法器 6、算術(shù)邏輯運算單元7、BCD對七段顯示器解碼器8、正反器(Flip-Flop)9、八位元資料栓鎖及解碼顯示電路10、四位元二進位非同步計數(shù)器120實作篇49GDF(繪圖法)及AHDL(硬體描述語言法)121GDF(繪圖法)50GDF(繪圖法)122GDF(繪圖法)51單元一解碼器設計123單元一解碼器設計52單元二四輸入多工器設計124單元二四輸入多工器設計53單元三邏輯運算單元(LU)125單元三邏輯運算單元(LU)54單元四算術(shù)運算單元--全加器126單元四算術(shù)運算單元--全加器55單元五四位元全加器127單元五四位元全加器56AHDL(硬體描述語言)128AHDL57單元六算術(shù)邏輯運算單元SUBDESIGNUnit6(a[7..0],b[7..0],s[2..0]:INPUtT;

d:OUTPUT;)BEGINCASEs[]IS

WHEN0=>d[]=a[]+b[];129單元六算術(shù)邏輯運算單元SUBDESIGNUnitWHEN1=>

溫馨提示

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

最新文檔

評論

0/150

提交評論