李海玲
(西安航空學(xué)院 計(jì)算機(jī)學(xué)院, 西安 710077)
基于FPGA的SOC技術(shù)在微機(jī)原理中的應(yīng)用
李海玲
(西安航空學(xué)院 計(jì)算機(jī)學(xué)院, 西安 710077)
隨著FPGA技術(shù)和SOC技術(shù)的發(fā)展,已經(jīng)能夠設(shè)計(jì)出性能價(jià)格比很高的片上系統(tǒng),而且成為當(dāng)今的重要發(fā)展方向。因此,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)很多課程將面臨重大改革與挑戰(zhàn),尤其是實(shí)踐環(huán)節(jié)。以微機(jī)原理課程為例,介紹如何將傳統(tǒng)教學(xué)內(nèi)容融入FPGA和SOC技術(shù),實(shí)現(xiàn)現(xiàn)代技術(shù)方法在原理課程中的應(yīng)用,從而在更廣闊的視野和更大的深度上提升課程的學(xué)習(xí)效果及對(duì)先進(jìn)技術(shù)的應(yīng)用能力。
FPGA; SOC; EDA; 微機(jī)原理; 應(yīng)用
隨著大規(guī)模集成電路技術(shù)的飛速發(fā)展,專用集成電路ASIC(Application Specific Integrated Circuit)的設(shè)計(jì)與實(shí)現(xiàn)已不再必須依靠專門的廠商了[1]。人們可以直接將自己的設(shè)計(jì)實(shí)現(xiàn)于手頭的FPGA中,高效率地完成產(chǎn)品開發(fā)。尤其是SOC技術(shù)的出現(xiàn),設(shè)計(jì)出性能價(jià)格比很高的片上系統(tǒng)已經(jīng)實(shí)現(xiàn),而且成為當(dāng)今的重要發(fā)展方向。這對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)很多課程來(lái)說(shuō),將面臨重大的改革與挑戰(zhàn),尤其是在實(shí)踐環(huán)節(jié)。本文以微機(jī)原理課程為例,介紹如何將傳統(tǒng)教學(xué)內(nèi)容融入FPGA和SOC技術(shù),使傳統(tǒng)的微機(jī)原理知識(shí)在一個(gè)全新的平臺(tái)上與大量的新知識(shí)新方法新技術(shù)新工具完成有機(jī)整合,實(shí)現(xiàn)現(xiàn)代技術(shù)方法在原理課程中的應(yīng)用。
FPGA(Field Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物[2]。它是作為專用集成電路ASIC領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件,允許無(wú)限次的編程,結(jié)合成熟的數(shù)字系統(tǒng)設(shè)計(jì)軟件(如Quartus II)和標(biāo)準(zhǔn)化的硬件描述語(yǔ)言(如Verilog和VHDL),完成幾乎所有的數(shù)字電路的設(shè)計(jì),并且能當(dāng)場(chǎng)在FPGA中實(shí)現(xiàn)其硬件電路。
目前全球知名的FPGA生產(chǎn)廠商有Altera、Xilinx、Actel、Lattice和Atmel。其中Altera作為世界老牌可編程邏輯器件的廠家,是可編程邏輯器件的發(fā)明者,開發(fā)軟件是MAX+PLUS II和Quartus II。Xilinx是FPGA的發(fā)明者,擁有世界一半以上的市場(chǎng),提供90%的高端65nmFPGA產(chǎn)品,開發(fā)軟件為ISE。Altera和Xilinx主要生產(chǎn)一般用途FPGA,其主要產(chǎn)品采用RAM工藝。Actel主要提供非易失性FPGA,產(chǎn)品主要基于反熔絲工藝和FLASH工藝,主要用于軍用和宇航。Lattice提供業(yè)界最廣范圍的FPGA、PLD及其相關(guān)軟件,包括現(xiàn)場(chǎng)可編程系統(tǒng)芯片(FPSC)、復(fù)雜的可編程邏輯器件(CPLD)、可編程混合信號(hào)產(chǎn)品(ispPAC?)和可編程數(shù)字互連器件(ispGDX?),最終用戶主要是通訊、計(jì)算機(jī)、工業(yè)、汽車、醫(yī)藥、軍事及消費(fèi)品市場(chǎng)的原始設(shè)備生產(chǎn)商。Atmel在系統(tǒng)級(jí)集成方面所擁有的世界級(jí)專業(yè)知識(shí)和豐富的經(jīng)驗(yàn)使其產(chǎn)品可以在現(xiàn)有模塊的基礎(chǔ)上進(jìn)行開發(fā),保證最小的開發(fā)延期和風(fēng)險(xiǎn)。憑借業(yè)界最廣泛的知識(shí)產(chǎn)權(quán)(IP)組合,Atmel是提供電子系統(tǒng)完整的系統(tǒng)解決方案的廠商。Atmel集成電路主要集中在消費(fèi)、工業(yè)、安全、通信、計(jì)算和汽車市場(chǎng)。
SOC(System on Chip)被我國(guó)專業(yè)研究的學(xué)者譯為片上系統(tǒng),是指以嵌入式系統(tǒng)為核心,集軟、硬件于一體,并追求產(chǎn)品系統(tǒng)最大包容的集成芯片[3]。SOC又可以譯為“系統(tǒng)集成芯片”,意指它是一個(gè)產(chǎn)品,是一個(gè)有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容;SOC也可以譯為“系統(tǒng)芯片集成”,意指它是一種技術(shù),用以實(shí)現(xiàn)從確定系統(tǒng)功能開始,到軟/硬件劃分,并完成設(shè)計(jì)的整個(gè)過(guò)程[4]。
SOC使傳統(tǒng)電子系統(tǒng)全面進(jìn)入了現(xiàn)代電子系統(tǒng),作為電子系統(tǒng)追求的目標(biāo)就是最大限度地簡(jiǎn)化電路設(shè)計(jì),并獲得整體產(chǎn)品系統(tǒng)的可靠性、精度、穩(wěn)定性等品質(zhì)指標(biāo)。SOC將電路系統(tǒng)設(shè)計(jì)的可靠性、低功耗等都解決在IC設(shè)計(jì)之中,把過(guò)去許多需要系統(tǒng)設(shè)計(jì)解決的問(wèn)題集中在IC設(shè)計(jì)中解決。
IP核,在集成電路的可重用設(shè)計(jì)方法學(xué)中,全稱知識(shí)產(chǎn)權(quán)核(Intellectual Property Core),是指某一方提供的、形式為邏輯單元、芯片設(shè)計(jì)的可重用模塊。IP核通常已經(jīng)通過(guò)了設(shè)計(jì)驗(yàn)證,設(shè)計(jì)人員以IP核為基礎(chǔ)進(jìn)行設(shè)計(jì),可以縮短設(shè)計(jì)所需的周期。IP核不僅指數(shù)字IP核,同時(shí)還包括模擬IP核。IP核分為軟核(Soft Core)、硬核(Hard Core)、固核(Firm Core)[5]。
軟核是用VHDL等硬件描述語(yǔ)言描述的功能塊,但是并不涉及用什么具體電路元件實(shí)現(xiàn)這些功能。軟IP通常是以硬件描述語(yǔ)言HDL源文件的形式出現(xiàn),應(yīng)用開發(fā)過(guò)程與普通的HDL設(shè)計(jì)也十分相似,只是所需的開發(fā)硬軟件環(huán)境比較昂貴。軟IP的設(shè)計(jì)周期短,設(shè)計(jì)投入少。由于不涉及物理實(shí)現(xiàn),為后續(xù)設(shè)計(jì)留有很大的發(fā)揮空間,增大了IP的靈活性和適應(yīng)性。其主要缺點(diǎn)是在一定程度上使后續(xù)工序無(wú)法適應(yīng)整體設(shè)計(jì),從而需要一定程度的軟IP修正,在性能上也不可能獲得全面的優(yōu)化。由于軟核是以源代碼的形式提供,盡管源代碼可以采用加密方法,但其知識(shí)產(chǎn)權(quán)保護(hù)問(wèn)題不容忽視。
硬核是基于半導(dǎo)體工藝的物理設(shè)計(jì),已有固定的拓?fù)洳季趾途唧w工藝,并已經(jīng)過(guò)工藝驗(yàn)證,具有可保證的性能。其提供給用戶的形式是電路物理結(jié)構(gòu)掩模版圖和全套工藝文件,是可以拿來(lái)就用的全套技術(shù)。這種硬核既具有可預(yù)見性,同時(shí)還可以針對(duì)特定工藝或購(gòu)買商進(jìn)行功耗和尺寸上的優(yōu)化。盡管硬核由于缺乏靈活性而可移植性差,但由于無(wú)須提供寄存器轉(zhuǎn)移級(jí)(RTL)文件,因而更易于實(shí)現(xiàn)IP保護(hù)。
固核是軟核和硬核的折衷。除了完成軟核所有的設(shè)計(jì)外,還完成了門級(jí)電路綜合和時(shí)序仿真等設(shè)計(jì)環(huán)節(jié)。一般以門級(jí)電路網(wǎng)表的形式提供給用戶。
大多數(shù)應(yīng)用于FPGA的IP核均為軟核,軟核有助于用戶調(diào)節(jié)參數(shù)并增強(qiáng)可復(fù)用性。軟核通常以加密形式提供,這樣實(shí)際的RTL對(duì)用戶是不可見的,但布局和布線靈活。
在SOC技術(shù)中IP核是關(guān)鍵,CICC 1997年會(huì)議文集的“單元建庫(kù)”分冊(cè)已有IP的報(bào)導(dǎo)[6],1998年CICC的文集關(guān)于IP的報(bào)道就增加到3個(gè)分冊(cè),1999年美國(guó)ICE(IC Engineering)編輯的“ASIC Status 99”討論IP的篇幅占到了1/3。在“ASIC Status 99”中對(duì)IP有這樣的描述:“Yesterday’s chips are today’s reusable IP blocks and can be combined with other functions like Video, Audio,Analog,and I/O,to formulate what we now know as system on chip(SOC) ”[7],該描述清楚地說(shuō)明IP核對(duì)于SOC技術(shù)發(fā)展的重要性,IP核是SOC技術(shù)的支撐。
傳統(tǒng)芯片的設(shè)計(jì)都是專注于某個(gè)特定功能模塊的設(shè)計(jì),比如:CPU、存儲(chǔ)器、I/O接口等,即使是這樣的一些芯片在以往的設(shè)計(jì)中已經(jīng)是很復(fù)雜的問(wèn)題了,需要很多高級(jí)設(shè)計(jì)人員花費(fèi)大量的時(shí)間和精力,然而SOC要完成的功能通常包括了多個(gè)傳統(tǒng)芯片功能的功能,甚至還要復(fù)雜。因此片上系統(tǒng)SOC一般采用基于核的設(shè)計(jì),軟件部分采用構(gòu)建重用,硬件部分采用IP核重用,即將一個(gè)系統(tǒng)按照功能劃分為若干個(gè)模塊,然后直接利用設(shè)計(jì)好的IP核搭建成一個(gè)具有特定功能的芯片。SOC的設(shè)計(jì)重用使系統(tǒng)設(shè)計(jì)者可以更多地考慮系統(tǒng)結(jié)構(gòu),而不必深陷于模塊實(shí)現(xiàn),從而達(dá)到降低系統(tǒng)設(shè)計(jì)復(fù)雜性的目的[8]。
利用電路設(shè)計(jì)自動(dòng)化(EDA)工具和硬件描述語(yǔ)言(HDL)以及標(biāo)準(zhǔn)單元庫(kù)中的智能模塊(IP)核,根據(jù)產(chǎn)品的特定要求設(shè)計(jì)出性能價(jià)格比很高的片上系統(tǒng),是目前國(guó)際上使用的最新設(shè)計(jì)方法[9]?,F(xiàn)代電子設(shè)計(jì)技術(shù)可以將所開發(fā)產(chǎn)品中的幾乎所有功能模塊集成在一個(gè)芯片中,從而縮小了體積,降低了功耗和成本,并提高了系統(tǒng)的可靠性和整機(jī)設(shè)計(jì)效率。
微機(jī)原理課程在計(jì)算機(jī)、通信、電子工程、工業(yè)自動(dòng)化、機(jī)械制造等多個(gè)專業(yè)具有十分重要的地位,對(duì)于本課程的教學(xué)長(zhǎng)期以8086/8088微機(jī)系統(tǒng)及其接口作為學(xué)習(xí)的基本內(nèi)容,包括微處理器結(jié)構(gòu)、指令系統(tǒng)、匯編語(yǔ)言程序設(shè)計(jì)、存儲(chǔ)器系統(tǒng)、總線技術(shù)、并行接口技術(shù)、定時(shí)/計(jì)數(shù)器接口技術(shù)、中斷技術(shù)、串行接口技術(shù)、DMA技術(shù)、模擬接口技術(shù)和其他實(shí)用的接口技術(shù)。而這些傳統(tǒng)內(nèi)容都有相應(yīng)的IP軟核支持,比如8088IP、8255IP、8254IP、16550IP、8237IP、8259IP等。
在系統(tǒng)設(shè)計(jì)中,可以利用Quartus II開發(fā)平臺(tái),調(diào)用各種器件模塊,包括IP軟核、各種功能基本邏輯元件、74LS系列的小規(guī)模邏輯模塊,邏輯規(guī)模較大的參數(shù)可以設(shè)置功能模塊(如嵌入式的RAM、ROM、鎖相環(huán)、各類計(jì)數(shù)器等),然后將它們按電路要求連接起來(lái)構(gòu)成一個(gè)完整的系統(tǒng),通過(guò)綜合和仿真測(cè)試,沒(méi)有問(wèn)題后將此系統(tǒng)的目標(biāo)文件下載于指定的FPGA,即可進(jìn)行對(duì)應(yīng)此SOC系統(tǒng)的硬件測(cè)試,硬件系統(tǒng)的測(cè)試同時(shí)也包含對(duì)此系統(tǒng)中的CPU的軟件運(yùn)行測(cè)試,直至完成設(shè)計(jì)。
整個(gè)軟硬件構(gòu)建和測(cè)試過(guò)程便捷其透明,任何一個(gè)器件、一個(gè)細(xì)節(jié)、一個(gè)信號(hào)、一根引線的內(nèi)在行為都可以在Qu-artus II提供的各種功能強(qiáng)大的自動(dòng)化測(cè)試工具中全方位地展示出來(lái),包括展示CPU上任何一個(gè)引腳上的信號(hào)時(shí)序、數(shù)據(jù)總線上任何一個(gè)時(shí)刻流動(dòng)的數(shù)據(jù)或指令,甚至任何一組指令的流水線執(zhí)行情況等。
這樣即將微機(jī)原理課程中的傳統(tǒng)內(nèi)容與EDA技術(shù)、FPGA開發(fā)技術(shù)和SOC片上系統(tǒng)技術(shù)有機(jī)地融合起來(lái),全方位強(qiáng)化和拓展這一傳統(tǒng)教學(xué)領(lǐng)域中的知識(shí),使其在一個(gè)全新的平臺(tái)上與大量新知識(shí)新方法新技術(shù)新工具有機(jī)整合,從而在微機(jī)的基本原理方面、接口技術(shù)方面、完整系統(tǒng)構(gòu)建方面以及現(xiàn)代技術(shù)的應(yīng)用方面有更好的理解和掌握[10]。
隨著EDA技術(shù)和SOC技術(shù)的發(fā)展,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)很多課程都能采用新技術(shù)新方法進(jìn)行學(xué)習(xí)。由于8086/8088系統(tǒng)的HDL描述完整透明,可以在單片F(xiàn)PGA上重構(gòu)8086/8088系統(tǒng),使教學(xué)內(nèi)容更易于與SOC技術(shù)整合,從而提高教學(xué)成效,開拓實(shí)用領(lǐng)域。本文以微機(jī)原理課程為例,在教學(xué)與實(shí)踐中做到與新技術(shù)的有機(jī)融合,特別是使用IP軟核完成設(shè)計(jì)和實(shí)驗(yàn),在整個(gè)過(guò)程中不但可以更完整、更高效深入地學(xué)習(xí)和掌握相關(guān)環(huán)節(jié)的原理和知識(shí),更重要的是,通過(guò)理論和實(shí)踐的良好結(jié)合,能學(xué)習(xí)并掌握現(xiàn)代SOC數(shù)字系統(tǒng)設(shè)計(jì)的先進(jìn)技術(shù)。
[1] 孟李林.FPGA和ASIC設(shè)計(jì)特點(diǎn)及應(yīng)用探討[J].半導(dǎo)體技術(shù),2006(7):526-529.
[2] 楊海鋼,孫嘉斌,王慰. FPGA器件設(shè)計(jì)技術(shù)發(fā)展綜述[J]. 電子與信息學(xué)報(bào),2010,32(3):714-727.
[3] 何立民. 以SoC為中心的多學(xué)科融合與滲透[J].單片機(jī)及嵌入式系統(tǒng)設(shè)計(jì),2001(5):5-6+11.
[4] 吉利久.SoC的技術(shù)支持及嵌入式系統(tǒng)設(shè)計(jì)[J]. 單片機(jī)及嵌入式系統(tǒng)設(shè)計(jì),2001(10):5-11.
[5] 賴祥宇.SOC技術(shù)及國(guó)內(nèi)發(fā)展現(xiàn)狀[J].世界電子元器件,2002(8):40-41.
[6] JOE PUMO.Core-based chip design[C]∥Session 6,IEEE CICC 97,1997,87-111.
[7] MEAF BUTY. Intellectual properties issues[C]∥ICE,ASIC Status 99,1999,4-8.
[8] 馬國(guó)俊. SoC技術(shù)及設(shè)計(jì)方法研究[J].自動(dòng)化與儀器儀表,2012,159(1):6-8.
[9] 馬占卿,陳同忠.SoC技術(shù)及其形成基礎(chǔ)[J].信陽(yáng)師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2002(3):367-369.
[10] 潘松,潘明,黃繼業(yè). 微機(jī)原理與接口技術(shù)—基本原理、實(shí)用技術(shù)和基于FPGA的SOC技術(shù)[M].北京:清華大學(xué)出版社,2015:41-44.
TheApplicationofSOCTechnologyinMicrocomputerPrincipleBasedonFPGA
Li Hailing
(Department of Computer Engineering, Xi’an Aeronautical University 710077, China)
With the development of FPGA and SOC technologies, the design of high performance and price ratio on a chip has been realized, and has become an important direction of development. Therefore, many courses in computer science and technology will face major reforms and challenges, especially in practice. Taking the microcomputer principle and interface technology curriculum as an example, this paper introduces how to integrate the traditional teaching contents into FPGA and SOC technologies. We realize the application of modern technology in principle course, so as to improve the learning effect and advanced technology in a broader vision and greater depth.
FPGA; SOC; EDA; Microcomputer principle; Applications
1007-757X(2017)12-0036-02
2017年度校級(jí)科研基金項(xiàng)目(2017KY0207);2017年校級(jí)高等教育研究項(xiàng)目(2017GJ1012)
李海玲(1980-),女,講師,碩士,研究方向:基于FPGA的SOC技術(shù)的教學(xué)和研究。
TP301
A
2017.08.28)