verilog入门简单问题

请分析如下所示的Verilog程序功能,并编写仿真测试程序
module reg8(input clk, input clrn, input wen, input [7:0] d, output [7:0] q);

  reg [7:0] p;

    always @(posedge clk or negedge clrn)

      if(!clrn)

     p<= 0;



      else if (!wen)

       p <= d;

   

   assign  q = p;

endmodule

程序的功能就是clrn为低的时候清零,当wen为低的时候写入数据,把d的信号写入给p,然后q输出当前p的内容。
测试程序的话可以看一下下面的例子,对于这个模块其实能体现出清零和写入的功能就可以
https://xinso.blog.csdn.net/article/details/105548775?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1-105548775-blog-96422293.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1-105548775-blog-96422293.pc_relevant_default&utm_relevant_index=1

感谢!