SRAMr.v 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. module SRAMr #(
  2. parameter CmdRegWidth = 32,
  3. parameter AddrRegWidth = 12
  4. ) (
  5. input Clk123_i,
  6. // input Clk50_i,
  7. input [AddrRegWidth-2:0] Addr_i,
  8. inout [CmdRegWidth/2-1:0] Data_i,
  9. // input Start_i,
  10. input writeEn_i,
  11. input readEn_i,
  12. input [1:0] BE_i,
  13. input outputEn_i,
  14. // output wire fullFlag,
  15. // output wire emptyFlag,
  16. output Led_o
  17. );
  18. //================================================================================
  19. // REG/WIRE
  20. //================================================================================
  21. wire wrEn;
  22. wire rdEn;
  23. wire Rst_i;
  24. wire [CmdRegWidth/2-1:0] data;
  25. wire [AddrRegWidth-1:0] addr;
  26. wire mosi0;
  27. wire mosi1;
  28. wire mosi2;
  29. wire mosi3;
  30. wire sck;
  31. wire ss;
  32. //================================================================================
  33. // ASSIGNMENTS
  34. //================================================================================
  35. assign addr = {Addr_i, 1'b0};
  36. assign Data_i = (!outputEn_i) ? data : 16'bz;
  37. //================================================================================
  38. // CODING
  39. //================================================================================
  40. RegMap #(
  41. .CmdRegWidth(32),
  42. .AddrRegWidth(12)
  43. )
  44. RegMap_inst (
  45. .Clk_i(Clk123_i),
  46. .Rst_i(Rst_i),
  47. .Data_i(Data_i),
  48. .Addr_i(addr),
  49. .wrEn_i(writeEn_i),
  50. .rdEn_i(readEn_i),
  51. .BE_i(BE_i),
  52. .Led_o(Led_o),
  53. .AnsDataReg_o(data)
  54. );
  55. InitRst InitRst_inst (
  56. .clk_i(Clk123_i),
  57. .signal_o(Rst_i)
  58. );
  59. endmodule