ZMOD DAC 1411低级控制器IP核心用户指南

介绍

本用户指南介绍了Digilent ZmodDAC1411低电平控制器知识产权。该IP直接与Zmod接口DAC按AD9717数字到模拟转换器的要求,在单个双数据速率(DDR)通道上初始化硬件并将两个输入通道复用(DAC)由zmod特色DAC1411. ZMOD.DAC1411低电平控制器用于不需要处理器交互(独立模式)的项目中作为一个独立的IP,或者它可以与Digilent Zmod DAC1411 AXI适配器IP结合使用,提供与处理系统的连接。


特性

  • 初始化zmod上的硬件ADC1411.
  • 根据ZMOD格式化在两个单个数据速率(SDR)通道上收到的数据DAC1411年的需求。
  • 提供重写初始值的可能性DAC通过提供一个可选的上层接口,允许间接访问DAC的SPI接口来配置。
  • 基于用户/上层IP指定的系数执行偏移和增益校准。

性能

IP被设计为生成两个100MHz.Zmod的时钟信号DAC1411年的DAC一个用于限制输入数据,一个用作采样时钟,并按要求在一个14位DDR并行总线上以200 MSPS产生输出数据DAC.IP核心有两个SDR输入数据通道,与系统时钟输入同步(100MHz.), IP核需要。


概述

下图显示了IP Core的结构。

Zmod DAC 1410低电平控制器框图。

主要功能分为DAC输入时钟生成、数据格式化和校准(数据路径)和ZmodDAC1410配置(与配置功能相关的两个项目将分别详细说明:配置状态机和SPI控制器)。

1.DAC输入时钟生成

IP输出两100MHz.时钟(DCLKIO CLKIN)。DCLKIO用于AD9717DAC来限定输入数据,而CLKIN是DAC的采样时钟。作为输入,IP需要两个100MHz.时钟信号:SysClk、DacClk。DacClk需要与SysClk相移90度,它用于生成DCLKIO。


2.数据通路

数据路径由两个阶段组成。第一阶段负责将乘法和加法校准系数应用到两个通道,以补偿ZmodDAC1411DAC输出过滤器公差。校准系数可以作为IP参数引入,也可以通过(可选)外部端口传递,这取决于核心是在独立模式下使用,还是通过Zmod连接到处理系统DAC1411 AXI适配器IP核。如果IP在单机模式下使用,用户应运行待确定的可执行文件获取校准参数。

$$ chxoddr = chxin * cofxmult_ {lh / hg} + cofxadd_ {lg / hg} \ tag {1} $$

在前一关系式中,IP核的数据输入通道标记为ChxIn,校准级输出标记为ChxODDR, CoefxMult_{LH/HG}和CoefxAdd_{LG/HG}表示增益和偏置校准系数。

如下图所示DAC数据格式。

DAC数据格式

校准台的每个输出位都连接到ODDR原语,该原语按照AD9717的要求对输出数据进行格式化参考文献3..两个输入通道在200 MSPS 14位并行总线上复用。


3.规模的选择

IP核心提供选择ZMOD的选择DAC1411缩放选项静态或动态。对于静态配置,需要将ExtScaleEn设置为“false”,并且需要在IP核中配置规模配置参数(见表3)GUI.对于动态缩放控制,需要将ExtScaleEn设置为“true”,外部缩放控制端口将变为可用。


4.配置状态机

配置状态机向Zmod的AD9717发送预定义的SPI命令序列,执行设备的初始化。执行序列后,状态机会进入IDLE状态,如果上级SPI命令接口上存在任何有效数据,则会监视。执行任何请求的SPI传输后,状态机通过所接收的SPI数据(用于读取命令)并返回空闲状态。下面列出了初始配置命令序列。在配置每个寄存器后,读取寄存器数据并检查预期值以确定任何SPI事务错误。有关配置的更多详细信息,请详细说明请咨询参考1

  1. FIXME SPI控制寄存器:设置软件复位(地址:00h;数据:20h)
  2. FIXME SPI控制寄存器:发布软件重置(地址:00h;数据:00h)
  3. 数据控制寄存器配置选择:2的补码,IDATA锁存在DCLKIO上升沿,I第一对在数据输入板上,使能数据时钟输入,使能数据时钟输出(地址:02h;数据:B4h)
  4. FIXME CLKMODE注册:清除重新核准位(地址:14h;数据:00h)
  5. FIXME CLKMODE注册:设置(切换)所需位(地址:14h;数据:00 h)
  6. FIXME CLKMODE注册:清除重新核准位(地址:14h;数据:00h)

