微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教该表达式的verilog实现(已解决)

请教该表达式的verilog实现(已解决)

时间:10-02 整理:3721RD 点击:

请教signal2
= ceiling (signal1 * 25.5) 的verilog实现
希望大家不吝赐教。
ceiling指向上取整,比如24.2,取整为25
根据下面同学的指导,问题已解决,谢谢啦,哈, 稍作修改,
1 位或代替位与
2 >>优先级最低,加括号
tmp = signal1 * 102;
signal2 = (tmp>>2) + |tmp[1:0]

tmp = signal1 * 102;
signal2 = tmp>>2 + &tmp[1:0]



   tmp = signal1 * 102;
signal2 = tmp>>2 + &tmp[1:0]
好厉害,哈,但是我觉得是不是把&改成|呢?

   
厉害,牛人请受在下一拜



   牛人暂时不在,你还是先起来吧。哈,你觉不觉得应该是位或|而不是位与&

不错,学习学习。

真是一个很好的思路,学习了



   tmp = signal1 * 102;
signal2 = tmp>>2 + &tmp[1:0]
请问我在verilog里面写一行乘法代码16bit*16bit ,要几个周期才能得到结果呢?

不明白后面的&tmp[1:0]
怎么理解。



   按位取&,我个人觉得是位或|

楼上面给的那些 个人感觉不好
先把所有的数据用浮点表示
然后做运算
这样可读性和后期可维护性都比较好


楼上面给的那些 个人感觉不好
先把所有的数据用浮点表示
然后做运算
这样可读性和后期可维护性都比较好
    我不是很理解,哈,可以解释一下么?

    我仔细想了想,也觉得应该是位或,这样才能起到向上取整的效果

    可是这样你知道综合出来得多少的门电路多大的面积吗?用移位的办法能省好多电路的



    乘法器,最好使用IP核,看IP的手册。这样才是可控制的。高级运算别指望综合器



    可以,改成(tmp>>2) + temp[1]



    FPGA里做浮点运算很费劲吧,至少我还没搞过,都是把数据放大2的N次幂倍之后再向右移,放大多少倍,取决于需要的精度。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top