本文是本系列的第六篇,本文主要介绍FPGA常用运算模块-DDS信号发生器,xilinx提供了相关的IP以便于用户进行开发使用。
数字合成器 (DDS) 编译器内核通过 AXI4-Stream 兼容接口实现了高性能、优化的相位生成和相位到正弦曲线电路。IP源可用于许多应用的正弦波形。 DDS 由相位发生器和 SIN/COS 查找表(相位到正弦波转换)组成。 这些部件可单独使用或使用此内核组合使用。
直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统中的重要部件。正交合成器用于构造数字下变频器和上变频器、解调器以及实现各种类型的调制方案,包括PSK(相移键控)、FSK(频移键控)和MSK(最小移位键控)。数字生成复数或实数正弦波的常用方法采用查找表方案。查找表存储正弦曲线的样本。数字积分器用于生成合适的相位参数,该相位参数由查找表映射到所需的输出波形。简单的用户界面接受系统级参数,如所需的输出频率和生成波形的杂散抑制。
相位发生器和 SIN/COS 查找表可以单独生成或与可选抖动一起生成,以提供完整的 DDS 解决方案。
下图提供了DDS编译器IP的框图。核心由两个主要部分组成,一个相位发生器和一个正弦/余弦LUT,可以单独使用,也可以与可选抖动发生器一起使用,以创建DDS功能。支持时分(TDM)多信道能力,具有独立可配置的相位增量和偏移参数。
相位发生器由一个累加器和一个可选的加法器组成,以提供相位偏移的加法。当核心定制时,相位增量(PINC)和相位偏移(POFF)可以独立配置为固定、可编程(使用配置通道)或流式(使用输入相位通道)。
当设置为固定时,DDS输出频率在核心定制时设置完成后无法调整。
当设置为可编程时,CONFIG channel TDATA(配置信道TDATA)字段有一个子字段用于相关输入(PINC或POFF),或者如果两者都被选择为可编程,则两者都有。如果PINC和POFF均未设置为可编程,则没有配置通道。
设置为流式传输时,输入相位通道TDATA字段有一个子字段用于相关输入(PINC或POFF),如果两者都被选择为流式传输,则两者都有。如果PINC和POFF均未设置为流式,且磁芯配置为具有相位发生器,则不存在输入相位通道。
当PINC设置为stream模式时,可以配置可选的重新同步流输入。断言时,该信号重置相关信道的累积相位。
选择光栅化模式时,输入或配置的PINC和POFF的硬件值必须为0到模数-1。这相当于一个完整的圆。因此,对于负PINC或POFF值,将模量添加到所需的负值,以映射到所需的范围。例如,模数=100时,所需范围为0到99。对于该模量,-90°的角度为-25。加100等于75(270°)。
使用系统参数时,PINC和POFF不是直接输入的,而是根据输入输出频率和相位角计算得出的。注意,对于较小的模数值,可用值相距相对较远,因此实际输出频率或相位角可能与“附加摘要”选项卡中显示的所需值存在显著差异。
当仅配置为SIN/COS LUT时,不实现相位发生器,相位输入信号使用输入相位通道输入,并使用查找表转换为正弦和余弦输出。利用正弦波的对称性可以实现高效的内存使用。核心可以配置为仅正弦输出、仅余弦输出或两者(正交)输出。每个输出都可以独立配置为否定。使用可选的泰勒级数校正可以提高精度。它利用FPGA系列上的DSP片,支持它们以高速操作实现高SFDR。
相位发生器与正弦/余弦LUT结合使用,以提供相位截断DDS或泰勒级数校正DDS。可在两个模块之间添加可选抖动发生器,以提供相位抖动DDS。
DDS IP的引脚如下图所示。
端口名 | 输入输出 | 是否可配置 | 描述 |
---|---|---|---|
aclk | Input | No | 上升沿时钟 |
aclken | Input | Yes | 高时钟使能 |
aresetn | Input | Yes | 低同步清除。总是优先于aclken。aresetn必须拉低至少两个周期 |
s_axis_config_tvalid | Input | Yes | 配置通道的TVALID |
s_axis_config_tready | Output | Yes | 配置通道的TREADY |
s_axis_config_tdata | Input | Yes | 配置通道的TDATA |
s_axis_config_tlast | Input | Yes | 配置通道的TLAST |
s_axis_phase_tvalid | Input | Yes | 输入相位通道的TVALID |
s_axis_phase_tready | Output | Yes | 输入相位通道的TREADY |
s_axis_phase_tdata | Input | Yes | 输入相位通道的TDATA |
s_axis_phase_tuser | Input | Yes | 输入相位通道的TUSER |
s_axis_phase_tlast | Input | Yes | 输入相位通道的TLAST |
m_axis_phase_tvalid | Output | Yes | 输出相位通道的TVALID |
m_axis_phase_tready | Input | Yes | 输出相位通道的TREADY |
m_axis_phase_tdata | Output | Yes | 输出相位通道的TDATA |
m_axis_phase_tuser | Output | Yes | 输出相位通道的TUSER |
m_axis_phase_tlast | Output | Yes | 输出相位通道的TLAST |
m_axis_data_tvalid | Output | Yes | 输出相位通道的TVALID |
m_axis_data_tready | Input | Yes | 输出相位通道的TREADY |
m_axis_data_tdata | Output | Yes | 输出相位通道的TDATA |
m_axis_data_tuser | Output | Yes | 输出相位通道的TUSER |
m_axis_data_tlast | Output | Yes | 输出相位通道的TLAST |
event_s_phase_ tlast_missing | Output | No (But leave unconnected to remove associated circuitry) | 当最后一个通道(在多通道配置中)的s_axis_phase channel传输未断言tlast时断言。 |
event_s_phase_ tlast_unexpected | Output | No | 当TLAST被断言用于传输到s_axis_phase channel(不是最后一个信道)(在多信道配置中)时被断言。 |
event_s_phase_ chanid_incorrect | Output | No | 当通道字段s_axis_phase channel(中TUSER的子字段)与通道号的内部预期不一致时断言。 |
event_pinc_invalid | Output | No | 当要累积的PINC值超出范围时断言。仅适用于光栅化配置。 |
event_poff_invalid | Output | No | 当要累积的POFF值超出范围时断言。仅适用于光栅化配置。 |
event_phase_ in_ invalid | Output | No | 当相位_In的值超出范围时断言。仅适用于光栅化和SIN_COS_LUT配置。 |
event_s_config_ tlast_missing | Output | No | 当最后一次传输(针对最后一个通道)到s_axis_config_channel通道时未伴随TLAST断言时断言。 |
event_s_config_ tlast_unexpected | Output | No | 当传输到s_axis_config_channel的传输不是与最后一个通道关联的传输时,已断言TLAST。 |
DDS Compiler 内核的标准模式使用相位截断,如下图所示:
积分器(组件 D1 和 A1)计算通过查找表 T1 映射到正弦曲线(可能是复数)的相位斜率。 量化器 Q1 简单地截断,接受高精度相位角并生成如图所示角度的较低精度表示。 该值被提供给执行从相空间到时间的映射的查找表的地址端口。通过从查找表中调用正弦曲线样本形成的信号的保真度受到过程的相位和幅度量化的影响。 查找表的深度和宽度分别影响信号的相位角分辨率和幅度分辨率。
直接数字合成器使用具有适当查找表的寻址方案来形成任意频率正弦曲线的样本。 如果需要模拟输出,DDS 会将这些样本提供给数模转换器 (DAC) 和低通滤波器,以获得具有特定频率结构的模拟波形。 当然,样本也常直接用于数字领域。 查找表传统上存储余弦和正弦波的均匀间隔样本。 这些样本代表长度为原型复数正弦曲线的单个周期,并对应于正弦曲线参数的特定值,如下所示:
可以利用基础波形中的四分之一波对称性来构建使用缩短表的 DDS。 在这种情况下,量化相位角的两个最高有效位用于执行象限映射。 由于内存需求被最小化,这种实现导致资源效率更高的实现,提供更少的 FPGA 块 RAM 或减少的分布式内存。 根据内核定制参数,DDS 内核会在适当的时候自动采用四分之一波或半波对称。
DDS 的光栅化操作模式不会截断累积相位。光栅化操作适用于所需频率是系统时钟的有理部分的配置(输出频率 = 系统频率 * N/M,其中 0 < N < M)。 支持从 9 到 16384 的 M 值。 SIN/COS LUT 被相应地配置为从 0 到 M-1 的值,它描述了一个完整的圆。 因为在光栅化操作模式中没有相位截断,所以不需要抖动或泰勒校正,因为它们减轻了相位截断的影响。 在光栅化操作中,相位噪声显着降低。 因此,输出相角分辨率和幅度分辨率仅由LUT表输出宽度决定。 在光栅化模式下,在适用的情况下利用象限对称来减少内存使用。
介绍在标准模式或光栅化模式下使用内核时的输出频率。
DDS 波形的输出频率fout是系统时钟频率 、相位宽度(即相位累加器中的位数 () 和相位增量值 :
的函数。 以HZ为单位的输出频率定义为:
计算fout的示例:
生成输出频率所需的相位增量值为:
如果 DDS 内核被时分复用以执行多个通道,则每个通道的有效时钟频率会降低。 对于 C 通道,所需的相位增量为:
单通道配置的 DDS 波形的输出频率 fout 是系统时钟频率 fclk、模数 M 和相位增量值 ΔΘ 的函数。 以赫兹为单位的输出频率定义为:
示例,DDS参数如下:
然后输出频率计算如下:
产生输出频率 fout Hz 所需的相位增量值 ΔΘ 为:
如果 DDS 内核被时分复用以执行多个通道,则每个通道的有效时钟频率会降低。 对于 C 通道,所需的相位增量为:
本节介绍在标准模式或光栅化模式下使用内核时的频率分辨率。
合成器的频率分辨率是时钟频率和相位累加器中使用的位数的函数。 频率分辨率可以通过以下方式确定:
例如,对于以下 DDS 参数:
在时分多通道的情况下,频率分辨率通过通道数来提高,如下:
合成器的频率分辨率 Δf 是时钟频率和模数的函数。 频率分辨率可以通过以下方式确定:
例如,对于以下 DDS 参数:
频率分辨率为:
在时分多通道的情况下,频率分辨率通过通道数来提高,如下:
对于标准模式,0 到 2 ^N-1 范围内的相位增量值描述了 [0,360)° 范围(其中 N 是相位累加器中的位数)。 对于光栅化模式,由于内部实现,相位增量值必须被认为是无符号的。相位增量值 [0 到 Modulus-1] 描述了范围 [0,360]。
相位增量项定义了合成器的输出频率。 考虑具有以下参数化的标准 DDS:
要生成频率为19MHz的正弦曲线,所需的相位增量为:
该值必须截断为整数,给出以下实际频率:
考虑具有以下参数化的光栅化模式的 DDS:
要生成频率为19MHz的正弦曲线,所需的相位增量为:
最接近的整数值为 292,给出以下实际频率:
在标准模式下,系统时钟为 1 MHz 的单通道 DDS,频率分辨率为 1 Hz,相位宽度为 20 位。 要合成 23.4 kHz 的输出,必须在用户界面中输入 0.0234 MHz 的输出频率值,然后返回十六进制值 5FD8,即十进制 24536。这给出了 24536/220 *1 MHz = 23399.35 Hz 的合成频率。 如果应用需要通过 8 个相位偏移之一对其进行调制,则相位偏移总线只需 3 位精度,但这些必须是相位偏移输入的前 3 位。 因此,1/8 个周期的相位偏移将在用户界面中输入为 0.125。 这将返回值 20000(十六进制)。 这可以在 3 位总线上输入为 001(二进制)。
在标准模式下,具有 100 MHz 系统时钟的单通道 DDS,频率分辨率为 1 Hz,相位宽度为 25 位。 需要 -3 MHz、-1 MHz、1 MHz 和 3 MHz 的频率。 Fs 是每个通道的频率,即系统时钟/通道数,即 25 MHz。 负频率混叠到每个 Fs Hz。 在用户界面中输入的合法范围是 0 到 F s,因此本示例中输入的频率必须分别为 22 MHz (Fs-3 MHz)、24 MHz (Fs-1 MHz)、1 MHz 和 3 MHz。
除了事件信号,所有进出 DDS 的接口都是 AXI4-Stream 接口。事件信号在检测到它们描述的事件时被注册和断言。握手机制遵守AXI-Stream协议。不再详细介绍。
CONFIG channel(s_axis_config_t*) 取代了 DDS Compiler v4.0 的编程接口。 对于 CONFIG channel,有向量的概念。 所讨论的向量是所有通道的一组完整值(PINC 和/或 POFF)。 CONFIG 通道是非阻塞的,这意味着 DDS 编译器的其他通道不会等待来自 CONFIG 通道的数据。 要对 CONFIG 通道进行编程,必须进行 N 次传输,其中 N 是通道数。 每次传输都包含每个通道的 PINC 和/或 POFF 值,从通道 0 开始按顺序排列。只有最后一次传输,通道(索引 N-1)必须使 TLAST 有效。 不这样做会导致 ·或 event_s_config_tlast_unexpected 输出在一个周期内被断言。 数据包仅在完成时才被视为已接收。 只有当它被完全接收时,它才有资格在等待同步事件时使用。 同步事件发生在 TDM 通道计数器翻转(矢量成帧)或输入 PHASE 通道被配置为接收包 TLAST 并且接收到一个这样的 TLAST 时(包成帧)。
当内核配置为单通道操作时,不需要 TLAST 并且引脚CONFIG 通道上不存在。
当 CONFIG 通道配置为为每个 TDM 通道提供 PINC 和 POFF 值时,每个字段都进行符号扩展以适应字节边界,然后这些面向字节的字段与 PINC 在最低有效位置连接。 例如,对于 11 位的相位宽度,PINC 将占用 10:0 位,而 POFF 将占用 26:16。 因此 s_axis_config_tdata 总体上将是 31:0。 下图显示了前面示例中宽度的结构,用于以下配置:
输入 PHASE 通道 (s_axis_phase_t*) 取代了 DDS 编译器 v4.0 的流接口(PINC_IN 和 POFF_IN)或 PHASE_IN 端口。 输入 PHASE 通道适用于 DDS 编译器执行动态功能(例如相位或频率调制)的应用,其中每个输入样本都有一个输出样本。 输入和输出之间存在一对一关系的事实意味着施加到输出的背压(TREADY 置低)导致输入 PHASE 通道上的 TREADY 置低(根据内部缓冲容量延迟)。 同样,PHASE 通道上的输入数据不足(TVALID 无效)传播为输出通道上的 TVALID 无效。
在光栅化模式下,PINC、POFF 和 PHASE_IN 的值必须限制在 0 和 Modulus-1(含)之间。 这对应于一个完整的圆圈。 所以如果负值是必需的,添加模数以将它们映射到所需的范围。 例如,对于模数 360,如果需要 -90,则添加 360 以获得所需范围内的 270。 存在事件信号以在运行时检测 PINC、POFF 和 PHASE_IN 输入的无效值。
当 DDS 编译器配置为具有相位累加器并且相位增量或相位偏移选择为“流式传输”时,输入 PHASE 通道接口存在。 当 DDS 编译器仅配置为 SIN/COS LUT 时,PHASE_IN 字段在输入 PHASE 通道的 TDATA 总线上输入。 这两种配置是互斥的。
如前所述,DDS 编译器可以具有输入 PHASE 通道的两种配置是互斥的,因此虽然 TDATA 中可以出现四个字段,但所有四个字段不能同时出现。
当 DDS 编译器配置为仅 SIN/COS LUT 时,PHASE_IN 字段映射到 s_axis_phase_tdata。 PHASE_IN 字段在总线的最低有效部分中占据一个面向字节的字段。 所以 s_axis_phase_tdata 的宽度是容纳 PHASE_IN 宽度所需的 8 位的最小倍数。 因为这是一个输入,所以实现此字节方向所需的任何额外位都会被内核忽略,并在综合或映射期间被优化掉。
下图显示 s_axis_phase_tdata 的结构,其中 Phase_Width = 11 用于以下配置:
输入 PHASE 通道可以配置为没有 TUSER 端口,有用户字段或携带 TDM 通道索引,或同时有用户字段和 TDM 通道索引。 这些字段没有字节方向。 TDM 通道索引(如果已配置)具有描述 TDM 通道数量所需的最小宽度。 用户字段的宽度由用户选择,从 1 到 256 位。 这两个字段在最不重要的位置与 TDM 信道 ID 字段连接。 如果只存在一个字段,则占用 s_axis_phase_tuser 的最低有效位。
下图显示了三种可能的组合; 用户字段和 chan_id 字段,仅 chan_id 字段和仅用户字段。
输入 PHASE 通道可以配置为没有 TLAST、有一个矢量成帧 TLAST 或有一个分组成帧 TLAST。 选择矢量Vector Framing 框架时,预计TLAST将指示频道的TDM周期中的最后一个通道。 如果 TLAST 与 TLAST 应该何时到达的内部预期不匹配,则在一个时钟周期内断言两个事件信号之一。 当选择分组帧Packet Framing 时,核心对 TLAST 的时间没有任何期望,因此事件信号不存在,但 TLAST 以与 TDATA 输入相同的延迟被传输到输出通道。
只要 DDS 编译器配置为具有 SIN/COS LUT。 该通道替代了 DDS Compiler v4.0 的 SINE 和 COSINE 输出。 这些以前的输出现在作为 m_axis_data_tdata 的字段存在。
正弦和余弦输出字段被符号扩展到下一个字节边界,然后连接,余弦在最不重要的部分,以创建 m_axis_data_tdata。如果只选择正弦或余弦之一,则将其符号扩展并放入最小m_axis_data_tdata 的重要部分。 图 3-22 显示了三种配置的 TDATA 的内部结构; 正交输出,仅余弦和仅正弦。 图中显示了一个 11 位输出例如,符号扩展到 16 位。 <<< 表示符号扩展。
输出 DATA 通道可以配置为没有 TUSER 字段,或让 TUSER 保存用户字段,或 TDM 通道索引,或同时包含用户字段和 TDM 通道 ID。 当同时选择用户字段和 TDM 通道 ID 时,这些字段与 TDM 通道 ID 连接在最不重要的位置。 TDM 通道 ID 将 TDATA 总线中用于该传输的字段限定为属于所描述的 TDM 通道。 有关结构,请见图 3-21,因为这与输出数据通道 TUSER 端口的结构相同。
IP不使用也不解释用户字段。 它作为一项服务提供,允许系统设计人员以与主数据路径(输入 PHASE 通道到输出通道)相同的延迟通过内核传递信息。 例如,用户字段可能包含与 DDS 无关但与 DDS 下游的某些核心相关的标志和其他辅助信息。
输出数据通道可以配置为没有 TLAST、有矢量成帧、有数据包成帧或有一个“配置触发”的 TLAST。
当设置为矢量帧时,TLAST 被断言用于传输,其中包含 TDM 通道周期的最后一个 TDM 通道的 TDATA(例如,12 通道中的第 12 通道)。
当设置为数据包成帧时,输入 PHASE 通道的 TLAST 以与主数据路径的延迟相等的延迟不变地传递。 这旨在为系统设计人员提供服务,其中 TLAST 可能具有与 DDS 无关但与某些核心下游相关的含义。
当设置为“配置触发”时,TLAST 由 DDS 在内部生成,而不是从输入 PHASE 通道传送。 在配置更改生效之前,它在 TDM 周期的最后一个通道上被断言。
换句话说,如果一个配置更改是使用 CONFIG 通道引发的,TLAST 在旧配置的最后一个样本上被断言。
输出 PHASE 通道取代了 DDS Compiler v4.0 的 PHASE_OUT 端口。 PHASE_OUT 端口现在作为 m_axis_phase_tdata 的一个字段存在。
PHASE_OUT 字段符号扩展为 8 位的下一个倍数,并成为 m_axis_phase_tdata。 例如,如果 PHASE_OUT 为 20 位,则 m_axis_phase_tdata 为 24 位宽 [23:0],由符号扩展 PHASE_OUT 占用。
图 3-23 显示了将 11 位符号扩展为 16 位的示例宽度。
光栅化模式下的相位值是 0 到 Modulus-1 范围内的正整数。因此,PHASE_OUT 字段用零填充,直到下一个 8 位的倍数,并变为 m_axis_phase_tdata。
TUSER 字段具有与输出 DATA 通道相同的配置选项,但选项对于两个输出通道是独立的,因此,例如,一个可能配置为具有用户字段,而另一个具有 TDM 频道 ID 字段。 图 3-21 与输出 PHASE Channel TUSER 端口的结构选项相同。
输出相位通道使用与输出数据通道相同的 TLAST 设置。
为了允许用户正确同步到内部通道计数器,并在将多通道数据写入 CONFIG 和/或 PHASE 通道时标记错误,DDS 编译器内核提供了多个事件输出以指示何时发生意外情况。事件输出遵循 aclken 和 aresetn 条件,立即发生并在每个存在差异的周期中断言。如果不需要事件输出,它们可以保持悬空状态,并且相关的逻辑会被赛灵思工具优化掉。
对于多通道配置,CONFIG 通道需要 s_axis_config_tlast 上的单个脉冲来指示通道序列中的最后一个样本(“向量”)。 如果 s_axis_config_tlast 在内核不期望的情况下被断言,则 event_s_config_tlast_unexpected 被断言。 如果 s_axis_config_tlast 脉冲没有与最后一个通道的配置数据一起被断言,则 event_s_config_tlast_missing 被断言。
当 PHASE 通道存在多个通道时,PHASE 通道需要 s_axis_phase_tlast 上的单个脉冲来指示通道序列中的最后一个样本(“vector2”)。如果 s_axis_phase_tlast 在内核不期望的情况下被断言,则 event_s_phase_tlast_unexpected 被断言。 如果 s_axis_phase_tlast 脉冲没有与最终通道的数据一起断言,则 event_s_phase_tlast_missing 被断言。
当 DDS 配置为光栅化模式时,PINC 和 POFF 值(固定、可编程或流式传输)都应在 0 到 Modulus-1 的范围内。 超出此范围的值不受支持,可能导致错误输出。 当检测到超出支持范围的值时,信号 event_pinc_invalid 和 event_poff_invalid 被置位。
s_axis_phase_tuser 配置选项允许您输入通道 ID 值以促进与内部通道计数器的同步。 如果选择此选项,则event_s_phase_chanid_incorrect 输出出现在内核上,并且在 s_axis_phase_tuser 上的输入通道 ID 与内核的当前通道不匹配的每个周期都被断言。
Configuration Options : :可以生成完整的 DDS 或可选的相位发生器部分或 SIN/COS LUT 部分。
System Requirements :DDS 的一般上下文由这组参数设置:
Noise Shaping : 这控制是否使用相位截断、抖动或泰勒级数校正。
特定噪声整形选项的可用性取决于选择的配置选项和参数选择方法。 系统参数输入自动限制特定的噪声整形选项是否可行。 选择硬件参数条目时,表 4-1 中汇总的选项可用,然后噪声整形选项的选择将硬件参数限制在所选选项支持的范围内。
根据输入的系统参数和选择的噪声整形,最小相位宽度和输出宽度由 Vivado IDE 通过以下方式得出。可以增加相位宽度以启用特定的噪声整形选项。 例如,泰勒级数校正需要 12 位的最小相位宽度。
图 4-1 显示了每个噪声整形选项运行的 SFDR 和相位宽度区域。
None、Phase Dithering 和 Taylor Series Correction 有三个重叠区域,并且使用更深层次的阴影来显示区域重叠的位置。 最暗的区域是所有三个区域重叠的地方,并且所有三个噪声整形选项都是可能的。 下面的虚线表示泰勒级数校正仅适用于 SDFR > 66.0 dB(而不是 66.0 dB)。 可以增加相位宽度以最大化特定 SFDR 目标的噪声整形选项的数量。
Phase Increment Programmability :选择设置 PINC 值的方式。
Resync :选择时,s_axis_phase 通道有一个 RESYNC 字段。 该位在置位时会静音相关通道的累积相位。 该周期的累加相位值是伴随 RESYNC 断言的 PINC 值加上 POFF 值。
Phase Offset Programmability :选择设置 POFF 值的方式。
Output
AXI Channel Options : 可以配置某些 AXI 接口信号的动作。
实数 = ac - bd 虚数 = ad + bc
在这种情况下,来自 DDS 的 a 和 b 是有符号的,二进制补码。 但是,如果 a 和 b 表示为符号和幅度,则 a 和 b 中的每一个的符号可用于修改混频器方程中每个项的符号。 例如,如果 a 单独为负,则混频器方程变为:
real = -ac -bd imaginary = -ad + bc
如果混频器级使用 DSP slice 实现,则可以通过更改 DSP48 Slice opmode 信号来实现此符号操作。
Parameter Entry Pages : 当相位增量或相位偏移为固定或可编程时,将出现以下页面用于输入参数。 如果可编程,则寄存器的初始值通过参数输入页指定。 如果使用 DSP slice 寄存器,如实现选项中所述,相位增量和/或偏移的初始值假定为零。
System Parameters :
Hardware Parameters :
全部0条评论
快来发表一下你的评论吧 !