【verilog】十、時鐘信號與復位信號

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章