零基础使用 FPGA 开发板实现一个四口千兆以太网交换机有多难?

2022-09-08 15:51:20 +08:00
 nealot

也可以找一个开源的 FPGA 交换机,然后看懂它的代码 (目的是在其基础上,添加特性进行算法实验)

有 C 语言基础,和一点点的数字、模拟电路基础、单片机基础

3834 次点击
所在节点    程序员
29 条回复
felixcode
2022-09-08 15:56:09 +08:00
FPGA 编程用的硬件描述语言,需要很多点点的数字电路基础。
march1993
2022-09-08 16:00:13 +08:00
很简单。。两周? RGMII 不复杂的。。
nealot
2022-09-08 16:01:04 +08:00
@felixcode 如果全职投入,估计要多少时间呢?

只需要支持基本的二层转发和 VLAN 就行
villivateur
2022-09-08 16:11:31 +08:00
FPGA 光入门就得认真学至少一个月吧?交换机的 IP 核可以用现成的,但是自己改的话,我觉得我零基础去做,估计得全职干两三个月
felixcode
2022-09-08 16:17:12 +08:00
@nealot
不好说,你先把 fpga 开发流程走一遍吧,写个简单的数字逻辑,这样也能有个概念。
如果不画板子的话,主要难度是数字电路设计,跟软件编程思路完全不一样。
402645707
2022-09-08 16:22:37 +08:00
你直接移植一个 Risc-V 核去做的话可能不到一周....
nealot
2022-09-08 16:34:22 +08:00
@402645707 可以描述得更具体一些吗

Risc-V 不是类似 ARM 的传统型 CPU 吗,和 FPGA 的关系是什么呢?
elboble
2022-09-08 16:47:05 +08:00
一般是买 IP 核,没人从零开始,跟写代码一样,用现成的包
sujin190
2022-09-08 16:54:49 +08:00
FPGA 的编程语言和 c 可是完完全全不一样的,习惯了 c 的话估计也很难理解 FPGA 咋回事,或者你可以先搞个板子来先玩一下
402645707
2022-09-08 17:14:42 +08:00
@nealot 你可以考虑先把 FPGA 的概念、常用 IP 核和外设过一下。、
了解 FPGA:
https://nandland.com/fpga-101/
手撕常用逻辑器件:
https://hdlbits.01xz.net/wiki/Main_Page
现成的开源交换机交换机
https://github.com/MeshSr/ONetSwitch
大清的组成原理课程:
https://lab.cs.tsinghua.edu.cn/cod-lab-docs/labs/1-overview/
geekvcn
2022-09-08 17:20:00 +08:00
如果你能如二楼所述零基础两个月自己开发完成,各大云服务商和网络硬件商会抢着继续培养你。如果用现成的 IP 包,且只实现转发和 VLAN ,我建议你直接买现成的交换机,不要浪费时间和金钱。
nealot
2022-09-08 17:41:51 +08:00
@geekvcn 主要目的不是实现标准的转发,而是在其基础上实验其它算法,用于研究和展示

用 dpdk 延迟可能有点太高了
nealot
2022-09-08 17:42:16 +08:00
@nealot 主要是和 QoS 相关的调度和整形算法
felixcode
2022-09-08 18:27:09 +08:00
@nealot
你这需求用 Linux 内核模块去做可能更合适,FPGA 做算法难度高局限性大,上手周期会很长,当然做好了加速效果也很明显。
felixcode
2022-09-08 18:37:03 +08:00
@nealot
另外哪怕是一定要用 FPGA 实现,也需要用软件先验证算法再针对 FPGA 编程的,不会一上来就用 FPGA 实现的。
aaniao002
2022-09-08 18:53:46 +08:00
我记得有两门开发语言,选一门用即可,语言熟悉了和写 c 区别不大。主要是理解 fpga 为什么这么写,以及实际交换机的功能的实现原理要的时间长,并且最后实验用开发板可能存不下这些程序。毕业设计的话你选个简单点的,什么音乐播放呀什么的就好。
aaniao002
2022-09-08 18:57:44 +08:00
对哦,你了解过你要写的是 2 层交换机还是 3 层吗?要不写个 hub 吧,这个快。 ^_^
geekvcn
2022-09-08 19:12:28 +08:00
@nealot dpdk 延时都高,什么应用场景延时这么敏感? dpdk 处理千兆小包线速转发小菜一碟啊,感觉作为基础 OVS+DPDK 完全满足需求啊,另外 OVS 也支持 OpenCL ASIC FPGA 加速。
fonlan
2022-09-08 22:46:22 +08:00
@nealot 基于 vlan priority 的自定义 QoS?如果是基于 IP 层或者更高层的 QoS 的话那就不是普通二层交换机了,一般交换机不会解 IP 层数据的。
lambdaq
2022-09-08 22:52:23 +08:00
我觉得 fpga 不难,难的是你要在上面实现一个 tcp/ip 栈。。除非你找现成。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/878653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX