数字信号处理-04- FPGA常用运算模块-除法器(二)

简介: 数字信号处理-04- FPGA常用运算模块-除法器

TDATA包


AXI4-Stream 接口中的遵循特定的命名法。 在该内核中,操作数通过通道 tdata 端口传入或传出内核。 为了简化协议的互操作性,如果需要时,首先扩展 tdata 中可以独立使用的每个子字段,以适应 8 位倍数的位字段。 对于输出 DOUT 通道,结果字段符号扩展到字节边界。 由字节方向添加的位被内核忽略并且不会导致额外的资源使用。

被除数和除数通道的 TDATA 结构


输入通道 Dividend 和 Divisor 仅在其 tdata 字段中携带其操作数。 对于每个操作数占据最低有效位。tdata 端口宽度本身是包含操作数所需的字节宽度的最小倍数。

image.png

输出(DOUT)通道的TDATA结构


m_axis_dout_tdata 的结构比较复杂。 此端口包含商和(余数或小数输出如果存在)。当余数类型设置为余数时,两个输出被认为是分开的,因此在串联以形成 m_axis_dout_tdata 信号之前是面向字节的。 当余数类型为小数时,小数部分被视为商的扩展,因此这两个字段在填充到下一个字节边界之前连接。

image.png

TLAST and TUSER握手


AXI4-Stream 中的 tlast 用于表示数据块的最后一次传输。 tuser 用于限定或扩充 tdata 中的主要数据的辅助信息。 除法器在每个样本的基础上运行,其中每个操作都独立于之前或之后的任何操作。因此,不需要在除法器上放置 tlast。

在每个输入通道上支持 tlast 和 tuser 信号纯粹是作为系统设计的一个可选辅助,在这种情况下,通过除法器的数据流确实具有一些分组化或辅助字段,但不是与除法器相关。 传递 tlast 或 tuser 的功能消除了通过除法器将延迟匹配到 tdata 路径的负担,该路径可以是可变的。

当选择Divide_by_zero detect(除以零检测)时,指示除以零的信号在输出通道tuser端口的最低有效位上输出。

TLAST Options


每个输入通道的 tlast 是可选的。 每个存在时,都可以通过除法器,或者,当多个通道启用了 tlast 时,可以通过 tlast 输入的逻辑 AND 或逻辑 OR。 当任何输入通道上不存在 tlasts时,输出通道也没有 tlast。

TUSER Options


每个输入通道的 tuser 是可选的。 每个都有用户可选择的宽度。 Divider IP也可能生成一个 tuser 位。 这是选择divide_by_zero 检测时。divide_by_zero 位占据最低有效位置,然后是来自除数通道的 tuser,然后是来自最高有效位置的被除数通道的 tuser。

image.png

除法器IP配置


除法器IP配置界面如下:

image.png

Common Options


描述了两种实现的参数,并允许选择除法器实现。

Algorithm Type: 算法类型:这在基数 2、LUTMult 和高基数划分解决方案之间进行选择。

Dividend Channel


Dividend Width: 被除数宽度,指定在 DIVIDEND (s_axis_dividend_tdata) 和 QUOTIENT(m_axis_dout_tdata 的子字段)上提供的整数位数。 这必须设置为满足最大可能的商结果。

由于二进制补码表示的非对称性,从被除数到商的位增长是可能的,但仅适用于最大负数除以负数的单个组合(即 -2(M-1)/-1)。 如果需要适应这种情况,被除数(以及商)的宽度可以扩展 1 位。

Has TLAST: 指定此通道是否具有 tlast 端口。 除法器不使用此信息。 该项用于简化系统设计。tlast信息以和数据路径相同的延迟传送到输出通道。

Has TUSER: 指定此通道是否具有 tuser 端口。 与 tlast 一样, 除法器不使用此信息。 该项用于简化系统设计。 tuser 位以和数据路径相同的延迟传送到输出。

TUSER Width: 当 Has tuser 为 TRUE 时可用,这将设置此通道的 tuser 端口的宽度。

Divisor Channel


Divisor Width: 除数宽度。指定在 s_axis_divisor_tdata 的 DIVISOR 字段上提供的整数位数。 当配置有余数输出时,余数的宽度也等于该参数的值。

Has TLAST: 指定此通道是否具有 tlast 端口。 除法器不使用此信息。 该项用于简化系统设计。 tuser 位以和数据路径相同的延迟传送到输出。

