LVPECL、LVDS、HSTL与CML间直流耦合接口详解

需积分: 46 16 下载量 91 浏览量 更新于2024-07-15 收藏 132KB PDF 举报
本篇报告深入探讨了在现代电子系统设计中,不同逻辑电平接口的关键技术——直流耦合(DC-Coupling)在四种常用差分信号标准之间的应用:LVPECL(低电压正发射极耦合逻辑)、LVDS(低电压差分信号)、HSTL(高速收发器逻辑)和CML(电流模式逻辑)。报告的焦点集中在这六种接口情况上,旨在解决这些逻辑电平在速度、电压范围以及噪声敏感性等方面的匹配问题。 首先,报告详细介绍了AC耦合作为基本隔离手段,但在高带宽系统中可能不适用,因为直流耦合提供了更好的信号完整性。针对每种信号标准,报告分别讨论: 1. **LVPECL** (LVPECL到LVPECL接口):这部分重点阐述了如何确保低电压正偏置下的电荷泵或变压器等器件在两个LVPECL信号之间提供有效的直流耦合,以减少信号失真和噪声的影响。 2. **LVDS**:LVDS接口涉及两种情况,一是LVPECL与LVDS之间的转换,包括无芯片内终止和有终止的方案,目的是优化数据传输速率和信号质量。第二种情况是LVDS与其他逻辑电平之间的直接耦合,如LVDS到LVPECL,以兼容不同设备的驱动能力。 3. **CML**:CML逻辑以其低阻抗特性而闻名,报告会探讨LVPECL到CML的耦合策略,包括可能需要的转换电路,以适应CML的低电压工作模式。 4. **HSTL**:HSTL通常用于高速应用,报告分析了如何通过直流耦合有效地将LVPECL信号与HSTL信号同步,以实现高效的数据传输。 此外,报告还包含一系列图表,如输入输出参数、不同信号类型间的耦合电路示意图,帮助设计师理解每种接口的具体实现方法和注意事项。参考文献部分列出了相关的研究和标准,以便读者进一步深入学习和了解相关领域的最新进展。 这篇报告对于设计者来说是一份宝贵的资源,它提供了在实际应用中实现直流耦合,以确保不同逻辑电平之间的无缝通信和性能优化的关键技术和实践指南。
2019-02-01 上传
于传统石英、SAW和泛音谐振技术的传统差分振荡器在稳定度和可靠度上先天不足,SiT9121系列差分振荡器采用SiTime模拟CMOS和全硅MEMS技术研发,是唯一完美结合了超高性能和可编程功能的产品,其频率稳定度达10PPM、相位抖动低于0.6ps(femtosecond),市面上目前仅SiTime实现了这两项的完美结合。 SiT9121支持1-220Mhz之间任意频率,可精确到小数点后六位,确保发挥系统的最高性能。SiT9121同时输出支持 LVDS/LVPECL,经过50000G抗冲击及70G抗振测试,MTBF(平均无故障时间)达10亿小时。SiT9121和SiT9122系 列差分振荡器定位于高性能电信、存储和网络应用,如核心和边缘路由器,SATA、SAS、光纤通道主机总线适配器,云存储、服务器、无线基站和10G 以太网**机等。此外,每款产品都支持业界标准管脚配置,不需修改设计 或布板方式即可替换现有石英差分振荡器。 SiT9121差分振荡器具备下述功能及优点: . 仅500飞秒RMS相位抖动(12kHZ至20MHz),满足SONET等应用的苛刻要求 . 总频率稳定度达±10、±25及±50PPM,系统正时余量(timing margin)更佳 . 频率范围极广:SiT9121频率范围1至220MHz,SiT9122频率范围220至650MHz . 可编程频率精度达小数点后六位,确保发挥系统最高性能 . LVPECL及LVDS信号电平可调 . 通过50000G抗冲击及70G抗振测试,MTBF(平均无故障时间)达10亿小时,高稳定度应用首选 . 工作电压2.5V、3.3V均可 . 支持工业(-40至+85°C)及长时间商业(-20至+70°C)工作温度范围 . 业界标准针脚规格3.2×2.5mm,5.0×3.2mm,7.0×5.0mm封装 . 样品24小时内发货,生产前置时间仅2至4周 . FPGA产品首选高性能差分时钟振荡器 . 兼容工业标准封装: 3.2×2.5, 5.0×3.2 and 7.0×5.0 mmxmm . 超强抗震动、抗冲击能力,优异的温漂性能 . 如需220MHz以上频点的高性能差分晶振,推荐选择SiT9122系列

class LinearMaskedCoupling(nn.Module): """ Coupling Layers """ def __init__(self, input_size, hidden_size, n_hidden, mask, cond_label_size=None): super().__init__() # stored in state_dict, but not trained & not returned by nn.parameters(); similar purpose as nn.Parameter objects # this is because tensors won't be saved in state_dict and won't be pushed to the device self.register_buffer('mask', mask) # 0,1,0,1 # scale function # for conditional version, just concat label as the input into the network (conditional way of SRMD) s_net = [nn.Linear(input_size + (cond_label_size if cond_label_size is not None else 0), hidden_size)] for _ in range(n_hidden): s_net += [nn.Tanh(), nn.Linear(hidden_size, hidden_size)] s_net += [nn.Tanh(), nn.Linear(hidden_size, input_size)] self.s_net = nn.Sequential(*s_net) # translation function, the same structure self.t_net = copy.deepcopy(self.s_net) # replace Tanh with ReLU's per MAF paper for i in range(len(self.t_net)): if not isinstance(self.t_net[i], nn.Linear): self.t_net[i] = nn.ReLU() def forward(self, x, y=None): # apply mask mx = x * self.mask # run through model log_s = self.s_net(mx if y is None else torch.cat([y, mx], dim=1)) t = self.t_net(mx if y is None else torch.cat([y, mx], dim=1)) u = mx + (1 - self.mask) * (x - t) * torch.exp( -log_s) # cf RealNVP eq 8 where u corresponds to x (here we're modeling u) log_abs_det_jacobian = (- (1 - self.mask) * log_s).sum( 1) # log det du/dx; cf RealNVP 8 and 6; note, sum over input_size done at model log_prob return u, log_abs_det_jacobian 帮我解析代码

2023-07-13 上传
2023-07-24 上传