搭建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,需要修改的文件根据类型复制到 EthernetDesigners 或 OpticalLinks 文件夹里,不需要修改的例如 PAM4_Source 不用管即可
创建 EOE 原理图
我们先从单向 MZM EOE 入手,首先复制 MZM EOE 原理图到 OpticalLinks 文件夹
![]() |
![]() |
|---|
打开这个 schematic,对原理图进行修改:
- 将光源
optical_source_env换成optical_source,这个极其重要,否则会吃大亏!因为系统链路调用 EOE 子链路会存在光源不兼容导致计算失败! - 信源需要进行差分调整,原链路信源是通过反接 MZM 正负极实现差分输入,但后面 AMI 通过 Port 进来就已经是差分信号了,因此需要将反接正负极改回来,并将底部 PAM4 的 DC 偏置改为负值!
- 将接收电路改成差分输出,原 PIN 很复杂,我们这里为了快速走流程,直接用 PIN Behav 行为器件等效,跨阻设为 500,并接 balun 转成差分信号。
- 接端口 P1-P4,并将仿真器和变量禁用。
修改后的子原理图如下
创建 Symbol,供后续 Ethernet Designer 调用
![]() |
![]() |
|---|
搭建系统链路
创建 System Designer 原理图
前面已经将光的子链路创建好了,现在要将其整合在博文ADS 中的 Ethernet Designer中的系统链路中。我们直接复制之前的系统链路到 EthernetDesigners 文件夹中
![]() |
![]() |
|---|
打开系统原理图,添加 OPTICAL LINK 模块至 Host 与 Module 之间,复制 Host 端的 S 参数模块到 Module 端,并修改各节点与端口参数。注意这里需要在仿真器中设置 EOE 仿真类型,并将前面 EOE 原理图中被禁用的变量复制过来
这里我选定 EOE 模块左节点 U100,右节点 U200,Module 端节点 U2。先定义 EOE 的节点设置
由于前面已经定义了光子链路的符号,这里下拉就能看到。根据引脚左 P1P3,引脚右 P2P4 的定义,分配好线路类型。
双击 Host 端的 PostLayout,设置端口与节点
![]() |
![]() |
|---|
双击 Host 和 Module 模块,设置端口与节点。注意这里要 Back 回来,确保 Host/Module 所接的模块没出错。
![]() |
![]() |
|---|
![]() |
![]() |
|---|
全都设置好了,就可以连线了。
检查仿真设置
仿真设置一定要仔细检查,不然很容易仿真失败。这里包络仿真要确定光链路谐波频率,并只计算一次谐波,因为光载波没有发生非线性过程。
![]() |
![]() |
|---|
Probe 的设置也要重新检查,尤其是 Signal Stream 这里,确保数据传播方向正确
需要额外注意的一点是,Rx 的 AMI 可能会输出一些数据,需要双击 Module 模块,设置 Rx AMI 的 Save Out/InOut parameters 为 yes
需要注意 Rx AMI 中的 Ignore_Bits 参数,你要跑的 NumberOfBits 参数最好要大于这个数,否则 AMI 没有输出了。
做好全部这些,就可以开始运行仿真了。
仿真结果
仿真运行大概半分钟左右,结果如下
这里的眼图结果从上往下的顺序是:U1——U100——U200——U2——Rx_AMI_out。
我们可以发现,第一张图 U1 很明显不正常,这是由于光子链路中 MZM 的反射导致的(我个人觉得奇怪的是 MZM 电极的 S 参数和阻抗没地方设置)。因此,我们回到 EOE 子链路中,在 P1P2 端口后加一个 Amplifier2 组件,并设置 S12 回损为 0,再来个 3 dB 放大,抵消 Tx 端输出阻抗的分压。
保存后,回头再跑一次系统仿真
现在可以看到,U1 节点处的眼图变得正常了。
























