|
@@ -39,6 +39,7 @@ module SmcRx
|
|
|
|
|
|
|
|
input [DataInOutWidth-1:0] AnsData_i,
|
|
input [DataInOutWidth-1:0] AnsData_i,
|
|
|
|
|
|
|
|
|
|
+ output [1:0] Be_o,
|
|
|
output [DataInOutWidth-1:0] Data_o,
|
|
output [DataInOutWidth-1:0] Data_o,
|
|
|
output [AddrWidth-1:0] Addr_o,
|
|
output [AddrWidth-1:0] Addr_o,
|
|
|
output Val_o
|
|
output Val_o
|
|
@@ -53,6 +54,7 @@ module SmcRx
|
|
|
reg valReg;
|
|
reg valReg;
|
|
|
|
|
|
|
|
reg [DataInOutWidth-1:0] outDataReg;
|
|
reg [DataInOutWidth-1:0] outDataReg;
|
|
|
|
|
+ reg [1:0] beReg;
|
|
|
//================================================================================
|
|
//================================================================================
|
|
|
// LOCALPARAM
|
|
// LOCALPARAM
|
|
|
|
|
|
|
@@ -61,6 +63,7 @@ module SmcRx
|
|
|
assign Data_o = inDataReg;
|
|
assign Data_o = inDataReg;
|
|
|
assign Addr_o = addrReg;
|
|
assign Addr_o = addrReg;
|
|
|
assign Val_o = valReg;
|
|
assign Val_o = valReg;
|
|
|
|
|
+ assign Be_o = beReg;
|
|
|
|
|
|
|
|
assign SmcD_i = (!SmcAoe_i && !SmcAre_i)? AnsData_i:16'bz;
|
|
assign SmcD_i = (!SmcAoe_i && !SmcAre_i)? AnsData_i:16'bz;
|
|
|
assign SmcD_i = (!SmcAoe_i && !SmcAre_i)? AnsData_i:16'bz;
|
|
assign SmcD_i = (!SmcAoe_i && !SmcAre_i)? AnsData_i:16'bz;
|
|
@@ -74,6 +77,7 @@ always @(posedge Clk_i) begin
|
|
|
addrReg <= {SmcA_i,1'b0};
|
|
addrReg <= {SmcA_i,1'b0};
|
|
|
inDataReg <= SmcD_i;
|
|
inDataReg <= SmcD_i;
|
|
|
valReg <= 1'b1;
|
|
valReg <= 1'b1;
|
|
|
|
|
+ beReg <= SmcBe_i;
|
|
|
end else begin
|
|
end else begin
|
|
|
valReg <= 0;
|
|
valReg <= 0;
|
|
|
end
|
|
end
|
|
@@ -91,6 +95,7 @@ always @(posedge Clk_i) begin
|
|
|
outDataReg <= 0;
|
|
outDataReg <= 0;
|
|
|
addrReg <= 0;
|
|
addrReg <= 0;
|
|
|
valReg <= 0;
|
|
valReg <= 0;
|
|
|
|
|
+ beReg <= 2'b0;
|
|
|
end
|
|
end
|
|
|
end
|
|
end
|
|
|
|
|
|