cache update
This commit is contained in:
parent
b0ace9d98d
commit
2201513f50
@ -73,14 +73,14 @@ module AXI (
|
||||
AXIRead.AXIReadAddr.arid = 4'b0001;
|
||||
AXIRead.AXIReadAddr.arprot = 3'b001;
|
||||
AXIRead.AXIReadAddr.araddr = rdata.addr;
|
||||
AXIRead.AXIReadAddr.arlen = {2'b0, rdata.size};
|
||||
AXIRead.AXIReadAddr.arlen = {1'b0, rdata.size};
|
||||
rdata.addr_ok = 1'b1;
|
||||
inst.addr_ok = 1'b0;
|
||||
end else if (inst.req) begin
|
||||
AXIRead.AXIReadAddr.arid = 4'b0000;
|
||||
AXIRead.AXIReadAddr.arprot = 3'b101;
|
||||
AXIRead.AXIReadAddr.araddr = inst.addr;
|
||||
AXIRead.AXIReadAddr.arlen = {2'b0, inst.size};
|
||||
AXIRead.AXIReadAddr.arlen = {1'b0, inst.size};
|
||||
inst.addr_ok = 1'b1;
|
||||
rdata.addr_ok = 1'b0;
|
||||
end else begin
|
||||
|
@ -27,7 +27,7 @@ module DCache (
|
||||
DCTagRAM_t TagRAM0, TagRAM1, TagRAM2, TagRAM3;
|
||||
DCDataRAM_t DataRAM0, DataRAM1, DataRAM2, DataRAM3;
|
||||
|
||||
logic [3:0] LRU[64];
|
||||
logic [3:0] LRU[128];
|
||||
logic [3:0] nextLRU;
|
||||
logic [3:0] nowLRU;
|
||||
|
||||
@ -37,8 +37,8 @@ module DCache (
|
||||
|
||||
logic valid;
|
||||
word_t addr;
|
||||
logic [21:0] tag;
|
||||
logic [5:0] index;
|
||||
logic [32-`DC_TAGL-1:0] tag;
|
||||
logic [`DC_TAGL-`DC_INDEXL-1:0] index;
|
||||
|
||||
logic hit;
|
||||
logic [3:0] hitWay;
|
||||
@ -50,7 +50,7 @@ module DCache (
|
||||
|
||||
logic en1, en2; // en1: Lookup->Lookup, en2: Lookup->Rep
|
||||
|
||||
logic [5:0] baddr;
|
||||
logic [`DC_TAGL-`DC_INDEXL-1:0] baddr;
|
||||
logic bwe1, bwe2; // bwe1: Lookup -> Write, bwe2: Replace -> Lookup
|
||||
|
||||
DCData_t wdata1[4], wdata2[4];
|
||||
@ -83,11 +83,7 @@ module DCache (
|
||||
// ======== State Machine ========
|
||||
// ===============================
|
||||
|
||||
enum bit {
|
||||
LOOKUP,
|
||||
REPLACE
|
||||
}
|
||||
state, nextState;
|
||||
enum bit { LOOKUP, REPLACE } state, nextState;
|
||||
|
||||
always_ff @(posedge clk) begin
|
||||
if (rst) state <= LOOKUP;
|
||||
@ -143,8 +139,8 @@ module DCache (
|
||||
assign tagV[3] = tagOut[3].valid;
|
||||
|
||||
// Hit Check
|
||||
assign tag = addr[31:10];
|
||||
assign index = addr[9:4];
|
||||
assign tag = addr[31:`DC_TAGL];
|
||||
assign index = addr[`DC_TAGL-1:`DC_INDEXL];
|
||||
|
||||
assign hitWay[0] = tagV[0] & tagOut[0].tag == tag;
|
||||
assign hitWay[1] = tagV[1] & tagOut[1].tag == tag;
|
||||
@ -225,9 +221,9 @@ module DCache (
|
||||
// ========= Block RAM ==========
|
||||
// ==============================
|
||||
|
||||
mux2 #(6) index_mux (
|
||||
mux2 #(`DC_TAGL-`DC_INDEXL) index_mux (
|
||||
index,
|
||||
port.addr[9:4],
|
||||
port.addr[`DC_TAGL-1:`DC_INDEXL],
|
||||
en1,
|
||||
baddr
|
||||
);
|
||||
@ -655,28 +651,28 @@ module DCache (
|
||||
end
|
||||
end
|
||||
|
||||
cache_tagd_bram tag_ram0 (
|
||||
DCTag_bram tag_ram0 (
|
||||
.addra(TagRAM0.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM0.wdata),
|
||||
.douta(TagRAM0.rdata),
|
||||
.wea (TagRAM0.wen)
|
||||
);
|
||||
cache_tagd_bram tag_ram1 (
|
||||
DCTag_bram tag_ram1 (
|
||||
.addra(TagRAM1.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM1.wdata),
|
||||
.douta(TagRAM1.rdata),
|
||||
.wea (TagRAM1.wen)
|
||||
);
|
||||
cache_tagd_bram tag_ram2 (
|
||||
DCTag_bram tag_ram2 (
|
||||
.addra(TagRAM2.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM2.wdata),
|
||||
.douta(TagRAM2.rdata),
|
||||
.wea (TagRAM2.wen)
|
||||
);
|
||||
cache_tagd_bram tag_ram3 (
|
||||
DCTag_bram tag_ram3 (
|
||||
.addra(TagRAM3.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM3.wdata),
|
||||
@ -684,28 +680,28 @@ module DCache (
|
||||
.wea (TagRAM3.wen)
|
||||
);
|
||||
|
||||
cache_data_bram data_ram0 (
|
||||
DCData_bram data_ram0 (
|
||||
.addra(DataRAM0.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM0.wdata),
|
||||
.douta(DataRAM0.rdata),
|
||||
.wea (DataRAM0.wen)
|
||||
);
|
||||
cache_data_bram data_ram1 (
|
||||
DCData_bram data_ram1 (
|
||||
.addra(DataRAM1.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM1.wdata),
|
||||
.douta(DataRAM1.rdata),
|
||||
.wea (DataRAM1.wen)
|
||||
);
|
||||
cache_data_bram data_ram2 (
|
||||
DCData_bram data_ram2 (
|
||||
.addra(DataRAM2.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM2.wdata),
|
||||
.douta(DataRAM2.rdata),
|
||||
.wea (DataRAM2.wen)
|
||||
);
|
||||
cache_data_bram data_ram3 (
|
||||
DCData_bram data_ram3 (
|
||||
.addra(DataRAM3.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM3.wdata),
|
||||
|
@ -11,7 +11,7 @@ module ICache (
|
||||
// ==============================
|
||||
// ============ Vars ============
|
||||
// ==============================
|
||||
|
||||
|
||||
// Four way assoc bram controller:
|
||||
ICTagRAM_t TagRAM0, TagRAM1, TagRAM2, TagRAM3;
|
||||
ICDataRAM_t DataRAM0, DataRAM1, DataRAM2, DataRAM3;
|
||||
@ -20,26 +20,26 @@ module ICache (
|
||||
logic [3:0] nextLRU;
|
||||
logic [3:0] nowLRU;
|
||||
|
||||
logic [`IC_TAG_LENGTH-1:0] tagOut[4];
|
||||
IC_data_t dataOut[4];
|
||||
ICTag_t tagOut[4];
|
||||
ICData_t dataOut[4];
|
||||
logic [3:0] tagV;
|
||||
|
||||
logic valid;
|
||||
word_t addr;
|
||||
logic [21:0] tag;
|
||||
logic [5:0] index;
|
||||
logic [32-`IC_TAGL-1:0] tag;
|
||||
logic [`IC_TAGL-`IC_INDEXL-1:0] index;
|
||||
|
||||
logic hit;
|
||||
logic [3:0] hitWay;
|
||||
IC_data_t cacheLine;
|
||||
ICData_t cacheLine;
|
||||
|
||||
logic [1:0] victim;
|
||||
logic [3:0] victim;
|
||||
logic [3:0] wen;
|
||||
logic [3:0] replaceWen;
|
||||
|
||||
logic en1, en2; // en1: Lookup->Lookup, en2: Lookup->Rep
|
||||
|
||||
logic [5:0] baddr;
|
||||
logic [`IC_TAGL-`IC_INDEXL-1:0] baddr;
|
||||
logic bwe;
|
||||
|
||||
// ===========================
|
||||
@ -55,12 +55,12 @@ module ICache (
|
||||
// ===============================
|
||||
|
||||
enum bit { LOOKUP = 1'b0, REPLACE = 1'b1 } state;
|
||||
|
||||
|
||||
always_ff @(posedge clk) begin
|
||||
if(rst) state <= LOOKUP;
|
||||
else if(state == LOOKUP & valid & ~hit)
|
||||
state <= REPLACE;
|
||||
else if(state == REPLACE & port.wvalid)
|
||||
else if(state == REPLACE & port.rvalid)
|
||||
state <= LOOKUP;
|
||||
end
|
||||
|
||||
@ -82,19 +82,19 @@ module ICache (
|
||||
assign dataOut[2] = DataRAM2.rdata;
|
||||
assign dataOut[3] = DataRAM3.rdata;
|
||||
|
||||
assign tagV[0] = tagOut[0][0];
|
||||
assign tagV[1] = tagOut[1][0];
|
||||
assign tagV[2] = tagOut[2][0];
|
||||
assign tagV[3] = tagOut[3][0];
|
||||
assign tagV[0] = tagOut[0].valid;
|
||||
assign tagV[1] = tagOut[1].valid;
|
||||
assign tagV[2] = tagOut[2].valid;
|
||||
assign tagV[3] = tagOut[3].valid;
|
||||
|
||||
// Hit Check
|
||||
assign tag = addr[31:10];
|
||||
assign index = addr[9:4];
|
||||
assign tag = addr[31:`IC_TAGL];
|
||||
assign index = addr[`IC_TAGL-1:`IC_INDEXL];
|
||||
|
||||
assign hitWay[0] = tagV[0] & tagOut[0][`IC_TAG_LENGTH-1:1] == tag;
|
||||
assign hitWay[1] = tagV[1] & tagOut[1][`IC_TAG_LENGTH-1:1] == tag;
|
||||
assign hitWay[2] = tagV[2] & tagOut[2][`IC_TAG_LENGTH-1:1] == tag;
|
||||
assign hitWay[3] = tagV[3] & tagOut[3][`IC_TAG_LENGTH-1:1] == tag;
|
||||
assign hitWay[0] = tagV[0] & tagOut[0].tag == tag;
|
||||
assign hitWay[1] = tagV[1] & tagOut[1].tag == tag;
|
||||
assign hitWay[2] = tagV[2] & tagOut[2].tag == tag;
|
||||
assign hitWay[3] = tagV[3] & tagOut[3].tag == tag;
|
||||
assign hit = hitWay[0] | hitWay[1] | hitWay[2] | hitWay[3];
|
||||
|
||||
assign cacheLine = (hitWay[0] ? dataOut[0] : `IC_DATA_LENGTH'b0)
|
||||
@ -112,71 +112,40 @@ module ICache (
|
||||
// ==============================
|
||||
|
||||
// Choose Victim
|
||||
assign victim = tagV[0] == 0 ? 2'b00 :
|
||||
tagV[1] == 0 ? 2'b01 :
|
||||
tagV[2] == 0 ? 2'b10 :
|
||||
tagV[3] == 0 ? 2'b11 :
|
||||
nowLRU[0] == 0 ? 2'b00 :
|
||||
nowLRU[1] == 0 ? 2'b01 :
|
||||
nowLRU[2] == 0 ? 2'b10 :
|
||||
nowLRU[3] == 0 ? 2'b11 :
|
||||
2'b11;
|
||||
assign wen[0] = (victim == 0);
|
||||
assign wen[1] = (victim == 1);
|
||||
assign wen[2] = (victim == 2);
|
||||
assign wen[3] = (victim == 3);
|
||||
assign victim = tagV[0] == 0 ? 4'b0001 :
|
||||
tagV[1] == 0 ? 4'b0010 :
|
||||
tagV[2] == 0 ? 4'b0100 :
|
||||
tagV[3] == 0 ? 4'b1000 :
|
||||
nowLRU[0] == 0 ? 4'b0001 :
|
||||
nowLRU[1] == 0 ? 4'b0010 :
|
||||
nowLRU[2] == 0 ? 4'b0100 :
|
||||
4'b1000;
|
||||
assign wen = hit ? hitWay : victim;
|
||||
|
||||
// Update LRU
|
||||
always_comb begin
|
||||
nextLRU = nowLRU;
|
||||
|
||||
// Hit
|
||||
|
||||
if (hitWay[0]) begin
|
||||
if (wen[0])
|
||||
casez (nowLRU)
|
||||
4'b111?: nextLRU = 4'b0001;
|
||||
default: nextLRU[0] = 1'b1;
|
||||
endcase
|
||||
end else if (hitWay[1]) begin
|
||||
if (wen[1])
|
||||
casez (nowLRU)
|
||||
4'b11?1: nextLRU = 4'b0010;
|
||||
default: nextLRU[1] = 1'b1;
|
||||
endcase
|
||||
end else if (hitWay[2]) begin
|
||||
if (wen[2])
|
||||
casez (nowLRU)
|
||||
4'b1?11: nextLRU = 4'b0100;
|
||||
default: nextLRU[2] = 1'b1;
|
||||
endcase
|
||||
end else if (hitWay[3]) begin
|
||||
if (wen[3])
|
||||
casez (nowLRU)
|
||||
4'b?111: nextLRU = 4'b1000;
|
||||
default: nextLRU[3] = 1'b1;
|
||||
endcase
|
||||
end
|
||||
|
||||
// Not Hit
|
||||
|
||||
else if (wen[0]) begin
|
||||
casez (nowLRU)
|
||||
4'b111?: nextLRU = 4'b0001;
|
||||
default: nextLRU[0] = 1'b1;
|
||||
endcase
|
||||
end else if (wen[1]) begin
|
||||
casez (nowLRU)
|
||||
4'b11?1: nextLRU = 4'b0010;
|
||||
default: nextLRU[1] = 1'b1;
|
||||
endcase
|
||||
end else if (wen[2]) begin
|
||||
casez (nowLRU)
|
||||
4'b1?11: nextLRU = 4'b0100;
|
||||
default: nextLRU[2] = 1'b1;
|
||||
endcase
|
||||
end else if (wen[3]) begin
|
||||
casez (nowLRU)
|
||||
4'b?111: nextLRU = 4'b1000;
|
||||
default: nextLRU[3] = 1'b1;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
always_ff @(posedge clk) begin
|
||||
@ -190,8 +159,13 @@ module ICache (
|
||||
// ========= Block RAM ==========
|
||||
// ==============================
|
||||
|
||||
mux2#(6) index_mux(index, port.addr[9:4], en1, baddr);
|
||||
assign bwe = (state == REPLACE) & port.wvalid;
|
||||
mux2 #(`IC_TAGL-`IC_INDEXL) index_mux (
|
||||
index,
|
||||
port.addr[`IC_TAGL-1:`IC_INDEXL],
|
||||
en1,
|
||||
baddr
|
||||
);
|
||||
assign bwe = (state == REPLACE) & port.rvalid;
|
||||
|
||||
// 地址
|
||||
assign TagRAM0.addr = baddr;
|
||||
@ -216,33 +190,33 @@ module ICache (
|
||||
assign TagRAM1.wdata = {tag, 1'b1};
|
||||
assign TagRAM2.wdata = {tag, 1'b1};
|
||||
assign TagRAM3.wdata = {tag, 1'b1};
|
||||
assign DataRAM0.wdata = port.wdata;
|
||||
assign DataRAM1.wdata = port.wdata;
|
||||
assign DataRAM2.wdata = port.wdata;
|
||||
assign DataRAM3.wdata = port.wdata;
|
||||
assign DataRAM0.wdata = port.rdata;
|
||||
assign DataRAM1.wdata = port.rdata;
|
||||
assign DataRAM2.wdata = port.rdata;
|
||||
assign DataRAM3.wdata = port.rdata;
|
||||
|
||||
cache_tag_bram tag_ram0 (
|
||||
ICTag_bram tag_ram0 (
|
||||
.addra(TagRAM0.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM0.wdata),
|
||||
.douta(TagRAM0.rdata),
|
||||
.wea (TagRAM0.wen)
|
||||
);
|
||||
cache_tag_bram tag_ram1 (
|
||||
ICTag_bram tag_ram1 (
|
||||
.addra(TagRAM1.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM1.wdata),
|
||||
.douta(TagRAM1.rdata),
|
||||
.wea (TagRAM1.wen)
|
||||
);
|
||||
cache_tag_bram tag_ram2 (
|
||||
ICTag_bram tag_ram2 (
|
||||
.addra(TagRAM2.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM2.wdata),
|
||||
.douta(TagRAM2.rdata),
|
||||
.wea (TagRAM2.wen)
|
||||
);
|
||||
cache_tag_bram tag_ram3 (
|
||||
ICTag_bram tag_ram3 (
|
||||
.addra(TagRAM3.addr),
|
||||
.clka (clk),
|
||||
.dina (TagRAM3.wdata),
|
||||
@ -250,28 +224,28 @@ module ICache (
|
||||
.wea (TagRAM3.wen)
|
||||
);
|
||||
|
||||
cache_data_bram data_ram0 (
|
||||
ICData_bram data_ram0 (
|
||||
.addra(DataRAM0.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM0.wdata),
|
||||
.douta(DataRAM0.rdata),
|
||||
.wea (DataRAM0.wen)
|
||||
);
|
||||
cache_data_bram data_ram1 (
|
||||
ICData_bram data_ram1 (
|
||||
.addra(DataRAM1.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM1.wdata),
|
||||
.douta(DataRAM1.rdata),
|
||||
.wea (DataRAM1.wen)
|
||||
);
|
||||
cache_data_bram data_ram2 (
|
||||
ICData_bram data_ram2 (
|
||||
.addra(DataRAM2.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM2.wdata),
|
||||
.douta(DataRAM2.rdata),
|
||||
.wea (DataRAM2.wen)
|
||||
);
|
||||
cache_data_bram data_ram3 (
|
||||
ICData_bram data_ram3 (
|
||||
.addra(DataRAM3.addr),
|
||||
.clka (clk),
|
||||
.dina (DataRAM3.wdata),
|
||||
|
@ -6,7 +6,7 @@
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>cache_data_bram</spirit:instanceName>
|
||||
<spirit:instanceName>DCData_bram</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
@ -89,8 +89,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.RST.ARESETN.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
@ -130,15 +130,15 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">cache_data_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">DCData_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">128</spirit:configurableElementValue>
|
||||
@ -157,8 +157,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_URAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">128</spirit:configurableElementValue>
|
||||
@ -174,7 +174,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">cache_data_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">DCData_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
@ -228,7 +228,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
@ -6,7 +6,7 @@
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>cache_tag_bram</spirit:instanceName>
|
||||
<spirit:instanceName>DCTag_bram</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
@ -89,8 +89,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.RST.ARESETN.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
@ -130,15 +130,15 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">cache_tag_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">DCTag_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">23</spirit:configurableElementValue>
|
||||
@ -157,8 +157,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_URAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">23</spirit:configurableElementValue>
|
||||
@ -174,7 +174,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">cache_tag_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">DCTag_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
@ -228,7 +228,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">128</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">23</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">23</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
311
src/IP/ICData_bram/ICData_bram.xci
Normal file
311
src/IP/ICData_bram/ICData_bram.xci
Normal file
@ -0,0 +1,311 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>ICData_bram</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ADDR_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.AWUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.BUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.DATA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_CACHE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_LOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_PROT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_QOS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_REGION">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_RRESP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_WSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.MAX_BURST_LENGTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_READ_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_OUTSTANDING">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.NUM_WRITE_THREADS">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PROTOCOL">AXI4LITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.READ_WRITE_MODE">READ_WRITE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.SUPPORTS_NARROW_BURST">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.READ_LATENCY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTA.READ_WRITE_MODE"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MASTER_TYPE">OTHER</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_ECC">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_SIZE">8192</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.MEM_WIDTH">32</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.READ_LATENCY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.BRAM_PORTB.READ_WRITE_MODE"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLK.ACLK.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.RST.ARESETN.INSERT_VIP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRA_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ADDRB_WIDTH">6</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ALGORITHM">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_ID_WIDTH">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_SLAVE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXI_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_BYTE_SIZE">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMMON_CLK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_18K_BRAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COUNT_36K_BRAM">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEFAULT_DATA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_COLL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DISABLE_WARN_BHV_RANGE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ELABORATION_DIR">./</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_32BIT_ADDRESS">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_DEEPSLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_ECC_PIPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRA_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_RDADDRB_CHG">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SAFETY_CKT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SHUTDOWN_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 26.8022 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_INJECTERR">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MEM_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_MUX_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_REGCEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_RSTB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_INPUT_REGS_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ICData_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MEM_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MUX_PIPELINE_STAGES">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_TYPE">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SIM_COLLISION_CHECK">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BRAM_BLOCK">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEA">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_BYTE_WEB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DEFAULT_DATA">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SOFTECC">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_URAM">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEA_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WEB_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Type">AXI4_Full</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Additional_Inputs_for_Power_Estimation">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Algorithm">Minimum_Area</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Assume_Synchronous_Clk">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Byte_Size">9</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ICData_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_DEEPSLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_ECC_PIPE">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SAFETY_CKT">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SHUTDOWN_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EN_SLEEP_PIN">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_32bit_Address">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_A">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Enable_B">Always_Enabled</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Error_Injection_Type">Single_Bit_Error_Injection</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations">true</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Interface_Type">Native</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Load_Init_File">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MEM_FILE">no_mem_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Memory_Type">Single_Port_RAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Operating_Mode_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Output_Reset_Value_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_type_to_Implement">BRAM</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Pipeline_Stages">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Clock">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Enable_Rate">100</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_A_Write_Rate">50</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Clock">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Enable_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Port_B_Write_Rate">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Primitive">8kx2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Remaining_Memory_Locations">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_A">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Memory_Latch_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_A">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Priority_B">CE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Reset_Type">SYNC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_AXI_ID">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Byte_Write_Enable">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_Error_Injection_Pins">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_REGCEB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">256</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.use_bram_block">Stand_Alone</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BASE_BOARD_PART"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD_CONNECTIONS"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a200t</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">fbg676</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.STATIC_POWER"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2019.2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
<spirit:vendorExtensions>
|
||||
<xilinx:componentInstanceExtensions>
|
||||
<xilinx:configElementInfos>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ADDR_WIDTH" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.ARUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.AWUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.BUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.DATA_WIDTH" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BRESP" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_BURST" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_CACHE" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_LOCK" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_PROT" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_QOS" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_REGION" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_RRESP" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.HAS_WSTRB" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.PROTOCOL" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.RUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXILITE_SLAVE_S_AXI.WUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ADDR_WIDTH" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.ARUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.AWUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.BUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.DATA_WIDTH" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BRESP" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_BURST" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_CACHE" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_LOCK" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_PROT" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_QOS" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_REGION" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_RRESP" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.HAS_WSTRB" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.PROTOCOL" xilinx:valueSource="auto"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.RUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.AXI_SLAVE_S_AXI.WUSER_WIDTH" xilinx:valueSource="constant"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Enable_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Fill_Remaining_Memory_Locations" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Read_Width_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Read_Width_B" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Depth_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Width_A" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.Write_Width_B" xilinx:valueSource="user"/>
|
||||
</xilinx:configElementInfos>
|
||||
</xilinx:componentInstanceExtensions>
|
||||
</spirit:vendorExtensions>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
@ -6,7 +6,7 @@
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>cache_tagd_bram</spirit:instanceName>
|
||||
<spirit:instanceName>ICTag_bram</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="blk_mem_gen" spirit:version="8.4"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_RANGE.S_1.Mem0">4096</spirit:configurableElementValue>
|
||||
@ -112,7 +112,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SAFETY_CKT">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SHUTDOWN_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EN_SLEEP_PIN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 3.20565 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_EST_POWER_SUMMARY">Estimated Power for IP : 3.12245 mW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_AXI_ID">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_ENA">0</spirit:configurableElementValue>
|
||||
@ -130,7 +130,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_SOFTECC_OUTPUT_REGS_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITA_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INITB_VAL">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">cache_tagd_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE">ICTag_bram.mem</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INIT_FILE_NAME">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_TYPE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOAD_INIT_FILE">0</spirit:configurableElementValue>
|
||||
@ -141,8 +141,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_A">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_READ_WIDTH_B">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_A">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RSTRAM_B">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RST_PRIORITY_A">CE</spirit:configurableElementValue>
|
||||
@ -161,8 +161,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_DEPTH_B">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_A">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_MODE_B">WRITE_FIRST</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_A">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_WRITE_WIDTH_B">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">artix7</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_ID_Width">4</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.AXI_Slave_Type">Memory_Slave</spirit:configurableElementValue>
|
||||
@ -174,7 +174,7 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CTRL_ECC_ALGO">NONE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Coe_File">no_coe_file_loaded</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Collision_Warnings">ALL</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">cache_tagd_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">ICTag_bram</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Collision_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Disable_Out_of_Range_Warnings">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ECC">false</spirit:configurableElementValue>
|
||||
@ -209,8 +209,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RD_ADDR_CHNG_B">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_LATENCY_A">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_LATENCY_B">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_A">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Read_Width_B">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortA_Output_of_Memory_Primitives">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Register_PortB_Output_of_Memory_Core">false</spirit:configurableElementValue>
|
||||
@ -229,8 +229,8 @@
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTA_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Use_RSTB_Pin">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Depth_A">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">24</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_A">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Write_Width_B">22</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ecctype">No_ECC</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_porta_input_of_softecc">false</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.register_portb_output_of_softecc">false</spirit:configurableElementValue>
|
@ -34,19 +34,23 @@ module MMU (
|
||||
logic iCached1;
|
||||
word_t iPA1;
|
||||
|
||||
word_t iD1, iD2, iD3;
|
||||
word_t iD1, iD2, iD3, iD4, iD5, iD6, iD7;
|
||||
|
||||
// ================================
|
||||
// ======== iState Machine ========
|
||||
// ================================
|
||||
|
||||
typedef enum bit [2:0] {
|
||||
typedef enum bit [3:0] {
|
||||
I_IDLE,
|
||||
I_WA,
|
||||
I_WD1,
|
||||
I_WD2,
|
||||
I_WD3,
|
||||
I_WD4,
|
||||
I_WD5,
|
||||
I_WD6,
|
||||
I_WD7,
|
||||
I_WD8,
|
||||
I_REFILL
|
||||
} istate_t;
|
||||
istate_t iState;
|
||||
@ -98,6 +102,18 @@ module MMU (
|
||||
if (inst_axi.rvalid) iNextState = I_WD4;
|
||||
end
|
||||
I_WD4: begin
|
||||
if (inst_axi.rvalid) iNextState = I_WD5;
|
||||
end
|
||||
I_WD5: begin
|
||||
if (inst_axi.rvalid) iNextState = I_WD6;
|
||||
end
|
||||
I_WD6: begin
|
||||
if (inst_axi.rvalid) iNextState = I_WD7;
|
||||
end
|
||||
I_WD7: begin
|
||||
if (inst_axi.rvalid) iNextState = I_WD8;
|
||||
end
|
||||
I_WD8: begin
|
||||
if (inst_axi.rvalid) iNextState = I_REFILL;
|
||||
end
|
||||
I_REFILL: begin
|
||||
@ -149,6 +165,30 @@ module MMU (
|
||||
iState == I_WD3,
|
||||
iD3
|
||||
);
|
||||
ffen #(32) id4_ff (
|
||||
clk,
|
||||
inst_axi.rdata,
|
||||
iState == I_WD4,
|
||||
iD4
|
||||
);
|
||||
ffen #(32) id5_ff (
|
||||
clk,
|
||||
inst_axi.rdata,
|
||||
iState == I_WD5,
|
||||
iD5
|
||||
);
|
||||
ffen #(32) id6_ff (
|
||||
clk,
|
||||
inst_axi.rdata,
|
||||
iState == I_WD6,
|
||||
iD6
|
||||
);
|
||||
ffen #(32) id7_ff (
|
||||
clk,
|
||||
inst_axi.rdata,
|
||||
iState == I_WD7,
|
||||
iD7
|
||||
);
|
||||
|
||||
// ===============================
|
||||
// ========== iFunction ==========
|
||||
@ -156,17 +196,31 @@ module MMU (
|
||||
|
||||
assign iVA = inst.addr;
|
||||
assign inst.addr_ok = iEn;
|
||||
assign {inst.rdata1, inst.rdata0} = (iState == I_WD2) ? {
|
||||
inst_axi.rdata, iD1
|
||||
} : iPA1[3] ? ic.row[127:64] : ic.row[63:0];
|
||||
mux5 #(64) inst_rdata_mux (
|
||||
ic.row[63:0],
|
||||
ic.row[127:64],
|
||||
ic.row[191:128],
|
||||
ic.row[255:192],
|
||||
{inst_axi.rdata, iD1},
|
||||
{iState == I_WD2, iPA1[4:3]},
|
||||
{inst.rdata1, inst.rdata0}
|
||||
);
|
||||
|
||||
assign ic.valid = inst.req & iEn & iCached;
|
||||
assign ic.addr = iPA;
|
||||
assign ic.wvalid = inst_axi.data_ok;
|
||||
assign ic.wdata = iPA1[3] ? {iD2, iD1, inst_axi.rdata, iD3} : {inst_axi.rdata, iD3, iD2, iD1};
|
||||
assign ic.rvalid = inst_axi.data_ok;
|
||||
|
||||
mux4 #(256) ic_rdata_mux (
|
||||
{inst_axi.rdata, iD7, iD6, iD5, iD4, iD3, iD2, iD1},
|
||||
{iD6, iD5, iD4, iD3, iD2, iD1, inst_axi.rdata, iD7},
|
||||
{iD4, iD3, iD2, iD1, inst_axi.rdata, iD7, iD6, iD5},
|
||||
{iD2, iD1, inst_axi.rdata, iD7, iD6, iD5, iD4, iD3},
|
||||
iPA1[4:3],
|
||||
ic.rdata
|
||||
);
|
||||
|
||||
assign inst_axi.addr = iPA1;
|
||||
assign inst_axi.size = iCached1 ? 2'b11 : 2'b01;
|
||||
assign inst_axi.size = iCached1 ? 3'b111 : 3'b001;
|
||||
|
||||
// ======================
|
||||
// ======== dVar ========
|
||||
@ -362,7 +416,7 @@ module MMU (
|
||||
: {rdata_axi.rdata, drD3, drD2, drD1});
|
||||
|
||||
assign rdata_axi.addr = dPA1;
|
||||
assign rdata_axi.size = dCached1 ? 2'b11 : 2'b00;
|
||||
assign rdata_axi.size = dCached1 ? 3'b011 : 3'b000;
|
||||
|
||||
// =================================
|
||||
// ======== dwState Machine ========
|
||||
@ -577,10 +631,10 @@ module mapping (
|
||||
always_comb begin
|
||||
if (addr_in > 32'hBFFF_FFFF || addr_in <= 32'h7FFF_FFFF) begin // kseg2 + kseg3 + kuseg? -> tlb
|
||||
addr_out = addr_in;
|
||||
cached = 0;
|
||||
cached = 1'b1;
|
||||
end else if (addr_in > 32'h9FFF_FFFF) begin // kseg1 uncached
|
||||
addr_out = addr_in & 32'h1FFF_FFFF;
|
||||
cached = 0;
|
||||
cached = 1'b0;
|
||||
end else begin // kseg0 -> CP0.K0 default: uncached
|
||||
addr_out = addr_in & 32'h1FFF_FFFF;
|
||||
cached = (K0 == 3'b011);
|
||||
|
@ -4,31 +4,32 @@
|
||||
`include "defines.svh"
|
||||
|
||||
// DC for D-Cache
|
||||
|
||||
`define DC_TAG_LENGTH 22+1+1 // Tag + Valid + Dirty
|
||||
`define DC_TAGL 11
|
||||
`define DC_INDEXL 4
|
||||
`define DC_TAG_LENGTH (32-`DC_TAGL+1+1) // Tag + Valid + Dirty
|
||||
`define DC_DATA_LENGTH 128 // 16Bytes
|
||||
|
||||
typedef struct packed {
|
||||
logic [`DC_TAG_LENGTH-3:0] tag;
|
||||
logic dirty;
|
||||
logic valid;
|
||||
logic [32-`DC_TAGL-1:0] tag;
|
||||
logic dirty;
|
||||
logic valid;
|
||||
} DCTag_t;
|
||||
|
||||
typedef logic [`DC_DATA_LENGTH-1:0] DCData_t;
|
||||
|
||||
typedef struct packed {
|
||||
logic wen;
|
||||
logic [5:0] addr; // Index
|
||||
logic [`DC_TAG_LENGTH-1:0] wdata;
|
||||
logic [`DC_TAG_LENGTH-1:0] rdata;
|
||||
} DCTagRAM_t; // 64 * 24
|
||||
logic wen;
|
||||
logic [`DC_TAGL-`DC_INDEXL-1:0] addr; // Index
|
||||
DCTag_t wdata;
|
||||
DCTag_t rdata;
|
||||
} DCTagRAM_t;
|
||||
|
||||
typedef struct packed {
|
||||
logic wen;
|
||||
logic [5:0] addr; // Index
|
||||
DCData_t wdata;
|
||||
DCData_t rdata;
|
||||
} DCDataRAM_t; // 64 * 128
|
||||
logic wen;
|
||||
logic [`DC_TAGL-`DC_INDEXL-1:0] addr; // Index
|
||||
DCData_t wdata;
|
||||
DCData_t rdata;
|
||||
} DCDataRAM_t;
|
||||
|
||||
interface DCache_i;
|
||||
logic valid;
|
||||
@ -42,7 +43,7 @@ interface DCache_i;
|
||||
logic dirt_valid;
|
||||
word_t dirt_addr;
|
||||
DCData_t dirt_data;
|
||||
logic [127:0] row;
|
||||
DCData_t row;
|
||||
|
||||
modport cache(
|
||||
input valid, addr, rvalid, rdata, wvalid, wdata, wstrb,
|
||||
|
@ -4,38 +4,41 @@
|
||||
`include "defines.svh"
|
||||
|
||||
// IC for I-Cache
|
||||
|
||||
`define IC_TAG_LENGTH 22+1 // Tag + Valid
|
||||
`define IC_DATA_LENGTH 128 // 16Bytes
|
||||
|
||||
typedef logic [`IC_DATA_LENGTH-1:0] IC_data_t;
|
||||
|
||||
// TODO: 考虑到指令4字节对齐,可否给TAG减少两位?Cache是否处理4字节对齐异常?
|
||||
`define IC_TAGL 11
|
||||
`define IC_INDEXL 5
|
||||
`define IC_TAG_LENGTH (32-`IC_TAGL+1) // Tag + Valid
|
||||
`define IC_DATA_LENGTH 256 // 32Bytes
|
||||
|
||||
typedef struct packed {
|
||||
logic wen;
|
||||
logic [5:0] addr; // Index
|
||||
logic [`IC_TAG_LENGTH-1:0] wdata;
|
||||
logic [`IC_TAG_LENGTH-1:0] rdata;
|
||||
} ICTagRAM_t; // 64 * 23
|
||||
logic [32-`IC_TAGL-1:0] tag;
|
||||
logic valid;
|
||||
} ICTag_t;
|
||||
typedef logic [`IC_DATA_LENGTH-1:0] ICData_t;
|
||||
|
||||
typedef struct packed {
|
||||
logic wen;
|
||||
logic [5:0] addr; // Index
|
||||
IC_data_t wdata;
|
||||
IC_data_t rdata;
|
||||
} ICDataRAM_t; // 64 * 128
|
||||
logic wen;
|
||||
logic [`IC_TAGL-`IC_INDEXL-1:0] addr; // Index
|
||||
ICTag_t wdata;
|
||||
ICTag_t rdata;
|
||||
} ICTagRAM_t;
|
||||
|
||||
typedef struct packed {
|
||||
logic wen;
|
||||
logic [`IC_TAGL-`IC_INDEXL-1:0] addr; // Index
|
||||
ICData_t wdata;
|
||||
ICData_t rdata;
|
||||
} ICDataRAM_t;
|
||||
|
||||
interface ICache_i;
|
||||
logic valid;
|
||||
word_t addr;
|
||||
logic hit;
|
||||
IC_data_t row;
|
||||
logic wvalid;
|
||||
IC_data_t wdata;
|
||||
logic valid;
|
||||
word_t addr;
|
||||
logic hit;
|
||||
ICData_t row;
|
||||
logic rvalid;
|
||||
ICData_t rdata;
|
||||
|
||||
modport cache(input valid, addr, output hit, row, input wvalid, wdata);
|
||||
modport mmu(output valid, addr, input hit, row, output wvalid, wdata);
|
||||
modport cache(input valid, addr, output hit, row, input rvalid, rdata);
|
||||
modport mmu(output valid, addr, input hit, row, output rvalid, rdata);
|
||||
endinterface //ICache_i
|
||||
|
||||
`endif
|
||||
|
@ -36,7 +36,7 @@ endinterface
|
||||
interface SRAM_RO_AXI_i;
|
||||
logic req;
|
||||
word_t addr;
|
||||
logic [1:0] size;
|
||||
logic [2:0] size;
|
||||
logic addr_ok;
|
||||
logic data_ok;
|
||||
word_t rdata;
|
||||
|
13
src/testbench/happy/DCData_bram.sv
Normal file
13
src/testbench/happy/DCData_bram.sv
Normal file
@ -0,0 +1,13 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "DCache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module DCData_bram (
|
||||
input [`DC_TAGL-`DC_INDEXL-1:0] addra,
|
||||
input clka,
|
||||
input DCData_t dina,
|
||||
output DCData_t douta,
|
||||
input wea
|
||||
);
|
||||
endmodule
|
13
src/testbench/happy/DCTag_bram.sv
Normal file
13
src/testbench/happy/DCTag_bram.sv
Normal file
@ -0,0 +1,13 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module DCTag_bram (
|
||||
input [`DC_TAGL-`DC_INDEXL-1:0] addra,
|
||||
input clka,
|
||||
input DCTag_t dina,
|
||||
output DCTag_t douta,
|
||||
input wea
|
||||
);
|
||||
endmodule
|
13
src/testbench/happy/ICData_bram.sv
Normal file
13
src/testbench/happy/ICData_bram.sv
Normal file
@ -0,0 +1,13 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module ICData_bram (
|
||||
input [`IC_TAGL-`IC_INDEXL-1:0] addra,
|
||||
input clka,
|
||||
input ICData_t dina,
|
||||
output ICData_t douta,
|
||||
input wea
|
||||
);
|
||||
endmodule
|
13
src/testbench/happy/ICTag_bram.sv
Normal file
13
src/testbench/happy/ICTag_bram.sv
Normal file
@ -0,0 +1,13 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module ICTag_bram (
|
||||
input [`IC_TAGL-`IC_INDEXL-1:0] addra,
|
||||
input clka,
|
||||
input ICTag_t dina,
|
||||
output ICTag_t douta,
|
||||
input wea
|
||||
);
|
||||
endmodule
|
@ -1,23 +0,0 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module cache_data_bram (
|
||||
input [5:0] addra,
|
||||
input clka,
|
||||
input [`IC_DATA_LENGTH-1:0] dina,
|
||||
output [`IC_DATA_LENGTH-1:0] douta,
|
||||
input wea
|
||||
);
|
||||
logic [`IC_DATA_LENGTH-1:0] tmp;
|
||||
assign douta = tmp;
|
||||
|
||||
initial begin
|
||||
tmp = 0;
|
||||
end
|
||||
|
||||
always_ff @(posedge clka) begin
|
||||
tmp <= {{(`IC_DATA_LENGTH - 6) {1'b0}}, addra};
|
||||
end
|
||||
endmodule
|
@ -1,26 +0,0 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module cache_tag_bram (
|
||||
input [5:0] addra,
|
||||
input clka,
|
||||
input [`IC_TAG_LENGTH-1:0] dina,
|
||||
output [`IC_TAG_LENGTH-1:0] douta,
|
||||
input wea
|
||||
);
|
||||
logic [`IC_TAG_LENGTH-1:0] tmp;
|
||||
assign douta = tmp;
|
||||
|
||||
initial begin
|
||||
tmp = 0;
|
||||
end
|
||||
|
||||
always_ff @(posedge clka) begin
|
||||
tmp <= {{(`IC_TAG_LENGTH - 6) {1'b0}}, addra};
|
||||
end
|
||||
endmodule
|
||||
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
// Make Linter Happy
|
||||
|
||||
`include "ICache.svh"
|
||||
`include "sram.svh"
|
||||
|
||||
module cache_tagd_bram (
|
||||
input [5:0] addra,
|
||||
input clka,
|
||||
input [`IC_TAG_LENGTH+1-1:0] dina,
|
||||
output [`IC_TAG_LENGTH+1-1:0] douta,
|
||||
input wea
|
||||
);
|
||||
logic [`IC_TAG_LENGTH+1-1:0] tmp;
|
||||
assign douta = tmp;
|
||||
|
||||
initial begin
|
||||
tmp = 0;
|
||||
end
|
||||
|
||||
always_ff @(posedge clka) begin
|
||||
tmp <= {{(`IC_TAG_LENGTH+1 - 6) {1'b0}}, addra};
|
||||
end
|
||||
endmodule
|
||||
|
||||
|
||||
|
@ -47,40 +47,6 @@ module happy ();
|
||||
wire cpu_bvalid;
|
||||
wire cpu_bready;
|
||||
|
||||
blk_mem_gen_0 memory (
|
||||
.s_axi_araddr(araddr),
|
||||
.s_axi_arburst(arburst),
|
||||
.s_axi_arid(arid),
|
||||
.s_axi_arlen(arlen),
|
||||
.s_axi_arready(arready),
|
||||
.s_axi_arsize(arsize),
|
||||
.s_axi_arvalid(arvalid),
|
||||
.s_axi_awaddr(awaddr),
|
||||
.s_axi_awburst(awburst),
|
||||
.s_axi_awid(awid),
|
||||
.s_axi_awlen(awlen),
|
||||
.s_axi_awready(awready),
|
||||
.s_axi_awsize(awsize),
|
||||
.s_axi_awvalid(awvalid),
|
||||
.s_axi_bid(bid),
|
||||
.s_axi_bready(bready),
|
||||
.s_axi_bresp(bresp),
|
||||
.s_axi_bvalid(bvalid),
|
||||
.s_axi_rdata(rdata),
|
||||
.s_axi_rid(rid),
|
||||
.s_axi_rlast(rlast),
|
||||
.s_axi_rready(rready),
|
||||
.s_axi_rresp(rresp),
|
||||
.s_axi_rvalid(rvalid),
|
||||
.s_axi_wdata(wdata),
|
||||
.s_axi_wlast(wlast),
|
||||
.s_axi_wready(wready),
|
||||
.s_axi_wstrb(wstrb),
|
||||
.s_axi_wvalid(wvalid),
|
||||
.s_aclk(clk),
|
||||
.s_aresetn(~rst)
|
||||
);
|
||||
|
||||
ICache_i ic ();
|
||||
DCache_i dc ();
|
||||
sramro_i inst ();
|
||||
@ -149,7 +115,7 @@ module happy ();
|
||||
MMU mmu (
|
||||
.clk(clk),
|
||||
.rst(rst),
|
||||
.K0(2'b11),
|
||||
.K0(3'b011),
|
||||
.ic(ic.mmu),
|
||||
.dc(dc.mmu),
|
||||
.inst(inst.slave),
|
||||
|
Loading…
Reference in New Issue
Block a user