原码:
module cont(
input clk,
input rst_n,
output [9:0] cont_i
);
reg vs;
reg [9:0]cont;
always@(posedge clk)
begin
if(~rst_n)
cont<=0;
else if(cont==509)
cont<=0;
else
cont<=cont+1’b1;
end
always@(posedge clk)
begin
if(~rst_n)
vs<=0;
else if(cont1)
vs<=1;
else if(cont11)
vs<=0;
end
assign cont_i=cont;
endmodule
激励程序:
`timescale 1ns/1ns
module dk();
reg clk;
reg rst_n;
reg [9:0] cont;
initial
begin
rst_n=0;
100 rst_n=1;
30000 $stop;
end
initial
begin
clk=0;
end
always #10 clk<=~clk;
cont cont_out(
.rst_n(rst_n),
.clk(clk),
.cont_i()
);
endmodule
这个实验的的思路是:因为它的周期为510个单位,然后1的时间周期为10个单位,所以我们写一个计数器,然后在计数为1的时候,脉冲为1,在11的时候脉冲为0.将计数器在509的时候置为0.