基于電子記帳控稅終端機(jī)設(shè)計(jì)的片上系統(tǒng)SOC芯片研究
1 引 言
電子記帳控稅終端機(jī)屬于高度安全和可靠的產(chǎn)品,關(guān)系到信息安全和金融安全,長(zhǎng)期使用國(guó)外的核心器件將給國(guó)家安全帶來(lái)嚴(yán)重隱患。擁有自主知識(shí)產(chǎn)權(quán)的嵌入式處理器、專用芯片及其嵌入式操作系統(tǒng)已成為振興我國(guó)電子行業(yè)的當(dāng)務(wù)之急。
目前國(guó)家正在大力發(fā)展金稅工程,本文作者參與了針對(duì)電子記帳控稅終端機(jī)設(shè)計(jì)的片上系統(tǒng)(System on Chip,SOC)芯片的研究。
2 總體方案
本SoC芯片是面向電子記帳終端設(shè)備而設(shè)計(jì)的符合國(guó)家電子記帳終端設(shè)備標(biāo)準(zhǔn)的高性能嵌入式的系統(tǒng)芯片,其中以32位的SPARC V8架構(gòu)的處理器為內(nèi)核,集成了符合ISO7816標(biāo)準(zhǔn)的智能卡控制器和符合ISO7811/2標(biāo)準(zhǔn)的磁卡控制器接口等外圍設(shè)備。他的應(yīng)用既降低了電子記帳終端設(shè)備的成本,又大大提高了系統(tǒng)的可靠性。
2.1 SoC的結(jié)構(gòu)
本SoC芯片內(nèi)部采用可裁減的總線式結(jié)構(gòu),選用ARM公司的AMBA總線作為SoC內(nèi)部總線,總線上各個(gè)模塊采用統(tǒng)一的接口方式和總線連接,從而實(shí)現(xiàn)了模塊開(kāi)發(fā)的標(biāo)準(zhǔn)化,降低了開(kāi)發(fā)的工作量。本SoC芯片的結(jié)構(gòu)如圖1所示。
本SoC采用"Harvard"結(jié)構(gòu),地址總線和數(shù)據(jù)總線分開(kāi),分別連接到獨(dú)立的"cache"控制器上。指令cache和數(shù)據(jù)cache均為直接映射cache,配置各為4 kB;各部分的功能簡(jiǎn)述如下:
(1)32位整型數(shù)處理單元(Integer Unit,IU)支持SPARC V8指令集。IU的主要功能是執(zhí)行整數(shù)運(yùn)算、計(jì)算要訪問(wèn)的存儲(chǔ)器的地址,另外他也支持指令計(jì)數(shù)器和控制指令的執(zhí)行。IU具有以下特點(diǎn):
①5級(jí)單一指令流水;
②單獨(dú)的指令cache和數(shù)據(jù)cache;
③標(biāo)準(zhǔn)的8個(gè)寄存器窗口;
④硬件乘法、除法器;
⑤帶40位累加器的16×16位MAC。
(2)浮點(diǎn)運(yùn)算單元(Floating Point Unit,F(xiàn)PU)提供遵循SPARC V8標(biāo)準(zhǔn)的全部浮點(diǎn)指令,其浮點(diǎn)數(shù)據(jù)的格式和浮點(diǎn)指令遵循ANSI/IEEE 754-1985標(biāo)準(zhǔn),F(xiàn)PU連接在IU上。FPU有32個(gè)32 b的浮點(diǎn)寄存器。芯片使用標(biāo)準(zhǔn)的LD/ST指令在FPU和存儲(chǔ)器之間移動(dòng)數(shù)據(jù)。存儲(chǔ)器地址由IU計(jì)算,浮點(diǎn)操作指令完成浮點(diǎn)算術(shù)運(yùn)算。
內(nèi)部的AMBA總線包括2種總線:AHB和APB。APB總線用來(lái)訪問(wèn)片內(nèi)外設(shè)的寄存器;AHB總線用作高速數(shù)據(jù)傳輸。AHB總線連接處理器cache控制器和其他的高速單元,IU是總線上惟一的主控單元。AHB總線從屬單元有:存儲(chǔ)器控制器、AHB/APB轉(zhuǎn)換橋等。AHB/APB轉(zhuǎn)換橋作為一個(gè)從屬設(shè)備連接在AHB總線上,是APB總線惟一的主控單元,處理器通過(guò)AHB/APB橋訪問(wèn)大部分片內(nèi)外設(shè)。
(3)SOC的片上外設(shè),智能卡控制器(Smartcard controller):符合ISO7816標(biāo)準(zhǔn):
磁條卡控制(magnetic stripe card Controller):符合ISO7811/2標(biāo)準(zhǔn);
通用輸入輸出接口(GPIO):共80個(gè)GPIO端口;
[!--empirenews.page--]
通用異步串口(UART):一個(gè)16550UART和3個(gè)普通UART;
中斷控制器(Interrupt Controller):支持16個(gè)一級(jí)中斷源,32個(gè)二級(jí)中斷源;
定時(shí)器(Timer):5個(gè)24位的通用目的定時(shí)器;
看門狗(Watch Dog):24位看門狗定時(shí)器;
實(shí)時(shí)時(shí)鐘(RTC):計(jì)算秒、分、小時(shí)、天、月、年,具有潤(rùn)月補(bǔ)償功能,計(jì)時(shí)可至2100年,通過(guò)后備電源使實(shí)時(shí)時(shí)鐘工作在低功率模式;
PS/2控制器(PS/2 I/F):符合PS/2標(biāo)準(zhǔn),支持第一套和第二套掃描碼集;
I2C控制器(I2C I/F):兼容Phillips公司的I2C標(biāo)準(zhǔn);
SPI控制器(SPI I/F):兼容SPI和Microwire/Plus兩個(gè)企業(yè)標(biāo)準(zhǔn)。
2.2 SoC芯片的設(shè)計(jì)要點(diǎn)
在SoC的體系架構(gòu)、邏輯設(shè)計(jì)和電路設(shè)計(jì)中采用正向設(shè)計(jì)方法:
建立深亞微米自頂向下設(shè)計(jì)流程,實(shí)現(xiàn)硬/軟件協(xié)同仿真、設(shè)計(jì)、驗(yàn)證技術(shù),建立芯片正向設(shè)計(jì)平臺(tái);
低功耗設(shè)計(jì)技術(shù),包括對(duì)RTC及SRAM的低功耗優(yōu)化設(shè)計(jì);
采用深亞微米(0.18μm)必須解決的設(shè)計(jì)問(wèn)題,包括。EMI,CrOSS talk,天線效應(yīng)和熱電子效應(yīng)等;
采用現(xiàn)代SoC設(shè)計(jì)技術(shù),實(shí)現(xiàn)片上外設(shè)包括IC卡、磁卡、I2C、SPI、PS/2等功能接口的高度集成設(shè)計(jì)和測(cè)試;
高可靠、實(shí)時(shí)多任務(wù)處理平臺(tái)技術(shù),支持嵌入式操作系統(tǒng)及其任務(wù)調(diào)度管理;
支持ANSIC的標(biāo)準(zhǔn)應(yīng)用,實(shí)現(xiàn)底層驅(qū)動(dòng)軟件的模塊化、標(biāo)準(zhǔn)化設(shè)計(jì)。
同時(shí),針對(duì)以上技術(shù)挑戰(zhàn)必須實(shí)現(xiàn)如下技術(shù)創(chuàng)新:
該項(xiàng)目為自主知識(shí)產(chǎn)權(quán)的內(nèi)嵌32位RISC處理器以及大量功能接口模塊的SoC設(shè)計(jì),突破嵌入式SoC的高度集成、高可靠、低功耗、實(shí)時(shí)多任務(wù)處理等關(guān)鍵技術(shù);
建立自頂向下的深亞微米設(shè)計(jì)流程,實(shí)現(xiàn)硬、軟件協(xié)同設(shè)計(jì)、仿真、綜合、驗(yàn)證技術(shù);采用大容量FPGA和嵌入式操作系的統(tǒng)功能驗(yàn)證平臺(tái);應(yīng)用樣機(jī)對(duì)SoC進(jìn)行全面驗(yàn)證,確保了該項(xiàng)目的技術(shù)路線實(shí)施及產(chǎn)品的實(shí)際應(yīng)用;
支持多任務(wù)實(shí)時(shí)嵌入式操作系統(tǒng)。
3 功能驗(yàn)證
在集成電路的設(shè)計(jì)過(guò)程中,需要進(jìn)行大量的驗(yàn)證工作,SoC功能驗(yàn)證采用專門的開(kāi)發(fā)軟件把設(shè)計(jì)模型轉(zhuǎn)換成相應(yīng)的配置文件,下載到硬件平臺(tái)的FPGA或CPLD芯片中,在實(shí)際的應(yīng)用系統(tǒng)中來(lái)驗(yàn)證SoC功能的正確性。
在對(duì)本SoC進(jìn)行硬件平臺(tái)驗(yàn)證過(guò)程中,采用的FPGA綜合工具是Synplicity公司的Synplify Pro 7.7,F(xiàn)PGA布線工具選用的是Xilinx公司的ISE 5.0,硬件平臺(tái)的核心FPGA芯片選用的是Xilinx公司的Virtex II系列的XC2V2000。驗(yàn)證流程如圖2所示[1-3]。
3.1 驗(yàn)證平臺(tái)的設(shè)計(jì)
本SOC芯片內(nèi)部采用AMBA總線,內(nèi)嵌32 b整數(shù)處理單元,優(yōu)化的32/64 b浮點(diǎn)數(shù)處理單元,并且內(nèi)嵌了大量的外設(shè),主要包括:80位GPIO口、4路UART控制器、5個(gè)24 b定時(shí)器、看門狗、.PS/2控制器、I2C總線控制器、SPI總線控制器、1個(gè)三磁道磁卡控制器,3個(gè)智能卡控制器等。為了完整地測(cè)試本SoC的所有功能,硬件測(cè)試平臺(tái)如圖3所示,包含下列基本組成部分:
FPGA芯片;配置PROM;程序BPROM;SRAM;串口轉(zhuǎn)換芯片;I2C總線設(shè)備;SPI總線設(shè)備;磁卡讀卡器接口;智能卡及卡座;GPIO測(cè)試點(diǎn);PS/2設(shè)備;系統(tǒng)時(shí)鐘發(fā)生設(shè)備;上電復(fù)位電路;電源。
3.2 FPGA平臺(tái)驗(yàn)證結(jié)果
將由SoC的RTL模型產(chǎn)生的FPGA下載文件(*.bit文件)下載到FPGA中,在Unix環(huán)境下,用SPARC-GCC編譯器編譯測(cè)試程序(標(biāo)準(zhǔn)C程序),然后觀察程序運(yùn)行結(jié)果,就可以驗(yàn)證整個(gè)SoC系統(tǒng)或某一模塊功能的正 確性。
下面以獲取智能卡復(fù)位應(yīng)答(Answer To Reset,ATR)字節(jié)為例,闡述此過(guò)程。
事先知道待測(cè)智能卡的ATR字節(jié)為:3b,7a,18,0,0,21,8,11,12,13,14,15,16,17,18。
測(cè)試結(jié)果為:
Smartcard controller testing…
ATR over,and ATR characters:
3b,7a,18,0,0,21,8,11,12,13,14,15,16,17,18
以上結(jié)果說(shuō)明,智能卡控制器可以接收到卡的復(fù)位應(yīng)答字節(jié),SoC的此功能正確。采用同樣的方法及過(guò)程可以驗(yàn)證其他功能的正確性。
4結(jié) 語(yǔ)
該SoC芯片如今已經(jīng)成功應(yīng)用到了多種電子記帳終端設(shè)備中,為國(guó)內(nèi)外的電子記帳終端設(shè)備制造商們提供了一種高性價(jià)比的選擇,為"中國(guó)芯"家族又增添了一位新成員。所以,可以認(rèn)為該SoC芯片的設(shè)計(jì)還是非常成功的。
設(shè)計(jì)中存在的主要問(wèn)題就是內(nèi)置的RAM空間還不夠大,對(duì)于高端的電子記帳終端設(shè)備,必須外擴(kuò)一定容量的RAM存儲(chǔ)器,希望在下一款同類芯片設(shè)計(jì)中加以改進(jìn)。