李 瑞
摘 要:可編程片上系統(tǒng)(System On a Programmable Chip, SOPC)是Altera公司提出來(lái)的一種靈活、高效的片上系統(tǒng)(System On Chip, SOC)解決方案。它結(jié)合了片上系統(tǒng)和現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Logic Array, FPGA)各自的特點(diǎn),是一個(gè)嶄新的、富有生機(jī)的嵌入式系統(tǒng)設(shè)計(jì)技術(shù)研究方向。
關(guān)鍵詞:可編程片上系統(tǒng);現(xiàn)場(chǎng)可編程門(mén)陣列;計(jì)時(shí)系統(tǒng);NIOS II處理器
中圖分類(lèi)號(hào):TD31
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào):1005-569X(2009)06-0097-02
1 引 言
在集成電路(IC)發(fā)展初期,電路設(shè)計(jì)都是從器件的物理版圖設(shè)計(jì)入手。后來(lái)出現(xiàn)了集成電路單元庫(kù)(Cell-Lib),使得集成電路設(shè)計(jì)從器件級(jí)進(jìn)入邏輯級(jí),極大地推動(dòng)了IC產(chǎn)業(yè)的發(fā)展。不過(guò),集成電路只有安裝在整機(jī)系統(tǒng)中才能發(fā)揮它的作用。IC芯片是通過(guò)印刷電路板(PCB)等技術(shù)實(shí)現(xiàn)整機(jī)系統(tǒng)的。盡管IC的速度可以很高,功耗可以很小,但由于PCB板中IC芯片之間的連線延時(shí)、PCB板可靠性及重量等因素的限制,整機(jī)系統(tǒng)的性能受到了很大的限制。隨著系統(tǒng)向高速度、低功耗、低電壓和多媒體、網(wǎng)絡(luò)化、移動(dòng)化的發(fā)展,系統(tǒng)對(duì)電路的要求越來(lái)越高。傳統(tǒng)集成電路設(shè)計(jì)技術(shù)已無(wú)法滿足性能日益提高的整機(jī)系統(tǒng)的要求。同時(shí),由于IC設(shè)計(jì)與工藝技術(shù)水平提高,集成電路規(guī)模越來(lái)越大,復(fù)雜程度越來(lái)越高,整個(gè)系統(tǒng)已可以集成在一個(gè)芯片上。目前已經(jīng)可以在一個(gè)芯片上集成108~109個(gè)晶體管。SOC就是在這種條件下應(yīng)運(yùn)而生的。
2 嵌入式系統(tǒng)開(kāi)發(fā)概述
2.1 嵌入式系統(tǒng)簡(jiǎn)介
嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。它主要由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)應(yīng)用軟件等部分組成。
2.1.1 嵌入式操作系統(tǒng)以及用戶(hù)應(yīng)用軟件
嵌入式處理器的應(yīng)用軟件是實(shí)現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵,對(duì)嵌入式處理器系統(tǒng)軟件和應(yīng)用軟件的要求也和通用計(jì)算機(jī)有所不同。
首先,軟件要求固化存儲(chǔ)。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或單片機(jī)本身中,而不是存儲(chǔ)與磁盤(pán)等載體中。
其次,軟件代碼高質(zhì)量、高可靠性。盡管半導(dǎo)體技術(shù)的發(fā)展使處理器速度不斷提高、片上存儲(chǔ)容量不斷增加,但在大多數(shù)應(yīng)用中,存儲(chǔ)空間仍然是寶貴的,還存在實(shí)時(shí)性的要求。為此要求程序編寫(xiě)和變異的質(zhì)量高,以減少程序二進(jìn)制代碼長(zhǎng)度、提高執(zhí)行速度。
最后,系統(tǒng)軟件為多任務(wù)高實(shí)時(shí)性的。在多任務(wù)的嵌入式系統(tǒng)中,對(duì)重要性各不相同的任務(wù)進(jìn)行統(tǒng)籌兼顧與合理調(diào)度是保證每個(gè)任務(wù)及時(shí)執(zhí)行的關(guān)鍵,單純同過(guò)提高處理器速度是無(wú)法完成和沒(méi)有效率的,這種任務(wù)調(diào)度只能由優(yōu)化編寫(xiě)的系統(tǒng)軟件來(lái)完成,因此系統(tǒng)軟件的高實(shí)時(shí)性是基本要求。而多任務(wù)操作系統(tǒng)則是知識(shí)集成的平臺(tái)和走向工業(yè)標(biāo)準(zhǔn)化道路的基礎(chǔ)。
2.2 嵌入式系統(tǒng)的特點(diǎn)
嵌入式系統(tǒng)是集軟件、硬件于一體的高可靠性系統(tǒng)。
嵌入式系統(tǒng)是資源開(kāi)銷(xiāo)小的高性能價(jià)格比系統(tǒng)。嵌入式系統(tǒng)的發(fā)展離不開(kāi)應(yīng)用,應(yīng)用的共同要求是系統(tǒng)資源開(kāi)銷(xiāo)小,性?xún)r(jià)比高。
嵌入式系統(tǒng)是功能強(qiáng)大、使用靈活方便的系統(tǒng) 嵌入式系統(tǒng)應(yīng)用的廣泛性,要求該系統(tǒng)通常是無(wú)鍵盤(pán)、無(wú)需編程的應(yīng)用系統(tǒng),使用它應(yīng)如同使用家用電器一樣方便。
3 基于FPGA和 NIOS II計(jì)時(shí)/計(jì)數(shù)工程的設(shè)計(jì)與實(shí)現(xiàn)
3.1系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要完成:系統(tǒng)初始化、時(shí)間顯示、按鈕中斷處理,時(shí)間的累加與設(shè)置等功能。
圖1系統(tǒng)軟件流程圖
3.1.1系統(tǒng)的時(shí)間的顯示
由于開(kāi)發(fā)環(huán)境的限制,而且沒(méi)有LCD的支持,所以只能用4個(gè)7段數(shù)碼顯示管來(lái)顯示時(shí)鐘。4個(gè)數(shù)碼管分成兩組,每組2個(gè)數(shù)碼管,一組顯示分鐘,一組顯示時(shí)鐘,每個(gè)數(shù)碼管顯示一位數(shù)字,剛好完成分鐘和時(shí)鐘的顯示。
7段數(shù)碼管的原理如圖2所示:
圖27段數(shù)碼管
每個(gè)7段數(shù)碼管由與一個(gè)8位的并行I/O接口相連,所以需要一個(gè)8位的無(wú)符號(hào)數(shù)來(lái)控制(alt_u8)類(lèi)型,每一位控制相應(yīng)的a,b,c,d,e,f,g,dp為以下為每位對(duì)應(yīng)的控制關(guān)系,如圖3所示
圖3 7段數(shù)碼管的控制位
由于1表示燈不亮,0表示燈亮,這樣數(shù)字0就由0x81表示,即10000001除了g和dp不亮其他的都亮。
將0-F這16個(gè)數(shù)所對(duì)應(yīng)的編碼依次放在一個(gè)數(shù)組中,取出當(dāng)前是中的得高位與低位low和high,然后通過(guò):data=segments[low]|(segments[high]<<8來(lái)將數(shù)據(jù)整合成一個(gè)16位的數(shù)字輸出到端口。
3.2 時(shí)間的設(shè)置
時(shí)間的控制通過(guò)中斷完成。在SOPC Builder中設(shè)置button_pio就定義了關(guān)于button_pio的用戶(hù)中斷(NIOS II處理器最多支持64個(gè)異常,有32個(gè)外部中斷輸入),系統(tǒng)生成時(shí)會(huì)為用戶(hù)自定義的中斷分配相應(yīng)的中斷號(hào)和中斷優(yōu)先級(jí)。NIOS II中斷向量表提供了指向中斷服務(wù)程序的指針,通過(guò)修改中斷向量表可以改變相應(yīng)中斷的中斷處理子程序。
4 結(jié)語(yǔ)
本系統(tǒng)時(shí)基于FPGA,采用Altera提供的全套軟硬件開(kāi)發(fā)平臺(tái)所設(shè)計(jì)的一個(gè)可編程片上系統(tǒng)(SOPC)。本系統(tǒng)主要的特點(diǎn)和功能如下:
系統(tǒng)應(yīng)用廣,擴(kuò)展性強(qiáng):計(jì)時(shí)功能是很多系統(tǒng)的必備功能。
系統(tǒng)開(kāi)發(fā)周期短,成本低:系統(tǒng)由SOPC Builder構(gòu)建,大大縮短了硬件設(shè)計(jì)的時(shí)間,有效的降低了成本
系統(tǒng)靈活性強(qiáng):可編程片上系統(tǒng)相對(duì)于片上系統(tǒng)(SOC)最大的優(yōu)勢(shì)在于它的靈活性,用戶(hù)如果要對(duì)系統(tǒng)作功能擴(kuò)展可以輕松實(shí)現(xiàn)。
系統(tǒng)交互性強(qiáng):系統(tǒng)時(shí)間設(shè)置方法和普通電子手表的時(shí)間設(shè)置方法相同,用戶(hù)可以輕松上手。
參考文獻(xiàn):
[1] 黃智偉.FPGA系統(tǒng)的設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.
[2] 趙雅興.FPGA原理、設(shè)計(jì)與應(yīng)用[M].天津:天津大學(xué)出版社.1999.
[3] 于楓, 張麗英, 廖宗建.ALTERA可編程邏輯器件應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2004.
[4] 張大撥.嵌入式系統(tǒng)原理、設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.
[5] Altera Corporation. Nios II Hardware DevelopmentTutorial.http://www.altera.com.cn.
[6] Altera Corporation. Nios II Processor Reference Handbook.http://www.altera.com.cn.
[7] Altera Corporation. Stratix GX FPGA Family data sheet.http://www.altera.com.cn.