1. 项目背景与核心架构
整理硬盘时意外发现的老项目让我回想起刚入行时那段"痛并快乐着"的岁月——这是一套完整的10/100Mbps以太网PHY层电路设计,采用Cadence全家桶工具链实现,包含GPDK90nm(主版本)和GPDK180nm两个工艺版本。作为工业级低成本以太网解决方案,其设计复杂度主要体现在混合信号系统的协同设计上:两个独立锁相环(PLL)分别处理收发时钟同步,模拟均衡器补偿信道损耗,6位Flash ADC实现信号量化,以及带trim功能的带隙基准电压源等核心模块。
这个项目的独特价值在于其"开箱即用"的完整性——从晶体管级电路设计、Verilog数字逻辑到全定制版图(包含TOP层和所有单元库),甚至考虑了不同工艺节点的参数迁移需求。90nm版本主打性能(-122dBc/Hz@1MHz相位噪声),180nm版本侧重成本(芯片面积大30%但流片成本低40%),这种双版本策略在实际产品定义中颇具参考价值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 时钟系统设计与实现
2.1 双PLL架构的必要性
早期方案尝试用单个PLL同时服务收发两端,实测眼图在100Mbps速率下抖动达到1.2ns(超过IEEE802.3标准的0.8ns限制)。问题根源在于发送时钟与接收采样时钟存在累积相位差。改进方案采用分离式设计:
- 发送PLL:基于参考时钟生成125MHz主时钟(100Mbps需4B/5B编码)
- 接收PLL:通过数字鉴频鉴相器(PFD)动态跟踪输入信号时钟
verilog复制// 改进版PFD数字核心(支持死区控制)
module pfd_enhanced(
input wire ref_clk, // 参考时钟
input wire fb_clk, // 反馈时钟
input wire rst_n,
output reg up, // 电荷泵充使能
output reg down // 电荷泵放使能
);
parameter DEADBAND = 20; // 死区时间ps
reg [1:0] sync_chain;
always @(posedge ref_clk or negedge rst_n) begin
if
