基于MIPS內核的HDTV-SoC平臺總線(xiàn)接口模塊
中斷控制模塊
本文引用地址:http://dyxdggzs.com/article/83289.htm中斷控制模塊負責處理由DeMux、VD、GPIO等外部模塊的中斷源所發(fā)出的中斷,對于系統來(lái)說(shuō),如何使產(chǎn)生的中斷盡快得到響應是一個(gè)關(guān)鍵的問(wèn)題。在圖1中可以看到MIPS4Kc處理器所提供的中斷引腳的連接情況,有關(guān)其引腳的說(shuō)明如表1所示[1]。
表1 MIPS4Kc處理器中斷引腳描述表
習慣將SI_TimerInt信號接到SI_Int[5]引腳,就像圖1中所顯示的那樣。這樣4Kc處理器的外部中斷引腳就剩下5根,即SI_Int[4:0]。在本設計中,將系統外部中斷分為5級,按照SI_Int[0]到SI_Int[4]的順序優(yōu)先級從高到低排列。針對每個(gè)外部模塊,也將其所有的中斷源分為5級,反映到每個(gè)模塊的輸出是一個(gè)5比特的寄存器XInt[4:0],同樣,按照XInt[0]到XInt[5]的順序中斷優(yōu)先級從高到低排列。假設系統有N個(gè)外部模塊,則各個(gè)模塊輸出的XInt之間相或即得到SI_Int的輸入,這些邏輯在TopInt模塊中實(shí)現,如圖5所示。
圖5 TopInt模塊內部邏輯
需要說(shuō)明的是,TopInt模塊本身也被當作系統的一個(gè)外部模塊,系統可以對其進(jìn)行與其它模塊相同的寄存器讀寫(xiě)操作。這樣CPU在處理外部中斷時(shí),就可以通過(guò)讀取XIntn寄存器的內容,追溯中斷的產(chǎn)生源。另外,在每一個(gè)外部模塊內部,設置5個(gè)32位的中斷請求寄存器IRQREG0~IRQREG4和5個(gè)32位的中斷屏蔽寄存器MSKREG0~MSKREG4。當MSKREGn寄存器中的某個(gè)比特位被置“1”時(shí),則IRQREGn寄存器中相應比特位的中斷被屏蔽。在每一個(gè)IRQREGn寄存器當中,32個(gè)比特位之間相或即得到該模塊相應XInt寄存器中的第n比特位的值。由此也可以看出,按照IRQREG0到IRQREG4的順序,中斷優(yōu)先級從高到低。它們之間的邏輯關(guān)系如圖6所示。
圖6 外部模塊中斷寄存器邏輯關(guān)系
另外,為了便于CPU的訪(fǎng)問(wèn),所有這些寄存器在模塊中都有編址。這樣對于任意一個(gè)中斷,最多通過(guò)兩次查詢(xún)CPU就可以獲知產(chǎn)生該中斷的中斷源。
仿真與綜合
設計的仿真工作是分兩部分進(jìn)行的。各模塊先單獨仿真,待波形正確后再各模塊聯(lián)調。在編制TESTBENCH時(shí),分別在不同的文件當中處理不同的工作情況。具體到HIF模塊,仿真主要完成如下方面的驗證:寄存器的寫(xiě)入和讀取、雙口RAM的寫(xiě)入和讀取以及中斷的產(chǎn)生和獲取。在設計中,采用VHDL語(yǔ)言編寫(xiě)代碼,以及Mentor公司的ModelSimSE5.7工具進(jìn)行編譯和仿真。在仿真時(shí),SMIC庫提供的雙口RAM模型作為外部模塊掛接在系統中,模型的接口時(shí)序與圖4中所示的完全一致。圖7為節選的HIF模塊仿真波形。
圖7 HIF模塊仿真波形圖
由于整個(gè)SoC系統的設計工作尚處于FPGA驗證階段,因此在綜合時(shí)選用Xilinx公司的ISE6.1軟件中自帶的XST綜合工具,FPGA器件選擇Virtex-E系列的XCV2000E。綜合后的結果報告如表2所示。
表2 綜合結果報告表
總結
由仿真和綜合的實(shí)驗結果可以看出,HIF模塊的設計可以滿(mǎn)足系統在功能上的要求,而且綜合后的模塊所占用的FPGA的面積和資源的比例都很小,有些甚至可以忽略不計,因而不會(huì )影響到系統中其它模塊的設計與實(shí)現。而綜合后的主工作頻率為116.959MHz,完全滿(mǎn)足設計要求。
評論