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

📄 keyinmode.v

📁 mining source code written in Verilog
💻 V
字号:
module keyinmode(clk,VGAmodeON,VGAstate,KImode,eokeyin,KIrow,KIcolumn,Lclc,Rclc,X,Y,VGAACK,
                 VGArow,VGAcolumn,OProw,OPcolumn,KIminenum);
input clk;
input VGAmodeON;
output [3:0]VGAstate;
reg [3:0]VGAstate;
input KImode;
reg [1:0]modenum;
output eokeyin;
reg eokeyin;
output [3:0]KIrow,KIcolumn;
reg [3:0]KIrow,KIcolumn;
input Lclc;
input Rclc;
input [3:0]Y,X;
output VGAACK;
reg VGAACK;
input [3:0]VGArow,VGAcolumn;
output [3:0]OProw,OPcolumn;
reg [3:0]OProw,OPcolumn;
output [7:0]KIminenum;
reg [7:0]KIminenum;
reg [7:0]Cbuffer,Rbuffer,buffer,buffer1,buffer2,buffer3,buffer4;
reg start;
always@(posedge clk)
begin
VGAACK=0;
if(KImode==0) eokeyin=0;
if(KImode==1) begin

if(modenum==0)begin
 KIrow=1;KIcolumn=9; start=0;
 if(VGAmodeON==1) begin
  VGAACK=1;
  if(VGArow==1&(VGAcolumn==5|VGAcolumn==6|VGAcolumn==7|VGAcolumn==8|VGAcolumn==9)) VGAstate=11;  
   else begin 
   if(VGArow==0&VGAcolumn==0) VGAstate=1;
    else 
     if(VGArow==0&VGAcolumn==1) VGAstate=11;
      else VGAstate=12;
  end
 end
 if(Lclc==1) begin
  modenum=1;
  if(Y*(KIcolumn+1)+X>14) OProw=14;
  else
   if(Y*(KIcolumn+1)+X<2) OProw=2;
   else OProw=Y*(KIcolumn+1)+X;
 end
end


if(modenum==1) begin
 KIrow=1;KIcolumn=9;
 if(VGAmodeON==1) begin
  VGAACK=1;
  if(VGArow==1&(VGAcolumn==5|VGAcolumn==6|VGAcolumn==7|VGAcolumn==8|VGAcolumn==9)) VGAstate=11;  
  else begin
   if(VGArow==0&VGAcolumn==1) VGAstate=11;
   else
    if(VGArow==0&VGAcolumn==0) VGAstate=2;
    else VGAstate=12;
  end           
 end
 if(Rclc==1) begin
  modenum=2;
  if(Y*(KIcolumn+1)+X>14) OPcolumn=14;
  else
   if(Y*(KIcolumn+1)+X<2) OPcolumn=2;
   else OPcolumn=Y*(KIcolumn+1)+X;
 end
end

if(modenum==2) begin
 KIrow=15; KIcolumn=15;
 if(VGAmodeON==1) begin
  VGAACK=1;
  if(VGArow==0&VGAcolumn==0) VGAstate=3; else VGAstate=12;
 end
 if(Lclc==1|start==1) begin
  //KIminenum=1;
  Cbuffer[3:0]=X; Cbuffer[7:4]=0; Rbuffer[3:0]=Y; Rbuffer[7:4]=0;    
  buffer[3:0]=KIcolumn; buffer[7:4]=0;
  buffer1[3:0]=OPcolumn; buffer1[7:4]=0;  
  buffer2[3:0]=OProw; buffer2[7:4]=0;
  if(start==0) begin
   start=1;
   buffer3=Rbuffer*(buffer+1)+Cbuffer; buffer4=(buffer1+1)*(buffer2+1)-1;
  end
  else begin
   start=0;  modenum=0; 
   if(buffer3>buffer4) 
    KIminenum=buffer4;
   else 
    KIminenum=buffer3;
 /*if(Rbuffer*(buffer+1)+Cbuffer>(buffer1+1)*(buffer2+1)-1) begin
    KIminenum=(buffer1+1)*(buffer2+1)-1;
   end
   else begin
    KIminenum=(buffer+1)*Rbuffer+Cbuffer;
   end*/
    eokeyin=1;
  end
 end 
end

end


end
endmodule




⌨️ 快捷键说明

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