module se_pa(rst,clk,data_in,data_out
);
input clk,rst;
input data_in;
output[3:0] data_out;
reg[3:0] data_out;
reg[3:0] para_out;
reg[1:0] count;
always@(posedge clk)
begin
if(rst)
begin
count <= 2'b00;
end
else
begin
count <= count + 2'b01;
end
end
always@(posedge clk)
begin
if(rst)
begin
para_out <= 4'b0000;
end
else
begin
para_out <= {para_out[2:0],data_in};
end
end
always@(posedge clk)
begin
if(rst)
begin
data_out <= 0;
end
else if(count == 2'b11)
begin
data_out <= para_out;
end
end
endmodule
module t;
// Inputs
reg rst;
reg clk;
reg data_in;
// Outputs
wire [3:0] data_out;
// Instantiate the Unit Under Test (UUT)
se_pa uut (
.rst(rst),
.clk(clk),
.data_in(data_in),
.data_out(data_out)
);
initial begin
// Initialize Inputs
rst = 1;
clk = 0;
data_in = 0;
// Wait 100 ns for global reset to finish
#10 rst = 0;
#10 data_in = 1;
#10 data_in = 0;
#10 data_in = 1;
#10 data_in = 1;
#10 data_in = 0;
#10 data_in = 1;
#10 data_in = 0;
#10 data_in = 1;
#10 data_in = 1;
#10 data_in = 1;
#10 data_in = 0;
// Add stimulus here
end
always #50 clk = ~clk;
endmodule
输出不知道为什么不对 请高手 看看程序 指点一二 谢谢了 |