Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

wrap_intf.sv 2.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. interface axi_if(input bit aclk,arst);
  2. //write address channel
  3. logic[31:0]awaddr;
  4. bit[3:0]awid;
  5. logic[3:0]awlen;
  6. logic[2:0]awsize;
  7. logic[1:0]awburst;
  8. logic[3:0]awcache;
  9. logic[2:0]awprot;
  10. logic[1:0]awlock;
  11. logic awvalid;'
  12. logic awready;
  13. //write data channel
  14. bit[3:0]wid;
  15. logic[3:0]wstrb;
  16. logic[31:0]wdata[$];
  17. logic wlast;
  18. logic wvalid;
  19. logic wready;
  20. //write response channel
  21. bit[3:0]bid;
  22. logic[1:0]bresp;
  23. logic bvalid;
  24. logic bready;
  25. //read address channel
  26. logic[31:0]araddr;
  27. bit[3:0]arid;
  28. logic[3:0]arlen;
  29. logic[2:0]arsize;
  30. logic[1:0]arburst;
  31. logic[3:0]arcache;
  32. logic[2:0]arprot;
  33. logic[1:0]arlock;
  34. logic arvalid;
  35. logic arready;
  36. //read data channel
  37. bit[3:0]rid;
  38. logic[31:0]rdata[$];
  39. logic rlast;
  40. logic[1:0]rresp;
  41. logic rvalid;
  42. logic rready;
  43. clocking drv_cb @(posedge aclk);
  44. default input #1 output #0;
  45. output awid; //write address channel
  46. output awaddr;
  47. output awlen;
  48. output awsize;
  49. output awburst;
  50. output awprot;
  51. output awcache;
  52. output awlock;
  53. output awvalid;
  54. input awready;
  55. output wid; //write data channel
  56. output wdata;
  57. output wstrb;
  58. output wlast;
  59. output wvalid;
  60. input wready; //write response channel
  61. input bid;
  62. input bresp;
  63. input bvalid;
  64. output bready;
  65. output arid; //read address channel
  66. output araddr;
  67. output arlen;
  68. output arsize;
  69. output arburst;
  70. output arprot;
  71. output arcache;
  72. output arlock;
  73. output arvalid;
  74. input arready;
  75. input rid; //read response channel
  76. input rdata;
  77. input rresp;
  78. input rlast;
  79. input rvalid;
  80. output rready;
  81. endclocking
  82. clocking mon_cb @(posedge clk);
  83. default input #1 output #0;
  84. input awid; //write address channel
  85. input awaddr;
  86. input awlen;
  87. input awsize;
  88. input awburst;
  89. input awprot;
  90. input awcache;
  91. input awlock;
  92. input awvalid;
  93. input awready;
  94. input wid; //write data channel
  95. input wdata;
  96. input wstrb;
  97. input wlast;
  98. input wvalid;
  99. input wready; //write response channel
  100. input bid;
  101. input bresp;
  102. input bvalid;
  103. input bready;
  104. input arid; //read address channel
  105. input araddr;
  106. input arlen;
  107. input arsize;
  108. input arburst;
  109. input arprot;
  110. input arcache;
  111. input arlock;
  112. input arvalid;
  113. input arready;
  114. input rid; //read data channel
  115. input rdata;
  116. input rresp;
  117. input rlast;
  118. input rvalid;
  119. input rready;
  120. endclocking
  121. modport drv_mod(clocking drv_cb,arst);
  122. modport mon_mod(clocking mon_cb,arst);
  123. endinterface