verilog 取余运算 如何实现
来源:百度知道 编辑:UC知道 时间:2024/06/15 12:39:15
快郁闷死了
想把一个reg做对5取余的操作,结果问题一堆一堆的
例如
reg [3:0] res;
res=res%5;
出错
向达人求解
想把一个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就能搞定了吧