集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1496|回复: 0

错在哪?????????

[复制链接]
Gevyaa 发表于 2010-10-29 17:19:05 | 显示全部楼层 |阅读模式
module test11(clk,c1,c2,k1,k2,p1,p2);
input clk;
output [3:0] c1,c2;
output k1,k2;
output [6:0] p1,p2;
wire [3:0] shi1,shi2,gh;
wire[3:0] time1,time2,time3,time4,time5,time6;
wire rst=1,k1=1,k2=1;
div16 cc(clk,rst,clk_16);
shijian  a1(time1,time2,time3,time4,time5,time6,clk_16);
shaomiao b1(clk,c1[3],c1[2],c1[1],c1[0],c2[3],c2[2],c2[1],c2[0],time1,time2,time3,time4,time5,time6,shi1,shi2);
decode4_7 d1(p1[6],p1[5],p1[4],p1[3],p1[2],p1[1],p1[0],shi1[3],shi1[2],shi1[1],shi1[0]);
decode4_7 d2(p2[6],p2[5],p2[4],p2[3],p2[2],p2[1],p2[0],shi2[3],shi2[2],shi2[1],shi2[0]);
endmodule





module decode4_7(a,b,c,d,e,f,g,D3,D2,D1,D0);
output  a,b,c,d,e,f,g;
input  D3,D2,D1,D0;
reg a,b,c,d,e,f,g;
always @(D3 or D2 or D1 or D0)
begin
case({D3,D2,D1,D0})
4'd0:{a,b,c,d,e,f,g}=7'b1111110;
4'd1:{a,b,c,d,e,f,g}=7'b0110000;
4'd2:{a,b,c,d,e,f,g}=7'b1101101;
4'd3:{a,b,c,d,e,f,g}=7'b1111001;
4'd4:{a,b,c,d,e,f,g}=7'b0110011;
4'd5:{a,b,c,d,e,f,g}=7'b1011011;
4'd6:{a,b,c,d,e,f,g}=7'b1011111;
4'd7:{a,b,c,d,e,f,g}=7'b1110000;
4'd8:{a,b,c,d,e,f,g}=7'b1111111;
4'd9:{a,b,c,d,e,f,g}=7'b1111011;
default:{a,b,c,d,e,f,g}=7'b00000000;
endcase
end
endmodule


module shaomiao(clk,d0,d1,d2,d3,d4,d5,d6,d7,time1,time2,time3,time4,time5,time6,shi1,shi2);
input clk;
input [3:0] time1,time2,time3,time4,time5,time6;
output d0,d1,d2,d3,d4,d5,d6,d7;
output [3:0] shi1,shi2;
reg d0,d1,d2,d3,d4,d5,d6,d7;
reg [3:0] shi1,shi2;
reg[3:0] b;
always @(posedge clk) begin
   if(b==4'd1111)
      b=4'd0000;
      else
      b=b+1;
      case(b)
      3'd0:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00000001;shi1=time1;end
      3'd1:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00000010;shi1=time2;end
      3'd2:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00000100;shi1=time3;end
      3'd3:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00001000;shi1=time4;end
      3'd4:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00010000;shi2=time5;end
      3'd5:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd00100000;shi2=time6;end
      3'd6:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd01000000;shi2=4'd0000;end
      3'd7:begin {d0,d1,d2,d3,d4,d5,d6,d7}=4'd10000000;shi2=4'd0000;end
      endcase
       end
      
       endmodule
      
      
   
   
      
      module div16(clk,rst,clk_16);
input clk,rst;
output clk_16;

reg[25:0] count;

always @(posedge clk or negedge rst)
begin
  if (!rst)
    count <= 26'b0;
  else
    count <= count +1;
end

assign clk_16 = count[25];

endmodule


module shijian(time1,time2,time3,time4,time5,time6,clk);


output[3:0] time1,time2,time3,time4,time5,time6;
input clk;
reg[3:0] a,b,c,d,e,f;
reg[3:0] time1,time2,time3,time4,time5,time6;
reg bb,cc,dd,ee,ff;
always @(posedge clk)
begin
        if(a==4'd1010) begin
           a=4'd0000; time1=a;bb=1; end
           else begin
           a=a+1; time1=a; bb=0;end
          
         if(b==4'd0110) begin
                        b=4'd0000;time2=b;cc=1; end
                        else if(bb==1) begin
                                        b=b+1;time2=b; cc=0;end
                                        else begin
                                                b=b;time2=b; cc=0;end
                                               
                                                if(c==4'd1010) begin
                                                        c=4'd0000;time3=c;dd=1; end
                                                        else if(cc==1) begin
                                                         c=c+1;time3=c;dd=0;end
                                                         else begin
                                                                c=c;time3=c;dd=0;end
                                                               
                                                                if(d==4'd0110) begin
                                                        d=4'd0000;time4=d;ee=1; end
                                                        else if(dd==1) begin
                                                         d=d+1;time4=d;ee=0;end
                                                         else begin
                                                                d=d;time4=d;ee=0;end
                                                               
                                                                if(e==4'd1010) begin
                                                        e=4'd0000;time5=e;ff=1; end
                                                        else if(ee==1) begin
                                                         e=e+1;time5=e;ff=0;end
                                                         else begin
                                                                e=e;time5=e;ff=0;end
                                                               
                                                                if(f==4'd0011) begin
                                                        f=4'd0000;time6=f; end
                                                        else if(ff==1) begin
                                                         f=f+1;time6=f;end
                                                         else begin
                                                                f=f;time6=f;end
                                               
                                               
                       
end



endmodule

结果图
我原本想做一个时钟自加的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:17 , Processed in 0.065001 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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