数字信号处理-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


目录
相关文章
|
2月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
159 69
|
1月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的16psk调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的16PSK调制解调系统的硬件测试版本。系统在原有仿真基础上增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同信噪比下的性能测试。16PSK通过改变载波相位传输4比特信息,广泛应用于高速数据传输。硬件测试操作详见配套视频。开发板使用及移植方法也一并提供。
37 6
|
2月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的QPSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的QPSK调制解调系统的硬件实现与仿真效果。系统包含测试平台(testbench)、高斯信道模块、误码率统计模块,支持不同SNR设置,并增加了ILA在线数据采集和VIO在线SNR设置功能。通过硬件测试验证了系统在不同信噪比下的性能,提供了详细的模块原理及Verilog代码示例。开发板使用说明和移植方法也一并给出,确保用户能顺利在不同平台上复现该系统。
82 15
|
1月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的8PSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现8PSK调制解调系统,包含高斯信道、误码率统计、ILA数据采集和VIO在线SNR设置模块。通过硬件测试和Matlab仿真,展示了不同SNR下的星座图。8PSK调制通过改变载波相位传递信息,具有高频谱效率和抗干扰能力。开发板使用及程序移植方法详见配套视频和文档。
44 7
|
2月前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
82 26
|
2月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的2FSK调制解调系统,包含高斯信道、误码率统计模块及testbench。系统增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同SNR下的硬件测试,并提供操作视频指导。理论部分涵盖频移键控(FSK)原理,包括相位连续与不连续FSK信号的特点及功率谱密度特性。Verilog代码实现了FSK调制解调的核心功能,支持在不同开发板上移植。硬件测试结果展示了不同SNR下的性能表现。
80 6
|
3月前
|
算法 异构计算
基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4-ASK调制解调系统的算法仿真效果、理论基础及Verilog核心程序。仿真在Vivado2019.2环境下进行,分别测试了SNR为20dB、15dB、10dB时的性能。理论部分概述了4-ASK的工作原理,包括调制、解调过程及其数学模型。Verilog代码实现了4-ASK调制器、加性高斯白噪声(AWGN)信道模拟、解调器及误码率计算模块。
88 8
|
1月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
123 74
|
1月前
|
存储 编解码 算法
基于FPGA的直接数字频率合成器verilog实现,包含testbench
本项目基于Vivado 2019.2实现DDS算法,提供完整无水印运行效果预览。DDS(直接数字频率合成器)通过数字信号处理技术生成特定频率和相位的正弦波,核心组件包括相位累加器、正弦查找表和DAC。相位累加器在每个时钟周期累加频率控制字,正弦查找表根据相位值输出幅度,DAC将数字信号转换为模拟电压。项目代码包含详细中文注释及操作视频。
|
3月前
|
算法 物联网 异构计算
基于FPGA的4FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4FSK调制解调系统的Verilog实现,包括高斯信道模块和误码率统计模块,支持不同SNR设置。系统在Vivado 2019.2上开发,展示了在不同SNR条件下的仿真结果。4FSK调制通过将输入数据转换为四个不同频率的信号来提高频带利用率和抗干扰能力,适用于无线通信和数据传输领域。文中还提供了核心Verilog代码,详细描述了调制、加噪声、解调及误码率计算的过程。
108 11

热门文章

最新文章