关于fpga的clk分频的问题?
答案:2 悬赏:0 手机版
解决时间 2021-02-14 15:26
- 提问者网友:斑駁影
- 2021-02-14 09:03
关于fpga的clk分频的问题?
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-02-14 10:16
嗯,是的,这是我写的通过的完整代码(希望能帮到你):
module ndivf(clki,clko,cnt1,cnt2);
input clki;//input clock
output clko;//after divided output
output [n:0] cnt1,cnt2;
parameter N=4;//N>3
parameter n=3;//2^(n+2)>N
reg[n:0] cnt1;
reg[n:0] cnt2;
//reg ss=0;
wire clko=0;
reg clk1,clk2;
assign clk_i=~clki;
assign clko=clk1|clk2;//部分奇数和偶数分频结果相或得到最后输出
//////////////////////奇数分频处理///////////////////////
//clk1产生
always @(posedge clki) //pos_edge clock trigger
begin
if(cnt1==(N-1))
begin
cnt1=0;
clk1=0;
end
else begin
cnt1=cnt1+1;
if(cnt1==(N-1)/2)
begin
clk1<=~clk1;
end
end
end
//clk2产生
always @(posedge clk_i)
begin
if(cnt2==(N-1))
begin
cnt2=0;
clk2=0;
end
else begin
cnt2=cnt2+1;
if(cnt2==(N-1)/2)
begin
clk2<=~clk2;
end
end
end
endmodule
module ndivf(clki,clko,cnt1,cnt2);
input clki;//input clock
output clko;//after divided output
output [n:0] cnt1,cnt2;
parameter N=4;//N>3
parameter n=3;//2^(n+2)>N
reg[n:0] cnt1;
reg[n:0] cnt2;
//reg ss=0;
wire clko=0;
reg clk1,clk2;
assign clk_i=~clki;
assign clko=clk1|clk2;//部分奇数和偶数分频结果相或得到最后输出
//////////////////////奇数分频处理///////////////////////
//clk1产生
always @(posedge clki) //pos_edge clock trigger
begin
if(cnt1==(N-1))
begin
cnt1=0;
clk1=0;
end
else begin
cnt1=cnt1+1;
if(cnt1==(N-1)/2)
begin
clk1<=~clk1;
end
end
end
//clk2产生
always @(posedge clk_i)
begin
if(cnt2==(N-1))
begin
cnt2=0;
clk2=0;
end
else begin
cnt2=cnt2+1;
if(cnt2==(N-1)/2)
begin
clk2<=~clk2;
end
end
end
endmodule
全部回答
- 1楼网友:爱难随人意
- 2021-02-14 11:27
是的,都可以。附件可以给你参考参考
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