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

jinghong21   2013-3-4 10: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 must have constant operands or first operand must be power of 2

[ 本帖最后由 jinghong21 于 2013-3-4 10:36 编辑 ]

回复评论 (4)

VHDL通常情况下仅能处理整数。
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2013-3-4 20:10

回复 沙发 eeleader 的帖子

如果将串口接收的h_pixel值  变为常数就不会出错,因为h_pixel是未知数,所以可能 RTR_rec:=h_pixel rem some_level中RTR_rec也是未知的,
n_pixel:=some_level/RTR_rec;这一句出错了。
请问有没有方法解决这个问题啊?求指教。。。
点赞  2013-3-5 09:04
/仅支持除数是常数的。对于2的整数幂,
应直接用移位方法即可!
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2013-3-6 20:38
/仅支持除数是常数的。对于2的整数幂,
应直接用移位方法即可!
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2013-3-6 20:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复