简单的apb slave的仿真task
自己在学习过程中用到的,记录一下方便以后再用。
task apb;
input [31:0] addr ;
input [31:0] wdata;
input rw ;//1:写 ;0:读
begin
//idle state
psel = 1'b0 ;
penabel = 1'b0 ;
pwrite = 1'b0 ;
paddr = 32'b0;
pwdata = 32'b0;
//setup state
@(posedge pclk)
psel = 1'b1 ;
penabel = 1'b0 ;
pwrite = rw ;
paddr = addr ;
pwdata = wdata;
//enable state
@(posedge pclk)
penabel = 1'b1 ;
rdata = prdata;
//idle state
@(posedge pclk)
psel = 1'b0 ;
penabel = 1'b0 ;
pwrite = 1'b0 ;
paddr = 32'b0;
pwdata = 32'b0;
end
endtask