數字系統實驗:FIFO存儲

實驗數據:之前的B1,B2,C級實驗已經全部完成,得到的結果如下所示:

C級得到的針腳號和存儲結果 在這裏插入圖片描述在這裏插入圖片描述
B1得到的存儲顯示結果 在這裏插入圖片描述
B2得到的隊列存儲結果 在這裏插入圖片描述
C級實驗只不過是要求我們找到針腳號並進行使用,實際上只要把HM62256芯片當做一個可讀可寫的RAM就可以進行設計了,我是用bdf進行設計,在設計過程中主要要注意tri8,即兩個三態門的使用 在這裏插入圖片描述在這裏插入圖片描述
B1級實驗要求我們通過tools定製一個可讀可寫的RAM(產生VHDL語言),生成模塊後在bdf中進行線路連接,然後在小板子上實現即可 在這裏插入圖片描述
B2級實驗要求我們學會如何定製FIFO元件。FIFO元件是一個先進先出的隊列式存儲器,只要定製完畢(產生VHDL語言),生成模塊後在bdf中進行線路連接,通過仿真瞭解其原理就可以進行使用 在這裏插入圖片描述

通過B,C級實驗瞭解了基礎的原理後,就可以開始A級實驗,這裏我和我的搭檔對A級實驗的要求有一點偏,之前我們認爲A級是要求我們將FIFO元件與HM62256芯片相結合,即先將輸入的數據存入FIFO元件中,然後再輸出到HM62256芯片中進行存儲,然後從HM62256芯片中讀取存入的數據。但後來和一些同學商量過後發現應該是通過HM62256芯片來實現一個FIFO隊列存儲器,這也不難,只要通過VHDL編寫一個模塊用來控制地址就可以了,具體如下:
地址控制模塊:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
然後在頂層實體中調用即可:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
可以看到之前我們對A級實驗的理解基本上就是實驗C和實驗B2的結合體,所以只要做出來了前兩個實驗,A級的設計並不難。
而後來我們對A級的新的理解也不難,主要是生成隊列一樣的地址,用來控制數據的存儲位置,最終實現一個隊列型的存儲器。
這裏我設計的FIFO是上升沿進行觸發,注意時鐘信號最好選取時鐘週期最長的152Q24這樣方便我們進行實驗和測量。
通過wein信號控制數據在時鐘信號中寫入HM62256芯片中,注意這裏是按照地址的遞增順序寫入到芯片;再通過rdin信號控制數據在時鐘信號中從HM62256芯片讀出,注意這裏也是按照地址從低到高從芯片中讀出;最終通過reset信號控制地址初始值歸零。
下載到實驗箱進行檢測,發現結果如下:

第一個存入FIFO 在這裏插入圖片描述 第二個存入FIFO 在這裏插入圖片描述 第三個存入FIFO 在這裏插入圖片描述
第一個數據輸出 在這裏插入圖片描述 第二個數據輸出 在這裏插入圖片描述 第三個數據輸出 在這裏插入圖片描述

可以看到實驗結果與實驗期望相吻合,證明實驗成功,實驗完成度100%
實驗總結
本次實驗的主要特色在於對於存儲器的學習和使用,但是由於時鐘頻率的原因,恐怕很難看到結果,這裏也是可以拓展的地方,希望我在五一假期中可以思考到一種簡單明瞭的方法可以解決這個問題(PS已經解決了,可以用152號時鐘進行解決,只是要求操作的時候要控制每次操作的時機)。
這次實驗我做地特別快,可能是因爲我也比較着急,最近的事情太多還需要趕一篇論文,所以整個實驗是在老師佈置了實驗要求的當天晚上完成的,但可以說我並沒有偷工減料,而是仍舊做出了我能夠做出來的水平,實驗大體上的知識點已經完備,但部分細節還需要打磨加工,計劃在我完成了競賽論文後用五一假期再研究一下,並衝擊一下S級。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章