久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
W5500網(wǎng)口芯片SPI傳輸時序 Verilog源碼
[打印本頁]
作者:
mwtlrf
時間:
2018-4-12 15:59
標題:
W5500網(wǎng)口芯片SPI傳輸時序 Verilog源碼
基于Xilinx K7平臺的W5500 SPI傳輸時序
開發(fā)語言為Verilog
在硬件平臺上打通,實測沒問題
支持1字節(jié)/2字節(jié)/4字節(jié)/多字節(jié)讀寫
微信截圖_20180412152850.png
(12 KB, 下載次數(shù): 109)
下載附件
2018-4-12 15:54 上傳
包含兩個文件:rw_w5500_intf.v
mspi.v
單片機源程序如下:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 12:00:49 04/12/2017
// Design Name:
// Module Name: rw_w5500_intf
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
// w5500讀寫控制及狀態(tài)機實現(xiàn)FPGA源代碼,可聯(lián)系wuh2017@163.com
//
//////////////////////////////////////////////////////////////////////////////////
module rw_w5500_intf(
input I_clk, // global clock
input I_reset, // global async low reset
input I_rw, // w5500 write/read -------------
input I_sdi, // spi master data in (MISO)
input [1:0] I_w5500_data_len, // w5500 data byte number:0:1BYTE 1:2BYTE 2:4BYTE 3:NBYTE --------
input [15:0] I_w5500_addr, // w5500 addr phase 16bit
input [7:0] I_w5500_ctl, // w5500 controlphase 8bit
input [31:0] I_w5500_wr_data, // w5500 data 32bit --------------------
output wire O_rw_done, // write done /read done
output [31:0] O_w5500_rd_data, // w5500 data 32bit
output O_sck, // spi master clock out
output O_sdo, // spi master data out (MOSI)
output wire O_scs, // spi cs
output wire O_ready, // spi master O_ready (idle)
output wire O_fifo_rd_en,
output wire O_data_rd_valid,
input [15:0]I_tx_length
);
// =========================================================
//
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;
wire W_scs;
wire [14:0] W_mspi_state;
wire sdo_tick;
(*KEEP="TRUE"*) wire W_Nbyte_rd_done = (W_scs == 0 && W_mspi_state[4:0]==0 && sdo_tick == 1);
assign O_scs = (state==IDLE);
(*KEEP = "TRUE" *)wire rw_pos = (rw_reg[1:0] == 2'b01);//本時刻1上時刻0
assign O_ready = (state==IDLE);
assign O_rw_done = (state==STEP4);
assign O_w5500_rd_data = w5500_rd_data_reg;
assign O_fifo_rd_en = ((W_mspi_state[4:0]==30) && sdo_tick == 1);
assign O_data_rd_valid = W_Nbyte_rd_done;
// =========================================================
//
mspi mspi_inst (
.I_clk ( I_clk ),
.I_reset ( I_reset ),
.I_clk_div ( 4 ),
.I_wr ( spi_wr ),
.I_wr_len ( spi_wr_len ),
.O_wr_done ( spi_wr_done ),
.I_wrdata ( spi_tx_data ),
.O_rddata ( spi_rddata ),
.O_sck ( O_sck ),
.I_sdi ( I_sdi ),
.O_sdo ( O_sdo ),
.O_scs ( W_scs ),
.O_ready ( ),
.O_state ( W_mspi_state ),
.O_sdo_tick ( sdo_tick ),
.I_tx_length( I_tx_length )
);
// ---------------------------------------------------------
//
always @(posedge I_clk or posedge I_reset)
if(I_reset)
rw_reg <= 0;
else
rw_reg <= {rw_reg[0],I_rw};
// ---------------------------------------------------------
//
always @(posedge I_clk or posedge I_reset)
if(I_reset)
begin
state <= IDLE;
spi_wr <= 0;
spi_tx_data <= 0;
spi_wr_len <= 0;
w5500_rd_data_reg <= 0;
end
else case(state)
IDLE: //0state
if(rw_pos)
begin
state <= STEP1;
spi_wr <= 0;
spi_tx_data <= 0;
spi_wr_len <= 0;
end
STEP1: //寫入數(shù)據(jù)
begin
spi_wr <= 1'b1;
spi_tx_data[31:16] <= I_w5500_addr[15:0];
spi_tx_data[15:0] <= 0;
spi_wr_len <= BYTE_NUM_2; // 地址段 16bit
if(spi_wr_done)
begin
state <= STEP2;
spi_wr <= 0;
end
end
STEP2:
begin
spi_wr <= 1'b1;
spi_tx_data[31:24] <= I_w5500_ctl[7:0];
spi_tx_data[23:0] <= 0;
spi_wr_len <= BYTE_NUM_1; // 控制段 8bit
if(spi_wr_done)
begin
state <= STEP3;
spi_wr <= 0;
end
end
STEP3:
begin//-------------------------------狀態(tài)機做出改變
spi_wr <= 1'b1;
spi_tx_data[31:0] <= I_w5500_wr_data[31:0];
spi_wr_len <= I_w5500_data_len; // 數(shù)據(jù)段 0:1BYTE 1:2BYTE 2:4BYTE 3:NBYTE提供數(shù)據(jù)前要注意將有效位放至MSB
if(spi_wr_done)
begin
state <= STEP4;
spi_wr <= 0;
end
if(spi_wr_done || W_Nbyte_rd_done)
begin
if(I_w5500_data_len==0)
begin
w5500_rd_data_reg[31:24] <= spi_rddata[7:0];
w5500_rd_data_reg[23:0] <= 0;
end
else if(I_w5500_data_len==1)
begin
w5500_rd_data_reg[31:16] <= spi_rddata[15:0];
w5500_rd_data_reg[15:0] <= 0;
end
else
begin
w5500_rd_data_reg[31:0] <= spi_rddata[31:0];
end
end
end
STEP4:
begin
state <= IDLE;
spi_wr <= 0;
spi_tx_data <= 0;
spi_wr_len <= 0;
end
default:
begin
state <= IDLE;
spi_wr <= 0;
spi_tx_data <= 0;
spi_wr_len <= 0;
w5500_rd_data_reg <= 0;
end
endcase
endmodule
復(fù)制代碼
所有資料51hei提供下載:
rtl.zip
(3.78 KB, 下載次數(shù): 160)
2018-4-12 15:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
TABURISD
時間:
2018-6-10 15:45
感謝分享
作者:
liucheng1973
時間:
2018-7-3 13:31
可以參考,不錯
作者:
xiuxi2007
時間:
2018-7-18 16:44
謝謝分享~~~
作者:
a20061475
時間:
2018-9-6 11:29
..........................................學(xué)習(xí)一下
作者:
填海wsp
時間:
2018-9-7 15:23
謝謝分享,fpga+w5500最大速度能夠多大,希望能指導(dǎo)一下
作者:
iamlangzi
時間:
2018-10-27 20:47
好東西啊
作者:
yige569
時間:
2019-1-17 13:12
支持下,目前正在搞這個開發(fā),參考下
作者:
5102067070
時間:
2019-3-15 23:24
謝謝分享.
作者:
5102067070
時間:
2019-3-15 23:25
fpga+w5500最大速度能夠到多少?能不能達到10MB/S
作者:
bbjj123
時間:
2019-7-9 13:51
不錯的資料,
作者:
cwj0123
時間:
2019-7-31 08:42
thanks a lot your sharing~~~
作者:
louguixin
時間:
2019-9-30 21:37
學(xué)習(xí)了,挺有用的
作者:
soviet000
時間:
2019-10-3 08:19
感謝分享,學(xué)習(xí)一下
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
www.精品国产
|
一区二区三区在线免费
|
99久久精品一区二区成人
|
伊人免费
|
欧美在线小视频
|
欧美片网站免费
|
97视频在线观看免费
|
中文字幕在线观看免费视频
|
欧美一区不卡
|
国产免费无遮挡
|
aa一级片
|
男女搞黄网站
|
国产精品99久久久久久久久
|
97人人看
|
亚洲精品一区二区三区精华液
|
www黄色片
|
久草视频免费
|
午夜视频网
|
国产精品成人国产乱一区
|
91精品国产成人www
|
成人伊人网
|
伊人影院综合
|
国产福利91精品一区二区三区
|
国产午夜一区二区三区
|
久久综合爱
|
激情久久网
|
亚洲免费在线观看视频
|
日韩精品免费在线观看
|
97cao
|
超碰中文字幕
|
日韩视频网
|
美丽的姑娘观看在线播放
|
日韩久久久久久
|
成人午夜视频在线观看
|
国产乱码精品一区二区三
|
国产激情久久久
|
久色成人
|
欧美在线视频播放
|
俺去俺来也在线www色官网
|
国产伦精品一区二区免费
|
日本在线免费观看
|