| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- module PowRstMemWrapper #(
- parameter AXI_DATA_WIDTH = 64,
- parameter RST_MEM_BASE_ADDR = 64'h1000
- )
- (
- input Clk_i,
- input Rst_i,
- input [AXI_DATA_WIDTH-1:0] WrData_i,
- input [AXI_DATA_WIDTH-1:0] WrAddr_i,
- input Val_i,
- input RdReq_i,
- output [AXI_DATA_WIDTH-1:0] Data_o,
- output reg DataVal_o
- );
- wire [5:0] addrA;
- wire [5:0] addrB;
- wire weA;
- wire reB;
- wire wrReq = (Val_i&(WrAddr_i==RST_MEM_BASE_ADDR));
- MemCtrl MemCtrl
- (
- .Clk_i(Clk_i),
- .Rst_i(Rst_i),
- .WrReq_i(wrReq),
- .RdReq_i(RdReq_i),
- .AddrA_o(addrA),
- .WeA_o(weA),
- .AddrB_o(addrB),
- .ReB_o(reB)
- );
- PowRstCmdMem PowRstMem
- (
- .clka(Clk_i), // input wire clka
- .ena(1'b1), // input wire ena
- .wea(weA), // input wire [0 : 0] wea
- .addra(addrA), // input wire [5 : 0] addra
- .dina(WrData_i), // input wire [31 : 0] dina
- .clkb(Clk_i), // input wire clkb
- .enb(reB), // input wire enb
- .addrb(addrB), // input wire [5 : 0] addrb
- .doutb(Data_o) // output wire [31 : 0] doutb
- );
- always @(posedge Clk_i) begin
- if (Rst_i) begin
- DataVal_o <= 0;
- end else begin
- DataVal_o <= reB;
- end
- end
- endmodule
|