Hexo + Butterfly 搭建个人博客随记
Hexo + Butterfly 搭建个人博客随记
本地部署
首先得有一个GitHub账号
这里就不赘述如何注册一个GitHub账号了,如果大家能够科学上网想必能轻松完成。
打开你的repo,new一个名字叫YourName.github.io的repo。这里我演示的名字叫BlogDemo,大家也可以挑自己喜欢的。
注意这里可以下载安装GitHub Desktop,便于不想学git指令的小伙伴管理仓库。此外,需要将HTTPS和SSH对应的网址https://github.com/Loli-Eternally/BlogDemo.github.io.git和地址[email protected]:Loli-Eternally/BlogDemo.github.io.git记录下来,便于后面修改配置进行博客的部署。
下载安装好GitHub Desktop并启动后,cloneBlogDemo,URL地址为上面提到的https://github.com/Loli-Eternally/BlogDemo.github.io.git
这个时候我们的repo是空的,需要在本地将BlogDe ...
使用 Infiniium Offline 对波形均衡
使用 Infiniium Offline 对波形均衡
前言
今天介绍一个非常强大且实用的波形分析软件,Infiniium Offline。该工具包含我以前自制的 WaveformEye 的全部功能,且还能做自适应均衡。
软件虽然很不错,但使用门槛较高,必须有扎实的理论基本功,否则各种功能模块是干什么的都搞不清楚。
本次介绍具体操作,算是一个 QuickStart,快速入门。
导入波形并设置
波形文件是从 IQtools 里生成的,如何生成波形可以去看博文——从波形恢复眼图
打开软件后,File——Open——Waveform,打开波形,此时我们会对波形进行全局预览
拿到波形后,我们需要对信号类型进行设置。点击 Setup——Channel 1,打开通道设置面板,可以看到此时的 Signal Type 还是 Unspecified。点击这个 Unspecified,将信号类型设置为 PAM4
PAM Setup Wizard
点击 PAM4 后,会跳出一个完整的设置面板,其中包含主码率,编码类型,SNDR 设置等等选项,比较复杂。
这里我们可以通过 PAM Setup ...
Channelsim 调用 VPI 案例联仿
Channelsim 调用 VPI 案例联仿
前言
在 Ethernet Designer 出来以前,我是用的 Channelsim 调用 VPI 做联仿的,因为 VPI 中有很多现成的案例可供参考。
虽然 VPI 也是一个很强大的光通信仿真工具,用来做学术研究,理论模型很不错,但工程能力相比 ADS 就逊色很多了。例如你想在其中使用 S 参数,由于没有现成的 S 参数工具,就只能摆出一堆滤波器来实现,密密麻麻的很是恼人,参考我以前写的博客VPI中加载光s4p参数。
趁这次机会,我将以前做 ADS-VPI 联仿的经验总结一下,也算是给未来可能淘汰掉的工程方法做个收尾。
VPI 案例分析
这次用最简单的 VPI 案例为单波 100G PAM-4 光互连(Single-Wavelength 100G PAM-4 Optical Interconnect),原理图如下
先简要分析一下这个简单案例。信源是一个 PAM-M 的电信源,该信号经过滤波与整形处理后,以差分的形式喂给推挽式 MZM 的电极,调整两臂相位实现光载波调制。光信号经过光纤后,由一个 PD 的行为模型接收,转换为电信号,再经 ...
从波形恢复眼图
从波形恢复眼图
前言
这次讲 ADS 的一个非常实用的工具——Tx Wav AMI,以及 matlab 里的 sndr 函数。
之所以讲这个工具,是因为实际工程实验中,每天都会拿到一堆乱七八糟的波形。这个时候你能获取到的信息,只有 AWG 里设定的码型和示波器中导出来的波形。
不出意外的话,手头上拿到的数据都是很烂的数据,烂到什么程度呢?别说看到眼,连哪块地方凹下去的痕迹你都找不到!
但你不确定眼的消失,究竟是 ISI,还是噪声,或者其他非线性原因导致的。
这个时候我们就希望有一条工具链,能帮我们分析噪声(SNDR),分析 DSP 究竟能对这坨烂波形恢复到什么样的程度。
波形分析
假如我们刚做完实验,从示波器上将波形导出来了。如果是我,第一时间会选择以前我自制的 WaveformEye 软件,导入波形看看能不能画出眼图。但 ADS 里本就提供了一个非常实用的工具——Tx Wav AMI,能够画出波形并提供给 Rx AMI 进行时钟恢复、均衡、判决等操作。
首先用 Tx Wav AMI 查看波形:
波形生成
如果没有实验测到的烂波形,可以自己生成个玩玩儿。这里用的波形是我用 IQtoo ...
虚拟子层与物理硬件
虚拟子层与物理硬件
前言
前面我们聊过,IEEE 802.3 标准应该怎么查,也简单捋过 Clause、MAC、PHY、PCS、PMA、PMD 这些概念。
但如果只是盯着这些名词看,其实很容易越看越乱。因为标准里写的是一堆"子层"和"接口",而我们脑子里想的却是另一套东西:芯片、走线、光模块、连接器、铜缆、光纤。
问题就出在这里。
标准里的子层,并不等于真实硬件里的物理模块。
它们更多是在描述一种系统架构:
这个复杂系统应该怎么拆?
每个功能块负责什么?
上下层之间靠什么接口协作?
不同厂商的芯片、模块、线缆,为什么能插在一起工作?
所以这篇文章,我不想单纯从"哪个子层干什么"开始讲,而是想先从设计哲学的角度,重新理解以太网里的虚拟子层和物理硬件之间到底是什么关系。
一句话概括就是:
Ethernet 分层不是为了把硬件强行切成一块一块,而是为了把复杂通信系统抽象成一组稳定的功能边界。
标准定义的是功能边界,不是硬件边界。
这个点想明白以后,再看 MAC、xMII、PCS、PMA、PMD、MDI,逻辑就会顺很多。
分层 ...
IEEE 802.3 规范入门
IEEE 802.3 规范入门
如何在七千页以太网标准里找到自己要看的东西
前言
本来是不想讲这部分内容的,因为没人会无聊到翻开一本七千多页的全英文档,去琢磨里面到底讲了什么。
但后来我发现,做高速互连、光模块、LPO/CPO、SerDes、AMI、ChannelSim 这些东西,早晚都绕不开 802.3。很多时候大家聊天会直接说:
这个看 802.3ck。
这个是 802.3df 里面的。
800GBASE-DR4 要看对应 PMD。
200G/lane 要看 802.3dj。
如果对 802.3 文档结构完全没概念,就会非常痛苦。因为你打开 PDF 之后,看到的不是一篇文章,而是一座大楼:Clause、Annex、PCS、PMA、PMD、FEC、RS、AUI、MII、GMII、XGMII、BASE-R、BASE-T、BASE-KR、BASE-CR、BASE-DR……每个词都认识,但不知道从哪里开始。
所以这篇文章不打算一上来讲某个具体 PHY 的参数,而是先解决一个更基础的问题:
IEEE 802.3 这种标准文档,到底应该怎么查?
我的理解是,802.3 不能像一本教材 ...
高速互连标准与规范
高速互连标准与规范
前言
最近看到很多关于 IEEE、OIF-CEI、802.3dj、800GAUI、CEI-224G 之类的名词,突然想起了以前看计算机网络的痛苦经历。各种标准名词看起来都很熟,但真的放在一起,又很难说清楚它们到底是什么关系。
之所以想整理这部分内容,是因为高速互连标准体系确实太杂了。偶尔去参加个技术论坛,或者听个厂商技术报告,里面全是 IEEE 802.3、OIF-CEI、224G SerDes、XSR、USR、VSR、KR、CR、DR、LR 这些词。内行人都要愣一下,外行就更听不懂了。
我写这篇文章的目的,就是希望把这一块的逻辑关系尽量理顺。以后即便我忘了,回头翻翻这篇文章,也能迅速想起来:OIF 是干什么的,CEI 是什么,IEEE 802.3 又是什么,Reach 等级和 800GBASE-DR4 这些命名到底是什么关系。
简单来说,高速互连标准不是一套孤立的标准,而是一整套从芯片电接口、封装、PCB、连接器、光模块,到以太网系统的分层规范体系。
高速互连体系结构
整个高速互连标准体系,可以先粗略理解成三层:
123456789101112131415161 ...
光电链路训练
光电链路训练
前言
遇到的困境
终于来到了最终关卡,是我这两年来一直想做,但却一直只做了个半吊子的工作——完整光电链路训练。
以前一直在找平台做这件事,有段时间用的是 ADS + VPI 平台,但问题是这个平台对链路训练的支持极差。它只负责计算波形输出,但输出的波形直接交给 Channelsim 中的 Rx 会出问题。
我曾花了很多精力解决这个麻烦,想将 VPI 导回 ADS 的波形重新用 ADS 中的 Rx 去均衡。但这么做不行,因为我这边的 IBIS-AMI 模型属于脉冲自适应型,而非波形自适应。"波形自适应"指的是模型在 AMI_GetWave 流式处理过程中,根据它看到的信号统计去调 CTLE/DFE 系数。
脉冲自适应 / pulse based:CTLE/VGA/FFE/DFE 的系数全部在 AMI_Init 里、根据通道冲激响应算好,AMI_GetWave 只是套用这套固定系数。必须有真实冲激响应,无法用 delta 跳过。
波形自适应型模型:系数是在 AMI_GetWave 里边处理波形边收敛的。这种才可以 delta-Init + 纯 GetWa ...
搭建EOE链路并实现系统仿真
搭建EOE链路并实现系统仿真
前言
前面已经分别对 MZM EOE 仿真和 ADS 中的 Ethernet Designer 做了简单介绍和入门,现在可以将两者融会起来,完成阶段性目标:
EOE链路的引入并完成系统仿真
搭建 EOE 链路
创建项目
新建一个项目 Workspace
为了省事儿,我们可以直接将案例搭建的 lib 直接调过来,这样很多基础组件和公用模块就不用从头开始了。
利用 MZM_behavioural_lib 构建好的模块
项目中可以看到之前 MZM EOE 链路的原理图和模块了。
需要注意的是,你对调用过来的 lib 进行的修改,是会同步到原项目的!也就是说,它不是复制,而是共享读写,修改前最好做个备份,免得把原 lib 给改坏了。
接着,我们需要对项目中引入的 lib 和原理图进行整理,要养成好习惯,将自己的项目整理的井然有序
右键点击项目根文件夹,新建几个 Folder,用来分类 Ethernet lib 和 MZM lib ,并建立一个 bak 文件夹将刚引入的一堆 cell 备份进去
这个时候 bak 文件夹里就是最初引进来的 lib,需 ...
ADS 中的 Ethernet Designer
ADS 中的 Ethernet Designer
—— 快速入门 System Designer for Ethernet
前言
近年来,随着人工智能对算力与带宽需求的持续提升,数据中心内部的互连架构正逐渐从传统中心化交换模式向更高带宽密度、更低延迟的点对点互连模式演进。以 NVLink、NVSwitch 为代表的新型高速互连技术,正在推动 ASIC 芯片之间形成更加紧密的协同计算网络。与此同时,工程领域对于链路信号完整性(SI)的关注也不断提升,人们更加关注眼图、BER、SNR 等关键指标在高速链路中的演化规律,并基于系统级仿真结果对器件与链路结构进行联合优化。
为了进一步提高服务器之间的信息传输效率,业界开始尝试以光互连替代传统铜缆互连,在数据中心层级构建高带宽、低功耗的光通信网络。目前广泛采用的方案通常通过可插拔光模块完成电口到光口的转换,但信号在 ASIC、封装基板与光模块之间的长距离电互连过程中会引入额外损耗与功耗,限制系统整体性能。因此,人们希望实现"光 I/O"架构,使信号从 ASIC 输出后即可直接完成光调制,并通过光纤进行高速信息交互,由此催生了 ...









