verilog的取余和除法

         用verilog做一个可以将整数的每一个位分离的模块

         比如一个两位数分成个位和十位

         我用了两种方法

1.除法取余

assign q=shuzi/1000;
assign b=shuzi/100%10;
assign s=shuzi/10%10;
assign g=shuzi%10;

verilog的取余和除法_第1张图片

2.除法减法乘法

assign q=shuzi/1000;
assign b=shuzi/100-q*10;
assign s=shuzi/10-q*100-b*10;
assign g=shuzi-q*1000-b*100-s*10;
verilog的取余和除法_第2张图片


整个工程综合出来发现取余会占用很多资源 把除法去掉(但是没有实现位分离的功能)verilog的取余和除法_第3张图片

除法和取余真的很占资源   

感觉还是用一个算法比较好  二进制转换成BCD码  加三移位法


你可能感兴趣的:(FPGA)