CycloneVSERDES仿真
0 2023-03-21

在 QII 中调用 CycloneV 的 SERDES 和 reconfig 模块时,IPCore 会自动生成以子目录形式存在相关仿真文件(ArriaV 和 StratixV 也是一样的)。按照 Altera 提供的相关文档,可以通过执行自动生成的脚本文件,或者自己编写脚本文件,实现对 SERDES 的仿真。对于第一种方法,需要使用 quartus_sh 的命令执行脚本文件,尝试了一下并没有成功。其实在 Modelsim 下自行创建 do 文件的方式,可以更容易理解需要哪些仿真文件,并且这种方式会更加通用,适用于所有的仿真流程。

仿真所用到软件环境包括 Modelsim SE 10.0e 和 QII 12.0 SP1。

01

调用 CycloneV Custom PHY 和 Transceiver Reconfiguration Controller


在例化 PHY IPCore 时,使能“Enable embedded reset controller”,PHY 自带 reset 模块,

“tx_ready”和“rx_ready”状态输出指示。

在例化 PHY IPCore 时,可以发现下面信息栏有提示需要与 2 个 reconfiguration 模块相连,一个是连接到 tran sceiver channel,一个是连接到 transmit PLL。所以在例化reconfiguration 模块时,在“Number of reconfiguration interfaces”栏内填写的参数为 2,这样才可以保证 PHY 与 reconfiguration 模块的“reconfig_to_xcvr”和“reconfig_from_xcvr”两个信号的数据位宽相匹配。(PHY IPCore 仅例化了一个 SERDES 通道)

Custom PHY 的相关参数设置,是需要通过 Avalon-MM PHY Management Interface 进行访问的,参数的设置都是以寄存器方式进行读写。参照“Altera Transceiver PHY IP CoreUser Guide”,设置 SERD ES 自回环,使能 RX 字节对齐模块。对应地址偏移为 0x061,“phy_mgmt_writedata”设为 32’d1;地址偏移为 0x085,“phy_mgmt_writedata”设为 32’d1。

02

生成 Custom PHY 和 Reconfiguration IPCore 之后,在工程目录下会分别生成两个不同的目录,包括 IPCore 的设计和仿真文件。




03

在工程当前目录下新建 Modelsim 文件夹,相关 tesetbench 和仿真产生的文件都会存于此目录下。



04

创建 simlib.do 文件,对除了工程相关文件之外的所需仿真文件,进行编译。文件内容如下:




set LIBPATH c:/altera/12.0/quartus/eda/sim_lib/

#指定 sim_lib 目录

set PHYPATH ../gxb_1g25_sim/altera_xcvr_custom_phy

#指定 Custom PHY 目录

set RECONFPATH ../gxb_reconf_sim/alt_xcvr_reconfig

#指定 Reconfiguration 目录

vlib sim_lib

vmap sim_lib sim_lib

#创建 sim_lib 仿真库,将相关仿真库文件编译至此库中

vlog -work sim_lib $LIBPATH/220model.v

vlog -work sim_lib $LIBPATH/altera_mf.v

vlog -work sim_lib $LIBPATH/sgate.v

vlog -work sim_lib $LIBPATH/altera_primitives.v

#添加常规需要的仿真库文件之外,其中下面 5 个文件,作为 CycloneV 系列在Modelsim 下推荐编译的仿真库文件

#以下仿真库文件为当前工程调用 PHY 和 Reconfiguration IPCore 的相关文件

05

创建 sim.do 文件,将工程相关文件进行编译。文件内容如下:


#do simlib.do

vlib work

vmap work work


#创建 work 仿真库,将工程相关仿真库文件编译至此库中

vlog +acc -work work -incr -f run.f


#将工程相关带路径的文件名存放在 run.f 的文件中,对其进行编译。Run.f 为任意命名的文件

vsim -novopt -L sim_lib -l run_modelsim.log \

+transport_int_delays +transport_path_delays \

work.tb_top


#对 work仿真库的 tb_top 模块进行仿真,其中 tb_top 为 testbench 中的 module名称,仿 真 记 录 信 息 存 放 于 run_modelsim.log 日 志 文 件 中 ,

“+transport_int_delays+transport_path_delays”参数建议添加,表示当前为高速信号仿真

06

