版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘 要堆棧是計算機系統(tǒng)中的一個重要概念,也是理解微型計算機組成的一個基礎概念。堆棧是一種存儲部件,即數據的寫入跟讀出不需要提供地址,而是根據寫入的順序決定讀出的順序。堆棧也是一種數據結構。有一個地址指針總指向最后一個壓入堆棧的數據所在的數據單元,存放這個地址指針的寄存器就叫做堆棧指示器。數據一個一個地存入,這個過程叫做“壓?!?。在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的后面一個單元中,堆棧指示器中的地址自動加1。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減 1。這個過程叫做“出棧pop”。如此就實現了后進先出的原則。一般的堆棧存儲器由ram、寄
2、存器a,寄存器b構成。算術運算一般在寄存器a和寄存器b 之間進行,其中的數據可能來自于進棧的輸入也可能來自棧堆的出棧。運算結果則會放入寄存器b中以待下步操作。此次的課程設計做出的堆棧處理器,使其能與外部數據總線進行數據交換,且符合堆棧要求(先進后出),并能對存儲的數據進行算術運算,且存儲的數據的數據位不少于8位,通過數碼管顯示操作數據及運算結果(只有寄存器a、b直接與外部總線進行數據交換,ram只和寄存器b進行數據交換)。關鍵詞:堆棧,ram, push, pop , 寄存器a,寄存器b 目 錄一. 任務解析.3二. 系統(tǒng)方案論證.32.1總體方案與比較論證.32.2 設計思路.42.3系統(tǒng)原
3、理與結構.4 2.3.1 系統(tǒng)框圖.4 2.3.2 系統(tǒng)結構框圖.5 2.3.3堆棧電路圖.5三. 設計過程.63.1堆棧存儲器的設計.6 3.1.1堆棧存儲器設計原理及仿真結果.63.2對數據進行算術運算的設計及仿真.7 3.2.1 對存儲器中數據進行加法運算.7 3.2.2 對存儲器中數據進行減法運算.8 3.2.3 對存儲器中數據進行乘法運算.8 3.2.4 對存儲器中數據進行除法運算.9四. 總結.94.1遇到的問題及解決方案.94.2設計心得.104.3參考文獻.101、 任務解析堆棧處理器應能完成兩個基本的功能:與外部數據線的數據交換符合堆棧要求(先進后出);對存儲的數據能進行算術
4、運算。對整個堆棧處理器有以下要求:1與外部數據線的數據交換符合堆棧要求(先進后出)即實現進棧(push)和出棧(pop)操作; 2對存儲的數據能進行算術運算即能進行簡單的加減乘除算;3數據位數不少于8位:4能進行簡單的判斷運算或操作出現錯誤時會報警提示。根據堆棧處理器實驗要求,可畫出程序流程圖如下圖:圖1、程序流程圖2、 系統(tǒng)方案論證2.1 總體方案與比較論證 方案一、直接用vhdl語言實現其功能,包括對存儲器的入棧出棧處理、與數據總線的數據交換,包括對數據的算術運算處理。 此方案可實現其功能,但是由于對于算術運算中乘法器和除法器用vhdl語言來實現會比較繁瑣,且不容易實現,故此方案不夠理想。
5、 方案二、直接用lpm模塊進行定制ram、乘法器和除法器等器件。 此方案對于ram、乘法器、除法器的定制比較簡單、靈活,但是對于其數據先進后出的控制會比較麻煩。 方案三、用vhdl語言來實現數據的堆棧處理,用lpm模塊進行定制乘法器和除法器等器件。 此方案簡單且易實現。 綜合以上幾種方案的優(yōu)缺點,方案三簡單易實現,且其實現的過程比較簡單易理解,并且完全可以達到設計要求,故采用第三種方案。2.2設計思路圍繞著要實現的功能,分析堆棧處理器應該具有哪些輸入輸出信號,明確設計要求。1.從堆棧角度考慮(1)堆棧的指示信號:堆棧其實是一個能隨機存取數據的存儲器,它符合先進后出的原則。作為一個存儲器,除工作
6、速度外,它的首要指標是容量,設其字數為aa,每個字n位。表征存取字位置的指示信號是地址,在堆棧中稱為指針sp。當指針處于棧頂時,sp=0,對應滿棧,應有滿棧指示信號full=1。當棧空時,指針sp=aa,應有空棧指示信號empty=1。同時規(guī)定指針sp始終指向操作之前的棧內有內容的位置。(2)堆棧的操作:作為堆棧它的操作只有兩項,入棧(push)和出棧(pop)。入棧操作push后指針sp(sp-1),出棧操作pop后指針sp(sp+1)。若full=1,不能入棧(push),若empty=1,不能出棧(pop)。否者出現錯誤操作信號提示error=1。2.從算術運算功能考慮首先應有進行算術運
7、算的指示信號,即輸入信號add, sub, mul, div。由于不同的運算所需的時間不同,因此必須有一個啟始信號start和一個完成信號ready。堆棧中兩個數據進行算術運算的為地址分別為sp和sp+1的兩個數據送入運算器進行運算,運算后將結果送入地址為sp+1的字中。當堆棧只有一個字時,不能進行算術運算,因此必須有一個one指示。當指針處于棧底時,sp=aa-1,這時堆棧只有一個字,應有指示信號one=1。若此時進行運算操作則要有報錯信號error=1.2.3系統(tǒng)原理與結構2.3.1系統(tǒng)框圖對本設計分析: 在本設計中要求此堆棧處理器能與外部數據總線進行數據交換,且數據遵循先進后出的堆棧要求
8、,并要求有指示信號,即滿棧指示信號full,空棧指示信號empty,滿棧時不能入棧(push),空棧時不能出棧(pop),在此設計中要求對存儲的數據進行算術運算,故有進行加減乘除的指示信號,add、sub、mul、div, 由于不同運算所需時間不同,所以需有一個啟動信號start和一個完成信號ready,當堆棧中只有一個字時不能進行算術運算,故需要一個one指示信號來控制是否可以進行算術運算,由此得到如下系統(tǒng)框圖: 圖2、系統(tǒng)框圖2.3.2系統(tǒng)結構框圖通過對設計任務的各個功能實現的具體分析,得到下面的堆棧處理器的結構框圖: 圖3、結構框圖2.3.3堆棧電路圖 圖4、電路圖3、 設計過程3.1
9、堆棧存儲器的設計3.1.1 堆棧存儲器設計原理及仿真結果 對此設計進行具體分析,首先是對數據的先進后出的堆棧處理: 圖5、堆棧存儲器結構圖堆棧其實是一個能隨機存取數據的存儲器,它符合先進后出的原則。作為一個存儲器,除工作速度外,它的首要指標是容量,設其字數為aa,每個字n位。表征存取字位置的指示信號是地址,在堆棧中稱為指針sp。當指針處于棧頂時,sp=0,對應滿棧,應有滿棧指示信號full=1。當??諘r,指針sp=aa,應有空棧指示信號empty=1。同時規(guī)定指針sp始終指向操作之前的棧內有內容的位置。設fa、fb為寄存器a、b的指示信號,當fa=1、fb=1時表示a、b中存有數據。當指針處于
10、棧頂即sp=0、fa=1、fb=1時,棧滿full=1;當指針sp=8、fa=0、fb=0時,??誩mpty=1;當sp=7、fa=0、fb=0或sp=8、fa=0、fb=1時,堆棧中只有一個數據,one=1。當full=1時,不能入棧(push);當empty=1時,不能出棧(pop);當one=1時,不能進行算術運算。圖6堆棧存儲器進棧出棧的仿真圖由圖6可知,當push=1即高電平時,壓入寄存器b的數據為2,而后push為低電平,當其為高電平時壓入寄存器a第二個數據3,當pop=1時,數據出棧,此時寄存器a、b均滿,將寄存器a中數據輸出到數據總線上,輸出數據為3。3.2 對數據進行算術運算
11、的設計及仿真在此設計中,對于存儲器中數據的運算是,將數據存入寄存器a和寄存器b中進行算術運算之后,再將運算結果存入寄存器b中的過程。3.2.1對存儲器中數據進行加法運算: 圖7存儲器中數據進行加法運算的仿真圖由圖7可知,依次壓入兩個數據2、3,壓入之后數據2存入寄存器b中,3存入寄存器a中,當start=1,enter2=0且enter1=0時,數據進行加法運算,結果為5,存入b寄存器中。3.2.2對存儲器中數據進行減法運算:圖8存儲器中數據進行減法運算的仿真圖由圖8可知,依次在寄存器b,a中存入數據2和3,,當start=1,enter2=0且enter1=1時,進行減法運算,結果為1,存入
12、b寄存器中。3.2.3對存儲器中數據進行乘法運算: 圖9存儲器中數據進行乘法運算的仿真圖 依次壓入數據2、3,此時寄存器a和寄存器b中內容分別是3和2,當start=1,enter2=1且enter1=0時,進行乘法運算,結果為6,存入寄存器b中。此時寄存器a空b滿,再壓入數據15,壓入的數據存入寄存器a中,當start=1,enter2=1且enter1=0時,進行乘法運算(6*15),結果有溢出,error=1,發(fā)出報警信號。3.2.4對存儲器中數據進行除法運算:圖10存儲器中數據進行除法運算的仿真圖 依次壓入數據3、6,此時寄存器a和寄存器b中內容分別是6和3,當start=1,ente
13、r2=1且enter1=1時,進行除法運算(6/3),結果為2,存入寄存器b中。4、 總結4.1 遇到的問題及解決方案為期兩周的堆棧處理器課程設計終于完成了,努力終于有了結果,學到了很多有用的知識,其中也遇到了很多的問題。在課程設計開始的時候,我選用vhdl語言編寫乘法器和除法器的程序,但在這個問題上思考花費的時間比較長,并且最終也沒有得到預期的結果,乘法器的程序剛開始編寫的時候就遇到了問題,想到乘法如何實現,怎樣實現,多次仿真之后始終得不到滿意的結果,到最后經老師指點,順利編寫成功,經過仿真之后結果也比較令人滿意,但是在編寫除法器的過程中又遇到了很多的問題,編寫出來的程序仿真結果一直不正確,
14、最終感覺到自己能力有限,就放棄了這種用vhdl語言實現乘法器和除法器的方案,選擇了用lpm模塊定制乘法器和除法器的方案來完成設計,最終選定模式5,并且對自己的程序進行了修改,合理安排輸入輸出,然后下載到試驗箱上觀察實驗結果。最初的開始只有入棧、出棧、加法和減法結果正確,乘法和除法的結果都不正確,通過檢查發(fā)現是自己在建工程的過程中出現錯誤,沒有把頂層文件名和工程名保持一致,之后只好又重新開始建工程,編譯下載,最終在實驗板上看到了實驗結果,實現了堆棧處理器應能完成兩個基本的功能:與外部數據線的數據交換符合堆棧要求(先進后出);對存儲的數據能進行算術運算,由此完成了此次對于堆棧處理器的課程設計。4.
15、2 設計心得 整個堆棧設計通過了軟件和硬件上的測試,我想這對于自己以后的學習和工作都會有很大的幫助。在這次設計中遇到了很多實際性的問題,在實際設計中才發(fā)現,書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。一切問題必須要靠自己一點一滴的解決,而在解決的過程當中你會發(fā)現自己在飛速的提升,對于堆棧處理器,其程序結構很簡單,但編寫起來有些難度,主要是解決程序設計中的問題,而程序設計是一個很靈活的東西,它反映了自己解決問題的邏輯思維和創(chuàng)新能力,它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對系統(tǒng)的結構很熟悉。因此可以說系統(tǒng)的設計是軟件和硬件的結合,二者是密不可分的。通過這次課程設計我也發(fā)現了自身存在的不足之處,雖然感覺理論上已經掌握,但在運用到實踐的過程中仍有意想不到的困惑,經過一番努力才得以解決。 這也激發(fā)了我今后努力學習的興趣,我想這將對我以后的學習產生積極的影響。其次,這次課程設計過程中,當我們碰到不明白的問題時,齊老師總是耐心耐心的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑植筋施工綠色施工管理合同
- 2025年度會議室裝修合同涵蓋設備安裝調試
- 2025年度股權投資平臺運營與管理服務合同
- 2025年度農田水利建設項目勞務合同范本
- 2025年度智能繪圖軟件授權使用合同模板
- 2025年不動產買回合同樣本(三篇)
- 建筑設備安裝工程施工合同
- 2025新能源汽車代理銷售合同
- 2025年不銹鋼材料購銷合同標準版本(2篇)
- 家裝家電購銷合同
- (康德一診)重慶市2025屆高三高三第一次聯合診斷檢測 英語試卷(含答案詳解)
- 2025年福建泉州文旅集團招聘24人高頻重點提升(共500題)附帶答案詳解
- 建筑行業(yè)砂石物資運輸方案
- 腫瘤全程管理
- 污泥處置合作合同模板
- 2025高考數學專項復習:概率與統(tǒng)計的綜合應用(十八大題型)含答案
- 銷售人員課件教學課件
- Lesson 6 What colour is it(教學設計)-2023-2024學年接力版英語三年級下冊
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- NB/T 11446-2023煤礦連采連充技術要求
- 2024年江蘇省蘇州市中考英語試題卷(含標準答案及解析)
評論
0/150
提交評論