searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

PDS使用emac IP的几点注意事项

2025-11-28 09:35:56
1
0

Pango Design Suite(简称PDS)是国产FPGA厂商紫光同创自主研发的开发环境。使用PDS进行开发时,可以调用emac IP核,方便地使用紫光FPGA开发板的高速串行收发器hsstvp。高速串行收发器可以作为以太网网口使用,也可用作其他多种用途。不过,使用EMAC IP核时,需要注意多种问题。作者在初次使用EMAC时遇到几点注意事项,在此列出以作参考。

1、用户的接口格式

EMAC的用户接口提供了3种,即user接口,packet接口,axi4-stream接口。实际使用时,可以根据自己的需要,选择发包收包的接口。

2、IP核仿真不能拉起

我们在linux机器上,使用vcs仿真emac IP。IP核生成时,自带相关仿真文件。在初次仿真时,发现IP核始终不工作,检查所有输入接口正确也不行。

经过查阅资料和询问fae,EMAC IP的仿真初始化文件需要正确载入。初始化文件有common和fast两种hex文件,我们一般使用fast就可以。不论使用哪一个初始化文件,都必须要在IP核内部的文件中指定正确的路径。以使用fast文件为例,

(1)在makefile中增加仿真宏

2.png

(2)打开IP核的rtl目录,找到rtl/hsstvp/ipsxf2_emac_hsst_lane/ipsxf2_emac_hsst_25x1_pma_64.v 文件,搜索COMMON_CFG_TXT_FILE,初始化文件路径要给对,要是相对于makefile的路径,或者是绝对路径。这里的文件名可能会根据生成IP的不同有一些区别,初始化文件在./config_files里边。

3.png

这样增加之后再执行仿真,则可以将IP核拉起。

3、时钟和复位的连接

EMAC IP包括多个时钟和复位接口,需要全部正确连接。复位逻辑要在仿真开始时就复位,随后经过一段时间后解复位。基本接口连接如下:

时钟和复位接口 连接内容
i_free_clk 片上free clk
i_refclk_p / n 网口参考时钟
i_hsst_cfg_rstn 复位端口
i_hsst_clk_csr 片上free clk
i_clk_csr_* 每一道的时钟,接片上free clk
i_rstn_clk_csr_* 每一道的复位,接复位端口

4、发送数据截断

实际使用了的时候,我们发现发送小包可以正常仿真通过,发送大包时数据会被截断。经过统计和观察,单个包最多发送2K字节,EMAC IP核就将包强制切断并输出,丢弃该包剩余数据。经过查询资料,需要IP核配置寄存器,修改最大单包长度限制。通过APB接口写寄存器基地址0x0,偏移0xc的看门狗寄存器为0xe,可以将最大长度限制到16KB,防止看门狗将报文截断。通过i_hsst接口进行配置。

5、CRC的启用和关闭

EMAC IP核默认带CRC功能,自动添加和剥离报文CRC。如果不需要,可以通过修改IP核顶层文件emac.v来关闭。

(1)COREX_CFG_MAC_CRC_STRIP_ACS改成false

(2)COREX_ONLY_STRIP_CRC改成true

0条评论
0 / 1000
cuixinyu
10文章数
0粉丝数
cuixinyu
10 文章 | 0 粉丝
原创

PDS使用emac IP的几点注意事项

2025-11-28 09:35:56
1
0

Pango Design Suite(简称PDS)是国产FPGA厂商紫光同创自主研发的开发环境。使用PDS进行开发时,可以调用emac IP核,方便地使用紫光FPGA开发板的高速串行收发器hsstvp。高速串行收发器可以作为以太网网口使用,也可用作其他多种用途。不过,使用EMAC IP核时,需要注意多种问题。作者在初次使用EMAC时遇到几点注意事项,在此列出以作参考。

1、用户的接口格式

EMAC的用户接口提供了3种,即user接口,packet接口,axi4-stream接口。实际使用时,可以根据自己的需要,选择发包收包的接口。

2、IP核仿真不能拉起

我们在linux机器上,使用vcs仿真emac IP。IP核生成时,自带相关仿真文件。在初次仿真时,发现IP核始终不工作,检查所有输入接口正确也不行。

经过查阅资料和询问fae,EMAC IP的仿真初始化文件需要正确载入。初始化文件有common和fast两种hex文件,我们一般使用fast就可以。不论使用哪一个初始化文件,都必须要在IP核内部的文件中指定正确的路径。以使用fast文件为例,

(1)在makefile中增加仿真宏

2.png

(2)打开IP核的rtl目录,找到rtl/hsstvp/ipsxf2_emac_hsst_lane/ipsxf2_emac_hsst_25x1_pma_64.v 文件,搜索COMMON_CFG_TXT_FILE,初始化文件路径要给对,要是相对于makefile的路径,或者是绝对路径。这里的文件名可能会根据生成IP的不同有一些区别,初始化文件在./config_files里边。

3.png

这样增加之后再执行仿真,则可以将IP核拉起。

3、时钟和复位的连接

EMAC IP包括多个时钟和复位接口,需要全部正确连接。复位逻辑要在仿真开始时就复位,随后经过一段时间后解复位。基本接口连接如下:

时钟和复位接口 连接内容
i_free_clk 片上free clk
i_refclk_p / n 网口参考时钟
i_hsst_cfg_rstn 复位端口
i_hsst_clk_csr 片上free clk
i_clk_csr_* 每一道的时钟,接片上free clk
i_rstn_clk_csr_* 每一道的复位,接复位端口

4、发送数据截断

实际使用了的时候,我们发现发送小包可以正常仿真通过,发送大包时数据会被截断。经过统计和观察,单个包最多发送2K字节,EMAC IP核就将包强制切断并输出,丢弃该包剩余数据。经过查询资料,需要IP核配置寄存器,修改最大单包长度限制。通过APB接口写寄存器基地址0x0,偏移0xc的看门狗寄存器为0xe,可以将最大长度限制到16KB,防止看门狗将报文截断。通过i_hsst接口进行配置。

5、CRC的启用和关闭

EMAC IP核默认带CRC功能,自动添加和剥离报文CRC。如果不需要,可以通过修改IP核顶层文件emac.v来关闭。

(1)COREX_CFG_MAC_CRC_STRIP_ACS改成false

(2)COREX_ONLY_STRIP_CRC改成true

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0