⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taxi.v.bak

📁 在Quatus下用VerilogHDL语言编写
💻 BAK
字号:
`timescale 1ns/1ns
module taxi(f64,reset,start,drive,cha3,cha2,cha1,cha0,km1,km0,min1,min0,flagmile,flagmin);
   input f64,reset,start,drive;
   output [3:0]cha3,cha2,cha1,cha0,km1,km0,min1,min0;
   output [1:0]flagmile,flagmin;
   reg [3:0]cha3,cha2,cha1,cha0,km1,km0,min1,min0;
   //reg drivout;
   reg miles,minout;
   reg flagmile,flagmin;
   //reg [7:0]i;
   reg [7:0]j;
   reg [7:0]k;
initial     begin
             //i<=0;
             j<=0;
             k<=0;
             cha3<=0;
             cha2<=1;
             cha1<=0;
             cha0<=0;
             km1<=0;
             km0<=0;
             min1<=0;
             min0<=0;
end
/*always @(posedge reset)   
      begin            
             i<=0;
             j<=0;
             k<=0;
             cha3<=0;
             cha2<=1;
             cha1<=0;
             cha0<=0;
             km1<=0;
             km0<=0;
             min1<=0;
             min0<=0;
      end  */
/*always @(posedge drive)
begin
       if(reset)
              i<=0;
       else if(!start)
           begin
               drivout<=drivout;
               i<=i;
           end
       else if(i==15)
           begin
               i<=0;
               drivout<=~drivout;
           end
           else
              i<=i+1;              
end*/
/*always @(posedge f64)
   begin      
       if(!start)
             begin
                 j<=j;
                 k<=k;
             end
       else 
            begin
                if(drivout)
                     begin
                        if(j==255)
                             begin
                                j<=0;
                                //minout<=~minout;
                                minout<=1;
                             end
                        else
                             begin j<=j+1;end
                     end                         
                 else  
                     begin
                         if(k==255)
                             begin
                                k<=0;
                                miles<=~miles;
                                miles<=1;
                             end
                         else
                             begin k<=k+1;end
                     end 
             end    
  end*/
always @(posedge f64) 
     begin
          if(reset)
             begin            
                //i<=0;
                j<=0;
                k<=0;
                cha3<=0;
                cha2<=1;
                cha1<=0;
                cha0<=0;
                km1<=0;
                km0<=0;
                min1<=0;
                min0<=0;
             end
          else if(!start)
             begin
                 j<=j;
                 k<=k;
             end
          else 
            begin
                if(!drive)
                     begin
                        flagmin<=1;
                        flagmile<=0;
                        if(j==80)
                             begin
                                j<=0;
                                //minout<=~minout;
                                minout<=1;
                             end
                        else
                             begin j<=j+1;end
                     end                         
                  else  
                     begin
                         flagmile<=1;
                         flagmin<=0;
                         if(k==100)
                             begin
                                k<=0;
                                //miles<=~miles;
                                miles<=1;
                             end
                         else
                             begin k<=k+1;end
                     end 
             end    
          
          if(minout)
              begin
                  minout<=0;
                  if(min0<9)
                      begin
                      min0<=min0+1;                     
                      end
                  if(min0==9)
                        if(min1==5)
                           begin
                              min0<=0;
                              min1<=0;
                           end
                        else
                           begin
                              min0<=0;
                              min1<=min1+1;
                           end                 
                  if(min0>=1)
                     begin
                        if(cha0<5)
                            begin
                                if(cha1<9)
                                   begin
                                      cha0<=cha0+5;
                                      cha1<=cha1+1;
                                   end
                                else if(cha2<9)                            
                                   begin
                                       cha0<=cha0+5;
                                       cha1<=cha1-9;
                                       cha2<=cha2+1;
                                    end
                                else if(cha3<9)
                                   begin
                                       cha0<=cha0+5;
                                       cha1<=cha1-9;
                                       cha2<=cha2-9;
                                       cha3<=cha3+1;
                                    end
                                else
                                    begin
                                       cha0<=cha0+5;
                                       cha1<=cha1-9;
                                       cha2<=cha2-9;
                                       cha3<=0;
                                    end
                            end                                            
                        else 
                           begin
                             if(cha1<8)
                                begin
                                   cha0<=cha0-5;
                                   cha1<=cha1+2;
                                end
                             else if(cha2<9)
                                 begin
                                    cha0<=cha0-5;
                                    cha1<=cha1-8;
                                    cha2<=cha2+1;
                                 end 
                             else if(cha3<9)
                                 begin
                                    cha0<=cha0-5;
                                    cha1<=cha1-8;
                                    cha2<=cha2-9;
                                    cha3<=cha3+1;
                                 end
                             else
                                 begin
                                    cha0<=cha0-5;
                                    cha1<=cha1-8;
                                    cha2<=cha2-9;
                                    cha3<=0;
                                 end
                           end                                                           
                      end            
              end
           if(miles)
             begin
                  miles<=0;
                  if(km0<9)
                      begin
                      km0<=km0+1;                     
                      end
                  if(km0==9)
                        if(km1==9)
                           begin
                              km0<=0;
                              km1<=0;
                           end
                        else   
                           begin
                              km0<=0;
                              km1<=km1+1;
                           end                 
                  if(km0>=2)
                     begin
                        if(cha0<4)
                            begin
                                if(cha1<9)
                                   begin
                                      cha0<=cha0+6;
                                      cha1<=cha1+1;
                                   end
                                else if(cha2<9)                            
                                   begin
                                       cha0<=cha0+6;
                                       cha1<=cha1-9;
                                       cha2<=cha2+1;
                                    end
                                else if(cha3<9)
                                   begin
                                       cha0<=cha0+6;
                                       cha1<=cha1-9;
                                       cha2<=cha2-9;
                                       cha3<=cha3+1;
                                    end
                                else
                                    begin
                                       cha0<=cha0+6;
                                       cha1<=cha1-9;
                                       cha2<=cha2-9;
                                       cha3<=0;
                                    end
                            end                                            
                        else 
                           begin
                             if(cha1<8)
                                begin
                                   cha0<=cha0-4;
                                   cha1<=cha1+2;
                                end
                             else if(cha2<9)
                                 begin
                                    cha0<=cha0-4;
                                    cha1<=cha1-8;
                                    cha2<=cha2+1;
                                 end 
                             else if(cha3<9)
                                 begin
                                    cha0<=cha0-4;
                                    cha1<=cha1-8;
                                    cha2<=cha2-9;
                                    cha3<=cha3+1;
                                 end
                             else
                                 begin
                                    cha0<=cha0-4;
                                    cha1<=cha1-8;
                                    cha2<=cha2-9;
                                    cha3<=0;
                                 end
                           end                                                           
                      end            
               end
     end
/*always @(posedge miles) 
      begin
          km0<=km0+1;
          if(km0==10)
              begin
                 km0<=0;
                 km1<=km1+1;
              end
          if(km1==10)
              km1<=0;
          if(km0>=3)
              begin
                  cha0<=cha0+6;
                  cha1<=cha1+1;
                  if(cha0>=10)
                      begin
                          cha0<=cha0-10;
                          cha1<=cha1+1;
                      end
                  if(cha1>=10)
                      begin
                          cha1<=cha1-10;
                          cha2<=cha2+1;
                      end 
                  if(cha2>=10)
                      begin
                          cha2<=cha2-10;
                          cha3<=cha3+1;
                      end 
                  if(cha3>=10)                
                      cha3<=0;                  
              end 
      end*/
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -