<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è) > 嵌入式系統 > 設計應用 > 基于NIOS II的SOPC存儲器型外設接口的設計

基于NIOS II的SOPC存儲器型外設接口的設計

作者: 時(shí)間:2012-02-19 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引言

隨著(zhù)微電子技術(shù)與工藝的發(fā)展,數字集成電路由最初的電子管、晶體管逐步發(fā)展成專(zhuān)用集成電路(ASIC,Application Specific IntegratedCircuit),同時(shí)可編程邏輯器件也取得了長(cháng)足進(jìn)步。

如今,可完成超大規模的復雜組合邏輯與時(shí)序邏輯的FPGA器件不斷推陳出新,從而為實(shí)現片上可編程系統()提供了強大的硬件支持。是Ahera公司提出的一種靈活、高效的片上系統(SOC)解決方案,它將處理器、、I/O口等系統所需要的功能模塊集成到一個(gè)可編程器件上,從而構成一個(gè)可編程的片上系統。

同時(shí),Altera公司也提供了完整的開(kāi)發(fā)套件(QuaItus 、 Builder、Nios IDE)和仿真工具等軟件,并將其無(wú)縫地集成在一起。

利用Quartus 的SOPC Builder能夠方便的構建一個(gè)FPGA的SOPC系統,SOPC Builder的系統庫中包含了一些常用的Nios II外圍設備,可以自動(dòng)生成Avalon總線(xiàn),以用于連接各個(gè)模塊,從而形成SOPC系統。但系統庫中沒(méi)有提供的器件,而需要用戶(hù)根據器件的具體情況Avalon。另外,對于一些沒(méi)有邏輯功能的可以直接與總線(xiàn)相連,但需要根據Avalon總線(xiàn)規范和的控制時(shí)序來(lái)定制。

在實(shí)際工程中,通??梢允褂玫?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/存儲器">存儲器有片上和片外存儲器,其中前者指的是FPGA內嵌的存儲器,如片上RAM、FIFO、緊耦合存儲器等;后者為FPGA片外存儲器,如SRAM、SDRAM等。本文介紹了將片內存儲器FIFO、緊耦合存儲器及16位的SRAM集成在SOPC系統中,并在FPGA開(kāi)發(fā)板上實(shí)現的方法,其內容包括的接入方法,以及緊耦合存儲器如何通過(guò)緊耦合從端口直接與處理器的緊耦合數據/指令主端口相連等。

1 SOPC中的Avalon總線(xiàn)

Avalon交換式總線(xiàn)是由Altera公司開(kāi)發(fā)的一種專(zhuān)用的內部連線(xiàn)技術(shù)。Avalon交換式總線(xiàn)由SOPCBuilder自動(dòng)生成,是一種理想的、用于系統處理器和之間的內部連線(xiàn)。SOPC Builder可利用最少的FPGA資源,產(chǎn)生最佳的Avalon交換結構。在SOPC Builder中,每當一個(gè)新的組件被添加到系統中或是某個(gè)外設接人優(yōu)先權被改變時(shí),就會(huì )有一個(gè)新的、最佳的Avalon交換式總線(xiàn)被生成。Avalon交換式總線(xiàn)的整個(gè)生成過(guò)程都由SOPCBuilder自動(dòng)完成。SOPC Builder自動(dòng)生成的Avalon交換式總線(xiàn)可使用最少的邏輯資源來(lái)支持數據總線(xiàn)的服用、地址譯碼、等待周期的產(chǎn)生、外設的地址對齊(包括支持靜態(tài)和動(dòng)態(tài)地址對齊)、中斷優(yōu)先級的指定以及高級的交換式總線(xiàn)傳輸。Avalon交換式總線(xiàn)所定義的內聯(lián)線(xiàn)策略使得任何一個(gè)Avalon總線(xiàn)上的主外設都可以與任何一個(gè)從外設進(jìn)行通信。

Avalon總線(xiàn)結構構成的基本原則是:所有外設的接口與Avalon總線(xiàn)的時(shí)鐘同步,并與Avalon總線(xiàn)的握手/應答信號一致;同時(shí)所有信號均為高電平或低電平,并由多路選擇器完成選擇功能,它沒(méi)有三態(tài)信號,地址、數據和控制信號使用分離的專(zhuān)用端口,外設無(wú)需識別總線(xiàn)地址周期和數據總線(xiàn)周期。

1.1 Avalon從端口

