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

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

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

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

3862 次点击
所在节点    程序员
29 条回复
guowq
2022-09-08 23:00:07 +08:00
0 基础够呛
DragonL
2022-09-08 23:15:31 +08:00
写的时候要有硬件思维,要考虑综合后生成的是什么电路,写完之后应该还有资源和时序的优化吧,感觉和软件还是思路有些不一样
littlewing
2022-09-09 00:10:07 +08:00
@nealot 在 2 层交换机上做 QOS ?
leloext
2022-09-09 00:36:35 +08:00
看了一圈好像都没提到射频电路的部分,设计电路板的时候还要考虑杂散辐射抑制和邻道干扰抑制。
westerndream
2022-09-09 00:57:10 +08:00
0 基础够呛,其实这东西核心不在于会不会用 fpga ,会不会写代码,这些都可以短时间学起来,而是你的转发架构,0 基础的话可能最后做出来性能比较差,商用转发芯片的架构师至少得从业十年吧
mac 核应该有些开源的,基于 python 或者 Scala 语言的,但是交换架构啥的应该还是得自己弄啊,交换机应该核心的就是 qm (缓存队列管理)和查找表(转发表项),然后你要 QOS 相关还要考虑优先级调度带来的的性能、时延抖动之类的问题
楼上说的有道理,特别是架构方面,一般是要做仿真的,合理的抽象并建模,验证功能和性能,再细化方案
js8510
2022-09-09 06:26:05 +08:00
我上学时候修了一门课,需要学 verilog(另外一种 hardware description language)并实现一个玩具级别的 router (只是接通课程提供的借口做 routing, 然后教授会根据每个人最后 router performance 给大家打分)。

当时候我用了大概 3 个月,包括熟悉软件,语言,开发平台,研究算法,反复优化性能等等。 当时我的基础大概是:
- 本科拿过一些 coding 方面的小奖项。熟悉 Java, python, 会用 C 。
- 参加过数电相关的设计竞赛。设计过类似自动平衡车之类的东西。
- 我当时会 VHDL 本科学的还挺好。
YUX
2022-09-09 08:14:32 +08:00
@nealot 7 楼的意思是把 riscv 的设计 map 到 fpga 上,这样你就收获了一枚通用 cpu 然后就。。。
farah9
2022-09-09 11:31:32 +08:00
目前还没有 fpga 完整实现 tcp/ip 的吧,只搞到二层应该容易。
nealot
2022-09-09 16:33:56 +08:00
@farah9 是二层的基于 VLAN 的 QoS ,不需要 TCP/IP

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

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

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

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

© 2021 V2EX