完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
各位大家好,我正在寻找用VHDL语言编写的UDP / IP堆栈(我必须在Spartan-6 FPGA中实现它)。
我正在寻找一个尽可能简单的功能:使用VHDL语言编写,而不是Verilog - 在Spartan-6中实现 - 不使用其他处理器或设备(如Microblaze,PowerPC等 ) - 没有使用外部存储器,没有DDR或外部端口,应该只使用分布式存储器或块ram,没有其他可能性 - 显然免费的UDP / IP堆栈是最好的,但也许可一个可能很好在任何地方UDP / IP堆栈有这些功能吗?非常感谢! |
|
相关推荐
39个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
抱歉,我刚刚意识到我已修改您的代码以使用我的KSZ9021的RGMII标准。
通过MAC 你指的是88E1111芯片? 啊,如果你修改了MAC,那我就不知道出了什么问题! ;-) MAC是“simple_gemac”目录下的所有内容。 88E1111和KSZ9021都是PHY。 在原始代码中,在simple_gemac_tx.v中传输期间计算CRC: crc crc(.clk(tx_clk),. reset(reset),。clear(clear_crc), .data(txd_pre),. calc(calc_crc),. crc_out(crc_out)); 并在此位输出到导线: 情况下(tx_state) TX_CRC_0: GMII_TXD 检查您的模拟以查看是否正确访问了这些状态。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你好!
经过一点编辑* .ucf文件和PLL核心设置后,我可以在SP605评估套件上执行这个UDP堆栈。 Iperf实用程序在更改包发送模式后显示550-570 Mbps带宽(从手动到强制 - 在顶级模块中我更改packet_sender(... .start(sw_send_packet),....); to.start(1'b1 ))。 但wireshark用[ETHERNET FRAME CHECK SEQUENCE INCORRECT]标记显示输入数据报。 请告诉我,我做错了什么? 我也试过接收UDP数据报(主机发送广播数据包),但是包经过FSM总是处于状态0 ...有什么想法? 最好的祝福 |
|
|
|
|
|
|
|
|
|
|
|
嗨,joelby!
感谢您的回复。 起初我在Qt 4.8.5框架中使用QUdpSocket类将数据报发送到我的开发板,但是我遇到了一些问题(wireshark没有显示发件箱数据报 - 可能是因为无法获取收件人的MAC地址 - 它不是 在ARP表中我认为,在使用的堆栈中没有实现响应ARP请求到设备的MAC地址)我只能发送广播数据报。 你回复后我使用了Colasoft Packet Builder 1.0 [http://www.colasoft.com/packet_builder/]来发送数据包。 在学习了你的testbenchtb_packet_receiver_gemac.v后,我发现我的代码中出现了错误 - 我忘了改变ucast_addr! 在我更改参数forwb_reg_ucast_h和wb_reg_ucast_l inmodule simple_gemac_wb后,我看到PuTTY实用程序中发送的数据以串行模式连接到SP605。 再次感谢您的回复:) 最好的祝福! |
|
|
|
|
|
|
|
|
|
|
|
嗨,我正在使用你的udp_ip代码,但我不知道如何将数据发送到atlys,使用linux,s socket或其他,你是怎么做到的?
|
|
|
|
|
|
对于调试或简单应用程序,'netcat'程序非常适合发送UDP数据包。对于任何更复杂或更健壮的程序,最好用您选择的语言编写程序。
|
|
|
|
|
|
谢谢你的回复,我尝试使用netcat,我的linux安装在vmware中,我的linux net ipaddr是192.168.2.112,硬件是000c_29e9_cf6b,因为我的主板是atlys,所以我只是在packet_sender中修改你的代码,如下所示:
参数SRC_PORT = 16'h1234;参数DST_PORT = 16'h1234;参数SRC_MAC = 48'h0037_ffff_3737;参数DST_MAC = 48'h000c_29e9_cf6b;参数DST_IP = 32'hc0a8_0170;参数SRC_IP = 32'hc0a8_0171; 然后生成ethernet_test_top.bit,并下载到我的atlys板,用网络连接到我的电脑,然后 在linux consoleas中键入命令如下: nc -l -p 1234 然后键入一些数据,我发现它不起作用,然后我输入以下命令: nc 192.168.1.10 1234 -u -p 1234 而且,它也没有工作。我真的不知道怎么做,哪里出错了,你能给我一些建议吗? 非常感谢你! |
|
|
|
|
|
对不起,这不是更好的文件:(我已经更新了网站的一些更多细节。
数据包接收者进程不实现ARP,因此您需要设置静态ARP条目: arp -s 169.254.77.1 0037ffff3737 IP地址并不重要(数据包接收器不检查它)但它需要与您的计算机位于同一子网中。 MAC地址设置为默认insimple_gemac_wb.v。 然后nc -u 192.168.1.10 1234应该工作! 港口并不重要。 您还应该能够接收带有nc -l -u的数据包,但我不记得它是否发送了任何非常有用的信息..可能最容易使用Wireshark或tcpdump。 |
|
|
|
|
|
嗨Joel& kruljcina,
我已经购买了AC701 Evaulation板,并打算通过以太网从它发送UDP数据包。 它使用的PHY模块是Marvell M88E1116r(即RGMII)。 我想知道你是否有人成功实现了RGMII的UDP传输,以便我可以将代码用于我的目的。我将非常感谢有关实现此IP的任何指导。 问候,Sameed |
|
|
|
|
|
如果你开始一个新的线程,而不是复活一个与不同的FPGA和不同的PHY相关的旧线程,这可能是最好的!
我从未尝试过使用RGMII,但只要你在经过验证的开发板(例如AC701)上使用支持RGMII的MAC,就不会有太多麻烦。 我可能建议使用Xilinx TEMAC - 我的Spartan-6示例代码使用的MAC仅支持千兆位速度的GMII。 您可以使用我的代码的UDP数据包生成器来获取灵感和IP / UDP标头生成的详细信息,但请注意,Xilinx MAC(可能还有其他所有MAC)的接口将有所不同。 |
|
|
|
|
|
嗨,
vau,那是很久以前的事了。 我做了一个非常难看的黑客 原始代码。 因为我,我的效率不高 设法只传输到工作,接收分支 有一个错误,我从来没有时间追查。 我将我的GMII基于RGMII转换器: Rgmii适应模块由Ting Kao和Mary Low编写 我不确定是否可以发布他们的模块,但你可以找到它 谷歌很容易。 最好的祝福 |
|
|
|
|
|
嗨,
我叫Mohith。 我是一名有兴趣在kintex板上实现UDP IPCore以支持10G以太网的学生。 我有一个初学者关于fpga,verilog和IP堆栈的想法; 因为我是这个领域的新手。 能否请教我如何从头开始实施。 干杯 mohith |
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3142 浏览 7 评论
3436 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2897 浏览 9 评论
4097 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
3082 浏览 15 评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
1359浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
1197浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 17:49 , Processed in 1.266888 second(s), Total 109, Slave 92 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
17392