5.SPI控制器

SPI控制器通过AD9717的SPI接口实现对寄存器的基本访问。目前只支持单字节数据传输。更多关于AD9717的SPI接口的详细信息可以在(文献3].下面介绍SPI控制器的接口。

信号的名字 接口 信号类型 初始化状态 描述
SysClk - 一世 N/A 100MHz输入时钟信号。
DACCLK. - 一世 N/A 100MHz输入时钟信号相对于SysClk移了90度。
srst_n. - 一世 N/A 负极性同步复位。
sSPI_Clk SPI O. N/A 输出SPI时钟(文献3]除以sysclk。应连接到相应的顶级SPI端口。
SSDIO. SPI IO N/A SPI SDIO信号(文献3].应连接到相应的顶级SPI端口。
SCS. SPI 一世 N/A SPICS信号(文献3].应连接到相应的顶级SPI端口。
sRdData [7:0] - O. N/A SPI寄存器读取接收数据
sWrData - 一世 N/A SPI寄存器写数据。
sAddr (11:0) - 一世 N/A SPI指令阶段地址。
向下的(1:0) - 一世 N/A SPI指令相位字长。当前支持的唯一值是0(传输的1个数据字节)。
sRdEn - 一世 N/A 触发SPI上的寄存器读操作。
sWrEn - 一世 N/A 触发SPI上的寄存器写操作。
sDone - O. N/A 表示请求的操作已完成



6.孵蛋的

IP在两个时钟域中运行。系统时钟(SYSCLK)为除输出时钟生成块之外的所有逻辑。所有输出时钟都来自100MHz.输入DacClk。IP不限制任何输入时钟,因此,如果使用时钟修改块,它需要在顶层设计中手动或依赖于自动派生的约束。更多信息请参见[4]。


端口描述

信号的名字 接口 信号类型 初始化状态 描述
SysClk - 一世 N/A 100MHz输入时钟信号。
srst_n. - 一世 N/A 负极性同步复位。
sInitDone_n - O. N/A 活动低标志,指示Zmod初始化完成时。
FIXMEsCh1In [13:0] - O. N/A Channel1数据输入。
FIXMEsCh2In [13:0] - O. N/A Channel2数据输入。
sExtCh1LgMultCoef - O. N/A 通道1低增益乘系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sextch1lgaddcoef. - O. N/A Channel1低增益加性系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh1HgMultCoef - O. N/A 通道1高增益乘系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh1HgAddCoef - O. N/A Channel1高增益添加系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh2LgMultCoef - O. N/A 通道2低增益乘系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh2LgAddCoef - O. N/A Channel2低增益加性系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh2HgMultCoef - O. N/A 通道2高增益乘系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sextch2hgaddcoef. - O. N/A Channel2高增益添加剂系数外部端口。通过将extcaliben参数设置为“true”,启用此端口。
sExtCh1Scale - O. N/A Channel1 Scale选择外部端口。通过将extscaleConfigen参数设置为“true”,启用此端口。“1”=满量程。“0”=不是全尺寸。
sExtCh2Scale - O. N/A Channel2缩放选择外部端口。通过将extscaleConfigen参数设置为“true”,启用此端口。“1”=满量程。“0”=不是全尺寸。
sDAC_EnIn - 一世 N/A 当断言zmod时DAC1411输出继电器放置在设定位置。当困惑这两个DAC通道与输出断开连接。
sExtSPI_Idle - O. N/A 表示配置状态机处于IDLE状态的标志。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sCmdDone - O. N/A 指示成功完成SPI命令的脉冲。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sextspi_txrden - 一世 N/A 读取使能信号,用于从上层TX命令FIFO加载数据。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sExtSPI_TxDout [23:0] - 一世 N/A 上层TX命令FIFO输出数据包含传输长度,寄存器地址和传递到SPI控制器的寄存器数据。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sextspi_txvalid. - 一世 N/A 上层TX命令FIFO数据有效信号。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sExtSPI_RxWrEn - O. N/A 上层RX命令FIFO写使能信号。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sExtSPI_RxDin [7:0] - O. N/A 上层RX命令FIFO输入数据。通过将extcmdinterfaceen参数设置为“true”,启用此端口。
sDAC_ClkIO - O. N/A 应该连接到AD9717 DCLKIO输入(文献3]
sDAC_Clkin - O. N/A 应该连接到AD9717的CLKIN输入(文献3]
sDAC_Data [13:0] - O. N/A 应该连接到AD9717的DB[13:0]输入(文献3]
sdac_reset. - 一世 N/A 应该连接到AD9717的RESET/PINMD输入(文献3]
sDAC_SDIO SPI IO N/A SPI SDIO信号(文献3]
sDAC_CS SPI O. N/A SPICS信号(文献3]
sdac_sclk. SPI O. N/A SPI输出时钟(文献3]
sDAC_setFS1 - O. N/A 这个信号控制ZmodDAC1411 SCALE SELECT IMBAND SELDIC开关用于通道1。
sDAC_setFS2 - O. N/A 这个信号控制ZmodDAC1411刻度选择模拟开关2通道。
sDAC_EnOut - O. N/A 这个信号控制ZmodDAC1411年输出继电器。



