//slave 设计
module APB_slave_bywl(
input wire pclk,
input wire preseten,
input wire psel,
input wire penable,
input wire pwrite,
input wire [63:0]pwdata,
input wire [63:0]paddr, //输入信号不能是reg型
output wire pready,
output reg [63:0] prdata
);
parameter REG1_ADDR=16'h0;
parameter REG2_ADDR=16'h8;
parameter REG3_ADDR=16'h10;
reg [63:0] REG1;
reg [63:0] REG2;
reg [63:0] REG3;
reg [63:0] NOT_valid_REG;
assign pready = 1'b1;
wire pwrite_valid,pread_valid;
assign pwrite_valid = (pwrite && psel && penable );
assign pread_valid = (~pwrite && psel && penable );
always@(posedge pclk or negedge preseten)
begin
if(!preseten)
begin
REG1 <= 64'b0;
REG2 <= 64'b0;
REG3 <= 64'b0;
end
else if(pwrite_valid)
begin
case(paddr[15:0])
REG1_ADDR: REG1 <= pwdata;
REG2_ADDR: REG2 &