跳转至

存储与计算的模块连接

存储模块

只读

  • 在 T0 输入 dout_addr,在 T1 输出 dout
input  wire clk,
input  wire [DOUT_ADDR_WIDTH-1:0] dout_addr,
output wire [DOUT_WIDTH-1:0] dout

A写B读

    • 输入 din_valid 为 1 时同周期输入 din,默认顺序读写,从零开始加加。
  • complete 表示 blkmem 已经存满数据,能够进行下一步的操作(读出数据)了。
    • 在 T0 输入 dout_addr,在 T1 输出 dout
input  wire clk,
input  wire rst,
input  wire din_valid,
input  wire [DIN_WIDTH-1:0] din,
output wire complete,
input  wire [DOUT_ADDR_WIDTH-1:0] dout_addr,
output wire [DOUT_WIDTH-1:0] dout

计算模块

  • 计算模块的数据从一个存储模块而来,由计算模块给出 blkmem_din_addr 输入到存储模块,存储模块在下一个周期给出 blkmem_din
  • 给出计算结果时,需要存入一个存储模块,在 dout 有值的时候置 dout_valid 为 1 顺序写入另一个存储模块。
input  wire clk,
input  wire rst,
input  wire start,
output wire [DIN_ADDR_WIDTH-1:0] blkmem_din_addr,
input  wire [DIN_WIDTH-1:0] blkmem_din,
output wire dout_valid,
output wire [DOUT_WIDTH-1:0] dout