路由与交换实验——2进3出端口配置
一、 实验目的
- 熟悉NetMagic08的硬件编程方式;
- 基于 NetMagic08 搭建实验环境,包括 NetMagic08 的安装、Quartus 与 NetMagic08的对接
- 使用 Quartus设计硬件逻辑
- 了解FPGA编程基础
二、 实验内容
1. 基础要求:
在UM_my/UM.v中使用Verilog语言编写一个模块让NetMagic08实现2口进3口出的基本功能。
2. 扩展要求:
在实现了实验内容1后,改写程序实现从NetMagic08 的2端口进入的包转发至所有端口;所有端口进入的包都转发到2号端口
3. 项目1验收要求:
将两台电脑分别连接2口和3口,设置好同网段的IP地址后互相进行ping操作,能ping通说明硬件编写成功。PS:该实验使用的是千兆端口,需要两台电脑支持千兆网口
4. 项目2验收要求:
任意端口可以互联,互相能够ping通。
三、 实验环境
- 1台管理节点主机;1台主机A;(分别连接到2口和3口);
- 2根网线;
- NetMagic08开发平台;
- 软件Quartus 16。主机及网络详细配置参照附带的实验环境拓扑及软件配置文档。
四、 实验步骤
我们首先完成基础要求,实现2进3出的功能配置。
项目1:
Step1. 使用Quartus 打开 in2out3目录下的硬件工程项目etFPGAmini-2-3.qpf
Step2. 在工程项目中,打开文件列表对UM.v文件进行编写(用户模块文件)
Step3.在UM.v文件中增加一个新的处理逻辑,在一个always@(posedge clk or negedgereset)逻辑中完成端口2进端口3出的硬件设计:
主要是通过if判断语句实现对数据包的处理,在得知了数据报的端口号之后,进入子if判断语句进行判断,将从2号端口进入的数据包发送到3号端口,将从3号端口进入的数据包发送到2号端口,从而实现了2号和3号端口的双向互通;最后,对于其他情况,我们不转发。
Step4. 点击编译命令,对代码进行编译,软件会完成硬件电路的设计和优化,生成和工程名同名的sof文件;点击图中的蓝色箭头即可进行编译。编译时间可能会较长。
Step5.将sof文件下载到NetMagic08中进行硬件调试
下载完毕后,我们使用网线将两台PC与NetMagic设备相连接,在设置了各自的静态IP地址后,使用命令行名ping命令,查看是否连通。
我们将两台计算机的一台IP设置为:169.254.78.34;另一台设:169.254.30.65
从169.254.78.34 顺利ping通169.254.30.65(此时 169.254.78.34 连接2口,169.254.30.65连接3口)
再从169.254.30.65 ping 169.254.78.34,发现顺利ping通。
至此项目实现2进3出的代码顺利调试成功。
五、 实验思考
项目2完成后3号口和4号口能否联通?
答案是可以。当完成项目2:n进n出的端口配置之后,3号口与4号口是能进行转发的,n可以取1、2、3、4其中一个值,因此是能联通的。