cbram_access.v
Upload User: abszbd2002
Upload Date: 2020-10-12
Package Size: 33407k
Code Size: 4k
Development Platform:

VHDL

  1. //Design  :  inter prediction
  2. //Author  :  li haibin
  3. //files   :  cbram_access
  4. //Description : 当前亮度宏块ram的读写管理
  5. //---------------------------------------------------------------------------------------------------
  6. module cbram_access(clk,reset,cb_rden,cb_wren,
  7. data0,data1,data2,data3,data4,data5,data6,data7,data8,data9,
  8. data10,data11,data12,data13,data14,data15,
  9. q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15);
  10. input clk;
  11. input reset;
  12. input cb_rden;
  13. input cb_wren;
  14. input [7:0] data0,data1,data2,data3,data4,data5,data6,data7,data8,data9,
  15. data10,data11,data12,data13,data14,data15;
  16. output [7:0] q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15;
  17. reg [3:0] rdaddr;
  18. reg [3:0] wraddr;
  19. //--------------当前块ram读地址的产生
  20. always @ (posedge clk or posedge reset)
  21. if (reset==1'b1)
  22. rdaddr <= 4'b0;
  23. else
  24. if (cb_rden==1'b1)
  25. rdaddr <= rdaddr + 1'b1;
  26. else
  27. rdaddr <= 4'b0;
  28. //--------------当前块ram写地址的产生
  29. always @ (posedge clk or posedge reset)
  30. if (reset==1'b1)
  31. wraddr <= 4'b0;
  32. else
  33. if (cb_wren==1'b1)
  34. wraddr <= wraddr + 1'b1;
  35. else
  36. wraddr <= 4'b0;
  37. //--------------16个8位宽的ram组成亮度数据块
  38. cbramx cbram0(//.aclr(reset),
  39.  .clock(clk),
  40.  .data(data0),
  41.  .rdaddress(rdaddr),
  42.  .rden(cb_rden),
  43.  .wraddress(wraddr),
  44.  .wren(cb_wren),
  45.  .q(q0)
  46. );
  47. cbramx cbram1(//.aclr(reset),
  48.  .clock(clk),
  49.  .data(data1),
  50.  .rdaddress(rdaddr),
  51.  .rden(cb_rden),
  52.  .wraddress(wraddr),
  53.  .wren(cb_wren),
  54.  .q(q1)
  55. );
  56. cbramx cbram2(//.aclr(reset),
  57.  .clock(clk),
  58.  .data(data2),
  59.  .rdaddress(rdaddr),
  60.  .rden(cb_rden),
  61.  .wraddress(wraddr),
  62.  .wren(cb_wren),
  63.  .q(q2)
  64. );
  65. cbramx cbram3(//.aclr(reset),
  66.  .clock(clk),
  67.  .data(data3),
  68.  .rdaddress(rdaddr),
  69.  .rden(cb_rden),
  70.  .wraddress(wraddr),
  71.  .wren(cb_wren),
  72.  .q(q3)
  73. );
  74. cbramx cbram4(//.aclr(reset),
  75.  .clock(clk),
  76.  .data(data4),
  77.  .rdaddress(rdaddr),
  78.  .rden(cb_rden),
  79.  .wraddress(wraddr),
  80.  .wren(cb_wren),
  81.  .q(q4)
  82. );
  83. cbramx cbram5(//.aclr(reset),
  84.  .clock(clk),
  85.  .data(data5),
  86.  .rdaddress(rdaddr),
  87.  .rden(cb_rden),
  88.  .wraddress(wraddr),
  89.  .wren(cb_wren),
  90.  .q(q5)
  91. );
  92. cbramx cbram6(//.aclr(reset),
  93.  .clock(clk),
  94.  .data(data6),
  95.  .rdaddress(rdaddr),
  96.  .rden(cb_rden),
  97.  .wraddress(wraddr),
  98.  .wren(cb_wren),
  99.  .q(q6)
  100. );
  101. cbramx cbram7(//.aclr(reset),
  102.  .clock(clk),
  103.  .data(data7),
  104.  .rdaddress(rdaddr),
  105.  .rden(cb_rden),
  106.  .wraddress(wraddr),
  107.  .wren(cb_wren),
  108.  .q(q7)
  109. );
  110. cbramx cbram8(//.aclr(reset),
  111.  .clock(clk),
  112.  .data(data8),
  113.  .rdaddress(rdaddr),
  114.  .rden(cb_rden),
  115.  .wraddress(wraddr),
  116.  .wren(cb_wren),
  117.  .q(q8)
  118. );
  119. cbramx cbram9(//.aclr(reset),
  120.  .clock(clk),
  121.  .data(data9),
  122.  .rdaddress(rdaddr),
  123.  .rden(cb_rden),
  124.  .wraddress(wraddr),
  125.  .wren(cb_wren),
  126.  .q(q9)
  127. );
  128. cbramx cbram10(//.aclr(reset),
  129.  .clock(clk),
  130.  .data(data10),
  131.  .rdaddress(rdaddr),
  132.  .rden(cb_rden),
  133.  .wraddress(wraddr),
  134.  .wren(cb_wren),
  135.  .q(q10)
  136. );
  137. cbramx cbram11(//.aclr(reset),
  138.  .clock(clk),
  139.  .data(data11),
  140.  .rdaddress(rdaddr),
  141.  .rden(cb_rden),
  142.  .wraddress(wraddr),
  143.  .wren(cb_wren),
  144.  .q(q11)
  145. );
  146. cbramx cbram12(//.aclr(reset),
  147.  .clock(clk),
  148.  .data(data12),
  149.  .rdaddress(rdaddr),
  150.  .rden(cb_rden),
  151.  .wraddress(wraddr),
  152.  .wren(cb_wren),
  153.  .q(q12)
  154. );
  155. cbramx cbram13(//.aclr(reset),
  156.  .clock(clk),
  157.  .data(data13),
  158.  .rdaddress(rdaddr),
  159.  .rden(cb_rden),
  160.  .wraddress(wraddr),
  161.  .wren(cb_wren),
  162.  .q(q13)
  163. );
  164. cbramx cbram14(//.aclr(reset),
  165.  .clock(clk),
  166.  .data(data14),
  167.  .rdaddress(rdaddr),
  168.  .rden(cb_rden),
  169.  .wraddress(wraddr),
  170.  .wren(cb_wren),
  171.  .q(q14)
  172. );
  173. cbramx cbram15(//.aclr(reset),
  174.  .clock(clk),
  175.  .data(data15),
  176.  .rdaddress(rdaddr),
  177.  .rden(cb_rden),
  178.  .wraddress(wraddr),
  179.  .wren(cb_wren),
  180.  .q(q15)
  181. );
  182. endmodule