基于FPGA的SOC外部組件控制器IP的設計
1 引言
嵌入式系統已經(jīng)發(fā)展成為應用最廣的計算機系統[1]。SOC(System On a Chip)則是嵌入式系統的研究和開(kāi)發(fā)熱點(diǎn)。SOC 的核心概念是把整個(gè)系統集成到一片半導體芯片上。目前SOC 的中文名稱(chēng)還不統一,可被叫做集成系統芯片、系統芯片或片上系統等?;诳删幊唐骷?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/FPGA">FPGA(Field programmable Gate Arrays)的SOC 可被稱(chēng)作SOPC(System on a Programmable Chip)或PSOC(Programmable SOC) [2]?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/FPGA">FPGA 的設計為可重配置(reconfigurable)的SOC 的開(kāi)發(fā)帶來(lái)了方便[3]。SOC 運用現代計算機和微電子學(xué)的高技術(shù),實(shí)現單片系統集成,減小了體積、提高了運行效率、增強了可靠性、降低了功耗、減少了成本,因此被稱(chēng)作嵌入式系統應用的理想結構和高端形式。
IP(Intellectual Property)是SOC 設計不可或缺的部分。在某種程度上,可以說(shuō)SOC=MP+IP。微處理器MP(Microprocessor)是SOC 的核心。IP 是SOC 各種功能實(shí)現的模塊。IP 模塊也被稱(chēng)作IP 核,IP 核又可分為硬核、軟核、固核[4]。由于SOC 是針對某種應用或對象設計的專(zhuān)用系統,系統的實(shí)現很大程度上依賴(lài)于功能模塊的設計。此外,許多MP 核可以在市場(chǎng)上買(mǎi)到。因此,IP 模塊的開(kāi)發(fā)已成為許多用戶(hù)設計SOC 的主要工作。
本文側重于介紹IP 模塊中組件控制器的設計和實(shí)現。一個(gè)基于FPGA 的LCD 控制器設計作為例子被介紹。這個(gè)組件控制器設計屬于固核IP 設計,也就是軟硬結合的方法。設計內容主要包括電路結構、VHDL 框架和仿真結果。該設計實(shí)現了面向可重配置SOC 的單指令驅動(dòng)LCD 操作。
2 SOC 組件與組件控制器
SOC 組件是SOC 為實(shí)現某種操作功能所需要的器件或設備。這些組件可以是內部的也可以是外部的,如LCD、鍵盤(pán)、設備驅動(dòng)器等是外部組件,電子轉換器、變換器、放大器等則屬于內部組件。無(wú)論是內部,還是外組件,其控制單元都要被設計在SOC 內部。作為一個(gè)系統的核心,SOC要完成運行、操作或控制功能,必須有相應的組件配合。而多數組件,尤其是外部組件在SOC 內都要有一個(gè)對應的控制器。所以,為了實(shí)現應用對象操作,SOC 要設計相當數量的組件控制器。組件控制器的設計,對SOC 而言就是一些IP 模塊的設計。
SOC 與外部組件的基本關(guān)系見(jiàn)圖1。相對于外部組件而言,SOC 由微處理器核MP(microprocessor)和相關(guān)的控制器IP 構成。為了得到最優(yōu)的控制效率,SOC 的MP 常常被設計成可重配置(reconfigurable)的MP[5]。這意味著(zhù)用戶(hù)可對MP 的一些配置進(jìn)行修改和添加以適應應用系統的需要,如用戶(hù)可以對MP 的指令系統進(jìn)行重新配置,設計加入用戶(hù)需要的專(zhuān)用指令。為了區別于一般的MP,圖1 中的給出了SOC-MP 來(lái)代表用于SOC 的MP 核
圖1 SOC 與外部組件的基本關(guān)系
SOC的組件控制器與專(zhuān)用指令配合可以實(shí)現一些復雜操作的單指令運行,從而大大提高了SOC應用系統的操作速度和運行效率[6]。這也正是嵌入式系統的專(zhuān)用設計特性和高效控制優(yōu)勢的體現。
盡管SOC 的IP 核分為硬核、軟核、固核,對于非專(zhuān)業(yè)集成電路設計的用戶(hù)來(lái)說(shuō),多數采用基于FPGA 的設計方法。實(shí)際上也就是軟硬結合的IP 固核設計。本文介紹的是一種用VHDL 硬件描述語(yǔ)言在FPGA 上設計SOC 外部組件控制器IP 的方法。
3 LCD 控制器的設計
液晶顯示器 LCD(Liquid Crystal Display)是SOC 的一種外部組件,會(huì )經(jīng)常被用到。為了實(shí)現SOC 對LCD 的高效管理,要設計一個(gè)LCD 控制器IP 模塊。這個(gè)模塊被命名為lcd_fct。外部組件LCD 與SOC 的關(guān)系與控制結構可參考圖2。
對照圖1 可以看出,圖2 中的lcd_fct 是外部組件控制器IP,它位于LCD 和MP 之間,通過(guò)數據(data)、地址線(xiàn)(address)、控制(control, write_e)和信號線(xiàn)(lcd_busy)等與MP 和LCD 建立聯(lián)系。
圖2 外部組件LCD 的SOC 控制結構
在這個(gè)設計中對LCD 控制器lcd_fct 的要求是:lcd_fct 接受來(lái)自MP 的指令,如初始化、清屏和顯示等。lcd_fct 按照指令的要求產(chǎn)生一系列控制信號和相應的時(shí)序來(lái)控制LCD 模塊完成相應的操作。實(shí)際上,lcd_fct 對LCD 模塊的操控主要包括LCD 初始化、清屏、傳送顯示數據和地址。
當lcd_fct 的輸入信號reset 是低電平時(shí),復位電路(Reset Circuit)開(kāi)始工作,進(jìn)行初始化操作、對標志和狀態(tài)清零、設定相關(guān)常數等。
時(shí)鐘調節電路(Clock Regulator)主要為定時(shí)器提供具有高質(zhì)量波形的時(shí)鐘。為滿(mǎn)足運行中不同時(shí)序的需要, lcd_fct 中設計了微秒定時(shí)器(μs Timer)和毫秒定時(shí)器(ms Timer)。定時(shí)的時(shí)間常數被放在時(shí)間常數寄存器(Time Constant Register)中。
從MP 來(lái)的地址(addrin)和控制(write_e)信息被送到譯碼器(Decoder)。譯碼器根據不同的地址和控制信息產(chǎn)生相應的指令標志,如復位、清零等。并把指令標志送給控制電路(Control Circuit)。
評論