欢迎来到天天文库
浏览记录
ID:51713592
大小:42.45 KB
页数:5页
时间:2020-03-15
《编写的全数字锁相环的代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、全数字锁相环的verilog源代码,仿真已通过moduledpll(reset,clk,signal_in,signal_out,syn);parameterpara_K=4;parameterpara_N=16;inputreset;inputclk;inputsignal_in;outputsignal_out;outputsyn;regsignal_out;regdpout;regdelclk;regaddclk;regadd_del_clkout;reg[7:0]up_down_cnt;reg[2:0]cnt8;reg[8:0]cnt_N;regsyn;regdpout_delay;
2、reg[8:0]cnt_dpout_high;reg[8:0]cnt_dpout_low;/******phasedetector*****/always@(signal_inorsignal_out)begindpout<=signal_in^signal_out;end/******synchronizationestablishdetector*****/always@(posedgeclkornegedgereset)beginif(!reset)dpout_delay<='b0;elsedpout_delay<=dpout;endalways@(posedgeclkornegedg
3、ereset)beginif(!reset)begincnt_dpout_high<='b0;cnt_dpout_low<='b0;endelseif(dpout)if(dpout_delay==0)cnt_dpout_high<='b0;elseif(cnt_dpout_high==8'b11111111)cnt_dpout_high<='b0;elsecnt_dpout_high<=cnt_dpout_high+1;elseif(!dpout)if(dpout_delay==1)cnt_dpout_low<='b0;elseif(cnt_dpout_low==8'b11111111)cn
4、t_dpout_low<='b0;elsecnt_dpout_low<=cnt_dpout_low+1;endalways@(posedgeclkornegedgereset)beginif(!reset)syn<='b0;elseif((dpout&&!dpout_delay)
5、
6、(!dpout&&dpout_delay))if(cnt_dpout_high[8:0]-cnt_dpout_low[8:0]<=4
7、
8、cnt_dpout_low[8:0]-cnt_dpout_high[8:0]<=4)syn<='b1;elsesyn<='b0;end/****updowncouterwithm
9、od=K****/always@(posedgeclkornegedgereset)beginif(!reset)begindelclk<='b0;addclk<='b0;up_down_cnt<='b00000000;endelsebeginif(!dpout)begindelclk<='b0;if(up_down_cnt==para_K-1)beginup_down_cnt<='b00000000;addclk<='b0;endelsebeginup_down_cnt<=up_down_cnt+1;addclk<='b0;endendelsebeginaddclk<='b0;if(up_
10、down_cnt=='b0)beginup_down_cnt<=para_K-1;delclk<='b0;endelseif(up_down_cnt==1)begindelclk<='b1;up_down_cnt<=up_down_cnt-1;endelseup_down_cnt<=up_down_cnt-1;endendend/******addanddeleteclk*****/always@(posedgeclkornegedgereset)beginif(!reset)begincnt8<='b000;endelsebeginif(cnt8=='b111)begincnt8<='b0
11、00;endelseif(addclk&&!syn)begincnt8<=cnt8+2;endelseif(delclk&&!syn)cnt8<=cnt8;elsecnt8<=cnt8+1;endendalways@(cnt8orreset)beginif(!reset)add_del_clkout<='b0;elseadd_del_clkout<=cnt8[2];end/******counterwithm
此文档下载收益归作者所有