<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 利用SOPC Builder解決嵌入式處理器外設設計挑戰

利用SOPC Builder解決嵌入式處理器外設設計挑戰

——
作者: 時(shí)間:2006-03-21 來(lái)源: 收藏
  新產(chǎn)品開(kāi)發(fā)成本的不斷提高要求用新方法來(lái)采用標準產(chǎn)品以滿(mǎn)足確切的產(chǎn)品需求。本文介紹的SOPC Builder工具充分利用當今CPLD及FPGA的密度、特性及性能來(lái)擴展標準處理器的外設,通過(guò)實(shí)現新型交換網(wǎng)互連,該工具為提高系統性能以及增加系統其他功能創(chuàng )造了機會(huì )。 

  隨著(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ā)。 



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>