?? 2.txt
字號:
K變??赡嬗嫈灯鞯腣ERILOG設計代碼如下(其中作了部分注釋,用斜體表示):
module KCounter(Kclock,reset,dnup,enable, Kmode,carry,borrow);
input Kclock; /*系統時鐘信號*/
input reset; /*全局復位信號*/
input dnup; /*鑒相器輸出的加減控制信號*/sel
input enable; /*可逆計數器計數允許信號*/
input [2:0]Kmode; /*計數器模值設置信號*/mo
output carry; /*進位脈沖輸出信號*/
output borrow; /*借位脈沖輸出信號*/
reg [8:0]Count; /*可逆計數器*/
reg [8:0]Ktop; /*預設模值寄存器*/
/*根據計數器模值設置信號Kmode來設置預設模值寄存器的值*/
always @(Kmode)
begin
case(Kmode)
3'b001:Ktop<=7;
3'b010:Ktop<=15;
3'b011:Ktop<=31;
3'b100:Ktop<=63;
3'b101:Ktop<=127;
3'b110:Ktop<=255;
3'b111:Ktop<=511;
default:Ktop<=15;
endcase
end
/*根據鑒相器輸出的加減控制信號dnup進行可逆計數器的加減運算*/
always @(posedge Kclock or posedge reset)
begin
if(reset)
Count<=0;
else if(enable)
begin
if(!dnup)
begin
if(Count==Ktop)
Count<=0;
else
Count<=Count+1;
end
else
begin
if(Count==0)
Count<=Ktop;
else
Count<=Count-1;
end
end
end
/*輸出進位脈沖carry和借位脈沖borrow*/
assign carry=enable&(!dnup) &(Count==Ktop);
assign borrow=enable&dnup& (Count==0);
endmodule
脈沖加減電路的設計實現
脈沖加減電路完成環路的頻率和相位調整,可以稱之為數控振蕩器。當沒有進位/借位脈沖信號時,它把外部參考時鐘進行二分頻;當有進位脈沖信號CARRY時,則在輸出的二分頻信號中插入半個脈沖,以提高輸出信號的頻率;當有借位脈沖信號BORROW時,則在輸出的二分頻信號中減去半個脈沖,以降低輸出信號的頻率。VERILOG設計代碼如下:
module IDCounter(IDclock,reset,inc,dec,IDout);
input IDclock; /*系統時鐘信號*/
input reset; /*全局復位信號*/
input inc; /*脈沖加入信號*/
input dec; /*脈沖扣除信號*/
output IDout; /*調整后的輸出信號*/
wire Q1, Qn1, Q2, Qn2, Q3, Qn3;
wire Q4, Qn4, Q5, Qn5, Q6, Qn6;
wire Q7, Qn7, Q8, Qn8, Q9, Qn9;
wire D7, D8;
FFD FFD1(IDclock, reset, inc, Q1, Qn1);
FFD FFD2(IDclock, reset, dec, Q2, Qn2);
FFD FFD3(IDclock, reset, Q1, Q3, Qn3);
FFD FFD4(IDclock, reset, Q2, Q4, Qn4);
FFD FFD5(IDclock, reset, Q3, Q5,Qn5);
FFD FFD6(IDclock, reset, Q4, Q6,Qn6);
assign D7=((Q9 & Qn1 & Q3) (Q9 & Q5 & Qn3));
assign D8=((Qn9 & Qn2 & Q4) (Qn9 & Q6 & Qn4));
FFD FFD7(IDclock, reset, D7, Q7, Qn7 );
FFD FFD8(IDclock, reset, D8, Q8, Qn8);
JK FFJK(IDclock, reset, Qn7, Qn8, Q9, Qn9);
assign IDout = (!Idclock)& Q9;
endmodule
其中,FFD為D觸發器,JK為JK觸發器。
當環路的四個主要部件全部設計完畢,我們就可以將他們連接成為一個完整的DPLL,進行仿真、綜合、驗證功能的正確性。
DPLL的FPGA實現
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -