基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc

上传人:b****1 文档编号:13080607 上传时间:2022-10-04 格式:DOC 页数:10 大小:24KB
下载 相关 举报
基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc_第1页
第1页 / 共10页
基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc_第2页
第2页 / 共10页
基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc_第3页
第3页 / 共10页
基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc_第4页
第4页 / 共10页
基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc

《基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc》由会员分享,可在线阅读,更多相关《基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc(10页珍藏版)》请在冰豆网上搜索。

基于FPGA数字锁相环源程序代码(已验证运行,超值)Word下载.doc

0]Count;

wireinc,dec;

regdnup;

reginc_new,dec_new,inc_pulse,dec_pulse;

regdelayed,advanced,Tff;

regIDout;

reg[14:

0]count_N;

reg[15:

0]cnt;

regcnt_en;

regload;

wirecnt_clr;

//2.异或门鉴相器模块

——————————————————————————————————————

always@(finorfout)

begin

dnup=fin^fout;

end

//3.K模计数器模块

always@(Kmode)

case(Kmode)

3&

#39;

b001:

Ktop&

lt;

=7;

b010:

=15;

b011:

=31;

b100:

=63;

b101:

=127;

b110:

=255;

b111:

=511;

default:

endcase

//根据鉴相器输出的加减控制信号dnup进行可逆计数器的加减运算

always@(posedgeclkorposedgereset)begin

if(reset)

Count&

=0;

elseif(!

dnup)

if(Count==Ktop)Count&

else

=Count+1;

end

if(Count==0)Count&

=Ktop;

=Count-1;

//输出进位脉冲carry和借位脉冲borrowassign

inc=!

dnup&

amp;

(Count==Ktop);

assigndec=dnup&

(Count==0);

//4.脉冲增减模块

always@(posedgeclk)

if(!

inc)

inc_new&

=1;

inc_pulse&

elseif(inc_pulse)

inc_pulse&

elseif(inc&

&

inc_new)begin

inc_new&

dec)

dec_new&

dec_pulse&

elseif(dec_pulse)

elseif(dec&

dec_new)

always@(posedgeclk)

if(reset)

beginTff&

delayed&

advanced&

endelse

if(inc_pulse)

beginadvanced&

Tff&

=!

Tff;

if(dec_pulse)

begindelayed&

Tff&

endelseif(Tff==0)

advanced)

elseif(advanced)

=Tff;

advanced&

if(!

delayed)

elseif(delayed)

delayed&

always@(clkorTff)

if(Tff)

IDout=0;

if(clk)

IDout=1;

//5.N分频参数控制模块

always@(posedgefin)//fin上升沿到的时候,产生各种标志以便后面控制begin

cnt_en=0;

load=1;

cnt_en=~cnt_en;

load=~cnt_en;

assigncnt_clr=~(~fin&

load);

always@(posedgeclkornegedgecnt_clr)

cnt_clr)

cnt=0;

elseif(cnt_en)

if(cnt==65536)

cnt=cnt+1;

always@(posedgeload)

count_N=cnt/2;

//这里取fin周期的一半end

//6.N分频器模块

integercount;

always@(posedgeIDout)

fout=0;

count=0;

if(count&

gt;

=(count_N/2)-1)

beginfout&

=~fout;

count&

endelse

=count+1;

endmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1