在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP和UDP協議的實現方法

FPGA之家 ? 來源:FPGA之家 ? 2023-08-30 10:46 ? 次閱讀

目前TCP協議大多由cpu跑代碼實現, 這次用FPGA的純邏輯實現 , System Verilog編寫,下面給大家粗略講一下我的實現方法,下面是工程的示意圖.

720501b6-46db-11ee-a2ef-92fbcf53809c.jpg

這個工程由幾部分組成, 外部使用了88e1111千兆以太網phy。FPGA內部有幾個大的模塊,

頂層模塊:

//////////////////////////////////////////////////////////////////////

//// ////

////tcpip_hw ////

//// ////

////Description ////

//// top module ////

//// ////

////Author(s): ////

//// - bin qiu, qiubin@opencores.org orchat1@126.com ////

//// ////

//// Copyright (C) 2015 ////

//////////////////////////////////////////////////////////////////////

`include "tcpip_hw_defines.sv"

module tcpip_hw(

input clk,

input rst_n,

output mdc,

inoutmdio,

output phy_rst_n,

output is_link_up,

input [7:0] rx_data,

output logic [7:0] tx_data,

input rx_clk,

input rx_data_valid,

output logic gtx_clk,

inputtx_clk,

output logic tx_en,

//user interface

input [7:0] wr_data,

input wr_clk,

input wr_en,

output wr_full,

output [7:0] rd_data,

input rd_clk,

input rd_en,

output rd_empty

);

。。。。

(由于微信字數限制,此處省去200多行代碼,可以點擊閱讀原文查看)

1. 與外部phy芯片通信的模塊,simple_mac模塊。

主要功能是通過mdio配置phy, 給發送幀打包(加入preamble,padding和crc32),和接收幀解包。下面是頂層代碼:

//////////////////////////////////////////////////////////////////////

//// ////

////simple_mac_top ////

//// ////

////Description ////

//// top module of simple mac ////

//// ////

////Author(s): ////

//// - bin qiu, qiubin@opencores.org orchat1@126.com ////

//// ////

//// Copyright (C) 2015 ////

//////////////////////////////////////////////////////////////////////

module simple_mac_top(

input clk,

input rst_n,

output mdc,

inputmdio_in,

output mdio_out,

output mdio_oe,

output phy_rst_n,

input [7:0] rx_data,

output logic [7:0] tx_data,

input eth_mode,

input rx_clk,

input tx_clk,

input clk125out,

output tx_en,

inputrx_data_valid,

input [7:0] reg_addr,

input reg_wr,

input [31:0] reg_wr_data,

input reg_rd,

output [31:0] reg_rd_data,

output reg_busy,

inputff_rx_clk,

output [31:0] ff_rx_data,

output ff_rx_eop,

output ff_rx_sop,

output rx_err,

output ff_rx_dval,

inputff_rx_rdy,

input ff_tx_clk,

input [31:0] ff_tx_data,

input ff_tx_eop,

input ff_tx_sop,

input ff_tx_wren,

output ff_tx_rdy

);

(由于微信字數限制,此處省去200多行代碼,可以點擊閱讀原文查看)

2. mac_config

這個模塊主要是配置phy芯片寄存器的。

3. Rx Path

這個模塊負責從simple_mac接收數據,然后提交給eth_fsm的。下面是接口列表.

input rst_n,

ff_rx_if.s if_rx,

headers_if if_headers_rx,

output frame_type_t rx_type,

output logic rx_done,

output logic [31:0] data_recv,

output logic data_recv_start,

output logic data_recv_valid,

output logic [15:0] data_recv_len,

output u32_t cur_ripaddr,

output u16_t cur_rport,

input rx_done_clear,

input [31:0] local_ipaddr,

input [31:0] remote_port_local_port

接口列表里有2個interface,

if_rx是與simple_mac連接的接口。

if_headers_rx是保存各種header并提供給eth_fsm的,如mac_header, arp_header,ip_header,udp_header,tcp_header。

rx_done是一幀接收完的信號并提供給eth_fsm。

中間一段用來從一幀中提取數據并提供給eth_fsm 。

下面是配置ip地址和收發端口號的。

4. Tx Path

這個模塊從eth_fsm取得數據和各種header,并發送給simple_mac, 下面是接口

input rst_n,

ff_tx_if.s if_tx,

headers_if if_headers_tx,

input frame_type_t tx_type,

input tx_start,

input [13:0] tx_dword_count,

output logic fifo_rdreq,

input [31:0] fifo_q

其中if_tx是與simple_mac的接口, if_headers_tx是從eth_fsm來的各種header,

tx_type是幀的類型,目前支持ARP, ICMP,TCP,UDP。

tx_start是一幀傳輸開始的信號。

tx_dword_count是發送的字節數除以4 。

fifo_rdreq和fifo_q是從eth_fsm來的數據。

5. eth_fsm

這是整個工程的核心, 是處理協議的狀態機和控制數據的流動,下面是接口

input clk,

input rst_n,

input is_link_up,

headers_if if_headers_rx,

input frame_type_t rx_type,

input rx_done,

headers_if if_headers_tx,

output frame_type_t tx_type,

output logic tx_start,

input [31:0] data_recv,

input [15:0] data_recv_len,

input data_recv_valid,

input data_recv_start,

output logic rx_done_clear,

input u32_t cur_ripaddr,

input u16_t cur_rport,

rx_ram_in_if.m if_rx_ram_in,

tx_ram_out_if.m if_tx_ram_out,

input [31:0] remote_port_local_port,

input [31:0] local_ipaddr,

input fifo_rdreq,

output [31:0] fifo_q,

input pkt_send_eop,

output logic [13:0]tx_dword_count,

output logic init_done

由于這個模塊過于復雜,就不介紹了。

6. data_source

這個模塊提供了與用戶模塊的接口

input rst_n,

input init_done,

input [7:0] wr_data,

input wr_clk,

input wr_en,

output wr_full,

output [7:0] rd_data,

input rd_clk,

input rd_en,

output rd_empty,

tx_ram_in_if.m if_tx_ram_in,

rx_ram_out_if.s if_rx_ram_out

其中wr開頭和rd開頭的都是對外提供的fifo接口,分別用來寫和讀內部的發送FIFO和接收FIFO.

目前實現情況

目前udp協議可以基本全速運行,但是有丟包的情況,需要有個確認機制。

tcp協議只實現了最基本的功能,能夠通信。窗口管理和慢啟動,擁塞避免等特性還在完善中,速度只能達到200多M。

對這個工程的介紹就到這里了,希望對大家有用。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21801

    瀏覽量

    606355
  • 千兆以太網
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13927
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1379

    瀏覽量

    79341
  • UDP
    UDP
    +關注

    關注

    0

    文章

    328

    瀏覽量

    34060
  • TCP協議
    +關注

    關注

    1

    文章

    101

    瀏覽量

    12127

原文標題:千兆以太網 TCP, UDP協議, FPGA實現

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TCP協議UDP協議對比 UDP協議的原理及應用

    對延時或抖動要求很高的情景下并不適用。為此,UDP(User Datagram Protocol,用戶數據報協議)被提出。UDP雖然應用較為廣泛,比如DNS查詢等,但一直不是重要的角色。自從WebRTC被提出以來,它可以使瀏覽器
    的頭像 發表于 10-26 15:05 ?3513次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>和<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>對比 <b class='flag-5'>UDP</b><b class='flag-5'>協議</b>的原理及應用

    TCP協議UDP協議的區別有哪些

    無法實現;(3)TCP 協議有效載荷小于 UDP 協議(基于 MSS 計算),UDP 性能高于
    發表于 08-06 08:43

    TCPUDP協議簡析

    一、前言TCPUDP協議TCP/IP協議的核心。TCP (Transmission Cont
    發表于 12-15 08:13

    通訊協議TCPUDP協議使用方法

    通訊協議TCPUDP協議UDP會把數據一股腦兒地發送出去,并不會在意是否全部收到,適用于廣播類型多對多通訊類型,缺點是具有一定的丟包率
    發表于 01-21 14:53

    (WiFi干貨)WiFi模塊的TCPUDP協議

    TCP/UDP協議的WiFi模塊目前SKYLAB的做主的WIFI模塊,大部分都可以實現TCPUDP
    的頭像 發表于 09-11 09:02 ?3w次閱讀

    tcpudp協議的異同

    UDP 校驗和則是包含 UDP 首部和數據在內的校驗結果。 TCP協議 TCP協議基于網絡層的
    的頭像 發表于 11-12 14:45 ?4151次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b><b class='flag-5'>協議</b>的異同

    TCP協議UDP協議的區別和相同點有哪些 一文看懂TCP協議UDP協議的優缺點

    首先咱們弄清楚,TCP協議和UCP協議TCP/IP協議的聯系,很多人犯糊涂了,一直都是說TCP
    的頭像 發表于 05-26 14:35 ?9957次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>的區別和相同點有哪些 一文看懂<b class='flag-5'>TCP</b><b class='flag-5'>協議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>的優缺點

    TCPUDP協議的區別

    最近重新認知了一下TCPUDP的原理以及區別,做一個簡單的總結。
    發表于 11-03 10:25 ?911次閱讀

    TCP協議UDP協議的區別

    TCP/IP協議中有兩個具有代表性的傳輸層協議,分別是TCP協議UDP
    的頭像 發表于 03-21 10:39 ?1228次閱讀

    TCP協議UDP協議最核心的區別是什么?

    對于TCP協議UDP協議,大家應該都有所耳聞。TCP協議
    發表于 06-15 09:37 ?743次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>和<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>最核心的區別是什么?

    UDP能否像TCP一樣實現可靠傳輸?

    連接的協議,基于字節流的傳輸方式。它通過確認和重傳等機制來保證數據的完整性和順序性,實現數據包的可靠傳輸。UDPTCP的主要區別但在某些運用場景下,使用
    的頭像 發表于 06-08 14:50 ?977次閱讀
    <b class='flag-5'>UDP</b>能否像<b class='flag-5'>TCP</b>一樣<b class='flag-5'>實現</b>可靠傳輸?

    udp是什么協議 TCPUDP的區別

    TCP協議提供可靠的數據傳輸,UDP協議提供盡量高效的數據傳輸。TCP協議通過使用序列號、確認應
    的頭像 發表于 06-26 17:47 ?1.2w次閱讀

    TCP/IP協議進階課程:5、UDP協議

    電子發燒友網站提供《TCP/IP協議進階課程:5、UDP協議.pdf》資料免費下載
    發表于 07-31 11:48 ?0次下載
    <b class='flag-5'>TCP</b>/IP<b class='flag-5'>協議</b>進階課程:5、<b class='flag-5'>UDP</b><b class='flag-5'>協議</b>

    UDPTCP的主要區別 UDP能否像TCP一樣實現可靠傳輸?

    UDPTCP的主要區別 UDP能否像TCP一樣實現可靠傳輸?TCP如何
    的頭像 發表于 01-22 16:10 ?875次閱讀

    TCP協議UDP協議的區別

    1. 連接性 TCP(傳輸控制協議) : 面向連接 :在數據傳輸之前,TCP需要建立一個連接,這通過三次握手過程完成。 可靠性 :一旦連接建立,TCP確保數據的可靠傳輸,通過確認和重傳
    的頭像 發表于 01-22 09:44 ?143次閱讀
    主站蜘蛛池模板: 夜夜夜夜爽 | 色综合天天 | youjizz国产| 99pao强力打造免费高清色 | 6080伦理久久精品亚洲 | 男人午夜禁片在线观看 | 在线看片成人 | 欧美精品专区55页 | 日本一区二区视频在线观看 | 五月婷婷丁香 | fenfencao在线观看免费视频 | 特级毛片aaaaaa蜜桃 | 在线成人免费 | 日本人xxxxxxxxxⅹ69 | 日韩 ed2k| 亚洲欧美综合一区二区三区四区 | 天天在线天天看成人免费视频 | 欧美性猛交ⅹxxx乱大交免费 | 高清国产下药迷倒美女 | 操天天 | 免费看大尺度视频在线观看 | 黄 色 片 在 线 看 | 国产精品国产三级在线高清观看 | 狼狼色丁香久久女婷婷综合 | 狠狠干狠狠艹 | 手机免费在线视频 | 97色吧| 天堂资源吧 | 乱码中文字幕人成在线 | 在线观看视频在线观看 | 特黄特黄特色大片免费观看 | 国产小视频在线免费 | 免费网站你懂得 | 久久激情五月 | 曰韩一级| 国产精品黄网站免费观看 | h网站国产 | 亚洲免费色图 | 97色在线视频| 亚洲免费区 | 国产老肥熟xxxx |