久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1725|回復: 0
打印 上一主題 下一主題
收起左側

w5500的FPGA驅動源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:807642 發表于 2020-7-24 16:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
mspi是對網絡芯片W5500進行控制的master spi接口,rw_w5500_intfw5500是命令控制邏輯,命令格式按照w5500芯片的要求,分為地址段,控制段和數據段進行統一控制。
////////////////////////////////////////////////////////////////////////////////// module rw_w5500_intf(                                         clk,                                // global clock                                         rst,                                // global async low reset                                         rw,                                        // w5500 write/read                                          rw_done,                        // write done /read done                                          w5500_addr,                        // w5500 addr phase 16bit                                         w5500_ctl,                        // w5500 controlphase 8bit                                         w5500_wr_data,                // w5500 data        32bit                                         w5500_rd_data,                // w5500 data        32bit                                         w5500_data_len,                // w5500 data byte number:0:1BYTE 1:2BYTE 2:4BYTE                                                                                  sck,                // spi master clock out                                          sdi,                // spi master data in (MISO)                                          sdo,                // spi master data out (MOSI)                                          ss,                        // spi cs                                         ready                // spi master ready (idle)                                          ); // ======================================================== //                                         input                                clk; input                                rst; input                                rw;  input        [1:0]                w5500_data_len; input        [15:0]                w5500_addr; input        [7:0]                w5500_ctl; input        [31:0]                w5500_wr_data; output        [31:0]                w5500_rd_data;  output                                rw_done;  output                                sck; output                                sdo; output                                ready; output                                ss; input                                sdi; // ========================================================= // parameter         BYTE_NUM_1        = 0; parameter        BYTE_NUM_2        = 1; parameter        BYTE_NUM_4        = 2;  parameter        IDLE                = 0; parameter        STEP1                = 1; parameter        STEP2                = 2; parameter        STEP3                = 3; parameter        STEP4                = 4; // ========================================================= // reg                                        spi_wr; reg                [31:0]                spi_tx_data; reg                [31:0]                w5500_rd_data_reg; reg                [2:0]                state; reg                [1:0]                spi_wr_len; reg                [1:0]                rw_reg;    // ========================================================= // wire                        spi_wr_done; wire        [31:0]        spi_rddata;   (*KEEP = "TRUE" *)wire        ss        = (state==IDLE);/*synthesis keep*/ wire        rw_pos = (rw_reg[1:0] == 2'b01); wire        ready = (state==IDLE); wire        rw_done = (state==STEP4); assign        w5500_rd_data = w5500_rd_data_reg;  // ========================================================= //  mspi mspi_inst (                         .clk                (        clk                        ),                          .rst                (        rst                        ),                          .clk_div        (        4                        ),                          .wr                        (        spi_wr                ),                          .wr_len                (        spi_wr_len        ),                          .wr_done        (        spi_wr_done        ),                          .wrdata                (        spi_tx_data        ),                          .rddata                (        spi_rddata        ),                          .sck                (        sck                        ),                          .sdi                (        sdi                        ),                          .sdo                (        sdo                        ),                          .ss                        (                                ),                          .ready                (                                )     );  // --------------------------------------------------------- // always @(posedge clk or posedge rst) if(rst)   rw_reg  <= 0; else   rw_reg  <= {rw_reg[0],rw}; // --------------------------------------------------------- // always @(posedge clk or posedge rst) if(rst)         begin                 state <= IDLE;                 spi_wr <= 0;                 spi_tx_data <= 0;                 spi_wr_len <= 0;                 w5500_rd_data_reg <= 0;         end else case(state)         IDLE:                 if(rw_pos)                         begin                                 state <= STEP1;                                 spi_wr <= 0;                                 spi_tx_data <= 0;                                 spi_wr_len <= 0;                         end         STEP1:                 begin                         spi_wr <= 1'b1;                         spi_tx_data[31:16] <= w5500_addr[15:0];                         spi_tx_data[15:0] <= 0;                         spi_wr_len <= BYTE_NUM_2;                        //
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品日韩一区二区三区av动图 | 二区三区av| 观看av| 嫩草视频在线免费观看 | 国产日韩欧美在线 | 国产精品视频中文字幕 | 国产精品久久久久久久久免费樱桃 | 亚洲欧美综合精品久久成人 | 国产精品久久久久aaaa樱花 | 自拍亚洲| 日韩一区二区久久 | 亚洲精品一区二区网址 | 盗摄精品av一区二区三区 | 久草热播 | 91免费看片 | 成人深夜福利 | 国产精品久久久久久久久久久久 | 国产精品国产a | 中文字幕成人 | 亚洲精品一区二区网址 | 日本精品久久 | 日韩精品久久久久久 | 欧美午夜精品久久久久免费视 | 一级看片免费视频囗交动图 | 国产精品免费一区二区三区 | 成人在线视频免费观看 | 精品在线一区二区三区 | 久久欧美精品 | 日韩精品在线网站 | 亚洲免费大片 | 国产目拍亚洲精品99久久精品 | 又黄又色| 91视视频在线观看入口直接观看 | 久久一区二区视频 | 国产亚洲一区二区三区 | 久久久久久久久毛片 | 在线国产一区二区 | 欧美日韩在线视频一区二区 | 欧美综合色| 视频一区中文字幕 | 一级一级一级毛片 |