亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原(yuan)創(chuang)

FPGA HPS EMAC接口開發筆記(1)

2025-03-21 09:47:38
20
0
HPS(Hard Processor System)是Intel提供的一款高性能片上arm核。在Intel Agilex7系列開發板上,HPS是一個雙核Arm Cortex-A53處理器。用戶可以方便地在開發板上構建Intel Agilex SoC系統,包括HPS和FPGA。
HPS擁有3個EMAC(Ethernet Media access controller)外圍設備控制器(EMAC0、EMAC1、EMAC2)。每一個接口可以在IEEE 802.3標準下,以10/100/1000Mbps的速率進行以太網數據發送和接收。EMAC接口可以配置成mii模式或者gmii模式。同時每個接口提供了配置寄存器,以便進行接口配置。使用EMAC接口,可以方便地實現HPS系統與外界的以太網報文通信。
最近筆者接到一個需求,需要外部其他soc設備通過EMAC通道來訪問HPS,實現HPS與其他片上CPU的通信。我們的其它片上CPU通過FPGA的virtio進行數據交互,HPS的收發數據均需要導入到FPGA中或來源于FPGA。因此,需要對EMAC通道進行開發,通過EMAC通道與FPGA之間的以太網數據包傳輸,打通HPS-FPGA virtio-其他CPU之間的數據通路。本文記錄了EMAC通道開發過程的設計思想,遇到的一些問題與解決方法。開發中所使用的工具為quartus prime pro 22.4,使用開發板型號為Agilex 7。
 

1.創建帶有EMAC的HPS IP

首先,我們需要生成HPS IP,并打開HPS的EMAC通道接口。HPS的生成方法在這里不再贅述。雙擊打開hps_top的platform designer系統,選中HPS IP,然后在詳情中選擇:pin mux and peripherals -> advanced -> advanced FPGA placement,選擇EMAC 0的route to FPGA,打開EMAC0,并導入到FPGA。這里選擇接口協議為GMII協議,不需要phy。選擇完成后,點擊apply。
auto place IP顯示應當如下,HPS Quantity=0, FPGA Quantity=1。
我們在本次設計中,將EMAC通道設定為GMII協議接口。采用GMII接口協議,需要125M的時鐘。如果沒有,則需要在platform designer中新生成一個125M的clock bridge,連接到GMII的tx clk in和rx clk in。同時,emac接口和gtx clk接口要make external。
保存,并generate。現在整個HPS top已經包括了EMAC,并提供了gmii格式的接口。
接下來我們可以利用這個接口,在FPGA中實現與HPS進行以太網數據收發交互。
 

2.GMII協議EMAC接口的信號

我的工程與其他CPU進行數據交互,需要通過FPGA的virtio,而且virtio的數據接口格式是遵守Intel avalon stream協議的。因此,本文主要實現了一個GMII協議接口到avalon stream協議接口的轉接裝置。
首先,簡要介紹一下gmii接口的信號和avalon stream接口的信號。HPS采用的emac接口是1000Mbps全雙工gmii口,所需要的信號如下。
signal
i/o(相對于hps)
width
desc
gtx clk
o
1
TX時鐘
rx clk
i
1
RX時鐘
tx reset n
o
1
TX復位
rx reset n
o
1
RX復位
txd
o
8
TX數據
txen
o
1
TX發送數據有效
txer
o
1
TX發送數據錯誤
rxd
i
8
RX數據
rxdv
i
1
RX接收數據有效
rxer
i
1
RX接收數據錯誤
col
i
1
如果發生沖突則置為高
crs
i
1
載體檢測, 未處于IDEL狀態則為高電平,不與任何時鐘信號同步。
 
此外,EMAC還提供了PTP功能,我們這里的工程暫時沒有考慮。全雙工模式下,也不需要考慮col和crs信號。收發時鐘都采用125Mhz,直接從外界接入即可。因此,主要需要考慮tx和rx的6條數據信號。同時,emac通道的gmii協議需要增加前導碼和CRC32校驗。
avalon stream協議則是Intel FPGA設計中常用的驅動高帶寬、低延遲、單向數據的總線協議。其主要接口如下。在我們的工程中,數據寬度n=512。
signal
width
desc
dat
n
數據
sop
1
首包置1
eop
1
末包置1
err
1
當前包數據錯誤
vld
1
當前包數據有效
mty
n/8
末包才生效,指示最后一包中的空字節數
sbd
m
邊帶
rdy
1
對端發來,對端已經準備就緒
 
 
以上即為EMAC通道的創建方法和基本數據格式。進一步開發和設計細節詳見后續專欄。
 
 
0條評論
0 / 1000
cuixinyu
8文章數
0粉(fen)絲數(shu)
cuixinyu
8 文章 | 0 粉絲(si)
原創

