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

  1. `timescale 1ns / 1ns
  2. module test_spi_reg_reader;
  3. // input clk,
  4. // input rst_n,
  5. // output reg [31:0] addr,
  6. // output reg [31:0] wr_data,
  7. // output reg wr_en,
  8. // input wire [31:0] rd_data,
  9. // input wire spi_cs_pin,
  10. // input wire spi_clk_pin,
  11. // input wire spi_rx_pin,
  12. // output reg spi_tx_pin
  13. reg clk_50m;
  14. reg rst_n;
  15. wire [31:0] addr;
  16. wire [31:0] wr_data;
  17. wire wr_en;
  18. reg [31:0] rd_data;
  19. reg spi_cs_pin;
  20. reg spi_clk_pin;
  21. reg spi_rx_pin;
  22. wire spi_tx_pin;
  23. spi_reg_reader spi_reg_reader_impl (
  24. .clk(clk_50m),
  25. .rst_n(rst_n),
  26. .addr(addr),
  27. .wr_data(wr_data),
  28. .wr_en(wr_en),
  29. .rd_data(rd_data),
  30. .spi_cs_pin(spi_cs_pin),
  31. .spi_clk_pin(spi_clk_pin),
  32. .spi_rx_pin(spi_rx_pin),
  33. .spi_tx_pin(spi_tx_pin)
  34. );
  35. // reg rst_n;
  36. // reg [31:0] rd_data;
  37. // reg spi_tx_pin;
  38. // reg clk_50m;
  39. // reg spi_cs_pin;
  40. // reg spi_clk_pin;
  41. // reg spi_rx_pin;
  42. always #10 clk_50m = ~clk_50m; //20ns 50MHZ
  43. integer i = 0;
  44. reg [63:0] txdata = 64'h88_77_66_55_44_33_82_11;
  45. initial begin
  46. rst_n <= 0;
  47. clk_50m <= 0;
  48. spi_cs_pin <= 1;
  49. spi_clk_pin <= 1;
  50. spi_rx_pin <= 0;
  51. rd_data <= 32'h11223344;
  52. #100;
  53. rst_n <= 1;
  54. #100;
  55. spi_cs_pin <= 0;
  56. #100;
  57. repeat (64) begin
  58. spi_clk_pin <= 0;
  59. spi_rx_pin <= txdata[i];
  60. #200;
  61. spi_clk_pin <= 1;
  62. i = i + 1;
  63. #200;
  64. end
  65. spi_clk_pin <= 0;
  66. #200;
  67. spi_clk_pin <= 1;
  68. #200;
  69. spi_cs_pin <= 1;
  70. #1000;
  71. $stop;
  72. end
  73. endmodule