网站服务器建立网站建设和优
2026/4/21 5:52:02 网站建设 项目流程
网站服务器建立,网站建设和优,南昌的网站推广公司,建立网站的目标锁相环电路#xff0c;有教程 输出频率800MHz或者1GHz#xff0c; 采用Ring_VCO的结构#xff0c;输入参考频率20MHz#xff0c;分频器是40-50分频#xff0c;电荷泵电流20uA#xff0c;工艺是smic55nm 每个模块都有单独的testbench 可送一些仿真#xff0c;设计参考资料…锁相环电路有教程 输出频率800MHz或者1GHz 采用Ring_VCO的结构输入参考频率20MHz分频器是40-50分频电荷泵电流20uA工艺是smic55nm 每个模块都有单独的testbench 可送一些仿真设计参考资料 还有matlabverilog-a建模推导。 呈现最完整的project 前仿真无版图先来聊聊咱们折腾的这个Ring_VCO锁相环项目吧。这玩意儿就像个精密时钟管家要把20MHz的参考信号硬生生提到800MHz甚至1GHz中间要过五关斩六将。别急着上代码先看架构图心里才有谱整个PLL链条长这样参考时钟→分频器→相位检测器→电荷泵→环路滤波器→Ring_VCO→分频器闭环。核心指标是输出频率参考频率×分频比所以当分频器在40-50之间蹦跶时输出正好卡在800MHz-1GHz的区间。先看分频器模块Verilog代码得能动态切分频比module Divider_N40to50( input clk_in, input [5:0] N_sel, //40~50 output reg clk_out ); reg [5:0] counter; always (posedge clk_in) begin if(counter N_sel-1) begin clk_out ~clk_out; counter 0; end else begin counter counter 1; end end endmodule这个计数器的精髓在N_sel的动态加载仿真时要注意分频切换瞬间的毛刺问题。测试时先固定N值跑眼图再突然切分频比看锁相环的跟踪速度。电荷泵是电流搬运工Verilog-A模型得体现充放电特性include constants.vams module CP(up, dn, out); input up, dn; inout out; electrical out; parameter real I20u from [0:inf); //泵电流20uA analog begin if (up !dn) I(out) I; else if (!up dn) I(out) -I; else I(out) 0; end endmodule重点在死区时间控制——当up和dn同时有效时电流为零这个状态处理不好会导致锁相环卡在亚稳态。仿真时给互补脉冲看电流积分线性度。Ring_VCO是频率发生器用五级反相器环实现include disciplines.vams module VCO_Ring(ctrl, out); input ctrl; output out; electrical ctrl, out; parameter real Kvco300e6; //300MHz/V parameter real Vmin0.4, Vmax1.8; //控制电压范围 real freq, phase; integer x; analog begin freq V(ctrl)*Kvco; phase idtmod(freq, 0, 1); V(out) 1.8*(phase 0.5); //生成方波 end endmodule这个模型的关键是Kvco参数校准实际要跑DC扫描看freq-vctrl曲线斜率。在Matlab里先建模推导Δf Kvco·ΔV结合工艺角做蒙特卡洛分析。环路滤波器用二阶无源结构计算元件值有讲究Icp 20e-6; % 电荷泵电流 Kvco 300e6; % VCO增益 N 50; % 分频比 omega_c 2*pi*200e3; % 环路带宽200kHz zeta 0.7; % 阻尼系数 C1 Icp*Kvco/(N*omega_c^2)*(4*zeta^2/(11/(4*zeta^2)))); C2 C1/10; Rz 2*zeta/(omega_c*sqrt(C1*C2*Icp*Kvco/N));这组方程解出来的RC值要取E24系列标称值同时留margin给工艺偏差。仿真时看控制电压的过冲和稳定时间锁定过程像坐过山车似的。最后上顶层测试testbench pll_tb; reg ref_clk; wire vco_out; initial begin ref_clk 0; forever #25 ref_clk ~ref_clk; //20MHz参考 end PLL_top dut( .ref_clk(ref_clk), .vco_out(vco_out) ); initial begin $dumpfile(pll.vcd); $dumpvars; #1000us $finish; end endmodule跑瞬态仿真起码要等几百微秒才能锁定。看眼图时用测量游标卡相位误差相位噪声用spectre的pnoise分析1GHz时1MHz偏移至少-100dBc/Hz才算合格。整个项目最坑的地方在环路稳定性——改个滤波电容就能让系统震荡。建议边调参边看Bode图相关资料推荐Behzad Razavi的《Phase Locking in High-Performance Systems》里面对Ring振荡器的相位建模特别实用。代码和模型扔GitHub仓库时记得带Makefile不然别人复现时路径问题能折腾半天。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询