零基礎(chǔ)學FPGA(十六)testbench很重要,前仿真全過程筆記(下篇)
這次讀回的指令碼位101,即LDA,也就是說將后13位地址碼對應(yīng)的RAM中的數(shù)據(jù)讀回,送到累加器中,想一下,這時的RAM應(yīng)該是打開的,而且雙向輸入輸出口的數(shù)據(jù)總線上應(yīng)該是來自RAM的8位數(shù)據(jù),由于ROM0006地址處的地址碼為1800是13位的,而RAM的地址是9位的,因此實際上我們從RAM中讀回的數(shù)據(jù)是從RAM的0地址讀回的,即我們之前給RAM寫好的0000_0000,再看一下波形
本文引用地址:http://m.butianyuan.cn/article/270619.htm
正如我們所想的一樣,數(shù)據(jù)總線上是0000_0000,RAM是打開的,地址為1800
就這樣,讀者可以自己再試一下,看看我們的cpu是不是按照我們之前給他的程序運行的,在這里我就不再給大家一一介紹了
雖然波形仿真很直觀,但是看久了就會令人眼花繚亂,尤其是數(shù)據(jù)很多的時候,我們只能看其中一部分,不能講所有數(shù)據(jù)看完整,這時候我們單單是用波形來仿真就遠遠不夠了,下面介紹用系統(tǒng)任務(wù)仿真的過程
再回到我們的代碼,還記得小墨同學注釋掉了一些代碼吧,我們把那些代碼給加上
我以其中一個過程為例
假設(shè)讀回的指令碼位101,即LDA,如果我在fentch_8的高電平期間且在cpu輸出地址為奇數(shù)的時候記錄一下此時的時間、指令、地址、目的地址、數(shù)據(jù)的話就可以不用看波形,讓電腦來幫助我們來分析了,因此作如下處理
這里我延時60ns,是因為第一次記錄的時候數(shù)據(jù)總線上還沒有數(shù)據(jù),只有延時一會才會有數(shù)據(jù),即上面那張波形圖右邊那根黃色的線處記錄一下數(shù)據(jù),并將其顯示。我們也可以加上一下標注,來幫助我們觀察
這樣我們再來仿真的時候就不用看波形了,直接打開transcript一欄觀察記錄即可
這樣便可以為我們省下大量的仿真時間
這里小墨同學只做一個事例,其實有很多細節(jié)還需要各位讀者自己挖掘,小墨同學在做這個實驗的時候也遇到過不少問題,但是問題總是要解決的,希望各位讀者不要老借助于教程,遇到問題需要自己解決,自己考慮一下應(yīng)該怎么修改,這樣學到的知識才是最牢固的。
這里小墨同學只做第一個測試,第二第三個測試留給讀者自己完成,我已上傳過代碼,希望廣大讀者多提意見,大家共同進步
純手打~謝謝各位大神支持~
fpga相關(guān)文章:fpga是什么
低通濾波器相關(guān)文章:低通濾波器原理
評論