Verilog 设计初学者例程一 时序电路设计
By 上海 无极可米
12/13/2001
---------基础-----------
1. 1/2分频器
module halfclk(reset,clkin,clkout);
input clkin,reset;
output clkout;
reg clkout; //输出设为reg
always @(posedge clkin) //上升沿触发
begin
if(!reset) clkout=0; //复位
else clkout=~clkout;
end
endmodule
得到的波形
__|--|__|--|__|--|__|--|__|--|__|--|__|--|__
_____|-----|_____|-----|_____|-----|_____
-----------提高--------------
2. 1/50分频
module f50(reset,clkin,clkout);
input clkin,reset;
output clkout;
reg clkout; //输出设为reg
reg [7:0] j; //计数器
always @(posedge clk) //上升沿触发
if(!reset) //低电平复位。
begin
clkout <= 0;
j <= 0;
end
else
begin
if(j==49) //对计数器进行判断,以确定clkout信号是否反转。
begin
j <= 0;
clkout <= ~clkout;
end
else
j <= j+1;
end
endmodule
得到的波形
__|--|__|--... __|--|__|--|__|--|__|--|__|--|__
50个clk
__________________________|-----------------------
------------进阶---------------
3. 设计习题
|----------|
| |
------------------ -------------------
20个clk 10个clk 20个clk
提示:因为电平为1和0的时间不等,所以要用两个计数器。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。