verilog 取余运算 如何实现

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:39:15
快郁闷死了
想把一个reg做对5取余的操作,结果问题一堆一堆的
例如
reg [3:0] res;
res=res%5;
出错

向达人求解

verilog语言没学过,不过原理应该是差不多的,C中有%运算符取余

我们可以手动写一个取余的函数

比如

int mod(int a,int b)
{
int i;
for(i=0;i<b;i++)
{
if(a==a/b*b+i)   /* 因为a/b都是整数,所以结果也是整数,小数被截去  */
return i;        /*  比如a=3,b=2;   满足条件时会有这样的式子成立3==3/2*2+1
                  *  即3==1*2+1,显然有3==3,所以返回余数1  */
}
}

verilog是对硬件进行描述的语言,对这种高级操作是没法处理的,除非你的综合器支持。

如果只是3位的话,case就能搞定了吧