简单的apb slave的仿真task
自己在学习过程中用到的,记录一下方便以后再用。
task apb;
input [31:0] addr ;
input [31:0] wdata;
input rw ;//1:写 ;0:读
begin
//idle state
psel = 1'b0 ;
penable = 1'b0 ;
pwrite = 1'b0 ;
paddr = 32'b0;
pwdata = 32'b0;
//setup state
@(posedge pclk)
psel = 1'b1 ;
penable = 1'b0 ;
pwrite = rw ;
paddr = addr ;
pwdata = wdata;
//enable state
@(posedge pclk)
penable = 1'b1 ;
rdata = prdata;
//idle state
@(posedge pclk)
psel = 1'b0 ;
penable = 1'b0 ;
pwrite = 1'b0 ;
paddr = 32'b0;
pwdata = 32'b0;
end
endtask
本文详细介绍了一个简单的APB Slave仿真任务,通过Verilog代码展示了如何设置和控制APB Slave的状态,包括idle、setup和enable状态,对于学习和理解APB协议及仿真流程具有很好的参考价值。
4220

被折叠的 条评论
为什么被折叠?