Avalon接口定義了一組信號類(lèi)型(如片選、讀使能、寫(xiě)使能、地址、數據等),可用于描述主/從外設上地址的讀/寫(xiě)接口。Avalon端口就是一組Avalon信號,這些信號用作一個(gè)單一的接口。Avalon端口分為主端口和從端口。主端口為發(fā)起傳輸的Avalon信號類(lèi)型的集合。從端口為響應傳輸請求的Avalon信號類(lèi)型的集合。從端口的基本信號有address、readdata、writedata、read、write、chipselect等。從端口的讀傳輸可使用等待周期、建立時(shí)間等傳輸屬性,但Avalon從端口讀傳輸不使用保持時(shí)間屬性。對于有些外設,在read信號有效之前,其address和chipselect信號需要一定周期才能達到穩定,因此具有建立時(shí)間的Avalon傳輸應滿(mǎn)足上述建立時(shí)間要求。具有建立時(shí)間的讀傳輸使用的信號與基本讀傳輸的信號相同,不同之處只在于信號的時(shí)序。從端口的寫(xiě)傳輸除了具有與讀傳輸同樣的傳輸屬性外,還具有保持時(shí)間,其建立保持時(shí)間通常用于需要addtess、byteenable、writedata和chipselect信號在write脈沖之前和/或之后的幾個(gè)周期內保持穩定的片外外設。

1.2 地址對齊方式

當系統中存在數據寬度不匹配的主-從端口對時(shí),需要考慮地址對齊問(wèn)題。若系統中所有主端口和從端口都具有同樣的數據寬度,則從端口數據的所有單元與主端口地址空間的靜態(tài)地址邊界對齊。對于存儲器外設,一般應使用動(dòng)態(tài)地址對齊。若Avalon從端口是一個(gè)對寄存器文件的接口,則應使用靜態(tài)地址對齊。寄存器文件提供有對內部外設邏輯的訪(fǎng)問(wèn)功能。

一般情況下,動(dòng)態(tài)地址對齊方式可以自動(dòng)適應和Avalon master端口寬度不同的器件,而同時(shí)保持地址增長(cháng)的方式是以字節為單位增長(cháng)的方式。匹配不同端口寬度的mater和slave時(shí),可使用動(dòng)態(tài)地址對齊方式來(lái)得到一個(gè)連續的存儲器空間。而采用動(dòng)態(tài)地址對齊方式需要連接字節使能信號。

靜態(tài)地址對齊的地址增長(cháng)單位是Avalon master的端口寬度,每次讀寫(xiě)都只對應一次操作,但在匹配不同端口寬度的mater和slave時(shí),地址不能自動(dòng)調整。某些地址可能沒(méi)有相應的物理實(shí)體和它對應。

2 Nios II系統中的緊耦合存儲器

Nios II系統中的緊耦合存儲器是旁路緩存的片上存儲器,該存儲器具有最好的存儲器訪(fǎng)問(wèn)性能,能采用與其它存儲器一樣的方法為之分配代碼和數據。圖1是包括緊耦合存儲器和其他外設的Nios II系統圖。



SOPC Builder中的片上存儲器是唯一能夠與Nios II內核上的緊耦合主端口相連接的存儲器,而且,該片上存儲器必須配置為RAM,同時(shí)處理器上的緊耦合主端口也必須只與一個(gè)片上存儲器從端口相連接。每個(gè)緊耦合主端口都可以通過(guò)緊耦合接口與緊耦合從端口進(jìn)行連接,因此,需要雙端口存儲器與緊耦合指令主端口進(jìn)行連接。由于緊耦合指令主端口只能訪(fǎng)問(wèn)可執行代碼,因此,雙端口存儲器的第二個(gè)存儲器端口應當與處理器的數據端口相連,這樣便于對數據的讀/寫(xiě)操作。

在構建SOPC系統時(shí),Nios II處理器需要選中Include tightly coupled instruction master pods以及Include tightly coupled data master pods,這樣就可以添加處理器的緊耦合指令/數據主端口。片上存儲器可選擇SOPC Builder提供的onchip_memory,并在緊耦合指令存儲器中設置其為雙端口。當系統中的元件添加完成后,SOPC Builder會(huì )自動(dòng)連接緊耦合指令/數據存儲器的從端口和其他主端口,但是,這時(shí)候需要手動(dòng)修改連接關(guān)系。tightly_coupled_instruction_memory的s1端口僅與處理器的緊耦合指令主端口相連接,而s2端口則可以作為一個(gè)Avalon從端口僅與處理器的Avalon數據主端口相連接,而tightly_coupled_data_memory的sl端口僅連接到處理器的緊耦合數據主端口。Nios II處理器中緊耦合存儲器的配置如圖2所示。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(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>