VHDL中除法使用错误。求指教

2019-03-25 08:35发布

vhdl语言的问题,用FPGA串口接受到一串数据,然后用这一串数据除以256,并将余数取出来。再用64除以这一个余数。
为什么会出错呢?原因好像是两端都要是实数。

下面程序中 h_pixel是串口接受的数据。some_level是常数256。
程序代码如下:
     RTR_int:= h_pixel/some_level;  --多少像素  一阶
     RTR_rec:=h_pixel rem some_level; --余数
     
     if RTR_rec>0 then
      n_pixel:=some_level/RTR_rec;  --余数中的,每多少像素补一个像素进去
      。。。。。。
    end if;



错误代码如下:
line 218: Operator <DIVIDE> must have constant operands or first operand must be power of 2

[ 本帖最后由 jinghong21 于 2013-3-4 10:36 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
eeleader
1楼-- · 2019-03-25 18:11
< / VHDL通常情况下仅能处理整数。
jinghong21
2楼-- · 2019-03-25 20:01
如果将串口接收的h_pixel值  变为常数就不会出错,因为h_pixel是未知数,所以可能 RTR_rec:=h_pixel rem some_level中RTR_rec也是未知的,
n_pixel:=some_level/RTR_rec;这一句出错了。
请问有没有方法解决这个问题啊?求指教。。。
eeleader
3楼-- · 2019-03-25 21:49
/仅支持除数是常数的。对于2的整数幂,
应直接用移位方法即可!
eeleader
4楼-- · 2019-03-26 02:23
 精彩回答 2  元偷偷看……

一周热门 更多>