摘 要: 介紹了系統(tǒng)芯片SOC的概念和M8051 IP軟核" title="軟核">軟核的原理,給出了視頻字符疊加器" title="字符疊加器">字符疊加器VAD_SOC中M8051 IP軟核的作用,詳細介紹了I2C主控制器" title="主控制器">主控制器模塊的設(shè)計,給出了功能仿真波形,最后對M8051IP軟核在視頻字符疊加器中的重應(yīng)用進行了深入研究。
關(guān)鍵詞: 系統(tǒng)芯片 微控制器 M8051 IP軟核 視頻字符疊加器
隨著集成電路制造技術(shù)的快速發(fā)展,集成電路的規(guī)模不斷擴大。這使得將復(fù)雜系統(tǒng)集成在單個芯片上成為可能,于是便出現(xiàn)了系統(tǒng)芯片SOC(System on a Chip)。傳統(tǒng)芯片設(shè)計方法" title="設(shè)計方法">設(shè)計方法關(guān)注的是如何創(chuàng)建一個全新的設(shè)計并進行有效的驗證;如今在SOC設(shè)計中,基于IP模塊的功能組裝正在逐漸替代傳統(tǒng)的功能設(shè)計而成為主流設(shè)計方法?;贗P模塊的SOC設(shè)計方法的基本思路是通過系統(tǒng)設(shè)計的應(yīng)用層次,利用現(xiàn)有的IP資源,根據(jù)系統(tǒng)需求選用適當(dāng)?shù)腎P模塊,進行系統(tǒng)集成設(shè)計;基于IP模塊的SOC設(shè)計方法是采用IP模塊而不是采用基本邏輯或電路單元作為基礎(chǔ)單元,即以功能組裝代替功能設(shè)計。這就提高了設(shè)計者的設(shè)計能力,能夠較快地完成設(shè)計,保證設(shè)計成功,以極低的價格滿足市場需求。
M8051 IP軟核是高性能的8位微控制器(MCU),它的每個機器周期只需要兩個時鐘周期而不是標(biāo)準(zhǔn)8051[1] 軟核的十二個周期,但是它的功能卻與標(biāo)準(zhǔn)的8051軟核兼容。這就使得M8051 IP軟核在同樣功耗的情況下運行速度比標(biāo)準(zhǔn)的8051軟核提高六倍,也就是說,若在同樣的運行速度下,M8051 IP軟核的功耗僅僅是標(biāo)準(zhǔn)8051軟核的六分之一。這對于現(xiàn)在的便攜式數(shù)字產(chǎn)品或低功耗產(chǎn)品來說是相當(dāng)有競爭力的。
視頻字符疊加器是一種在視頻信號中疊加入字符或簡單的圖文信息,從而在屏幕的特定位置上與圖像信號同時進行顯示的設(shè)備[2]。視頻字符疊加器VAD_SOC的結(jié)構(gòu)如圖1所示,具體包括以下幾個IP模塊: M8051 IP軟核、I2C主控制器模塊、 存儲器核和全彩色字符疊加處理器(FCA IP)等。其實現(xiàn)的功能是將片外或內(nèi)置的疊加字符ROM(如E/E2PROM、雙口RAM或Flash)中儲存的字符信息轉(zhuǎn)變?yōu)榭莎B加在視頻信號上的信息,同時通過內(nèi)部時序控制功能單元,調(diào)節(jié)疊加字符在監(jiān)視器上的疊加位置、大小及其背景色和前景色等。
本文主要介紹M8051 IP軟核的改進設(shè)計,對其進行有效的仿真和驗證;并對M8051 IP軟核在視頻字符疊加器VAD_SOC中的重應(yīng)用進行深入的研究。
1 M8051 IP軟核結(jié)構(gòu)及其改進性設(shè)計
1.1 M8051 IP軟核的結(jié)構(gòu)
M8051 IP軟核的功能結(jié)構(gòu)框圖如圖2所示,主要由五部分組成。
(1)算術(shù)邏輯單元" title="算術(shù)邏輯單元">算術(shù)邏輯單元(ALU)部分:位算術(shù)邏輯單元、帶進位的算術(shù)邏輯單元、8位的算術(shù)邏輯單元,操作數(shù)的選擇、乘法/除法單元。
(2)數(shù)據(jù)存儲與交換部分:內(nèi)部數(shù)據(jù)存儲器、內(nèi)部專用寄存器及其復(fù)用、專用功能寄存器的復(fù)用、核級專用功能寄存器。
(3)狀態(tài)機與程序存儲部分:主狀態(tài)機、程序計數(shù)器、程序計數(shù)器的運算單元。
(4)指令譯碼部分:取指令、指令譯碼。
(5)外圍設(shè)備部分:(I/O)端口寄存器、中斷、定時器、計數(shù)器、通用串行口。
從圖2可以看出,M8051 IP軟核與傳統(tǒng)8051單片機在組成部分及指令系統(tǒng)部分是兼容的,但功能上有些不同,詳見表1。所以,若要將M8051 IP軟核集成到視頻字符疊加器VAD_SOC中,則需要進行一些簡單的功能擴展和可復(fù)用設(shè)計。
1.2 I2C主控制器的RTL級實現(xiàn)
I2C總線是Philips公司提出的一種串行數(shù)據(jù)傳輸技術(shù),通過數(shù)據(jù)線(SDA)和時鐘線(SCL)兩個總線即可完成全雙工同步數(shù)據(jù)的發(fā)送和接收,在需要與外圍器件進行低速通信時,I2C總線是個不錯的選擇。目前8051 IP軟核是片上系統(tǒng)中用得比較多的微控制器核之一,但是其沒有集成I2C總線,應(yīng)用起來很不靈活。所以在設(shè)計片上系統(tǒng)時常常需要將I2C系統(tǒng)集成到8051 IP核中,以方便其與MCU的外圍接口連接,擴展8051 IP核的功能。由于篇幅的限制,本文只對I2C主控制器模塊進行簡單研究。I2C主控制器模塊是根據(jù)Philips公司的8xc552的I2C接口原理設(shè)計的。由于通常情況下單片機系統(tǒng)都作為主系統(tǒng)使用,一些功能是不需要的,所以圖3只是本設(shè)計用到的I2C原始的功能結(jié)構(gòu)簡化框圖。
1.2.1 I2C主控制器的端口源代碼格式[3]
I2C主控制器端口源代碼格式如下:
module i2c_top (s1sfrdi,si,sda,scl,regresult,source_addr,
destine_addr, sfr_write, rmw, internal_reset, pclk_en, pclk);
output [7:0] s1sfrdi;
output scl ,si;
inout sda;
input [7:0] regresult;
input [7:0] source_addr;
input [7:0] destine_addr;
input sfrwe, rmw, internal_reset;
input pclk, pclk_en;
……
endmodule
1.2.2 I2C主控制器與M8051 IP軟核的接口
I2C主控制器的數(shù)據(jù)端口(SDA)是雙向端口,利用串行數(shù)據(jù)線SDA傳輸數(shù)據(jù),所以不使用總線時必須關(guān)閉三態(tài)門的輸出控制端,即sda_oen為“0”;另一方面,數(shù)據(jù)可以通過引腳直接進入模塊內(nèi)部,但必須設(shè)置輸出控制端為“1”,即sda_oen為“1”。I2C主控制器與M8051 IP軟核的接口如圖4所示。
1.2.3 I2C主控制器的軟件仿真與結(jié)果
在I2C主控制器設(shè)計過程中,主要用Modelsim SE PLUS5.6、QUARTUS2.0等軟件作為前端的仿真工具并 針對I2C主控制器的主接收和主發(fā)送兩個狀態(tài)機的不同激勵條件,編寫測試代碼進行測試。電路仿真時序波形圖如圖5和圖6所示。
2 M8051 IP軟核在視頻字符疊加器VAD_SOC中的重應(yīng)用
M8051 IP軟核在視頻字符疊加器VAD_SOC中的重應(yīng)用的結(jié)構(gòu)如圖1所示。它的主要任務(wù)是從程序存儲器中讀出指令代碼,經(jīng)編譯執(zhí)行后,向周圍的相應(yīng)模塊提供操作命令和地址、數(shù)據(jù)總線值,完成一個復(fù)雜的狀態(tài)機及對其它模塊的部分控制功能,協(xié)同其它模塊共同工作,實現(xiàn)將字庫中的字符取出放到全彩色字符疊加處理器上進行顯示。工作流程如下:
(1) 將要顯示的字符從PC機的鍵盤輸入,經(jīng)串行口RS-232的接口寫入到字庫中。
(2) 從程序存儲器中讀出指令代碼,經(jīng)編譯執(zhí)行后,向周圍的相應(yīng)模塊提供操作命令和地址、數(shù)據(jù)總線值。
(3) 繼續(xù)執(zhí)行代碼,從字庫中讀入要顯示的字節(jié)數(shù)據(jù),并將它存放在SFR(專用寄存器)中。
(4) 繼續(xù)執(zhí)行代碼,將專用寄存器中的數(shù)據(jù)傳送到雙口RAM中進行緩存。
(5) 通過對控制模塊的控制,實現(xiàn)數(shù)據(jù)讀取、地址生成,并按時空拓撲劃分的形式進行行、列地址及數(shù)據(jù)信號的選擇。
(6) 最后,將選擇出的信號通過三通接口加到視頻信號中進行顯示。
基于以上考慮,本系統(tǒng)中M8051 IP核具有一定的專用性,是針對具體的VAD_SOC系統(tǒng)而設(shè)計的,因此不需完全拘泥于標(biāo)準(zhǔn)的MCU的所有特點,只需設(shè)計出滿足VAD_SOC系統(tǒng)要求的嵌入式M8051 IP核即可。
2.1 視頻字符疊加器VAD_SOC的設(shè)計及功能仿真
2.1.1設(shè)計流程
第一步:生成VAD_SOC頂層初始網(wǎng)表。在四個模塊開發(fā)之后,只需開發(fā)用于集成的網(wǎng)表,即可用于模塊之間的連接。
第二步:處理VAD_SOC頂層中四個模塊的時序預(yù)算,此時每個模塊建立一個“黑盒”時序模型。
第三步:改進VAD_SOC頂層布線,在模塊實現(xiàn)的同時解決頂層的信號完整性問題。此外,還要考慮前兩步中不需涉及的電源問題,其中包括模擬模塊和I/O模塊問題。同時模塊層的實現(xiàn)也在此步進行,通過采用物理綜合方法來確保模塊層的時序收斂。VAD_SOC頂層設(shè)計和四個模塊實現(xiàn)之間是同步進行的。
第四步:用模塊的實際尺寸修改VAD_SOC頂層描述,這一步需用Aristo 的IC Wizard處理,大約需要2~3小時。
2.1.2 視頻字符疊加器VAD_SOC的仿真波形
視頻字符疊加器VAD_SOC的功能仿真是在NC_Verilog下進行的,圖7顯示了兩個場同步周期的字符疊加信號的仿真波形圖。
建立在IP模塊功能組裝基礎(chǔ)上的片上系統(tǒng)設(shè)計,使設(shè)計方法從電路設(shè)計轉(zhuǎn)向系統(tǒng)設(shè)計,設(shè)計重心從邏輯綜合、門級布局布線、后模擬轉(zhuǎn)向系統(tǒng)級模擬、軟硬件聯(lián)合仿真、以及若干個IP模塊組合在一起的物理設(shè)計。為了對各模塊特別是IP模塊進行有效的測試,還必須在模塊中加入可測性設(shè)計;同時,在驗證方法上要采用數(shù)字電路和模擬電路在一起的混合信號驗證、軟硬件協(xié)同驗證以及并行驗證等多種方法。經(jīng)過試驗可知,M8051 IP核在視頻字符疊加器VAD_SOC中實現(xiàn)了所需的基本功能,并且仿真主頻率可以達到33MHz。
參考文獻
1 何立民.單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1990
2 傅萬鈞. 應(yīng)用電視技術(shù).北京:電子工業(yè)出版社,1994
3 夏宇聞.復(fù)雜數(shù)字電路與系統(tǒng)的Verilog HDL設(shè)計技術(shù).北京:北京航空航天大學(xué)出版社,1998:87~100
4 Rochit Rajsuman. SOC設(shè)計與測試.北京:北京航空航天大學(xué)出版社, 2003:96~107