请教该表达式的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次幂倍之后再向右移,放大多少倍,取决于需要的精度。
