luckymao 发表于 2011-5-15 21:56:01

一位数码管动态显示 求指出错误之处

板子晶振是20MHz的
module DIG
(
        clk,data,sel
);

input clk;
output data;
output sel;

reg count;

assign sel = 0;

always @(posedge clk)
   begin
           count <= count+1;
   end
   
reg rdata;

always @(count)
        begin
                case (count)
                        8'h0: rdata=8'b1100_0000;
                        8'h1: rdata=8'b1111_1001;
                        8'h2: rdata=8'b1010_0100;
                        8'h3: rdata=8'b1011_0000;
                        8'h4: rdata=8'b1001_1001;
                        8'h5: rdata=8'b1001_0010;
                        8'h6: rdata=8'b1000_0010;
                        8'h7: rdata=8'b1111_1000;
                        8'h8: rdata=8'b1000_0000;
                        8'h9: rdata=8'b1001_0000;
                endcase
        end       
assign data = rdata;

endmodule

sunmaster 发表于 2011-6-1 14:30:30

回复 1# luckymao


    你的count的取值有16中可能,而你只列出了10中可能,存在一些不定的状态,在最后应加上default语句!

10s001043 发表于 2011-6-2 13:57:01

第二个进程的触发信号应该用POSEDGE CLK

10s001043 发表于 2011-6-2 13:57:10

第二个进程的触发信号应该用POSEDGE CLK

sophy688 发表于 2011-6-3 15:43:57

你的输入频率太高了,无法显示0到9,count用4位就能表示,为什么要选用32位呢,所以可以先分一下输入频率,将count位数调小,估计应该能实现想要的功能
页: [1]
查看完整版本: 一位数码管动态显示 求指出错误之处