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
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
|