FPGA HPS EMAC接口開發筆記(1)

2025-03-21 09:47:38
20
0
HPS(Hard Processor System)是Intel提供的一款高性能片上arm核。在Intel Agilex7系列開發板上,HPS是一個雙核Arm Cortex-A53處理器。用戶可以方便地在開發板上構建Intel Agilex SoC系統,包括HPS和FPGA。
HPS擁有3個EMAC(Ethernet Media access controller)外圍設備控制器(EMAC0、EMAC1、EMAC2)。每一個接口可以在IEEE 802.3標準下,以10/100/1000Mbps的速率進行以太網數據發送和接收。EMAC接口可以配置成mii模式或者gmii模式。同時每個接口提供了配置寄存器,以便進行接口配置。使用EMAC接口,可以方便地實現HPS系統與外界的以太網報文通信。
最近筆者接到一個需求,需要外部其他soc設備通過EMAC通道來訪問HPS,實現HPS與其他片上CPU的通信。我們的其它片上CPU通過FPGA的virtio進行數據交互,HPS的收發數據均需要導入到FPGA中或來源于FPGA。因此,需要對EMAC通道進行開發,通過EMAC通道與FPGA之間的以太網數據包傳輸,打通HPS-FPGA virtio-其他CPU之間的數據通路。本文記錄了EMAC通道開發過程的設計思想,遇到的一些問題與解決方法。開發中所使用的工具為quartus prime pro 22.4,使用開發板型號為Agilex 7。
 

1.創建帶有EMAC的HPS IP

首先,我們需要生成HPS IP,并打開HPS的EMAC通道接口。HPS的生成方法在這里不再贅述。雙擊打開hps_top的platform designer系統,選中HPS IP,然后在詳情中選擇:pin mux and peripherals -> advanced -> advanced FPGA placement,選擇EMAC 0的route to FPGA,打開EMAC0,并導入到FPGA。這里選擇接口協議為GMII協議,不需要phy。選擇完成后,點擊apply。
auto place IP顯示應當如下,HPS Quantity=0, FPGA Quantity=1。
我們在本次設計中,將EMAC通道設定為GMII協議接口。采用GMII接口協議,需要125M的時鐘。如果沒有,則需要在platform designer中新生成一個125M的clock bridge,連接到GMII的tx clk in和rx clk in。同時,emac接口和gtx clk接口要make external。
保存,并generate。現在整個HPS top已經包括了EMAC,并提供了gmii格式的接口。
接下來我們可以利用這個接口,在FPGA中實現與HPS進行以太網數據收發交互。
 

2.GMII協議EMAC接口的信號

我的工程與其他CPU進行數據交互,需要通過FPGA的virtio,而且virtio的數據接口格式是遵守Intel avalon stream協議的。因此,本文主要實現了一個GMII協議接口到avalon stream協議接口的轉接裝置。
首先,簡要介紹一下gmii接口的信號和avalon stream接口的信號。HPS采用的emac接口是1000Mbps全雙工gmii口,所需要的信號如下。
signal
i/o(相對于hps)
width
desc
gtx clk
o
1
TX時鐘
rx clk
i
1
RX時鐘
tx reset n
o
1
TX復位
rx reset n
o
1
RX復位
txd
o
8
TX數據
txen
o
1
TX發送數據有效
txer
o
1
TX發送數據錯誤
rxd
i
8
RX數據
rxdv
i
1
RX接收數據有效
rxer
i
1
RX接收數據錯誤
col
i
1
如果發生沖突則置為高
crs
i
1
載體檢測, 未處于IDEL狀態則為高電平,不與任何時鐘信號同步。
 
此外,EMAC還提供了PTP功能,我們這里的工程暫時沒有考慮。全雙工模式下,也不需要考慮col和crs信號。收發時鐘都采用125Mhz,直接從外界接入即可。因此,主要需要考慮tx和rx的6條數據信號。同時,emac通道的gmii協議需要增加前導碼和CRC32校驗。
avalon stream協議則是Intel FPGA設計中常用的驅動高帶寬、低延遲、單向數據的總線協議。其主要接口如下。在我們的工程中,數據寬度n=512。
signal
width
desc
dat
n
數據
sop
1
首包置1
eop
1
末包置1
err
1
當前包數據錯誤
vld
1
當前包數據有效
mty
n/8
末包才生效,指示最后一包中的空字節數
sbd
m
邊帶
rdy
1
對端發來,對端已經準備就緒
 
 
以上即為EMAC通道的創建方法和基本數據格式。進一步開發和設計細節詳見后續專欄。
 
 
文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0