floating-point IP使用入门

  由于在最近的项目中需要用到 floating-point IP中的 fix2float功能以及乘法功能,在使用前对其进行基本的仿真测试。

  fix2float功能使用前需要知道的(标黄部分:

IP对定点数的格式要求如上图所示,编码类型为:二进制补码

IP核设置:

左侧可以看到输入输出接口的细节,右侧值得注意的是输入输出端口的延时设置(在这里设置为7个时钟延时)

 仿真代码如下:

//~ `New testbench
`timescale  1ns / 1ps

module tb_float_point_wrapper;

// float_point_test_wrapper Parameters
parameter PERIOD  = 10;


// float_point_test_wrapper Inputs
reg   M_AXIS_RESULT_0_tready               = 1 ;
reg   [15:0]  S_AXIS_A_0_tdata             = 16'd12 ;
reg   S_AXIS_A_0_tvalid                    = 0 ;
reg   aclk_0                               = 0 ;

// float_point_test_wrapper Outputs
wire  [31:0]  M_AXIS_RESULT_0_tdata        ;
wire  M_AXIS_RESULT_0_tvalid               ;
wire  S_AXIS_A_0_tready                    ;

initial
begin
    forever #(PERIOD/2)  aclk_0=~aclk_0;
end

float_point_test_wrapper  u_float_point_test_wrapper (
    .M_AXIS_RESULT_0_tready  ( M_AXIS_RESULT_0_tready         ),
    .S_AXIS_A_0_tdata        ( S_AXIS_A_0_tdata        [15:0] ),
    .S_AXIS_A_0_tvalid       ( S_AXIS_A_0_tvalid              ),
    .aclk_0                  ( aclk_0                         ),

    .M_AXIS_RESULT_0_tdata   ( M_AXIS_RESULT_0_tdata   [31:0] ),
    .M_AXIS_RESULT_0_tvalid  ( M_AXIS_RESULT_0_tvalid         ),
    .S_AXIS_A_0_tready       ( S_AXIS_A_0_tready              )
);


initial
begin
    #55
    S_AXIS_A_0_tvalid = 1;
end

endmodule

仿真结果如下图所示:

 可以看到:数据以及延时均符合预期。同时注意到数据在延时一个周期时就已经准备好了,后续M_AXIS_TVALID的拉高时间更晚是我们人为设置所导致的。

下面仿真其浮点数乘法功能,由于在最后项目中主要运用该功能实现FFT的加窗部分,所以仿真也直接将FFT原始数据拿来用了。

顶层模块如下:

 前级为转换部分,后级为浮点数乘法部分,两个输入通道分别同步地输入原始波形数据,窗函数数据,编码类型为二进制补码

仿真代码如下:

//~ `New testbench
`timescale  1ns / 1ps

module tb_float_point_test_wrapper;

// float_point_test_wrapper Parameters
parameter PERIOD  = 10;

reg [15:0] Time_data_I[1023:0];
reg [15:0]  win_data_I[1023:0];

// float_point_test_wrapper Inputs
reg   M_AXIS_RESULT_0_tready               = 1 ;
reg   [15:0]  S_AXIS_A_0_tdata 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
xilinx floating-point ip是指xilinx公司开发的用于浮点数数据处理的IP核。它可以实现浮点数的转换、 #### 引用[.reference_title] - *1* [十三、Xilinx floating-point IP 使用说明](https://blog.csdn.net/weixin_41838250/article/details/125874095)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【教程】Xilinx FPGA里面的AXI DMA IP核的简单用法(以读写Floating-point IP核数据为例)](https://blog.csdn.net/ZLK1214/article/details/113144766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [fp23fftk:最新的Xilinx FPGA的浮点正向反向快速傅立叶变换(FFT)IP内核(源语言-VHDL)](https://download.csdn.net/download/weixin_42102713/14990566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值