在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9033|回复: 8

[求助] xilinx复数乘法器的一个疑问。

[复制链接]
发表于 2017-2-15 11:13:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
调用xilinx的复数乘法器IP核,我的配置如下图:
1.PNG
2.PNG
问题出在output rounding的选择上,如果选择了random rounding,AXIS_CTRL通道会作为端口,如图所示:s_axis_ctrl_tdata[7:0]例化时,到底该赋予什么样的值,这个通道到底是干什么的。如果选择了Truncate就不会有这个问题,但是,我看文档说,选择random rounding结果会更好更精确一些。知道的跟我通俗的说一说其中的缘由吧,看那个英语的说明文档看的我头疼,也看不出个所以然来。。因此来论坛问一问。
发表于 2017-2-15 15:22:55 | 显示全部楼层
你不应该选axi接口,选本地
发表于 2017-2-15 15:26:51 | 显示全部楼层
选IP的时候应该选,不带AXI4接口的
 楼主| 发表于 2017-2-15 15:56:49 | 显示全部楼层
谢谢
回答,但是为什么呢,能简单的说一下吗?我看很多IP核都是AXI4形式的。
 楼主| 发表于 2017-2-15 17:37:31 | 显示全部楼层
我用的软件是vivado2016,因为我做的是复数乘法,是关于数字信号处理的。我在ip catalog中输入mult这个关键词,signal processing下拉中会有一个complex multplier,就是用于复数乘法的,我就是调用的这个IP核,感觉是水到渠成,确实是AXI4的,插图上面也给出来了,没有native之类的选项,我选择了truncate(见图)选项后,就生成例化调用,仿真的结果让我傻眼了,跟自己计算的结果不同,我不知道它给的结果到底是什么意思。所有数据radix为有符号数。希望有人给指点一下,因为我看到它就是用来处理复数乘法的,当然用普通的乘法器也可以实现复数乘法,出现错误(反正我不懂给的结果是什么东西)难道是AXI4的错?
3.PNG

本身结果是有问题的。
仿真模块中例化 top U1(
  .clk(clk_w),
  .rst_n(rst_n_w),
  .dataa_valid(1'b1),
  .dataa_i(dataa_i_w),
  .dataa_r(dataa_r_w),
  .datab_valid(1'b1),
  .datab_i(datab_i_w),
  .datab_r(datab_r_w),
  .data_out_valid(),
  .data_out_i(data_out_i),
  .data_out_r(data_out_r)
);
top模块中例化
complex_mult MULT(
  .aclk(clk),                              // input wire aclk
  .aresetn(rst_n),                        // input wire aresetn
  .s_axis_a_tvalid(dataa_valid),        // input wire s_axis_a_tvalid
  .s_axis_a_tdata({dataa_i,dataa_r}),          // input wire [31 : 0] s_axis_a_tdata
  .s_axis_b_tvalid(datab_valid),        // input wire s_axis_b_tvalid
  .s_axis_b_tdata({datab_i,datab_r}),          // input wire [31 : 0] s_axis_b_tdata
  .m_axis_dout_tvalid(data_out_valid),  // output wire m_axis_dout_tvalid
  .m_axis_dout_tdata({data_out_i,data_out_r})
发表于 2017-8-28 21:20:31 | 显示全部楼层
我也遇到了这种问题,不知道你解决了吗
 楼主| 发表于 2017-9-2 09:41:19 | 显示全部楼层
出现错误,可能的原因是输出端口的位数没有选好,设置不同的话,可能导致输出结果集体缩小,比如输出结果很可能是缩小两倍的结果。我弄过,是有这个问题,结果集体缩小,跟设置,还有输出位数的选择有关,仿真修正修正就好了,没有什么大问题。
发表于 2018-3-28 04:01:46 | 显示全部楼层
我也遇到了这个问题,请问是truncate和rounding的问题吗,我想选radom rounding,可是rounding bit应该是什么呢,请问大神已经解决了吗
发表于 2023-5-29 16:14:27 | 显示全部楼层
看官方文档pg104说的四舍五入是需要引入随机值的,y以保证结果是0偏置的。他们建议用个时钟分频信号给到round_cy。但是我觉得这么做很麻烦,对round_cy给0使用静态的round规则貌似就够了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 19:21 , Processed in 0.027096 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表