Xilinx System Generator多速率系统(Multi-Rate Systems)的使用


在本实验练习中,您将学习如何使用多个时钟域有效地实现具有多个数据速率的设计。
目标:

  • 了解使用多个时钟域实现多速率设计的好处。
  • 了解如何使用FIFO隔离层次结构,以创建用于传输异步数据的安全通道。
  • 如何用不同的时钟实现层次结构。

本文实验包含三个部分:

  • 学习如何在时钟域之间创建层次结构。
  • 学习如何在层次结构之间添加FIFO。
  • 了解如何为每个层次结构添加单独的时钟域。

本文实验环境:Vivado 2019.1、System Generator 2019.1、Matlab R2024a。

一、创建时钟域层次结构(Creating Clock Domain Hierarchies)

在这一步中,您将回顾一个设计,其中设计的不同部分以不同的数据速率运行,并将设计划分为子系统,以便在不同的时钟域中实现。

1、打开System Generator。
在这里插入图片描述
2、文件准备,这里使用Xilinx官网提供的UG948文档教程参考文件。

在这里插入图片描述
3、在Matlab中打开参考文件所在的目录,并双击打开Lab4_1.slx文件。

在这里插入图片描述
这将打开如下图所示的Simulink设计。本设计主要由三个基本部分组成:

  • 通道滤波器将输入信号(491.52 MSPS)数字转换为近基带(61.44 MSPS)使用经典的多速率滤波器:使用两个半带滤波器,然后是2级滤波器的抽取,这比单个大滤波器需要的系数要少得多。
  • 输出部分增益控制将使用该数据的后续块的输出。
  • 增益由POWER_SCALE输入控制。
    在这里插入图片描述
    4、单击Run simulation按钮来仿真设计。

在下图中采样时间显示(Sample Time Display)是有颜色的(在画布中右击>Sample Time Display>Colors),并且清楚地表明该设计在多种数据速率下运行。

在这里插入图片描述
在这里插入图片描述
5、System Generator环境通过设计自动传播不同的数据速率。

当在硬件中实现这样的多速率设计时,最理想的实现是使用与数据相同频率的时钟;然而,在这种环境中,时钟是抽象出来的。下面的方法演示了如何以最有效的方式创建这个理想的实现。

6、为了使用System Generator有效地实现多速率(或多时钟)设计,您应该使用自己的System Generator令牌在其自己的层次结构中捕获以相同数据速率(或时钟频率)运行的每个部分。然后应该将单独的层次结构与FIFO链接起来。

7、目前的设计有两个明显的时钟域和一个不太明显的时钟域:

  • 增益控制输入POWER_SCALE可以从CPU配置,因此可以与CPU相同的时钟频率运行。
  • 输出级上的实际增益控制逻辑应该以与FIR输出数据相同的频率运行。这将允许它更有效地连接到系统中的后续块。
  • 不太明显的区域是过滤链。在实验1中,复杂的IP提供System Generator,如FIR编译器,自动利用超频提供最有效的硬件。例如,与其使用以100MHz运行的40个乘数,
  • 如果时钟为500 MHz (= 40*100/500), FIR编译器将仅使用8个乘法器。因此,整个滤波器链可以被分组到单个时钟域。第一个FIR Compiler实例将以最大时钟速率执行,随后的实例将自动利用过采样。

首先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值