集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4370|回复: 3

verilog求模运算求解

[复制链接]
yi215415 发表于 2012-4-18 19:19:44 | 显示全部楼层 |阅读模式
`timescale 1ns / 1ps
module seg(
    input clk,
    input sw,
    output  [7:0] qg,qs,qb,qq
    );
reg [31:0] count;
reg [13:0] cnt;
reg        [3:0] g,s,b,q;

always@(posedge clk,negedge sw)
        begin
                if(!sw)
                        begin
                                count <= 0;
                                cnt <= 0;
                        end
                else if(count == 50_000_000)   //delay 1s
                        begin
                                count <= 0;
                                cnt <= cnt + 1;
                                g <=        cnt % 10;
                                s <=        cnt / 10 % 10;
                                b <=        cnt / 100 % 10;
                                q <=        cnt / 1000 % 10;
                        end       
                else if(cnt == 9999)
                        cnt <= 0;                                       
                else
                        count <= count + 1;
        end
//assign                g =        cnt % 10;
//assign                s =        cnt / 10 % 10;
//assign                b =        cnt / 100 % 10;
//assign                q =        cnt / 1000 % 10;
       
assign qg = seg(g);
assign qs = seg(s);
assign qb = seg(b);
assign qq = seg(q);

       
function  [7:0] seg;
input [3:0] temp;
        case(temp)
                4'd0        :        seg = 8'h3f;
                4'd1        :        seg = 8'h06;
                4'd2        :        seg = 8'h5b;
                4'd3        :        seg = 8'h4f;
                4'd4        :        seg = 8'h66;
                4'd5        :        seg = 8'h6d;
                4'd6        :        seg = 8'h7d;
                4'd7        :        seg = 8'h07;
                4'd8        :        seg = 8'h7f;
                4'd9        :        seg = 8'h6f;
        default        :        seg = 8'hxx;
        endcase
endfunction

endmodule
这是我写的代码是一个计算0-9999的计数器,在用数码管显示的,现在这个代码有错误通不过检测
错误提示:
ERROR:Xst:867 - "seg.v" line 23: Operator % is only supported when the second operand is a power of 2.
在线等高手求解!谢谢!
 楼主| yi215415 发表于 2012-4-19 09:09:12 | 显示全部楼层
我用的是ISE,里面不能直接进行这样的运算,怎么样才能得到一个数除以另一个数的余数和商呢?
 楼主| yi215415 发表于 2012-4-19 09:09:17 | 显示全部楼层
我用的是ISE,里面不能直接进行这样的运算,怎么样才能得到一个数除以另一个数的余数和商呢?
 楼主| yi215415 发表于 2012-4-19 09:09:18 | 显示全部楼层
我用的是ISE,里面不能直接进行这样的运算,怎么样才能得到一个数除以另一个数的余数和商呢?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-6-28 22:36 , Processed in 0.061281 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表