基于MIPS內核的HDTV-SoC平臺總線(xiàn)接口模塊
在系統級芯片(SoC)的設計當中,MIPS的RISC處理器是一種應用非常廣泛的嵌入式CPU,它具有高性能、低功耗的特點(diǎn),可以很方便地集成到一個(gè)完整的片上系統之中,使開(kāi)發(fā)者能夠專(zhuān)注于用戶(hù)IP模塊的設計。MIPS架構的處理器占據了數字機頂盒微處理器和解碼器用CPU架構市場(chǎng)領(lǐng)域的領(lǐng)先地位。在MIPS家族的產(chǎn)品當中,32位的4KcTM處理器是具有代表性的一款,它采用了MIPS32的CPU架構,支持MIPS IITM指令集。在本文介紹的SoC系統設計中,就采用了MIPS32TM4KcTM處理器作為芯片的CPU內核。
本文引用地址:http://dyxdggzs.com/article/83289.htm在當前的數字消費電子市場(chǎng)領(lǐng)域,基于SoC平臺的HDTV芯片是所有數字電視接收及播放設備的核心器件。SoC芯片具體到HDTV解碼系統,就是把MPEG-2解復用(DeMux)、音視頻解碼(AVD)、視頻格式轉換(VTP)、畫(huà)面后處理(OSD)以及接口I/O控制等功能模塊都集成在一塊芯片上。而要把眾多功能復雜的系統控制模塊和用戶(hù)IP模塊集成到一個(gè)芯片上并使其能夠協(xié)調工作,就必須設計好各個(gè)模塊之間的接口。本文針對高清數字電視SoC平臺的項目,提出了系統總線(xiàn)接口模塊(Host Bus Inter Face,HIF)的設計方案,并進(jìn)行了仿真實(shí)驗。
HIF模塊在系統中的主要功能
HDTV-SoC平臺是一個(gè)功能強大、結構復雜的系統,本文重點(diǎn)介紹了SoC架構中片上總線(xiàn)控制器的設計。片上總線(xiàn)能夠提供針對特定應用的靈活多樣的集成方法,它需要結構簡(jiǎn)單,速度快捷,在單芯片中實(shí)現多資源互聯(lián)。HDTV-SoC系統的總線(xiàn)結構如圖1所示。它分為3個(gè)層次,即與MIPS處理器接口的Ec總線(xiàn)(EcInterface)、系統總線(xiàn)和外圍總線(xiàn)。由圖1可見(jiàn),HIF模塊在系統中所處的位置是十分關(guān)鍵的,它是系統總線(xiàn)(Host Bus)和各個(gè)IP模塊以及周邊I/O模塊之間的接口單元,即系統總線(xiàn)和外圍總線(xiàn)之間的橋梁,在系統中起著(zhù)“承前啟后”的作用,是CPU和外部模塊之間數據交換的重要通道。具體而言,HIF模塊主要完成3大功能,分別為外部模塊W/R寄存器的設置和狀態(tài)寄存器的讀取、外部模塊雙口RAM的讀寫(xiě)控制、外部模塊中斷的控制和管理。
圖1 HDTV-SoC系統框圖
電路功能模塊設計
由上文所述可知,HIF電路設計主要分為3個(gè)模塊:寄存器讀寫(xiě)模塊,雙口RAM讀寫(xiě)模塊和中斷處理模塊。
寄存器讀寫(xiě)模塊
CPU和外部模塊之間進(jìn)行數據交互的一個(gè)重要方式就是通過(guò)寄存器的讀寫(xiě),實(shí)現對外部模塊功能的控制和初始化。系統總線(xiàn)按照規定的時(shí)序讀寫(xiě)HIF模塊內部的寄存器資源,這些寄存器的每個(gè)比特位以連線(xiàn)的方式直接與外部模塊互連。HIF模塊在接收到系統總線(xiàn)過(guò)來(lái)的地址和數據之后,首先進(jìn)行地址譯碼,選擇相應的寄存器,再將數據寫(xiě)入。圖2為該模塊的邏輯框圖。
圖2 寄存器讀寫(xiě)模塊框圖
MIPS的4Kc處理器支持猝發(fā)(burst)操作,所謂猝發(fā)操作是指在給出首地址之后,可以連續進(jìn)行多個(gè)讀寫(xiě)操作,而無(wú)須再給出每次操作的相應地址。在總線(xiàn)上,一個(gè)猝發(fā)指令與單個(gè)操作指令一樣,只占用一個(gè)時(shí)鐘周期。HIF模塊在處理猝發(fā)操作時(shí),將一個(gè)猝發(fā)指令轉換為4個(gè)單周期指令,在轉換之后,要保證從總線(xiàn)上過(guò)來(lái)的寫(xiě)數據與其相應的指令同步。這樣在猝發(fā)操作時(shí),從寄存器組的角度看到的寫(xiě)數據與指令是同時(shí)發(fā)生的,盡管實(shí)際情況并不是這樣。而要實(shí)現這種猝發(fā)操作,就必須引入一種FIFO機制。FIFO的深度為4,這與4Kc處理器所支持的猝發(fā)長(cháng)度是一致的。在系統復位之后FIFO清空,可以隨時(shí)接收總線(xiàn)上的猝發(fā)數據。在系統正常工作時(shí),FIFO模塊分別通過(guò)“in”和“out”指針來(lái)指示輸入和輸出的數據,以跟蹤FIFO的使用情況。FIFO還需要用到一個(gè)“bypass”信號來(lái)確定是否旁路該模塊,這發(fā)生在單個(gè)指令操作的情況下(bypass=‘1’),這時(shí)數據是繞過(guò)FIFO而直接通向寄存器的。FIFO機制的邏輯框圖見(jiàn)圖3。
圖3 FIFO機制邏輯框圖
雙口RAM讀寫(xiě)模塊
在與系統總線(xiàn)的接口邏輯方面,RAM讀寫(xiě)模塊與寄存器讀寫(xiě)模塊是類(lèi)似的,這里不再贅述。不同之處在于與外部模塊的接口邏輯,寄存器讀寫(xiě)模塊是采用直接連線(xiàn)的方式,而RAM讀寫(xiě)模塊則必須滿(mǎn)足相應的雙口RAM的接口時(shí)序。在本設計中,選用了SMIC的0.18µm庫的雙口RAM單元作為模型。該模型的接口時(shí)序如圖4所示,包括了讀時(shí)序和寫(xiě)時(shí)序兩種情況。
圖4 雙口RAM接口時(shí)序圖
評論