参数描述

IP核参数说明如下表所示。

信号的名字 描述
ExtrelayConfigen. 启用外部中继配置端口。当需要动态继电器配置时,设置为“true”。当静态继电器配置足够时,设置为“false”。
ExtCalibEn 启用外部校准接口。当IP核连接到Zmod时设置为“true”DAC1411 AXI适配器IP核心。当核心以独立模式运行时,设置为“假”。在单独操作模式下操作时,可以从中获得校准系数要确定可执行文件并载入标定参数见下表。
ExtCmdInterfaceEn 使能上层IP SPI配置接口。当IP核连接到Zmod时设置为“true”DAC1411 AXI适配器。这将使处理器能够访问zmodDAC1411年SPI接口。在初始化配置时设置为“false”SPI控制器部分。
kCh1CouplinStatic Channel1 AC DC耦合选择静态配置参数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。继电器的状态以后不能改变。如果ExtrelayConfigen参数的值为“true”,则忽略此参数。“1”= AC耦合。“0”=直流耦合。
kCh2CouplinStatic Channel2交流直流耦合选择静态配置参数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。继电器的状态以后不能改变。如果ExtrelayConfigen参数的值为“true”,则忽略此参数。“1”= AC耦合。“0”=直流耦合。
kCh1GainStatic Channel1增益选择静态配置参数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。继电器的状态以后不能改变。如果ExtrelayConfigen参数的值为“true”,则忽略此参数。“1”=高增益。“0”=低增益。
kCh2GainStatic Channel2增益选择静态配置参数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。继电器的状态以后不能改变。如果ExtrelayConfigen参数的值为“true”,则忽略此参数。“1”=高增益。“0”=低增益。
kCh1LgMultCoefStatic [17:0] 通道1低增益乘性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
kCh1LgAddCoefStatic [17:0] Channel1低增益加性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
kCh1HgMultCoefStatic [17:0] Channel1高增益乘法校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
Kch1hgaddcoefstatic [17:0] 通道1高增益加性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
kCh2LgMultCoefStatic [17:0] Channel2低增益乘法校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
Kch2lgaddcoefstatic [17:0] Channel2低增益加性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
Kch2hgmultcoefstatic [17:0] 通道2高增益乘性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。
kCh2HgAddCoefStatic [17:0] Channel2高增益加性校准系数。如果参数ExtRelayConfigEn为“false”,配置状态机在初始化时将根据该参数的值配置耦合选择中继。如果ExtrelElayConfigen参数的值为“true”,则忽略此参数,并且预计处理系统将更新相应的外部端口。



核心设计

定制

IP通过其可定制的参数(ExtScaleConfigEn、ExtCalibEn、ExtCmdInterfaceEn)使用户能够选择具有最小外部端口的更基本的设计,或者选择具有多个端口的更可配置但也更复杂的设计,这些端口支持对几个硬件特性进行动态配置。当Zmod使用IP Core时DAC1411 AXI适配器,硬件配置功能预计将由处理系统控制,因此应启用所有接口并连接到上层IP核心。


参考文献

以下文件提供有关讨论主题的额外资料:

  1. Xilinx Inc., UG471: 7系列fpga SelectIO资源,v1.4, 2014年5月13日。
  2. Xilinx Inc.,UG472:7系列FPGA时钟资源,2012年10月2日,V1.6
  3. Analog Devices, AD9646 Datasheet(数据表)11 page - Analog Devices
  4. Xilinx Inc., UG903: Using Constraints, v2014.3, 2014年10月31日