openofdm初探之六:vivado环境下替代divider.v

66 篇文章 23 订阅
58 篇文章 27 订阅

divider是一个32位除以24位的有符号整数除法器,结果取商,忽略小数。直接用VIVADO的DIVIDER GENERATOR 生成。

 上图设置了32位除以24的有符号除法器。我们看到小数部分是24位,实际无所谓,在逻辑代码中会被忽略实际综合中也会被优化掉从而不占用逻辑资源。

上图设置了clocks per division是1,这样生成的除法器面积大运行快。可以选择其他数值在资源占用和速度方面折衷。 

上图可见输出结果的高32位是商,是我们需要的。

上述的IP保存位div_gen_div_gen_0_0.xci文件。

我们写一个转接文件直接替代verilog/coregen目录下的divider.v文件。



module divider (
    input clock,
    input reset,
    input enable,

    input signed [31:0] dividend,
    input signed [23:0] divisor,
    input input_strobe,

    output signed [31:0] quotient,
    output output_strobe
);
 
wire [32+24-1:0]result56 ; 
assign quotient  = result55[32+24-1:24] ;
  div_gen_div_gen_0_0 div_gen_0
       (.aclk(clock),
        .m_axis_dout_tdata(result56),
        .m_axis_dout_tvalid(output_strobe),
        .s_axis_dividend_tdata(dividend),
        .s_axis_dividend_tvalid(input_strobe),
        .s_axis_divisor_tdata(divisor),
        .s_axis_divisor_tvalid(input_strobe)
		);
		
endmodule

使用时候将div_gen_div_gen_0_0.xci文件和divider.v加入项目就可以。

链接:https://pan.baidu.com/s/1RuHP-IeBSjr6EB8o0tWNbA 
提取码:1w8m 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值