创建 run.f 文件,将工程相关文件名称存放在此文件中,并带有相对路径。文件内容如下,除了 tb_top.v 的 testbench 文件在当前所建的 modelsim 目录下,其余文件都在上一级,即当前工程目录下。





../gxb_1g25.v

../gxb_reconf.v

../mayuan.v

../phy_mgmt_ctrl.v

../top.v

tb_top.v

07

创建 wave.do 文件,执行上一步创建的 sim.do 文件,并将需要观察的信号置于wave 窗口,并运行仿真。文件内容如下:



quit -sim

do sim.do

add wave sim:/tb_top/u1_top/*

add wave -divider phy_mgmt_ctrl

add wave sim:/tb_top/u1_top/phy_mgmt_ctrl_inst/*

radix -hex

run 50us

08

打开 Modelsim,通过 File->Change Directory 命令将工作目录指定到创建的modelsim 目录下。由于是第一次运行仿真,可以先执行一次“do simlib.do”命令,即编译除工程文件之外的仿真库文件。以后再次运行仿真时,即可跳过此步骤。直接执行“dowave.do”命令,因为 wave.do 文件中已经嵌套了 sim.do 文件。









09

仿真结果


可以看到程序中在 tx_ready 信号变高之后,开始发送数据。在 rx_ready 信号变高之后一段时间,开始接收到正确的数据。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • EDA
  • 仿真
  • CAD
  • 芯片
  • 运输车辆为什么选用AMT?AMT控制解决方案

    变速器是重型运输车辆的核心总成之一,在新能源与智能化的时代背景下,运输车辆的自动变速技术需求旺盛。

    前天
  • 为什么要电池均衡?锂电池主动均衡和被动均衡理解

    通过电池均衡,电池组中的每个单元都得以被有效监控并保持健康的荷电状态(State of Charge, SoC)。

    前天
  • 国六后处理系统的结构与保养指南

    如今国六排放标准已在多地实施,国六车型也不断推出,但由于构造不同,国六车相比国四国五,也更加“娇气”,所以在保养上面车友们也要更加上心。

    前天
  • 分析电控发动机常见故障原因

    汽车给我们的出行带来了很大的便利性,但是汽车有时候也会发生一些故障,最为严重的就是汽车发动机发生故障,那么汽车发动机常见的故障有哪些呢,本文将着重介绍这些故障原因及其解决措施。

    06-06
  • 分析IC失效问题及处理方法

      当IC失效或客户认为它失效的时候,我们该怎么办?做一次IC的失效分析还是做一个彻底的测试?这些都是在浪费时间。在解决IC失效问题上,什么才是最有效的失效分析

    05-30
  • 三种发动机不能启动的情况

    发动机不能启动的三种故障。

    05-30
  • 单片机按键去抖原理你知道吗?

    [导读]由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我

    05-29
  • 一文重点分析ARM64的函数调用标准

    欢迎订阅奔跑吧linux社区微信公众号 本文节选自《奔跑吧Linux内核》第二版卷1第1.6章 函数调用标准(Procedure Call Standard,PCS)用来描述父/子函数是如何编译、链接的,特别是父函数和子函数之间调用关系的约定,如栈的布局、参数的传递等。每个处理器架

    05-29
  • 介绍高功率白光LED应用及LED芯片的散热能力

      就今天而言,白光LED仍旧存在着发光均一性不佳、封闭材料的寿命不长,而无法发挥白光LED被期待的应用优点。但就需求层面来看,不仅一般的照明用途,随着手机、L

    05-29
  • 3D存储芯片各种细节解读

      现在每一个闪存厂家都在向3DNAND技术发展,我们之前也报道过Intel3DNAND的一些信息。5月14日,Intel&Richmax举办了一场技术

    05-29
  • 浅谈使用MSSP模块实现I2C从模式

      网上有许多讲解单片机实现I2C主模式,但是从模式的很少。我现在就来讲讲PIC单片机使用MSSP模块实现I2C从模式。  有关I2C协议的具体介绍可以看《PI

    05-28
  • PIC单片机之探讨低功耗如何实现

      许多人说PIC单片机一大的优势就是低功耗,那我们就来讨论,讨论低功耗的实现。  1,睡眠(sleep)  睡眠方式是我们最常用的一种方式来降低功耗,但睡眠期

    05-28
下载排行榜
更多
广告