主要内容

开始使用Simulink HDL 万博1manbetxCosimulation

这个例子指导您通过使用Simulink®环境中的协同仿真向导来设置一个HDL验证器™应用程序的基本步骤。万博1manbetx

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

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

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

Cosimulation Wizard将此升高的余弦滤波器的Verilog文件作为其输入。它还收集在每个步骤中设置协同模拟所需的用户输入。在示例的最后,协同仿真向导生成一个Simulink模块,该模块表示Simulink模型中的HDL设计,一个编译HDL设计的MA万博1manbetxTLAB脚本,以及启动用于协同仿真的HDL模拟器的MATLAB脚本。在仿真过程中,可以在Simulink中看到该HDL滤波器的输入和输出波形。万博1manbetx

需求和先决条件

本示例需要这s manbetx 845些产品。

  • 其中一个支持的HDL模拟器万博1manbetx:Mentor Graphics®ModelSim®/QuestaSim®或Cadence®Incisive®/Xcelium®

启动Cosimulation向导

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

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

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

  1. 如果您使用ModelSim或Questa,请离开高密度脂蛋白模拟器选择模特明.如果您使用的尖锐或Xcelium,则更改高密度脂蛋白模拟器选择Inicisve

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

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

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

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

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

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

在里面高密度脂蛋白编译PAGE,CISimulation向导列出了“编译命令”窗口中的默认命令。您无需更改本教程的这些命令。

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

点击下一个继续到HDL模块窗格。这将反过来触发编译。MATLAB控制台显示编译日志。如果在编译期间发生错误,则该错误将出现在“状态”区域。

在里面模拟选项窗格,执行以下步骤:

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

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

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

在里面指定端口类型步骤,Cosimulation向导显示包含输入和输出端口的两个表rcostflt_rtl,分别。

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

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

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

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

接受默认端口类型,然后单击下一个继续到输出端口详细信息页面。

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

  1. 设置样本时间filter_out-1通过反向传播继承。

  2. 您可以从Verilog代码中看到,Cosimulation Wizard表示sfix34_En29格式。更改以下字段:

  • 数据类型定点

  • 标志签署

  • 馏分长度为29

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

对于本例,设置时钟时期(ns)为20。从Verilog代码中,可以知道重置是同步的,活动值是1。您可以在时间1纳秒时重置整个HDL设计,由时钟上升沿触发。复位信号的持续时间为15纳秒。

在里面时钟/重置页面,执行以下步骤:

  1. 设置HDL时间单位为ns.

  2. 设置时钟周期为20。

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

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

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

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

“开始时间校准”页面显示时钟和复位信号波形图。协同仿真向导用红线显示了开始协同仿真的HDL时间。开始时间也是Simulink从HDL模拟器获得第一个输入样本的时间。万博1manbetx

在里面开始时间对齐页,设置对齐方式。我们时钟的活动边是上升边。因此,在HDL模拟器的时间20ns时,提高的余弦滤波器的注册输出是稳定的。不存在竞争条件,默认的HDL启动协同仿真的时间(20 ns)是我们想要的模拟。您不需要对开始时间做任何更改。

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

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

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

点击结束以完成协同模拟向导会话。

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

在本例中,是Simulink测试台模型万博1manbetxrcosflt_tb已经提供了。点击后结束在Cosimulation向导中,Simulink在模型万博1manbetxCanvas的中心插入以下项目:

  • 一个HDL协同仿真模块

  • 重新编译HDL设计的代码块(包含一个指向脚本的链接,通过双击该代码块启动)

  • 启动HDL模拟器的块(包含一个指向脚本的链接,通过双击该块启动)

定位HDL协同仿真块,使常数和转换块排列成HDL协同仿真块的输入,总线排列成输出。连接块。您的模型现在看起来与下图类似。

协同仿真并验证HDL设计

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

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

  3. 确定时间表。回想一下自动确定时间刻度开始模拟选项在协作模拟向导的最后一页。当这样做时,HDL验证器会启动Timescale Details图形界面,而不是启动仿真。该HDL模拟器和Simulink的样本万博1manbetxfilter_infilter_out端口1秒。然而,它们在HDL模拟器中的采样时间应该与时钟周期(20纳秒)相同。改变Simulink的万博1manbetx采样时间/ rcosflt_rtl clk到1(秒),然后按输入.向导然后更新表。下图显示了新的时间尺度:Simulink中的1秒对应于HDL模拟器中的2e-008秒。万博1manbetx

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

该范围显示输入余弦滤波器的延迟版本,并将其输出输出。如果直接对该过滤器输出的输出进行采样,则不会发生符号间干扰。