[求助] VHDL求模运算

1067941083   2010-10-30 13:44 楼主
最近在写一个VHDL的年历+时钟程序,发现mod运算不能识别,
if (year mod 400=0) or ((year mod 4=0) and (year mod 100 /=0)) then
                        leap<='1';
                else leap<='0';
编译时提示错误信息:Error (10327): VHDL error at calendar.vhd(70): can't determine definition of operator ""mod"" -- found 0 possible definitions
我的头文件定义是
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
编译环境是quartus II 9.1
不知道怎样才能让编译通过,希望各位朋友提供一点帮助,谢谢啦

回复评论 (6)

use ieee.std_logic_arith.all;

use        ieee.std_logic_arith.all;
点赞  2010-10-30 14:26

回复 沙发 mr.king 的帖子

我按照你所说的去添加了arith头文件,不过编译的时候还是出现了相同的问题,求救……
点赞  2010-10-30 17:46

也想看看答案

 还真不知道,能这么简单地求模吗?有时语法虽对,但实际芯片编程不能这么做。“mod 4”好办,把最低2位留下其余屏蔽掉就行了,“mod 400”怎么地也得用状态机实现吧?
点赞  2010-10-30 18:11

mod 右边只能是2的n次方

mod 右边只能是2的n次方
点赞  2011-11-12 14:56

VHDL 能支持的数学运算很有限制,大概只有+,-,*,/ 标准4种基本运算.

 

如果求模运算, 考虑用上面的4种基本运算构建函数进行.

 

A MOD 4 , 即是A对4能整除的商,也就是除法.

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-11-15 10:24

USE ieee.numeric_std.ALL; 

点赞  2021-4-20 17:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复