Has TUSER: 指定此通道是否具有 tuser 端口。 与 tlast 一样, 除法器不使用此信息。 该项用于简化系统设计。 tuser 位以和数据路径相同的延迟传送到输出。

TUSER Width: 当 Has tuser 为 TRUE 时可用,这将设置此通道的 tuser 端口的宽度。

Output Channel


Remainder Type: 余数类型。这可以在输出 tdata 端口 (m_axis_dout_tdata) 的 FRACTIONAL 上显示的余数类型小数和余数之间进行选择。分数余数类型是高基数的唯一选项。

Fractional Width: 小数宽度。如果选择小数余数类型,这将确定在输出通道 (m_axis_dout_tdata) 的小数字段上提供的位数。 选择高基数时,总输出宽度(商部分加小数部分)限制为 82。

商的宽度等于被除数的宽度,并在被除数通道部分设置。

如果divide_by_zero 检测处于有效状态,tuser 端口的宽度是当前输入通道tuser 字段的总和加上1。 如果任一输入通道具有 tlast 端口,则该通道也具有 tlast 端口。

Detect Divide-by-Zero: 检测被零除。确定内核在输出 tuser 端口 (m_axis_dout_tuser) 中是否有 DIVIDE_BY_ZERO 以在执行除以零时发出信号。

Radix-2 Options


Clocks Per Division: 分频时钟。确定 Radix-2 解决方案的吞吐量(输入(或输出)之间的时钟间隔)。 此参数的低值会导致高吞吐量,但也会导致更多资源使用。

High Radix and LUTMult Options


**Number of iterations (High Radix only) 迭代次数(仅限高基数): ** 只读,报告高基数操作模式为每次除法执行的迭代次数。 这设置了分频器的最大吞吐量。为实现此吞吐量,必须在s_axis_dividend_tready 和 s_axis_divisor_tready 输出请求时立即提供操作数。

Number of iterations (High Radix only)吞吐量(仅限高基数) :只读,报告以恒定速率提供操作数时除法器可维持的最大吞吐量。 在 AXI 阻塞模式下,由于缓冲,吞吐量可能略高。 当FlowControl 设置为 NonBlocking 并且输出通道 DOUT 没有tready 时,此速率适用。

AXI4-Stream Options


Flow Control: 流控制。阻塞或非阻塞。非阻塞模式提供了从之前版本的分频器生成器内核的更简单的迁移路径。 阻塞模式以一些额外的资源和延迟为代价,简化了进出其他 AXI4-Stream 阻塞模式内核的数据流管理。

Optimize Goal: 优化目标。这仅适用于阻塞模式。 选择ACLKEN并优化目标设置为资源时,可能会降低性能。

Output has TREADY: 选择输出通道是否有tready信号。 这是允许来自下游的背压所必需的。例如,如果连接到另一个 AXI4-Stream Blocking内核。 如果没有tready,下游电路无法停止来自分频器的数据流,但会节省一些资源。

Output TLAST Behavior: 输出 TLAST行为。选择输出通道 tlast 信号的来源。 当没有或只有一个输入通道有 tlast 时,输出 tlast 不存在或适当地从输入 tlast 派生。当两个输入通道都有 tlast 时,输出通道 tlast 可以单独从两个输入的逻辑 OR或逻辑 AND 得出。

Latency Options


Latency Configuration: 延迟配置。自动(完全流水线)或手动。Radix2 解决方案的延迟配置仅在每格时钟设置为 1 时才可配置。这是由于迭代反馈,因此当每格时钟大于 1 时非可选寄存器。

Latency :延迟,当Latency Configuration 设置为Automatic 时,提供从输入到输出的延迟,以时钟使能时钟周期为单位。 手动时,此字段用于指定所需的延迟。 当不需要高性能(时钟频率)时,该字段中较低的值可以节省资源。

Control Signals


ACLKEN :确定内核是否具有时钟使能输入 (ACLKEN)。信号ARESETn始终优先于ACLKEN,即无论ACLKEN的状态如何,ARESETn都生效。

ARESETn :确定内核是否具有低电平有效同步清零输入 (ARESETn)。为低电平有效。信号 ARESETn 应保持有效至少两个时钟周期。 这是因为,为了性能,ARESETn 在被馈送到原语的重置端口之前在内部注册。

reference


  1. PG151


