verilog实现占空比为1/2的奇数分频电路
2013-07-06 19:33
281 查看
最近正在准备找工作,由于是做FPGA开发,所以verilog实现技术分频电路是一道经常出现的题目,三分频,五分频电路等等;
经过一下午时间总结出了一个通用电路,可以实现任意奇数分频电路。
verilog代码如下:
module fenpin3(clk,clkout,rst);//奇数分频电路,能够进行3,5,7分频
input clk,rst;
output clkout;
reg [2:0] a,b;
reg clkout;
parameter fenpin=3;
always@(posedge clk or negedge rst)
begin
if(!rst)
a<=0;
else if(a==fenpin-1)
a<=0;
else
a<=a+1;
end
always@(negedge clk or negedge rst)
begin
if(!rst)
b<=0;
else if(b==fenpin-1)
b<=0;
else
b<=b+1;
end
always@(a or b or rst)
begin
if(!rst)
clkout<=0;
else if((a+b==1)||(a+b==fenpin+1))
clkout<=~clkout;
end
endmodule
通过以上电路,可以实现任意占空比为1/2的电路。仿真波形如下:
三分频:
五分频:
七分频:
经过一下午时间总结出了一个通用电路,可以实现任意奇数分频电路。
verilog代码如下:
module fenpin3(clk,clkout,rst);//奇数分频电路,能够进行3,5,7分频
input clk,rst;
output clkout;
reg [2:0] a,b;
reg clkout;
parameter fenpin=3;
always@(posedge clk or negedge rst)
begin
if(!rst)
a<=0;
else if(a==fenpin-1)
a<=0;
else
a<=a+1;
end
always@(negedge clk or negedge rst)
begin
if(!rst)
b<=0;
else if(b==fenpin-1)
b<=0;
else
b<=b+1;
end
always@(a or b or rst)
begin
if(!rst)
clkout<=0;
else if((a+b==1)||(a+b==fenpin+1))
clkout<=~clkout;
end
endmodule
通过以上电路,可以实现任意占空比为1/2的电路。仿真波形如下:
三分频:
五分频:
七分频:
相关文章推荐
- 使用Verilog实现FPGA偶数/奇数分频电路设计并使用modelsim仿真
- Verilog实现任意分频和占空比
- [Verilog]任意整数(奇数,偶数)分频器设计, 50%占空比
- 用Verilog语言实现奇数倍分频电路3分频、5分频、7分频
- 【Verilog】verilog实现奇数次分频
- 如何在FPGA中利用Verilog实现任意倍的奇数分频
- [Verilog]随意整数(奇数,偶数)分频器设计, 50%占空比
- ZT等占空比任意整数分频器的verilog语言实现
- Verilog--奇数分频与偶数分频及占空比
- verilog实现奇数倍分频
- 1/2占空比的五分频电路实现
- Verilog 编程实验(4)-7位译码器的设计与实现
- 用Verilog实现IIC通讯
- Verilog 同步FIFO 实现方式2
- 奇数九宫格—Java实现
- 使用verilog实现模块级联
- 黑马程序员---java算法实现输出任意奇数维数独
- 基于Verilog的奇数偶数小数分频器设计
- jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
- Verilog的序列信号检测器实现及其testbench仿真