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