1.常規時鐘
1) initial:
parameter clk_period = 10;
reg clk;
initial begin
clk = 1'b0;
forever
#(clk_period / 2) clk = ~clk;
end
2) always:
parameter clk_period = 10;
reg clk;
initial
clk = 0;
always #(clk_period / 2) clk = ~clk;
2.佔空比可調時鐘
//佔空比:High_time / (High_time + Low_time)
parameter High_time = 5, Low_time = 10;
reg = clk;
always
begin
clk = 1;
# High_time;
clk = 0;
# Low_time;
end
3.偏移相位時鐘信號
//相位偏移:360 * pshift_time / (High_time + Low_time)
parameter High_time = 5, Low_time = 10, pshift_time = 2;
reg = clk;
always
begin
clk = 1;
# High_time;
clk = 0;
# Low_time;
end
assign #(pshift_time) clk_p = clk;
4.固定數目時鐘信號
parameter clk_cnt = 50, clk_period = 2;
reg clk;
initial
begin
clk = 0;
repeat(clk_cnt)
#(clk_period / 2) clk = ~clk;
end
5.復位信號
1)異步復位
parameter rst_repiod = 100;
reg rst_n;
initial
begin
rst_n = 0;
#rst_repiod;
rst_n = 1;
end
2)同步復位
parameter rst_repiod = 100;
reg rst_n;
initial begin
rst_n = 1;
@(posedge clk)
rst_n = 0;
#rst_repiod;
rst_n = 1;
end