利用SOPC Builder解決嵌入式處理器外設設計挑戰
——
隨著(zhù)新產(chǎn)品開(kāi)發(fā)成本的不斷提高,新型嵌入式處理器開(kāi)發(fā)將主要瞄準各種通用解決方案或特定大批量應用。要采用通用解決方案,處理器很可能需要有80%的外設,而特定大批量應用則可能需要采用100%的外設。為能在有些略微不同的應用中采用這些方案,很可能需要有額外的外設。這兩種解決方案都不會(huì )用獨特的定制外設來(lái)區分這些產(chǎn)品。FPGA及FPGA開(kāi)發(fā)工具目前都能提供多種途徑來(lái)用這些標準產(chǎn)品迅速、并以很少(或完全不用)硬件描述語(yǔ)言(HDL)設計來(lái)滿(mǎn)足外設要求。
今天的低成本FPGA及CPLD,如Altera公司的Cyclone及MAX II系列芯片等,都能提供滿(mǎn)足各種外設所需的性能、密度及多輸入/輸出(I/O)標準。利用Altera公司的SOPC(可編程系統級芯片)Builder工具,系統設計工程師無(wú)需編寫(xiě)HDL即能定義并集成外設子系統,并能以傳統的系統級芯片(SOC)設計方法在很短的時(shí)間內做到這一點(diǎn)。
嵌入式處理器接口
今天的嵌入式處理器一般都配備有簡(jiǎn)單或復雜的接口。復雜接口包括PCI、PCI-X、PCI-Express、RapidIO及Hypertransport等,對于簡(jiǎn)單的外設擴展而言,這些接口內核增加了不必要的復雜性。簡(jiǎn)單接口包括由地址、數據及控制信號所組成的外部存儲器接口等,這類(lèi)接口適合簡(jiǎn)單外設擴展,并且幾乎不增加復雜度,這類(lèi)接口適用于絕大多數標準產(chǎn)品。在與外設接口時(shí)所遇到的最大挑戰是如何處理各類(lèi)接口標準、不同數據通道寬度,以及由外設所引起的每個(gè)傳輸總線(xiàn)周期數變化等。而SOPC Builder工具可有效解決以上問(wèn)題。
包含在Quartus II開(kāi)發(fā)工具中的SOPC Builder工具提供了一種基于表格的錄入系統,該系統可以列出定義系統的處理器及外設。系統組件庫中所列出的每一個(gè)SOPC Builder組件,都提供一個(gè)以一些表格來(lái)描述該組件的文件,以及另一個(gè)用來(lái)描述接口信號及數據傳輸要求的文件。根據這些信息,SOPC Builder生成一個(gè)包含所有譯碼邏輯、仲裁邏輯、中斷控制、等待狀態(tài)控制以及用于連接處理器與外設的數據通道匹配邏輯的交換網(wǎng)(switch fabric)。SOPC Builder庫組件可以是非常簡(jiǎn)單的模塊子系統。對于定制外設,SOPC Builder提供一個(gè)重要的向導來(lái)導入上述設計文件,并將其映射到SOPC Builder組件中。
Avalon規范
SOPC Builder并不強制要求所有外設類(lèi)型都滿(mǎn)足同樣的總線(xiàn)標準,而是根據Avalon規范來(lái)創(chuàng )建一個(gè)交換網(wǎng),并針對特定系統中所采用的外設進(jìn)行優(yōu)化。Avalon規范可從Altera網(wǎng)站上免費下載,是專(zhuān)為適應SOPC環(huán)境中的外設開(kāi)發(fā)而設計的。該規范為外設設計工程師提供了一個(gè)用來(lái)描述Avalon主器件(如微處理器等)和從器件(存儲器、UART及定時(shí)器等)內基于地址的讀/寫(xiě)端口的基礎。該規范將傳輸描述為發(fā)生在外設與交換網(wǎng)之間的互連,此互連策略可以使任何Avalon主器件與任何Avalon從器件動(dòng)態(tài)連接。
SOPC Builder工具可實(shí)現這種交換網(wǎng)互連策略。在實(shí)施該策略的過(guò)程中,生成適當邏輯以連接各種器件的任務(wù)從設計工程師轉移到了開(kāi)發(fā)工具。因此,該方法使得設計工程師能將精力集中在優(yōu)化外設及其應用上,并能大大減少解決集成問(wèn)題的時(shí)間。
外部存儲器接口與Avalon接口
通過(guò)處理器上的各種外部存儲器接口,Avalon接口所具有的靈活性使其非常適合于將標準處理器與FPGA內、或經(jīng)過(guò)FPGA的外設相連,Avalon接口還支持高有效或低有效控制信號邏輯電平,支持地址和數據通道高達128位的主器件。在FPGA內部,讀/寫(xiě)數據通道是分離的非三態(tài)高性能數據通道。
對于大多數處理器接口而言,只需通過(guò)將處理器信號類(lèi)型與Avalon對等信號類(lèi)型匹配,外部存儲器接口即可以簡(jiǎn)單連線(xiàn)形式與FPGA及Avalon交換網(wǎng)連接。接口上所要求的邏輯僅為用來(lái)將處理器的雙向數據總線(xiàn)轉換為Avalon所采用的單獨讀/寫(xiě)數據通道的控制邏輯,并且可以少至一個(gè)邏輯單元。FPGA I/O元件很容易支持高達133MHz的數據速率,高于絕大多數處理器外部存儲器接口的數據速率。
對于FPGA邏輯而言,由SOPC Builder生成的Avalon交換網(wǎng)可以最低的邏輯電平來(lái)提供最佳的譯碼邏輯。FPGA邏輯的性能取決于FPGA的系列、外設器件類(lèi)型以及與Avalon交換網(wǎng)相連的外設數量,今天的FPGA高性能很容易實(shí)現外設子系統。
可變等待時(shí)間I/O接口
Intel PXA2xx芯片上的可變等待時(shí)間接口(VLIO)可直接映射到Avalon信號類(lèi)型(圖1)。VLIO允許與FPGA相連的外設采用像SRAM存取允許外設通過(guò)使用RDY信號來(lái)插入等待周期一樣的方式工作。RDY信號的產(chǎn)生可由SOPC Builder及Avalon交換網(wǎng)來(lái)自動(dòng)處理,而控制信號nPWE和nOE則可直接映射到Avalon write_n及read_n信號類(lèi)型上。同樣,地址(MA[25:0])映射到地址([n:2])上。nOE也與CS(片選)信號一起用來(lái)使寫(xiě)處理中的讀操作能控制方向數據(MD[31:0]) 映射到Avalon讀/寫(xiě)數據通道上。如果需要支持尋址單個(gè)字節,則可將DQM[3:0]信號映射到支持Avalon字節的信號上。圖2顯示接口的簡(jiǎn)單Verilog描述,其中不包括端口及信號聲明。
對于工程師的定制外設,硬件設計團隊可以獨立于所選處理器來(lái)設計這些專(zhuān)用器件。SOPC Builder通過(guò)其“接口至用戶(hù)邏輯向導”完全支持用戶(hù)自定義組件,該向導導入用戶(hù)的設計文件來(lái)讀取端口列表。用戶(hù)只需將模塊信號名映射到對等的Avalon信號類(lèi)型上。完成映射后,設計工程師即可選擇時(shí)序頁(yè)(timing page)來(lái)定義時(shí)鐘數或任何設置、讀/寫(xiě)處理所需保持時(shí)間的數值。通過(guò)這些信息,SOPC Builder可創(chuàng )建一個(gè)適當的交換網(wǎng)來(lái)使任何主外設與該定制外設交換數據。將該組件發(fā)布到組件庫中,不需要對外設進(jìn)行任何改動(dòng),該組件就可以在同一系統或其他新系統中再次使用。
簡(jiǎn)化多主處理器設計
SOPC Builder方法也使得通過(guò)增加軟件內核處理器(如Nios II處理器等)來(lái)卸載主處理器,或通過(guò)增加DMA控制器來(lái)在FPGA內移動(dòng)數據變得更加簡(jiǎn)單。SOPC Builder為設計工程師提供一張顯示系統內所有處理器、外設以及哪些處理器訪(fǎng)問(wèn)哪些外設的表格。外設共享控制簡(jiǎn)單得只需輕按按鈕。當需要進(jìn)行調整時(shí),設計工程師只需重新訪(fǎng)問(wèn)該表格,進(jìn)行相應的改變,然后再按一下按鈕,即可生成一個(gè)新的解決方案。
嵌入式應用軟件
集成完組件后,即可進(jìn)行軟件開(kāi)發(fā)。許多SOPC Builder組件都含有用來(lái)訓練外設的軟件驅動(dòng)器及采樣應用程序。SOPC Builder將這些軟件復制到目錄中以便使用。SOPC Builder還為提供有存儲器映射及寄存器聲明的系統中的每一個(gè)處理器生成一個(gè)標準的C頭文件。SOPC Builder每生成一個(gè)系統,這些文件都被更新一次,并能自動(dòng)地將最新參數以及每個(gè)新硬件映像聲明遞交給軟件開(kāi)發(fā)團隊,通過(guò)保持軟硬件的一致性來(lái)加速系統開(kāi)發(fā)。
評論