Github_以太网开源项目verilog-ethernet代码阅读与移植(一)

最近在做以太网方面的开发工作,在Github中发现一个优秀的Verilog以太网项目,670+ star,整个项目实现了UDP协议栈,代码质量很高,且独立实现了axis fifio等基本功能模块,每一个模块都有独立的仿真文件,仿真采用cocotb和myhdl平台,使用python来编写测试文件, 使用iverilog来进行编译,用gtkwave来查看波形,值得阅读与学习,项目链接如下:
https://github.com/alexforencich/verilog-ethernet
此外该开发者还有其他的如PCIE,NIC项目,其首页链接如下:
https://github.com/alexforencich
很敬佩该开发者能够有精力和时间来维护这么优秀的开源项目。
整个项目文件如下:
在这里插入图片描述
在example中有如下目录文件
在这里插入图片描述
以上为该以太网项目在各开发板上的具体实现,DE2-115为友晶的开发板,采用Cyclone E FPGA芯片,Arty为Xilinx FPGA开发板,使用A7 FPGA芯片等等。这些示例,需要使用对应文件中的makefile文件进行编译来生成工程文件,现在不做介绍。
下面看到lib文件夹
在这里插入图片描述
进入子文件夹rtl
在这里插入图片描述
实现了axis接口的仲裁器,多路选择器,fifo等各种基本功能模块。在tb文件夹下有python编写的测试文件和对应模块的顶层文件
在这里插入图片描述
返回主目录,在rtl文件夹有以太网各模块,包括udp层,ip层,mac层,mii接口,gmii接口,rgmii接口等。
在这里插入图片描述
在tb文件中是对应的模块的测试文件。
先看一下一个基本功能模块的axis_fifo模块的仿真过程,在ubuntu中安装要求的工具,进入lib->axis->tb文件夹
在这里插入图片描述
使用python运行对应的测试文件
在这里插入图片描述
运行后会显示仿真过程
在这里插入图片描述
运行结束后,会产生test_axis_fifo.lxt文件
在这里插入图片描述
使用gtkwave查看该.lxt文件
在这里插入图片描述
添加波形
在这里插入图片描述
当然,也可以在quartus 或者vivado中进行编译,并自定义仿真文件。后面将介绍这些模块的实现,仿真与移植。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值