主要内容

开始使用Simulink HDL 万博1manbetxCosimulation

在Simulink®环境中使用Cosimulation Wizard设置HDL Verifier™应用程序。万博1manbetx

协同仿真向导是一个图形用户界面(GUI),指导您完成在MATLAB®或Simulink®和硬件描述语言(HDL)模拟器之间设置协同仿真的过程。万博1manbetx

在本例中,您将使用Simulink和HDL模拟器来万博1manbetx验证用Verilog编写的凸余弦滤波器设计。凸起余弦滤波器是数字通信系统中常用的脉冲整形滤波器。它对调制脉冲的输入不产生符号间干扰(ISI)。

为了验证此凸起余弦滤波器的功能,本文提供了一个Simulink测试平台。万博1manbetx该测试平台为被测HDL设计(DUT)生成输入,并绘制输入和输出的波形。

Cosimulation Wizard将提供的这个提升余弦滤波器的Verilog文件作为其输入。它还收集在每个步骤中设置共同模拟所需的用户输入。在示例的最后,Cosimulation Wizard生成一个Simulink块,该块表示Simulink模型中的HDL设计,一万博1manbetx个编译HDL设计的MATLAB脚本,以及一个启动HDL模拟器进行联合仿真的MATLAB脚本。在仿真过程中,您可以在Simulink中观察该HDL滤波器的输入和输出波形。万博1manbetx

要求和前提条件

这个示例需要Simulink和这些HDL模拟万博1manbetx器中的一个来验证寄存器传输级别(RTL)设计。

  • Vivado模拟器来自Xilinx®

  • ModelSim®或Mentor Graphics®的Questa®

  • Xcelium®来自Cadence®

发射协同模拟向导

要从模型中启动Cosimulation向导,请选择应用程序选项卡,单击万博1manbetx高密度脂蛋白验证器.此操作将添加高密度脂蛋白验证器选项卡到Simulin万博1manbetxk工具条。然后,在模式部分中,选择高密度脂蛋白Cosimulation.点击导入HDL文件生成Cosim块部分。

使用协同仿真向导配置HDL协同仿真块

Cosimulation类型页,执行以下步骤:

1.)。如果您正在使用ModelSim或Questa,请离开高密度脂蛋白模拟器选择ModelSim

b).如果您正在使用Xcelium,请更改高密度脂蛋白模拟器选项Xcelium

c).如果您正在使用Vivado模拟器,请更改高密度脂蛋白模拟器选项Vivado模拟器

2.保留默认选项在系统路径上使用HDL模拟器可执行文件选项,如果HDL模拟器可执行文件出现在您的系统路径上。如果这些可执行文件没有出现在路径上,单击浏览按钮指定这些可执行文件的位置。

点击下一个进入HDL文件页面。

高密度脂蛋白的文件页,执行以下步骤:

  1. 点击添加选择其中之一rcostflt_rtl.vVerilog或rcosflt_rtl.vhd硬件描述语言(VHDL)。

  2. 在文件列表中用您所期望的文件类型检查文件。

点击下一个进入HDL编译页面。

高密度脂蛋白编译页中,“协同仿真向导”在“编译命令”窗口中列出了默认命令。本教程不需要更改这些命令。

当您使用自己的代码运行Cosimulation Wizard时,您可以在此窗口中添加或更改编译命令。

下图显示了ModelSim的编译命令。

点击下一个进入HDL Modules窗格。这将依次触发编译。MATLAB控制台显示编译日志。如果在编译期间发生错误,则该错误将显示在“状态”区域中。

模拟选项窗格中,执行以下步骤。

ModelSim或Xcelium

  1. a)指定用于协同仿真的HDL模块/实体名称。在下拉列表中选择rcosflt_rtl.这个模块是用于共同模拟的Verilog/VHDL模块。如果你看不见rcosflt_rtl在下拉列表中可手动输入文件名。

  2. b)连接方法中,选择共享内存如果您的防火墙策略不允许TCP/IP套接字通信。

Vivado模拟器

  1. 缺省情况下,模块名称为rcosflt_rtl.这个模块是用于共同模拟的Verilog/VHDL模块。

  2. 调试内部信号而且HDL时间精度1 ps对于这个例子。

点击下一个转到“Simulink Ports”万博1manbetx窗格。Cosimulation Wizard使用指定的HDL模块和仿真选项在后台控制台中启动HDL模拟器。在向导启动HDL模拟器之后,向导将填充Verilog/VHDL模块上的输入和输出端口rcosflt_rtl并在下一步中显示它们。

指定端口类型的输入和输出端口,Cosimulation向导将显示两个表rcostflt_rtl,分别。

