You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

90 lines
1.7 KiB

`timescale 1ns / 1ns
module test_spi_reg_reader;
// input clk,
// input rst_n,
// output reg [31:0] addr,
// output reg [31:0] wr_data,
// output reg wr_en,
// input wire [31:0] rd_data,
// input wire spi_cs_pin,
// input wire spi_clk_pin,
// input wire spi_rx_pin,
// output reg spi_tx_pin
reg clk_50m;
reg rst_n;
wire [31:0] addr;
wire [31:0] wr_data;
wire wr_en;
reg [31:0] rd_data;
reg spi_cs_pin;
reg spi_clk_pin;
reg spi_rx_pin;
wire spi_tx_pin;
spi_reg_reader spi_reg_reader_impl (
.clk(clk_50m),
.rst_n(rst_n),
.addr(addr),
.wr_data(wr_data),
.wr_en(wr_en),
.rd_data(rd_data),
.spi_cs_pin(spi_cs_pin),
.spi_clk_pin(spi_clk_pin),
.spi_rx_pin(spi_rx_pin),
.spi_tx_pin(spi_tx_pin)
);
// reg rst_n;
// reg [31:0] rd_data;
// reg spi_tx_pin;
// reg clk_50m;
// reg spi_cs_pin;
// reg spi_clk_pin;
// reg spi_rx_pin;
always #10 clk_50m = ~clk_50m; //20ns 50MHZ
integer i = 0;
reg [63:0] txdata = 64'h88_77_66_55_44_33_82_11;
initial begin
rst_n <= 0;
clk_50m <= 0;
spi_cs_pin <= 1;
spi_clk_pin <= 1;
spi_rx_pin <= 0;
rd_data <= 32'h11223344;
#100;
rst_n <= 1;
#100;
spi_cs_pin <= 0;
#100;
repeat (64) begin
spi_clk_pin <= 0;
spi_rx_pin <= txdata[i];
#200;
spi_clk_pin <= 1;
i = i + 1;
#200;
end
spi_clk_pin <= 0;
#200;
spi_clk_pin <= 1;
#200;
spi_cs_pin <= 1;
#1000;
$stop;
end
endmodule