目录
相关文章
|
3月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的1024QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的1024QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同SNR条件下的性能测试。1024QAM调制将10比特映射到复平面上的1024个星座点之一,实现高效数据传输。硬件测试结果表明,在SNR=32dB和40dB时,系统表现出良好的性能。Verilog核心程序展示了各模块的连接与功能实现。
99 7
|
2月前
|
数据采集 移动开发 算法
【硬件测试】基于FPGA的QPSK调制+软解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现QPSK调制与软解调系统,包含Testbench、高斯信道、误码率统计模块,并支持不同SNR设置。硬件版本新增ILA在线数据采集和VIO在线SNR设置功能,提供无水印完整代码及测试结果。通过VIO分别设置SNR为6dB和12dB,验证系统性能。配套操作视频便于用户快速上手。 理论部分详细解析QPSK调制原理及其软解调实现过程,涵盖信号采样、相位估计、判决与解调等关键步骤。软解调通过概率估计(如最大似然法)提高抗噪能力,核心公式为*d = d_hat / P(d_hat|r[n])*,需考虑噪声对信号点分布的影响。 附Verilog核心程序代码及注释,助力理解与开发。
97 5
|
3月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的MSK调制解调系统系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现MSK调制解调系统,采用Verilog开发,包含同步模块、高斯信道模拟、误码率统计等功能。相比仿真版本,新增ILA数据采集与VIO在线SNR设置模块。通过硬件测试验证,展示不同SNR(如10dB和16dB)下的性能表现。研究聚焦软件无线电领域,优化算法复杂度以适应硬件限制,利用MSK恒定包络、相位连续等特性提升频谱效率。核心代码实现信号生成、调制解调、滤波及误码统计,提供完整的硬件设计与分析方案。
140 19
|
3月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的4ASK调制解调系统的硬件测试版本,该系统包括testbench、高斯信道模块和误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置功能。通过VIO设置不同SNR(如15dB和25dB),实现了对系统性能的实时监测与调整。4ASK是一种通过改变载波幅度表示数据的数字调制方式,适用于多种通信场景。FPGA平台的高效性和灵活性使其成为构建高性能通信系统的理想选择。
106 17
|
3月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的16QAM调制+软解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前开发的16QAM调制与软解调系统,增加了硬件测试功能。该系统包含FPGA实现的16QAM调制、软解调、高斯信道、误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置模块。通过硬件测试,验证了不同SNR条件下的系统性能。16QAM软解调通过比较接收信号采样值与16个调制点的距离,选择最近的调制点来恢复原始数据。核心Verilog代码实现了整个系统的功能,包括SNR设置、信号处理及误码率统计。硬件测试结果表明系统在不同SNR下表现良好,详细操作步骤可参考配套视频。
103 13
|
3月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前的文章《基于FPGA的4FSK调制解调系统》,增加了ILA在线数据采集模块和VIO在线SNR设置模块,实现了硬件测试版本。通过VIO设置不同SNR(如10dB和20dB),并展示了ILA采集的数据结果。四频移键控(4FSK)是一种数字调制方法,利用四个不同频率传输二进制数据,具有较高的频带利用率和抗干扰性能。输入的二进制数据分为两组,每组两个比特,对应四个频率f1、f2、f3、f4,分别代表二进制组合00、01、10、11。调制过程中选择相应频率输出,并进行幅度调制以增强抗干扰能力。接收端通过带通滤波器提取信号并还原为原始二进制数据。
85 7
|
3月前
|
数据采集 算法 数据处理
【硬件测试】基于FPGA的256QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的256QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同信噪比(如30dB和40dB)的仿真测试,并提供配套操作视频。256QAM调制方案每个符号携带8比特信息,通过复数值星座图映射实现高效传输。Verilog代码展示了核心模块设计,包括SNR设置、数据处理和ILA测试分析,确保系统在实际硬件环境中的稳定性和性能。
66 2
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
3月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR
本内容展示了基于Vivado2019.2的算法仿真效果,包括设置不同信噪比(SNR=8db和20db)下的结果及整体波形。同时,详细介绍了2ASK调制解调技术的原理与实现,即通过改变载波振幅传输二进制信号,并提供数学公式支持。此外,还涉及帧同步理论,用于确定数据帧起始位置。最后,给出了Verilog核心程序代码,实现了2ASK解调与帧同步功能,结合DDS模块生成载波信号,完成信号处理流程。
68 0
|
3月前
|
算法 数据安全/隐私保护 异构计算
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。

热门文章

最新文章