<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的自定義外設FIFO

基于SOPC的自定義外設FIFO

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

摘要:以Altera公司的FPGA芯片EP2C20Q208C8為例,詳細介紹了在QuartusII 7.2的環(huán)境下,用 Builder構建Nios軟核時(shí),接口元件的方法。通過(guò)將采集到的電壓信號,在數碼管上顯示的實(shí)驗,實(shí)現寄存器與Nios CPU之間的通信。
關(guān)鍵詞:現場(chǎng)可編程門(mén)陣列FPGA;Nios;先進(jìn)先出;可編程片上系統Builder

0 引言
隨著(zhù)微電子技術(shù)和半導體工業(yè)的不斷發(fā)展,數字技術(shù)已進(jìn)入片上系統時(shí)代。從而又發(fā)展了(可編程片上系統),是Altera 公司提供的片上可編程系統解決方案。Nios嵌入式處理器是Altera公司推出的軟核CPU,提供給用戶(hù),并在A(yíng)ltera的FPGA上實(shí)現優(yōu)化,用于 SOPC集成
并在FPGA上實(shí)現,提高了系統的靈活性和擴大范圍。
是SOPC系統靈活性的重要體現,是SOPC系統中極其重要的一種設計方法。在大量的數據常需要處理時(shí),利用由具體的硬件來(lái)實(shí)現,可以極大程度地提高系統運行的速度,同時(shí)便于系統的模塊化與集成化,是SOPC系統設計的重中之重。定制的用戶(hù)能夠以“硬件加速器”的形式實(shí)現各種各樣用戶(hù)要求的功能。

1 定制Avalon總線(xiàn)型接口元件
由于選用的AD采樣速率非常高,并且只由時(shí)鐘控制端控制,因此設計時(shí)在A(yíng)D采集模塊和Nios CPU之間加一個(gè)FIFO存儲器,從系統外部接口送來(lái)的數據先在FIFO中緩存,然后將數據讀入SDRAM,在片上進(jìn)行數據處理。整個(gè)流程在FPGA平臺上采用SOPC方法實(shí)現。在SOPC Builder中只有廠(chǎng)商提供的片上FIFO接口控制器,沒(méi)有外部使用的FIFO接口控制器核,因此需要用戶(hù)自定義FIFO接口控制器,這樣才能滿(mǎn)足系統外圍電路的應用要求。文中采用創(chuàng )建元件配置向導定制FIFO接口元件的方法。

2 用戶(hù)自定義IP核的開(kāi)發(fā)流程
自定義外設作為NiosII軟核處理器超強靈活性的體現,它的開(kāi)發(fā)要遵循一定的規律。一個(gè)用戶(hù)自定義外設必須用硬件描述語(yǔ)言來(lái)描述硬件的邏輯。用戶(hù)自定義IP按照對Avalon總線(xiàn)操作的不同可分為Avalon Master、Avalon Slaver和Avalon Streaming外設。由于A(yíng)valon Master和Avalon Streaming外設的開(kāi)發(fā)比Avalon Slave外設要復雜,所以用戶(hù)開(kāi)發(fā)的外設大部分為Avalon Slave外設,但是開(kāi)發(fā)流程是一樣的。典型的Avalon外設的開(kāi)發(fā)步驟如下:
(1)規劃元件的硬件功能。若采用微控制器控制該元件,則規劃訪(fǎng)問(wèn)該硬件的應用程序接口(API);
(2)在硬件和軟件要求的基礎上,定義一個(gè)恰當的接口(一般為Avalon Slave端口);
(3)使用硬件描述語(yǔ)言描述硬件邏輯。一個(gè)典型元件的硬件架構一般由接口模塊、寄存器文件模塊和行為模塊3部分組成。接口模塊作為頂層模塊,定義總線(xiàn)接口信號;寄存器文件模塊完成該元件與外部信號的通信,提供訪(fǎng)問(wèn)與控制元件的邏輯界面;行為模塊實(shí)現元件的硬件功能。片上總線(xiàn)Avalon從端口的信號都不是必須的,一個(gè)典型的Avalon從端口所包含的信號如表1所示。
a.JPG

(4)單獨驗證元件的硬件功能;
(5)寫(xiě)用于描述寄存器的C頭文件為軟件定義硬件寄存器映像;
(6)寫(xiě)元件的驅動(dòng)軟件;
(7)把通過(guò)測試的源代碼使用元件編輯器封裝硬件HDL和軟件文件,完成元件定制。
3 自定義FIFO接口的開(kāi)發(fā)
3.1 硬件構建
3.1.1 接口模塊的設計
根據FIFO的功能需要,該模塊所需的Avalon總線(xiàn)輸入信號為clk、reset n、data、full、empty信號,而模塊輸出則為rdclk、rdreq、wrreq信號。該接口模塊定義了總線(xiàn)接口信號,作為頂層模塊。
Avalon總線(xiàn)接口設計文件的端口說(shuō)明部分如下:
b.JPG
3.1.2 寄存器文件模塊
寄存器文件模塊實(shí)現與外部信號的通信,提供了訪(fǎng)問(wèn)與控制元件界面。在寄存器文件中,Avalon總線(xiàn)的地址信號有兩位,00表示讀取數據寄存器,O1表示讀取狀態(tài)寄存器,10表示寫(xiě)控制寄存器,address的11保留。在片選和讀信號的控制下,分別讀數據寄存器和狀態(tài)寄存器。在片選和寫(xiě)信號的控制下,向控制寄存器寫(xiě)入數據。


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

關(guān)鍵詞: SOPC FIFO 自定義 外設

評論


相關(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>