Cosimulation向导尝试识别每个端口的端口类型。如果向导错误地标识了端口,您可以使用这些表更改端口类型。

  1. 对于输入端口,您可以从时钟重置输入,或未使用的.HDL验证器只连接标记的输入端口输入到Si万博1manbetxmulink进行联合仿真。

  2. HDL验证连接输出端口标记输出使用Sim万博1manbetxulink进行联合仿真。向导和Simulink会忽略那万博1manbetx些标记的输出端口未使用的在cosimulation。

  3. 您可以更改标识为的信号的参数时钟而且重置在稍后的步骤中。

接受默认端口类型,单击下一个进入“输出端口详细信息”页面。

输出端口详细信息页,执行以下步骤:

  1. 的采样时间filter_out-1通过反向传播继承。

  2. 您可以从Verilog代码中看到,Cosimulation Wizard表示了控件中的输出sfix34_En29格式。修改以下字段:

  • 数据类型定点

  • 标志签署

  • 分数长度29

点击下一个进入“时钟/重置详细信息”页面。

时钟/重置页,执行以下步骤。

ModelSim或Xcelium

  1. 设置HDL时间单位为ns

  2. 设置时钟周期为20。

  3. 保留或设置活动边缘为不断上升的

  4. 保留或设置重置初始值为1。

  5. 设置复位信号持续时间为15。

Vivado模拟器

  1. 将HDL时间单位设置为ps

  2. 设置时钟周期为20。

  3. 保留或设置活动边缘为不断上升的

  4. 保留或设置重置初始值为1。

  5. 设置复位信号持续时间为15。

点击下一个进入“开始时间对齐”页面。

开始时间校准页面显示了时钟和复位信号的波形图。Cosimulation Wizard用红线显示开始Cosimulation的HDL时间。开始时间也是Simulink从HDL模拟器获得第一个输入样例的时间。万博1manbetx

开始时间对齐页,设置对齐方式。时钟的活动边是上升边。因此,在ModelSim或Xcelium中的时间为20 ns(在Vivado模拟器中为20 ps)时,提升余弦滤波器的注册输出是稳定的。不存在竞争条件,并且开始共同模拟的默认HDL时间正是我们想要的。您不需要对开始时间进行任何更改。

点击下一个继续进行区块生成。

在生成HDL Cosimulation块之前,您可以选择在完成Cosimulation向导之前确定时间刻度。或者,您可以指示HDL验证器稍后计算一个时间刻度。连接生成的HDL Cosimulation块的所有输入/输出端口并开始仿真后,验证软件进行时间刻度计算。

块一代页,执行以下步骤。

ModelSim或Xcelium

离开在模拟开始时自动确定时间尺度选择(默认)。稍后,在开始模拟之前,您将有机会查看计算出的时间刻度并更改该值。

Vivado模拟器

取消在模拟开始时自动确定时间尺度并通过设置设置时间刻度1秒在Simulink中万博1manbetx对应2 e-11年代在HDL模拟器中。

点击完成完成Cosimulation Wizard会话。

创建测试平台来验证HDL设计

本例中,采用Simulink测试台架模型万博1manbetxrcosflt_tb已提供。点击之后完成在“协同仿真向导”中,Simulink在模型画布的中心插万博1manbetx入以下项目:

  • 一个HDL Cosimulation块

  • 用于重新编译HDL设计的块(包含到通过双击该块启动的脚本的链接)

  • 用于启动HDL模拟器的块(包含到通过双击该块启动的脚本的链接)(仅适用于Modelsim和Xcelium)

定位HDL Cosimulation块,使常量和转换块排列成HDL Cosimulation块的输入,总线排列成输出。把积木连接起来。您的模型现在看起来类似于下图。

运行Cosimulation并验证HDL设计

ModelSim或Xcelium

  1. 通过双击标记的块来启动HDL模拟器启动HDL模拟器

  2. 当HDL模拟器准备好后,返回到Simulink并开始模拟。万博1manbetx

  3. 确定时间表。回想一下你所选择的在模拟开始时自动确定时间尺度选项在Cosimulation Wizard的最后一页。当这样做时,HDL Verifier启动时间尺度细节图形界面,而不是启动模拟。HDL模拟器和Simulink都进行了采样万博1manbetxfilter_in而且filter_out端口在1秒。然而,它们在HDL模拟器中的采样时间应该与时钟周期(20 ns)相同。的Simulink采样万博1manbetx时间/ rcosflt_rtl clk到1(秒),按输入.然后向导更新表。下图显示了新的时间刻度:Simulink中的1秒对应于HDL模拟器中的2e-008秒。万博1manbetx

点击好吧关闭“时间刻度详细信息”对话框。重新启动Simu万博1manbetxlink仿真,在试验台模型中验证范围内的结果。

Vivado模拟器

的工具条上万博1manbetx模拟选项卡上,单击运行开始模拟。HDL模拟没有单独的进程,因为Simulink块使用共享DLL执行单个进程。万博1manbetx

作用域同时显示凸起余弦滤波器输入的延迟版本和该滤波器的输出。如果直接对该过滤器输出进行采样,则不会发生符号间干扰。

另请参阅