W01-sram_instantiation.md

W01-sram_instantiation.md

社蕙 593 2022-08-28

sram实例化说明

在upsampling的vivado工程中例化了两个simple dual sram,这种sram通过A口写,B口读,并且是写优先。

注意读数据的时候,数据与地址差1个时钟周期。(在IP中可以增加一级寄存器,优化时序,但使数据与地址差2个时钟周期)

注意sram的模块名为blk_mem_gen_{depth}_{width},下面给出实例化的代码。

blk_mem_gen_964_12 your_instance_name (
  .clka(clka),    // input wire clka
  .ena(ena),      // input wire ena
  .wea(wea),      // input wire [0 : 0] wea
  .addra(addra),  // input wire [9 : 0] addra
  .dina(dina),    // input wire [11 : 0] dina
  .clkb(clkb),    // input wire clkb
  .enb(enb),      // input wire enb
  .addrb(addrb),  // input wire [9 : 0] addrb
  .doutb(doutb)  // output wire [11 : 0] doutb
);
blk_mem_gen_1920_12 your_instance_name (
  .clka(clka),    // input wire clka
  .ena(ena),      // input wire ena
  .wea(wea),      // input wire [0 : 0] wea
  .addra(addra),  // input wire [10 : 0] addra
  .dina(dina),    // input wire [11 : 0] dina
  .clkb(clkb),    // input wire clkb
  .enb(enb),      // input wire enb
  .addrb(addrb),  // input wire [10 : 0] addrb
  .doutb(doutb)  // output wire [11 : 0] doutb
);