版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章常用接口控制電路6.1可編程并行接口電路6.2可編程定時/計數電路6.3SPI總線接口器件6.4堆棧(STACK)電路6.5先入先出(FIFO)電路習題與思考第6章常用接口控制電路6.1可編程并行接口電路
6.1可編程并行接口電路
6.1.1邏輯功能與分析
1.功能分析數據接口電路是計算機控制系統(tǒng)的重要構成單元,為系統(tǒng)計算機及各構成電路提供數據轉換、傳送通道,實現(xiàn)系統(tǒng)內不同構成單元之間的動態(tài)數據交互。相對而言,并行接口能夠一次實現(xiàn)多位數據的傳輸交換,無需串并轉換及并串轉換電路,具有結構簡單、傳輸速度高等優(yōu)勢,是計算機控制系統(tǒng)中應用較為廣泛的一種數據接口。
6.1可編程并行接口電路
6.1.1邏輯功能與分
8255是一種典型的傳統(tǒng)可編程并行接口器件,具有A、B、C三個8位并行接口,根據需要,可通過編程配置為通用輸入/輸出端口、帶選通的輸入/輸出端口、雙向傳輸端口等工作模式,同時,端口C具備位操作功能,器件的端口A或B工作于選通輸入/輸出或雙向傳輸模式時,端口C的相關數據位可用作選通或狀態(tài)信號,輔助完成計算機與外設的數據傳輸任務。8255器件具有A0、A1兩條地址線,占用4個地址,分別為A、B、C接口地址與控制字寄存器地址。
8255是一種典型的傳統(tǒng)可編程并行接口器件,具有A、B
2.器件邏輯與功能結構
參考8255的典型功能與基本邏輯結構,對本例中的可編程并行接口適當簡化,得到整個器件的邏輯功能結構及其信息交互如圖6.1所示。
2.器件邏輯與功能結構
參考8255的典型功能與基圖6.1可編程并行接口器件的邏輯功能結構及其信息交互圖6.1可編程并行接口器件的邏輯功能結構及其信息交互
3.實現(xiàn)原理
參照前述的器件邏輯結構,本例通過多進程描述實現(xiàn)相應的可編程并行接口。根據器件功能與數據處理過程,分別設計專用電路的模式設置、數據寫入、輸出控制等進程,各進程間的輸入/輸出與啟動關系如圖6.2所示。
3.實現(xiàn)原理
參照前述的器件邏輯結構,本例通過多進圖6.2并口器件的進程與啟動關系圖6.2并口器件的進程與啟動關系
6.1.2電路的VHDL描述
參照圖6.2所述的接口電路描述結構,設定本例的并行接口的8位雙向數據端口為D、兩位地址輸入端為A、器件片選端為CS,器件的數據寫入端、讀出端分別定義為WR、RD,且均為低電平有效。器件并行端口為PA、PB,均為8位雙向并行接口。
為便于器件描述,在編程實現(xiàn)時,程序的所有端口、變量、信號定義以及進程設計與圖6.2中的描述嚴格一致,電路的VHDL實現(xiàn)程序如下。
6.1.2電路的VHDL描述
參照圖6.2所述的接
例6-1-1
8位可編程并行接口器件的VHDL描述:
例6-1-18位可編程并行接口器件的VHDL描述:電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
6.1.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用6.1.2節(jié)中的VHDL程序描述并行并口器件,將其作為設計項目的頂層實體,實現(xiàn)8位并行接口電路。創(chuàng)建項目時,項目名稱、頂層實體名稱保持一致,均設置為mPIO,頂層實體的VHDL實現(xiàn)程序名稱與頂層實體嚴格一致,命名為mPIO.vhd。根據程序復雜程度,初選MAXII系列的CPLD作為并口電路的實現(xiàn)器件,具體器件由開發(fā)系統(tǒng)根據編譯結果自行選擇。
6.1.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用6
如圖6.3所示為按照上述方法創(chuàng)建的8位可編程并行接口器件mPIO的實現(xiàn)項目及其編譯結果。根據器件所需要的邏輯復雜程度、I/O端口數量等資源狀況,開發(fā)系統(tǒng)在MAXII系列的CPLD中初步選擇使用器件EPM240T100C3來實現(xiàn)電路;器件提供240個邏輯宏單元,電路實際占用70個宏單元,宏單元占用率為29%;器件提供80個I/O端口,占用37個端口,端口占用率為46%。EPM240T100C3器件采用100腳TQFP封裝,速度等級為C3,相對較高。
如圖6.3所示為按照上述方法創(chuàng)建的8位可編程并行接口器圖6.3
8位可編程并行接口器件mPIO的項目實現(xiàn)及編譯結果圖6.38位可編程并行接口器件mPIO的項目實現(xiàn)及編譯結
2.器件、引腳分配
根據上述編譯結果,初選器件EPM240T100C3完全可以滿足本例的并口器件,且宏單元占有率僅為29%,端口占用率僅為46%,容許以后對器件的控制邏輯進行一定的修改以升級系統(tǒng);所選PLD為3.3
V低功耗器件,TQFP封裝面積較小,速度等級較高,器件選擇較合理,因此考慮到后續(xù)的制版、布線等問題本例最終指定在項目中使用器件EPM240T100C3,本例中并行接口mPIO的引腳分配與器件指定如圖6.4所示。
2.器件、引腳分配
根據上述編譯結果,初選器件EP圖6.4并行接口mPIO的引腳與器件分配圖6.4并行接口mPIO的引腳與器件分配
圖中的帶陰影引腳為已分配信號的引腳,按逆時針順序,從引腳1到引腳77,端口上被分配的信號依次為并行接口的8位雙向數據端D、片選信號CS、地址信號A、控制計算機讀信號Rd、寫信號Wr、A口外設響應nAckA、選通nStbA、輸入緩沖滿標志nIbfA、輸出緩沖滿標志nObfA、端口PA、端口PB、輸出緩沖滿標志nObfB、輸入緩沖滿標志nIbfB、外設響應nAckB、選通nStbB。各信號與實現(xiàn)器件引腳之間的詳細對應關系如表6.1所示。
圖中的帶陰影引腳為已分配信號的引腳,按逆時針順序,從引電子設計自動化第6章課件
6.1.4電路測試及分析
1.功能仿真
如圖6.5所示為8位可編程并行接口mPIO的仿真輸入波形文件,圖中仿真柵格設置為20
ns,仿真總時長設置為2?μs。圖中的信號D為控制計算機雙向數據總線的數據設置情況,Data為仿真工作中電路數據總線D上的實際信號變化狀況;同樣,信號PA、PB為并行端口上的數據設置情況,響應的信號rPA與rPB分別為端口PA、PB在電路仿真工作過程中的實際信號變化狀況。
6.1.4電路測試及分析
1.功能仿真
如圖6圖6.5可編程并行接口mPIO的仿真輸入圖6.5可編程并行接口mPIO的仿真輸入
在上述仿真激勵作用下,并行接口mPIO的仿真輸出波形如圖6.6所示。
圖6.6可編程并行接口mPIO的仿真結果
在上述仿真激勵作用下,并行接口mPIO的仿真輸出波形如
2.時序分析
通過Processing菜單下的時間分析工具,得到8位并行接口mPIO的時序分析結果如圖6.7所示。其中輸出延遲時間tpd、數據建立時間tsu、時鐘輸出延遲時間tco與信號保持時間th見圖中的時間分析工具窗ClassicTimingAnalyzerTool。
2.時序分析
通過Processing菜單下的時間圖6.7并行接口mPIO的時序分析及結果圖6.7并行接口mPIO的時序分析及結果
6.2可編程定時/計數電路
6.2.1邏輯功能與分析
1.功能分析定時計數功能是計算機控制系統(tǒng)的基本功能單元,主要為計算機及其他功能電路提供精確的時間控制、脈沖計數等功能。8253是一種典型的可編程定時/計數電路,器件具有8位外部CPU并行接口,內置0、1、2三個16位計數器。
6.2可編程定時/計數電路
6.2.1邏輯功能與
考慮到兼容性與通用性,本例的可編程定時/計數電路保留8253傳統(tǒng)的8位CPU并行總線接口,同時內部保留3個16位的定時/計數電路,依次命名為計數器0、1與計數器2。每個計數器均具有6種工作模式,通過編程,各計數器可分別工作于模式0~5。器件中同樣設置了計數器0、1、2的計數值專用寄存器與工作模式控制字寄存器,器件需占用4個地址以及兩條地址總線。本例的可編程定時/計數電路的邏輯功能結構及其信息交互如圖6.8所示。
考慮到兼容性與通用性,本例的可編程定時/計數電路保留8圖6.8可編程定時/計數電路的邏輯功能結構及信息交互圖6.8可編程定時/計數電路的邏輯功能結構及信息交互
在圖6.8中,定時/計數器件通過8位的CPU讀寫控制電路,接收外部計算機提供的地址、數據與控制信息,根據地址、控制條件分別收發(fā)各定時/計數電路的模式控制字、計數值等數據。各計數器電路在計數與I/O控制電路作用下,根據外部計算機設定的計數參數、模式控制參數,實現(xiàn)器件要求的定時/計數功能。同時,各計數器定時送出當前計數值,供外部計算機查詢。
在圖6.8中,定時/計數器件通過8位的CPU讀寫控制電
2.工作模式及控制
本例的定時/計數電路共有6種工作模式,在實際系統(tǒng)中實現(xiàn)定時或計數時,需首先通過外部計算機設定器件的工作模式,才能啟動電路實現(xiàn)預定功能。
1)模式控制字
定時/計數電路的工作模式控制字共8位,按照功能分別為工作模式選擇位、計數器選擇位與保留位三部分,如表6.2所示。
2.工作模式及控制
本例的定時/計數電路共有6種工
其中,數據位D(5)和D(4)為計數器選擇位,取值“00”~“10”依次對應于定時/計數器件的計數器0~計數器2;數據位D(2)、D(1)、D(0)為相應計數器的工作模式選擇位,取值“000”~“101”依次對應計數器的工作模式1~工作模式5。各計數器的缺省工作模式為模式0,若器件未設定工作模式則按模式0工作。
其中,數據位D(5)和D(4)為計數器選擇位,取
2)模式0-計數結束中斷
在定時/計數器件中,各計數器工作于模式0時的工作時序如圖6.9所示。
圖6.9定時/計數電路工作模式0的工作時序
2)模式0-計數結束中斷
在定時/計數器件中,各
工作于模式0時,計數器響應計數脈沖,在脈沖的下降沿上,計數器做減1運算,減至0值,計數結束。計數結束后,計數值不能重裝,如需重新計數,需重新寫入計數值。門控信號控制計數過程,若門控信號為“1”,計數啟動;若為“0”,計數暫停。計數器工作模式0的特點如下:
(1)寫入計數值,計數值立即裝入計數器;當門控信號為“1”時,計數器響應CLK下降沿,做減運算,輸出變?yōu)榈碗娖?。當計數值減至0時,計數結束,輸出變?yōu)楦唠娖健?/p>
(2)重新計數需重寫計數值。
(3)計數過程中寫入新值,計數器按新值重新計數。
(4)若門控信號為“0”,暫停計數;若門控信號為“1”,計數繼續(xù)。
工作于模式0時,計數器響應計數脈沖,在脈沖的下降沿上,
3)模式1——可編程單脈沖發(fā)生器
定時/計數電路工作于模式1時的工作時序如圖6.10所示。電路工作于模式1時,門控信號的上升沿啟動計數;計數開始時,輸出端變?yōu)榈碗娖?,在計數脈沖的下降沿上,計數器執(zhí)行減計數,減至“0”時,輸出變?yōu)楦唠娖?。若門控信號端出現(xiàn)上升沿,計數器裝入計數初值,重新開始計數。
3)模式1——可編程單脈沖發(fā)生器
定時/計數電路圖6.10定時/計數電路工作模式1的工作時序圖6.10定時/計數電路工作模式1的工作時序
計數器工作模式1的特點如下:
(1)門控信號出現(xiàn)升沿,電路響應計數脈沖下降沿啟動計數,輸出變?yōu)榈碗娖?;計數結束時,輸出恢復高電平。
(2)計數完成后,如門控信號端重新出現(xiàn)升沿,計數器重裝計數初值并重新計數。
(3)若在計數過程中門控信號端出現(xiàn)升沿,則按計數初值重新計數,輸出端電平狀態(tài)不變。
(4)若在計數過程中寫入新計數值,立即按新值計數。
計數器工作模式1的特點如下:
(1)門控信號出現(xiàn)
4)模式2——頻率發(fā)生器
定時/計數電路按模式2工作時的時序如圖6.11所示。電路工作于模式2時,計數器初始輸出為高電平,如GATE為高電平,計數器響應計數脈沖的下降沿,執(zhí)行減計數。當計數值減至“1”時,計數器輸出端變?yōu)榈碗娖讲⒕S持一個計數脈沖周期;然后,計數器重新裝入原始計數值,計數器輸出端輸出一個周期的低電平后,重新變?yōu)楦唠娖剑_始新一輪計數。
4)模式2——頻率發(fā)生器
定時/計數電路按模式2圖6.11定時/計數電路工作模式2的工作時序圖6.11定時/計數電路工作模式2的工作時序
計數器工作模式2的特點如下:
(1)計數器工作于模式2時可以實現(xiàn)重復計數,即計數器響應脈沖的下降沿,執(zhí)行減計數,計數值減到數值“1”時,電路輸出單周期的負脈沖;然后,電路自動重裝計數值,計數器輸出回變?yōu)殡娖?,開始新一輪的計數過程。
(2)計數器連續(xù)工作,輸出固定頻率的脈沖。
(3)當門控信號G為高電平時,允許計數;為低電平時,暫停計數。
計數器工作模式2的特點如下:
(1)計數器工作于
5)模式3——方波發(fā)生器
定時/計數電路工作于模式3時的工作時序如圖6.12所示。定時/計數電路工作于模式3時,如果門控信號G為高電平,計數器響應計數脈沖的下降沿,執(zhí)行減計數,輸出端輸出并保持高電平;當計數值減至計數初值的1/2時,計數器輸出端轉為低電平并保持;一次計數結束后,器件重裝計數初值,計數輸出回復高電平,開始新一輪的計數過程。
5)模式3——方波發(fā)生器
定時/計數電路工作于模圖6.12定時/計數電路工作模式3的工作時序圖6.12定時/計數電路工作模式3的工作時序
當計數初值為偶數時,計數值減到N/2,計數輸出端發(fā)生變化;當計數初值為奇數時,計數值減到(N-1)/2,計數輸出端轉為低電平。計數器工作模式3的特點如下:
(1)定時/計數電路的工作模式3與工作模式2類似,計數初值能夠自動重裝,產生固定頻率的方波。
(2)計數初值為偶數時,在前半計數周期內,計數器輸出高電平,后半計數周期輸出低電平,即產生等距方波。
(3)計數初值為奇數時,脈寬較脈間多一個計數脈沖周期。
(4)當門控信號G為高電平時,允許計數;當G為低電平時,禁止計數。在計數過程中,G變?yōu)榈碗娖?,立即終止計數;G重新變?yōu)楦唠娖綍r,計數器恢復計數初值,重新開始計數。
當計數初值為偶數時,計數值減到N/2,計數輸出端發(fā)生變
6)模式4——軟件觸發(fā)的選通信號發(fā)生器
定時/計數電路工作于模式4的工作時序如圖6.13所示。定時/計數電路以模式4工作時,若門控G為高電平,計數器響應計數脈沖的下降沿,計數器輸出高電平,執(zhí)行減計數;計數值減至0,計數輸出端輸出一個計數脈沖周期的負脈沖,然后恢復高電平,計數結束。
6)模式4——軟件觸發(fā)的選通信號發(fā)生器
定時/計圖6.13定時/計數電路工作模式4的工作時序圖6.13定時/計數電路工作模式4的工作時序
器件工作模式4的特點如下:
(1)如果G為高電平,計數器開始減計數,OUT保持高電平,減至0時,OUT輸出低電平,產生1個時鐘周期的負脈沖。
(2)計數結束后,計數器不重裝計數值,只有重新寫入計數值,才可重新計數。
(3)在計數過程中,若G變?yōu)榈碗娖?,則停止計數;G恢復高電平后,繼續(xù)計數且不從計數初值開始計數。
(4)在計數過程中寫入新計數初值,立即按新計數初值計數。
器件工作模式4的特點如下:
(1)如果G為高電平
7)模式5——硬件觸發(fā)的選通信號發(fā)生器
工作于方式5時,計數器的工作時序如圖6.14所示。定時/計數電路工作于方式5時,門控信號G的上升沿啟動計數,每來一個時鐘下降沿,計數值減1,當計數值減到0時,計數器輸出端產生一個時鐘周期的負脈沖。一個計數周期結束后,若G端再次出現(xiàn)上升沿,計數器裝入原計數初值,重新開始計數。
7)模式5——硬件觸發(fā)的選通信號發(fā)生器
工作于方圖6.14定時/計數電路工作模式5的工作時序圖6.14定時/計數電路工作模式5的工作時序
計數器工作模式5的特點如下:
(1)當門控信號G的上升沿到來時,開始計數;計數到0時,輸出一個寬度為1個計數脈沖周期的負脈沖。
(2)門控信號G上升沿無條件觸發(fā)計數過程,每來一個G的上升沿,計數器均從頭開始計數。
(3)在計數過程中寫入新值,計數不受影響,若G信號出現(xiàn)上升沿,則電路按新值計數。
計數器工作模式5的特點如下:
(1)當門控信號G
3.實現(xiàn)原理
參照前述的器件邏輯結構與功能描述,本例通過結構化描述結合多進程描述的描述方法實現(xiàn)預定的定時/計數功能。對應于電路功能與數據處理過程,分別設計專用電路的模式設置、計數值寫入、計數控制等7個進程,各進程間的輸入、輸出邏輯關系與啟動關系如圖6.15所示。
3.實現(xiàn)原理
參照前述的器件邏輯結構與功能描述,本
在圖示結構中,寫進程CntWrtP、模式設置進程MdSet、讀進程RdP、計數值獲取進程RData以及讀控制RdCon實現(xiàn)器件與外部其他電路的數據交換,器件提供標準CPU并行接口及協(xié)議;復位控制進程RstCon、計數控制進程CntP實現(xiàn)模式0~模式5的定時/計數功能。其中,進程CntWrtP與MdSet響應標準CPU并行接口寫時序,分別寫入各計數器的計數值與工作模式控制字;進程RdP響應外部CPU的讀時序,根據地址信息,將計數器的當前計數值或狀態(tài)信息送上數據總線D;進程RData響應讀信號Rd,根據地址信息獲取對應計數器的當前計數值,供進程RdP檢索。
在圖示結構中,寫進程CntWrtP、模式設置進程MdS圖6.15可編程定時/計數器的進程設計與啟動關系圖6.15可編程定時/計數器的進程設計與啟動關系
6.2.2電路的VHDL描述
1.頂層實體mTCnt的VHDL描述
考慮到器件的通用性,在設計頂層實體mTCnt時,設定并行接口的數據總線D為8位雙向數據端口、兩位地址輸入為A、片選為CS,寫、讀信號分別定義為Wr、Rd,且低電平有效。為便于描述,程序中的端口、變量、信號定義與器件的結構、功能以及進程關系描述一致,頂層實體mTCnt的VHDL實現(xiàn)程序如下。
6.2.2電路的VHDL描述
1.頂層實體mTCn
例6-2-1可編程定時/計數電路頂層實體mTCnt的VHDL描述:
例6-2-1可編程定時/計數電路頂層實體mTCnt電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
2.計數器mCnt的VHDL描述
實體mCnt實現(xiàn)針對計數脈沖的定時與計數功能。根據器件的進程結構,實體mCnt的結構體中主要包括計數重裝進程RstCon與定時計數進程CntP,實現(xiàn)代碼如下。
例6-2-2可編程定時/計數電路的計數實體mCnt的VHDL描述:
2.計數器mCnt的VHDL描述
實體mCnt實現(xiàn)電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
6.2.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
采用前一節(jié)中的VHDL程序描述定時/計數電路的各個構成進程,創(chuàng)建設計項目,實現(xiàn)16位可編程定時/計數器件。項目名稱與頂層實體名稱保持一致,均設置為mTCnt。頂層實體的VHDL實現(xiàn)程序名稱與頂層實體嚴格一致,命名為mTCnt.vhd;計數器實體描述文件與實體命名一致,命名為mCnt.h。
6.2.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
采用前
相對于前述章節(jié)中的實例電路,本例中的可編程定時/計數器具有一定的邏輯復雜程度,考慮到邏輯規(guī)模,本例初選MAXII系列的CPLD作為定時/計數電路的實現(xiàn)器件,具體器件型號參照開發(fā)系統(tǒng)的編譯結果另行指定。如圖6.16所示為按照上述方法創(chuàng)建的可編程定時/計數器件mTCnt的實現(xiàn)項目及其編譯結果。
相對于前述章節(jié)中的實例電路,本例中的可編程定時/計數器具有圖6.16可編程定時/計數器件的項目實現(xiàn)及編譯結果圖6.16可編程定時/計數器件的項目實現(xiàn)及編譯結果
2.器件、引腳分配
根據編譯結果,器件EPM570T100C3能夠滿足電路的所有預定功能,宏單元占有率為64%,端口占用率僅為29%,允許以后對電路控制邏輯進行小幅修改,實現(xiàn)系統(tǒng)升級;同時,EPM570T100C3為3.3?V低功耗器件,封裝面積較小,速度等級較高,器件選擇較合理。兼顧后續(xù)制版、布線等操作,本例的定時/計數電路引腳分配與器件指定如圖6.17所示。
2.器件、引腳分配
根據編譯結果,器件EPM570圖6.17可編程定時/計數器件的引腳與器件分配圖6.17可編程定時/計數器件的引腳與器件分配
圖中帶陰影引腳為已分配引腳,信號與器件引腳之間的具體對應關系如表6.3所示。
圖中帶陰影引腳為已分配引腳,信號與器件引腳之間的具體對
6.2.4電路測試及分析
1.功能仿真
如圖6.18所示為定時/計數電路的仿真輸入,圖6.19所示為電路工作于模式0時的工作時序。
6.2.4電路測試及分析
1.功能仿真
如圖6圖6.18可編程定時/計數器件的仿真輸入圖6.18可編程定時/計數器件的仿真輸入圖6.19可編程定時/計數器件模式0的仿真結果圖6.19可編程定時/計數器件模式0的仿真結果
工作于模式1時,計數器的工作時序波形模擬如圖6.20所示。在圖中的工作時序中,控制計算機向地址“11”(模式寄存器地址)依次寫入模式控制字01H、11H與21H,將計數器0~2的工作模式分別設置為模式1;然后,將16位計數值0007H分別寫入計數器0、1、2(地址依次為“00”、“01”、“10”)。之后,3個計數器的門控G出現(xiàn)上升沿(由“111”轉為“000”),3個計數器響應Clk,開始模式1計數。
工作于模式1時,計數器的工作時序波形模擬如圖6.20所圖6.20可編程定時/計數器件模式1的仿真結果圖6.20可編程定時/計數器件模式1的仿真結果
如圖6.21所示為計數器作于模式2時的工作時序模擬,計數器工作于模式3時的時序模擬如圖6.22所示。
如圖6.21所示為計數器作于模式2時的工作時序模擬,計圖6.21可編程定時/計數器件模式2的仿真結果圖6.21可編程定時/計數器件模式2的仿真結果圖6.22可編程定時/計數器件模式3的仿真結果圖6.22可編程定時/計數器件模式3的仿真結果
圖6.23所示為工作于模式4時計數器的工作時序,計數器工作于模式5時的工作時序如圖6.24所示。
圖6.23所示為工作于模式4時計數器的工作時序,計數器圖6.23可編程定時/計數器件模式4的仿真結果圖6.23可編程定時/計數器件模式4的仿真結果圖6.24可編程定時/計數器件模式5的仿真結果圖6.24可編程定時/計數器件模式5的仿真結果
2.時序分析
通過Processing菜單下的時間分析工具ClassicTimingAnalyzerTool,得到可編程定時/計數器件的時序分析結果如圖6.25所示。其中,器件的輸出延遲時間tpd、數據建立時間tsu、時鐘輸出延遲時間tco與信號保持時間th等詳細參數見圖中的時間分析工具窗ClassicTimingAnalyzerTool。
2.時序分析
通過Processing菜單下的時間圖6.25可編程定時/計數器件的時序分析及結果圖6.25可編程定時/計數器件的時序分析及結果
6.3
SPI總線接口器件
6.3.1邏輯功能與分析
1.功能分析串行數據接口電路是現(xiàn)代計算機系統(tǒng),尤其是嵌入式計算機系統(tǒng)內部以及系統(tǒng)之間數據交換、傳輸的重要部件。與并行接口相比,串行接口及其通信協(xié)議具有接線少、傳輸方便等優(yōu)勢,在遠距離、高速數據傳輸等場合應用廣泛。
6.3SPI總線接口器件
6.3.1邏輯功能與分
2.器件邏輯與功能結構
為便于設計,本例采用圖6.26所示的邏輯功能結構。本例中的器件作為SPI的從器件使用,具有1個SPI接口以及端口信號Sck、nSS、MOSI、MISO,與標準SPI協(xié)議一致。器件具有16位并行輸入、輸出接口各1個,分別命名為并行端口InP與OutP;應答信號與選通信號各一個,分別為nAck、nSTB;輸入、輸出緩沖滿標志各一個,分別為InBF與OutBF。
2.器件邏輯與功能結構
為便于設計,本例采用圖6.圖6.26
SPI接口器件的邏輯功能結構圖6.26SPI接口器件的邏輯功能結構
在圖6.26中,接口器件通過MOSI接收控制計算機的數據信息,將其轉化為并行數據送至輸出緩沖,同時置位輸出緩沖標志;然后,器件響應信號nAck,將數據發(fā)至端口OutP,清除輸出緩沖標志;接收數據時,InP將外設數據送入輸入緩沖,輸入輸出控制置輸入緩沖標志為高,SPI收發(fā)控制獲取輸入緩沖并將其轉換為串行數據,響應Sck,逐位將數據發(fā)至MISO端。
在圖6.26中,接口器件通過MOSI接收控制計算機的數
3.實現(xiàn)原理
參照器件邏輯功能,本例通過多進程實現(xiàn)預定的控制邏輯,各進程間的輸入、輸出關系與啟動關系如圖6.27所示。圖中的接口控制邏輯由SPI數據收進程OutCon、輸出標志控制進程OutFlg、輸出進程OutProc與SPI數據發(fā)進程InCon、輸入進程InProc、輸入標志控制進程InFlg構成。
3.實現(xiàn)原理
參照器件邏輯功能,本例通過多進程實現(xiàn)圖6.27
SPI總線接口器件的進程與啟動關系圖6.27SPI總線接口器件的進程與啟動關系
6.3.2電路的VHDL描述
本例所用的SPI協(xié)議工作時序設置如圖6.28所示。執(zhí)行數據傳輸時,nSS變?yōu)榈碗娖剑琒PI主、從機分別響應數據時鐘Sck,在Sck上升沿上發(fā)送串行數據各數據位,在Sck下降沿上接收各串行數據位。參照前述的電路邏輯功能結構與集成關系,實現(xiàn)器件。
6.3.2電路的VHDL描述
本例所用的SPI協(xié)議圖6.28本例所用的SPI協(xié)議工作時序圖6.28本例所用的SPI協(xié)議工作時序
為便于器件描述,在編程實現(xiàn)時,程序的所有端口、變量、信號定義以及進程設計與圖6.27中的描述一致,電路的VHDL描述程序如下。
例6-3-1
SPI總線接口器件的VHDL描述程序:
為便于器件描述,在編程實現(xiàn)時,程序的所有端口、變量、信電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
描述程序的實體名稱設置為mSPI,采用SPI標準端口,信號包括主機數據輸出/從機數據輸入MOSI(MasterOutputSlaveInput)、主機數據輸入/從機數據輸出MISO(MasterInputSlaveOutput)、數據時鐘Sck與從機選擇端nSS。此外,器件端口還包括16位數據輸入端口InP、16位數據輸出端口OutP、輸入選通信號nStb、輸出響應信號nAck、輸出緩沖滿標志OutBF與輸入緩沖滿標志InBF。為便于實現(xiàn),描述程序設計輸入緩沖InBuf與輸出緩沖OutBuf,分別暫存來自SPI的輸出數據與來自外設的輸入數據。
描述程序的實體名稱設置為mSPI,采用SPI標準端口,
執(zhí)行數據輸出操作時,如果輸出緩沖滿標志iOutBF為低電平且nSS有效,進程OutCon響應SPI數據時鐘Sck下降沿,采樣端口MOSI,依次獲取各輸出數據位,送入輸出緩沖OutBuf。一幀數據(16位)接受結束后,進程OutCon發(fā)出信號iTrD,通知進程OutFlg修改輸出緩沖滿標志iOutBF;然后,OutFlg修改標志iOutBF,OutCon檢測到iOutBF變?yōu)楦唠娖?,撤銷iTrD;iOutBF變化引起端口OutBF變化。外設收到OutBF,發(fā)出響應信號nAck,OutProc響應nAck下降沿,將OutBuf送至端口OutP;同時,nAck下降沿觸發(fā)進程OutFlg,清除輸出緩沖滿標志iOutBF,端口OutBF清零,數據輸出完成。
執(zhí)行數據輸出操作時,如果輸出緩沖滿標志iOutBF為低
執(zhí)行數據輸入操作時,進程InProc監(jiān)測選通信號nStb,當nStb下降沿來臨且輸入緩沖滿標志無效為“0”時,InProc將端口InP的數據送入輸入緩沖InBuf;同時,進程InCon響應nStb下降沿,置位輸入緩沖滿標志iInBF;監(jiān)測到標志iInBF為高電平且nSS有效后,SPI發(fā)進程OutCon響應SPI數據時鐘Sck上升沿,由高至低依次將InBuf各數據位送至端口MISO。一幀數據(16位)發(fā)送結束后,進程InCon將信號iRcDOv置為高電平,通知進程InFlg修改輸入緩沖滿標志iInBF;然后,InFlg將iInBF置為低電平,InCon檢測到iInBF變低,清零iRcDOv;iInBF的變化引起端口InBF變化,數據輸入完畢。
執(zhí)行數據輸入操作時,進程InProc監(jiān)測選通信號nSt
6.3.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
如圖6.29所示為SPI總線接口器件mSPI的實現(xiàn)項目及項目編譯情況。
6.3.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
如圖6圖6.29
SPI總線接口器件mSPI的項目實現(xiàn)及編譯圖6.29SPI總線接口器件mSPI的項目實現(xiàn)及編譯
2.器件、引腳分配
根據上述編譯結果,初選的器件EPM240T100C3完全可以滿足本例的接口器件,同時項目35%的宏單元占用率、50%端口占用率,能夠為后續(xù)的邏輯功能完善、修改以及系統(tǒng)升級提供較大的選擇余地。EPM240T100C3為3.3
V低功耗器件,封裝面積較小,價格、速度等級等情況合理,后續(xù)的電路焊接以及調測試均較為方便。因此,本例為項目最終指定器件EPM240T100C3。
考慮到后續(xù)制版、布線與調測試的方便性,本例的SPI總線接口器件mSPI的引腳分配與器件指定如圖6.30所示。
2.器件、引腳分配
根據上述編譯結果,初選的器件E圖6.30
SPI總線接口器件mSPI的引腳信號與器件分配圖6.30SPI總線接口器件mSPI的引腳信號與器件分配
圖中的帶陰影引腳為已分配信號的引腳,從引腳5到引腳85,按照逆時針順序,端口上分配的信號依次為:SPI總線的信號Sck、nSS、MOSI、MISO、外設響應信號nAck、16位輸出端口OutP、輸出緩沖滿標志OutBF、選通信號nStb、16位輸入端口InP、輸入緩沖滿標志nInBF。表6.4給出了SPI接口電路mSPI的實現(xiàn)器件EPM240T100C3各引腳與I/O信號的詳細對應關系。
圖中的帶陰影引腳為已分配信號的引腳,從引腳5到引腳85電子設計自動化第6章課件
6.3.4電路功能測試及分析
1.邏輯功能仿真
圖6.31所示為SPI總線接口器件mSPI的邏輯功能仿真輸入波形文件。
6.3.4電路功能測試及分析
1.邏輯功能仿真
圖6.31
SPI總線接口器件mSPI的仿真輸入圖6.31SPI總線接口器件mSPI的仿真輸入
在圖示仿真輸入中,仿真柵格Grid大小設置為20
ns,仿真總時長設置為3?μs。圖中的信號?\OutCon:tmp為SPI協(xié)議從機數據收進程OutCon的數據位計數器,與其相對應,信號?\InCon:tmp為SPI協(xié)議從機數據發(fā)進程InCon的數據位計數器。對應于每個數據時鐘Sck,SPI每執(zhí)行一次數據位的收發(fā),兩個信號tmp分別計數一次。收發(fā)完16位數據,兩個tmp信號均清零。
在上述仿真激勵的作用下,SPI總線接口器件mSPI的工作時序仿真結果波形如圖6.32所示。
在圖示仿真輸入中,仿真柵格Grid大小設置為20ns 圖6.32
SPI總線接口器件mSPI的邏輯功能仿真 圖6.32SPI總線接口器件mSPI的邏輯功能仿真
2.時序分析
通過Processing菜單下的時間分析工具ClassicTimingAnalyzerTool,對SPI總線接口電路mSPI進行時序分析,結果如圖6.33所示。其中,電路各信號的輸出延遲時間tpd、數據建立時間tsu、時鐘輸出延遲時間tco與信號保持時間th值見圖中的時間分析工具窗ClassicTimingAnalyzerTool。
2.時序分析
通過Processing菜單下的時間
通過圖6.33中的按鈕Start,啟動電路的時序分析,然后選擇按鈕Report,得到接口電路mSPI各時間參數的極端值,數據建立時間tsu的最大值為0.986?ns,時鐘輸出延遲時間tco的最大值為7.276?ns,數據信號保持時間th的最大值為1.447?ns,Sck的最高容許頻率為209.78?MHz,nSTB的最高容許頻率為304.04
MHz。
通過圖6.33中的按鈕Start,啟動電路的時序分析,圖6.33
SPI總線接口器件mSPI的時序分析圖6.33SPI總線接口器件mSPI的時序分析
6.4堆棧(STACK)電路
6.4.1邏輯功能與分析
1.功能分析堆棧是計算機系統(tǒng)中應用非常廣泛的一種典型存儲電路,它遵從先入后出的存取原則,常用于計算機控制過程中一些重要運行參數與數據的存儲與恢復。假定某計算機控制系統(tǒng)中的存儲電路中設置專用堆棧存儲區(qū)STACK、堆棧指針SP,如圖6.34所示。
6.4堆棧(STACK)電路
6.4.1邏輯功能圖6.34堆棧存儲電路的結構與操作圖6.34堆棧存儲電路的結構與操作
2.實現(xiàn)原理
根據堆棧的定義及其操作過程的描述,本例通過多進程實現(xiàn)堆棧預定的各種控制邏輯,進程設計以及各進程間的輸入、輸出關系與啟動關系如圖6.35所示。
2.實現(xiàn)原理
根據堆棧的定義及其操作過程的描述,本圖6.35堆棧存儲電路的進程設計與啟動關系圖6.35堆棧存儲電路的進程設計與啟動關系
6.4.2電路的VHDL描述
參照堆棧結構功能以及操作過程,考慮兼容性與通用性,本例堆棧電路采用標準8位并行接口,設置器件8位雙向數據端口為D、器件片選端為CS,器件的數據寫入端、讀出端分別定義為WR、RD,且均為低電平有效。為方便使用,器件設置專用狀態(tài)標志端口,包括堆??諛酥拘盘朎mpt與堆棧滿標志Full。
為便于程序理解與電路描述,在編程實現(xiàn)時,描述程序的所有端口、變量、信號定義以及進程設計與圖6.35中的描述一致,電路的VHDL描述程序如下。
6.4.2電路的VHDL描述
參照堆棧結構功能以及
例6-4-1堆棧(STACK)的VHDL描述程序:
例6-4-1堆棧(STACK)的VHDL描述程序:電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
描述程序的實體名稱設置為mStck,堆棧電路mStck在正常工作時,數據的出入棧動作均會影響讀寫指針pRd與pWr,當數據持續(xù)入棧時,電路中的寫指針pWr、讀指針pRd均持續(xù)進行加1運算;數據持續(xù)出棧時,寫指針pWr、讀指針pRd均持續(xù)進行減1運算。同時,當堆棧為滿或空狀態(tài)時,讀寫指針相等;否則,讀寫指針滿足條件pWr?=?pRd?+?1。
描述程序的實體名稱設置為mStck,堆棧電路mStck
根據上述原理描述寫進程WrProc與指針控制進程PntCon。寫進程WrProc響應信號WR的上升沿,CS為低電平有效且堆棧mStck不為滿狀態(tài),若上次操作為出棧(iDeta?=‘1’),WrProc獲取讀指針pRd,根據pRd計算當前寫指針pWr。當上次操作為入棧(iDeta?=‘0’)時,如果pWr到達棧頂,將堆棧滿標志iFull置位,調整寫指針pWr。然后,寫進程WrProc獲取數據總線D,送入堆棧存儲區(qū)DSeg中由pWr指定的存儲單元DSeg(pWr),同時清除標志iDeta。由于寫指針pWr的計算與上次棧操作類型有關,進程WrProc監(jiān)測讀信號RD,若RD發(fā)生變化、CS有效且堆棧不空(EmptF為“0”),進程WrProc將iDeta置位,供WrProc執(zhí)行入棧操作時計算pWr使用。
根據上述原理描述寫進程WrProc與指針控制進程Pnt
進程PntCon計算堆棧電路的讀指針pRd,進程響應讀信號的下降沿,若CS有效且堆棧不為空(EmptF為“0”),則計算堆棧讀指針pRd,執(zhí)行出棧操作。計算pRd時,若上次操作為壓棧(iDeta?=‘1’),則PntCon獲取寫指針pWr,根據pWr計算當前讀指針。當上次操作為出棧時,如果堆棧讀指針pRd?=?0,則將堆??諛酥綞mptF置位。同樣,進程PntCon監(jiān)測信號WR,若WR、CS有效且堆棧不滿,PntCon清除空標志iEmpt,將iDeta置位,供PntCon在執(zhí)行出棧操作時計算pRd使用。進程RdProc響應讀信號RD,在CS有效且堆棧不為空時,將讀指針對應的堆棧存儲單元DSeg(pRd)送上數據總線D。
進程PntCon計算堆棧電路的讀指針pRd,進程響應讀
6.4.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用上述VHDL程序描述堆棧電路器件,創(chuàng)建項目,將描述程序加入設計項目并作為頂層實體,實現(xiàn)預定的堆棧功能電路。項目的頂層實體、項目名稱保持一致,均命名為mStck。同時,實體的VHDL描述程序名稱與頂層實體嚴格對應,命名為mStck.vhd。初選MAXII系列CPLD器件實現(xiàn)預定的電路,圖6.36所示為按照上述方法創(chuàng)建的堆棧電路mStck的實現(xiàn)項目及項目編譯情況。
6.4.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用上圖6.36堆棧電路mStck的項目實現(xiàn)及編譯圖6.36堆棧電路mStck的項目實現(xiàn)及編譯
2.器件、引腳分配
根據上述編譯結果,初選的器件EPM240T100C3完全可以滿足本例接口器件的要求,同時項目46%的宏單元占用率、16%的端口占用率,能為后續(xù)的邏輯功能擴展、修改以及系統(tǒng)升級提供較大的選擇余地。EPM240T100C3為3.3
V低功耗器件,集成度、價格、速度等條件較為理想。同時,TQFP封裝使后續(xù)的電路焊接以及調測試更為方便。因此,本例為項目最終指定器件EPM240T100C3,考慮到后續(xù)制版、布局、布線的合理性以及調測試的方便性,本例堆棧電路mStck的引腳分配與器件指定情況如圖6.37所示。
2.器件、引腳分配
根據上述編譯結果,初選的器件E圖6.37堆棧電路mStck的引腳信號與器件分配圖6.37堆棧電路mStck的引腳信號與器件分配
圖中的帶陰影引腳為已分配信號的引腳,從引腳1到引腳67,按照逆時針順序,端口上分配的信號依次為:雙向數據總線的數據端口D、片選信號CS、計算機并行接口的讀信號RD、計算機并行接口的寫信號WR、堆棧電路Stck滿標志Full、堆棧電路mStck空標志Empt。表6.5給出了堆棧電路mStck實現(xiàn)器件EPM240T100C3引腳與I/O信號的詳細對應關系。
圖中的帶陰影引腳為已分配信號的引腳,從引腳1到引腳67
6.4.4電路功能測試及分析
1.邏輯功能仿真
圖6.38所示為堆棧電路mStck的邏輯功能仿真輸入波形文件,圖中仿真柵格Grid大小設置為20?ns,仿真總時長設置為3?μs。信號\PntCon:iRd為堆棧電路mStck的讀指針,與其相對應,信號?\WrProc:iWr為堆棧電路mStck的寫指針。信號D為計算機并行接口8位雙向數據端口的設定值,信號DATA為堆棧電路mStck工作時8位雙向數據端口D的信號變化狀況。
6.4.4電路功能測試及分析
1.邏輯功能仿真
圖6.38堆棧電路mStck的仿真輸入圖6.38堆棧電路mStck的仿真輸入
在上述仿真激勵中的時間段30~450
ns內,并行接口寫信號WR連續(xù)產生下降沿,向堆棧電路mStck持續(xù)寫入10個數據。此時,堆棧電路mStck的工作時序仿真結果如圖6.39所示。
在上述仿真激勵中的時間段30~450ns內,并行接口圖6.39堆棧電路mStck持續(xù)壓棧時的邏輯功能仿真圖6.39堆棧電路mStck持續(xù)壓棧時的邏輯功能仿真
從時刻30
ns開始,并行接口向堆棧電路mStck持續(xù)送入數據01H~0AH,寫指針iWr依次增加,當寫至數據08H時,滿標志Full變?yōu)楦唠娖?,堆棧滿。在時間段520~580?ns內,RD連續(xù)發(fā)出讀脈沖,DATA送出最后的壓棧數據08H、07H。在時間段660~720?ns內,將數據10H、11H壓棧,F(xiàn)ull重新變?yōu)楦唠娖?。圖6.40所示為mStck持續(xù)出棧情況。
從時刻30ns開始,并行接口向堆棧電路mStck持續(xù)圖6.40堆棧電路mStck持續(xù)出棧時的邏輯功能仿真圖6.40堆棧電路mStck持續(xù)出棧時的邏輯功能仿真
從800
ns時刻開始,RD連續(xù)發(fā)出讀脈沖,數據總線DATA端連續(xù)送出數據11H、10H、06H、05H、04H、03H、02H與01H,與前文的壓棧數據順序一一對應。在800
ns時刻,RD變?yōu)榈碗娖?,堆棧mStck開始送出數據,滿標志Full迅速變低;送出8個數據后,空標志Empt置位,堆棧清空。
當堆棧滿后,數據隨機出棧時的堆棧電路工作時序仿真結果如圖6.41所示。
從800ns時刻開始,RD連續(xù)發(fā)出讀脈沖,數據總線D圖6.41連續(xù)壓棧堆棧滿后隨機出棧時電路的工作時序仿真圖6.41連續(xù)壓棧堆棧滿后隨機出棧時電路的工作時序仿真
從時刻1.28?μs開始,CS有效,WR連續(xù)發(fā)出寫脈沖,DATA端數據20H~27H依次被壓入堆棧mStck。壓棧開始,空標志Empt迅速變?yōu)榈碗娖?。?個數據完成壓棧后,堆棧滿標志Full置位。在時刻1.74?μs處,RD連續(xù)發(fā)出4個隨機的讀信號,棧頂的4個數據27H、26H、25H與24H被送上mStck電路的數據總線DATA,此時,堆棧內順序保留數據23H、22H、21H與20H。圖6.42所示為隨機壓棧至堆棧滿后,持續(xù)出棧時電路的工作時序仿真結果。
從時刻1.28?μs開始,CS有效,WR連續(xù)發(fā)出寫脈沖
圖6.42隨機狀態(tài)下堆棧電路mStck壓棧滿后持續(xù)出棧的工作時序仿真
圖6.42隨機狀態(tài)下堆棧電路mStck壓棧滿后持續(xù)出棧
2.時序分析
通過quartusII自帶的時間分析工具,對堆棧電路mStck進行時間分析。選擇Processing菜單下的功能子菜單ClassicTimingAnalyzerTool,運行時序分析工具,結果如圖6.43所示。圖中時間分析工具窗口ClassicTimingAnalyzerTool列表顯示電路各端口信號的輸出延遲時間tpd、數據建立時間tsu、時鐘輸出延遲時間tco與信號保持時間th值。
2.時序分析
通過quartusII自帶的時間分圖6.43堆棧電路mStck的時序分析圖6.43堆棧電路mStck的時序分析
當預定的電路邏輯功能或時間分析參數不理想或達不到設計要求時,可以修改描述程序、PLD器件或其他的器件、布局、布線等參數,重新編譯仿真,以獲得更高的性能與更好的輸出效果。
當預定的電路邏輯功能或時間分析參數不理想或達不到設計要
6.5先入先出(FIFO)電路
6.5.1邏輯功能與分析
1.功能分析先入先出又稱FIFO(FirstInFirstOut),是計算機系統(tǒng)結構中應用非常廣泛的另外一種典型存儲電路,F(xiàn)IFO存儲電路的邏輯結構如圖6.44所示。
6.5先入先出(FIFO)電路
6.5.1邏輯功圖6.44先入先出(FIFO)存儲電路的結構與操作圖6.44先入先出(FIFO)存儲電路的結構與操作
2.實現(xiàn)原理
根據先入先出(FIFO)電路的定義、功能及其操作過程的描述,本例通過多進程實現(xiàn)FIFO存儲電路預定的各種功能控制邏輯,電路的進程設計以及各構成進程間的輸入/輸出關系與啟動關系如圖6.45所示。
2.實現(xiàn)原理
根據先入先出(FIFO)電路的定義、圖6.45先入先出(FIFO)存儲電路的進程設計與啟動關系圖6.45先入先出(FIFO)存儲電路的進程設計與啟動關
6.5.2電路的VHDL描述
參照前文的先入先出(FIFO)電路的結構功能以及操作過程分析,兼顧電路的兼容性與通用性,本例中FIFO電路的外部端口采用標準8位并行接口,端口的數據端設置為8位雙向數據總線D、器件片選端端口設置為CS,讀、寫信號端分別定義為WR、RD,均為低電平有效。為便于數據交換,F(xiàn)IFO電路中設置專用端口來描述器件存儲區(qū)的空滿狀態(tài),包括空標志端口Empt與滿標志端口Full。
6.5.2電路的VHDL描述
參照前文的先入先出(
為便于程序理解與電路描述,描述程序的所有端口、變量、信號定義以及進程設計與前文的邏輯功能、過程描述一致,F(xiàn)IFO電路的VHDL實現(xiàn)程序如下。
例6-5-1先入先出(FIFO)電路的VHDL描述程序:
為便于程序理解與電路描述,描述程序的所有端口、變量、信電子設計自動化第6章課件電子設計自動化第6章課件電子設計自動化第6章課件
描述程序的實體名稱設定為mFIFO,按照前文所述的進程設置、進程處理過程與進程啟動關系描述各進程的數據處理過程。寫進程WrProc響應并行接口的寫信號,在WR的上升沿時刻,進程監(jiān)測片選信號CS與滿狀態(tài)標志iFull。若信號CS有效且FIFO不為滿狀態(tài),WrProc獲取并口數據D,根據當前寫指針pWr將數據D送入FIFO存儲區(qū)DSeg。然后重新計算寫指針pWr,如果pWr到達存儲區(qū)頂部,則pWr清零;否則,pWr執(zhí)行自加運算。寫指針pWr調整完畢后,進程判別存儲區(qū)滿狀態(tài),若讀、寫指針相等,則FIFO的存儲區(qū)已滿,標志iFull置位。同時,寫進程WrProc響應并行接口的讀信號RD,當RD、CS有效且空標志iEmpt為“0”時,進程WrProc撤銷滿標志,iFull清零。
描述程序的實體名稱設定為mFIFO,按照前文所述的進程
進程RdProc響應讀信號RD,判斷FIFO電路的狀況,若RD、CS有效且電路存儲區(qū)不為空狀態(tài)時,RdProc將存儲單元DSeg內讀指針pRd對應的數據DSeg(pRd)堆棧送上數據總線D;反之,將數據總線置為高阻態(tài)。
進程RdProc響應讀信號RD,判斷FIFO電路的狀況
進程DataCon專門用于FIFO電路的讀指針pRd的運算及電路空狀態(tài)標志的操作。DataCon響應并行接口讀信號RD,一次讀操作完成后,在RD信號的上升沿上,DataCon判斷FIFO電路的工作狀態(tài),若CS有效且FIFO標志iEmpt為“0”,進程DataCon重新計算讀指針pRd。若讀指針到達存儲區(qū)頂部,pRd清零;否則,pRd執(zhí)行加1運算。當讀指針pRd計算完畢后,DataCon判斷讀、寫指針pWr與pRd的取值狀況,若二者取值相等,則將iEmpt置位,同時DataCon響應寫信號WR,若WR、CS有效且電路存儲區(qū)不為滿狀態(tài)時,進程將FIFO電路存儲區(qū)的空標志iEmpt清零。
進程DataCon專門用于FIFO電路的讀指針pRd的
6.5.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用前文所述的VHDL程序描述先入先出電路器件,創(chuàng)建項目mFIFO,將電路描述程序加入設計項目并作為頂層實體,實現(xiàn)預定的先入先出存儲電路功能。項目的頂層實體、項目名稱保持一致,均命名為mFIFO。同時,頂層實體的VHDL描述程序名稱與實體嚴格對應,命名為mFIFO.vhd。項目初選MAXII系列CPLD作為預定的電路實現(xiàn)器件,圖6.46所示為按照上述方法及過程創(chuàng)建的先入先出電路mFIFO的實現(xiàn)項目及其編譯情況。
6.5.3電路實現(xiàn)
1.項目創(chuàng)建與編譯
利用前圖6.46先入先出(FIFO)存儲電路的項目實現(xiàn)及編譯圖6.46先入先出(FIFO)存儲電路的項目實現(xiàn)及編譯
2.器件、引腳分配
根據項目編譯結果,采用開發(fā)工具選定的器件EPM240T100C3能夠滿足堆棧電路需要的邏輯資源數量與運行速度,同時邏輯單元以及端口的使用狀況,為后續(xù)的邏輯功能擴展、修改以及系統(tǒng)升級能夠提供可能性;使用100腳TQFP封裝更便于焊接、調測試,因此本例選擇器件EPM240T100C3來實現(xiàn)該項目。
2.器件、引腳分配
根據項目編譯結果,采用開發(fā)工具
6.5.4電路功能測試及分析
1.邏輯功能仿真
圖6.47所示為先入先出電路mFIFO的邏輯功能仿真輸入波形文件。
6.5.4電路功能測試及分析
1.邏輯功能仿真
圖6.47先入先出電路mFIFO的仿真輸入圖6.47先入先出電路mFIFO的仿真輸入
圖示仿真輸入中的仿真柵格Grid大小設置為20
ns,仿真總時長設置為4?μs。信號\DataCon:iRd的取值大小對應于先入先出電路mFIFO的讀指針,與其相對應,信號\WrProc:iWr的大小對應于先入先出電路mFIFO的寫指針。信號D為存儲電路mFIFO并行接口8位雙向數據端口的設定值,信號DATA為電路mFIFO正常工作時8位雙向數據端口D的端口變化情況。
圖示仿真輸入中的仿真柵格Grid大小設置為20ns,
先入先出電路mFIFO的一個完整的存取工作循環(huán)的工作時序仿真如圖6.48所示。在上述仿真激勵作用下的時間段30~450?ns,片選端CS有效,并行接口的寫端口WR連續(xù)產生下降沿,向先入先出電路mFIFO持續(xù)發(fā)出10個寫入信號。此時,數據01H~0AH被依次送上數據總線DATA。在圖中的40?ns時刻處,WR端口出現(xiàn)低電平,空標志Empt清零。當D端口上的數據寫至08H時,在340?ns時刻的WR上升沿后,mFIFO被寫滿,因此滿標志Full置位變成高電平。在數據寫入過程中,寫指針?\WrProc:iWr依次增大,增至7后清零。
先入先出電路mFIFO的一個完整的存取工作循環(huán)的工作時圖6.48先入先出電路mFIFO的完整存取工作循環(huán)時序仿真圖6.48先入先出電路mFIFO的完整存取工作循環(huán)時序仿
在時間段490~890
ns內,片選CS重新變?yōu)榈碗娖角页掷m(xù)有效,讀端口RD連續(xù)發(fā)出讀脈沖,滿標志Full被迅速撤銷,先入先出內存儲的數據01H~08H依次被送上數據總線DATA。先寫入的數據01H首先送出,最后寫入的數據08H被最后送至數據總線DATA,符合先入先出的功能定義。數據讀出時,讀指針\DataCon:iRd依次增大,達到數值7后,iRd返回“0”值,mFIFO被讀空,標志Empt置位。圖6.49所示為隨機寫入、持續(xù)讀空時mFIFO的工作時序仿真
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧科技大學《中外戲劇鑒賞》2023-2024學年第一學期期末試卷
- 昆明理工大學《五官科護理學》2023-2024學年第一學期期末試卷
- 江蘇農林職業(yè)技術學院《金融建模與計算》2023-2024學年第一學期期末試卷
- 吉林工程職業(yè)學院《植物食品加工工藝學》2023-2024學年第一學期期末試卷
- 湖南女子學院《材料分析測試原理》2023-2024學年第一學期期末試卷
- 【物理】第十章 浮力 單元練習+-2024-2025學年人教版物理八年級下冊
- 黑龍江能源職業(yè)學院《政治學導論》2023-2024學年第一學期期末試卷
- 高考物理總復習《電磁感應規(guī)律及應用》專項測試卷含答案
- 重慶五一職業(yè)技術學院《導航與制導系統(tǒng)》2023-2024學年第一學期期末試卷
- 重慶工貿職業(yè)技術學院《測繪學概論》2023-2024學年第一學期期末試卷
- 石油天然氣建設工程交工技術文件編制規(guī)范(SYT68822023年)交工技術文件表格儀表自動化安裝工程
- 患者跌倒墜床的應急預案試題及答案
- GB/T 24128-2018塑料塑料防霉劑的防霉效果評估
- 福建省地方標準《先張法預應力混凝土管樁基礎技術規(guī)程》DBJ13-2023
- 危險作業(yè)監(jiān)護人員培訓
- 職業(yè)病防治企業(yè)臺賬樣本
- 充電樁驗收表
- 城市水環(huán)境新型污染物的去除新技術課件
- 中長期貸款按實際投向統(tǒng)計統(tǒng)計制度
- 鍋爐專業(yè)2020年防非停措施
- 中國鐵塔股份有限公司通信鐵塔、機房施工及驗收規(guī)范(試行)
評論
0/150
提交評論