基于FPGA的自定義總線MCMB的設計與實現(xiàn)
②控制信號
在MCMB事務的地址相期間,C/BE[2..0]代表總線命令。MCMB支持7種總線操作。在地址相,需要對Wishbone側總線的命令進行譯碼,轉換成MCMB總線C/BE [2..0]的命令再輸出至從設備。此處的譯碼邏輯和空間地址配置有關,Wishbone從模塊將讀寫信號發(fā)送到MCMB總線模塊,MCMB模塊根據(jù)地址線上的地址譯碼,進行空間的選擇,確定操作的類型,并譯碼出操作的命令C/BE[2..0]信號。
FRAME由主設備驅動,表示一個總線事務的開始和持續(xù)。Wishbone從模塊通過讀寫信號告訴MCMB總線操作的開始,F(xiàn)RAMF有效,指總線操作正在開始;FRAME保持有效,數(shù)據(jù)傳送繼續(xù)進行;當操作完成時FRAME無效時,表明操作已處于最后一個數(shù)據(jù)相;FRAME保持無效,表示該操作已完成。這些操作的譯碼過程均在MCMB總線模塊中完成。
IRDY由總線主設備驅動,寫操作時,IRDY#表示主設備已把寫數(shù)據(jù)放在了AD [15..0]上;讀操作時,IRDY#表示主設備已準備好接收數(shù)據(jù)線上的數(shù)據(jù)。
TRDY#由目標設備驅動,表示目標設備準備好完成現(xiàn)行數(shù)據(jù)傳輸。寫操作時,TRDY#表示目標設備已準備好接收數(shù)據(jù);讀操作時,TRDY#表
示目標設備已將數(shù)據(jù)放在了AD [15..0]上。在TRDY#有效的那一個時鐘的上升沿,數(shù)據(jù)傳送開始并結束該數(shù)據(jù)傳輸,此時如果TRDY#無效,則認為是插入等待周期。
DEVSEL#由目標設備驅動,表示一個目標設備已對地址傳輸里主設備發(fā)出的地址進行了譯碼并認領了該操作,成為有效的目標設備,主設備根據(jù)該信號確定是否有一設備被選中,從而發(fā)起讀寫操作。
3 仿真結果分析
經(jīng)過HDL語言仿真軟件ModelSim仿真,利用Altera公司推出的調試工具Signal TapⅡ的邏輯分析儀進行軟件調試。仿真的操作為從設備單字讀寫操作。通過對從設備讀寫的仿真和分析來驗證MCMB總線IP核設計的正確性。
上位機可以對從設備的存儲空間進行讀寫操作,當上位機發(fā)起寫操作時,SMC總線地址線上的目標地址必須在從設備的存儲空間范圍內。圖4是寫入從設備存儲空間操作總線IP核MCMB總線側的時序。SMC_A[15..0]是一個有效地址傳輸,上位機有效片選SMC_FSC0,表明SMC總線事務開始。同時上位機有效SMC_WE和SMC_D [15..0]給出寫入目標地址的有效數(shù)據(jù)。上化機發(fā)起寫操作,等待從設備響應。當從設備準備好時,有效TRDY#信號,通知上位機從設備準備好,開始寫操作。本文引用地址:http://www.ex-cimer.com/article/189629.htm
圖5是從設備讀操作的時序圖。SMC_A[15..0]給出一個有效地址傳輸,上位機有效片選SMC_FSC0,表明SMC總線操作的開始。上位機肯定SMC_RD,表明SMC總線的讀操作類型,并進入等待狀態(tài)。此時發(fā)起讀操作,等待從設備響應,因為讀操作時間較長,所以存在較長的等待周期,不能像寫操作那樣快速的響應,等待周期較長,當從設備準備好數(shù)據(jù)并返回到MCMB總線時,肯定TRDY#信號,告訴總線數(shù)據(jù)已經(jīng)準備好,總線將數(shù)據(jù)取出,返回上位機,完成一個讀操作。當?shù)却芷?,超過七個周期時,以從設備超時完成這個讀操作,防止上位機掛死,一直等待數(shù)據(jù)的返回。
通過上面的仿真結果可以看出,本文設計的MCMB總線能夠較好地完成數(shù)據(jù)的采集和傳輸,滿足預先的設想,最后通過在整個機載信息采集系統(tǒng)上的測試來驗證MCMB總線的可行性,結果表明本文設計的MCMB總線可以較好的完成機載數(shù)據(jù)的采集任務,滿足現(xiàn)代機載采集系統(tǒng)對總線的要求。
4 結束語
本文主要討論了基于FPGA的數(shù)據(jù)采集總線MCMB在機載數(shù)據(jù)采集系統(tǒng)中的設計,通過在Modelsim下的仿真,下載到FPGA中進行調試,驗證了MCMB總線IP核設計的正確性。實現(xiàn)了分布式的主、從設備之間的總線接口MCMB,適用于機載大量數(shù)據(jù)快速穩(wěn)定傳輸,真正達到高效、高速的數(shù)據(jù)雙向傳輸。
評論