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

📄 vga4.v

📁 mining source code written in Verilog
💻 V
📖 第 1 页 / 共 4 页
字号:
`include "vga_sram.v"
module vga4(
           //input
           clk,//50.350Mhz
           //output
           hor_clk,
           ver_clk,
           red,
           green,
           blue,
           vlcsp1,
           vblnp,
           //   
           rscs1,radc1,ra1,rd1,rbw1,rwe1,roe1,
           //input
           write,mouse_row,mouse_column,
          clk2,change_row,change_column,
           //communicate with main
           //input
           next_state,got_next_state,            
           //output
           send_next_state,
           next_row_state,next_column_state
           );

//communicate with main
input [3:0]next_state;
input got_next_state;
output [3:0]next_row_state,next_column_state;
output send_next_state;
reg [3:0]next_row_state,next_column_state;
reg send_next_state;
reg [3:0]row,column;
input [3:0]change_row,change_column;
//
input clk;
output clk2;
output hor_clk,ver_clk,vlcsp1,vblnp;
output [7:0]red,green,blue;
//sram
inout [31:0]rd1;
wire [31:0]rd1;
output rscs1,radc1,rwe1,roe1;
output [3:0]rbw1;
output [15:0]ra1;
input write;
reg read,rscs1,radc1,rwe1,roe1,clk2;
reg [15:0]radd,ra1;
wire [3:0]rbw1;
reg [31:0]datain;
//
reg hor_clk,ver_clk;
reg [7:0]red;
reg [7:0]green;
reg [7:0]blue;
reg [9:0]pixel_counter;
reg [9:0]line_counter;
//
reg [3:0]color;
//
reg [3:0]counter1;
reg [4:0]counter2;
reg counter3;

reg [3:0]temp1,temp2,temp3,temp4,temp5;
reg [31:0]out;
input [3:0]mouse_row,mouse_column;//mouse
reg change_state;
//
reg count;
//

assign vlcsp1=1;
assign vblnp=1;
/////
reg [3:0]row_state,column_state;
reg [4:0]row_counter;
reg [3:0]state;
reg [3:0]main_state;

//reg [63:0]main_state;
//reg [63:0]row1,row2,row3,row4,row5,row6,row7,row8,row9,row10,row11,row12,row13,row14,row15,row16;
/////
/*
reg [5:0]data_counter;
reg [5:0]data_counter2;
reg [5:0]data_counter3;
reg [5:0]data_counter4;
reg [5:0]data_counter5;
reg [5:0]data_counter6;
reg [5:0]data_counter7;
reg [5:0]data_counter8;

reg write2;
reg [2:0]counter;
*/
reg write2;
vga_sram vga_sram(clk,read,radd,datain,rscs1,radc1,ra1,rd1,rbw1,rwe1,roe1);
///////////50350 clk /////////  25175k clk2
always@(rd1)
begin
out=rd1;
end

always@(posedge clk)
begin

if(count==0)
begin
clk2=1;
end
else if(count==1)
begin
clk2=0;
end

count=count+1;
//row1={12'd0,4'd13,4'd12,4'd11,4'd10,4'd9,4'd8,4'd7,4'd6,4'd5,4'd1,4'd2,4'd3,4'd4};
//row2=1;row3=1;row4=0;row5=0;row6=0;row7=0;row8=0;
//row9=0;row10=0;row11=0;row12=0;row13=0;row14=0;row15=0;row16=0;
//mouse_row=5;
//mouse_column=9;
end

/////////clk end
always@(posedge clk2)
begin//2
////aaa
if(write==1)
begin
/*
read=0;
if(write2==0)
begin
////2

case(counter)
0:begin
   case(data_counter)
   0:
    begin
    radd=0;
    datain=32'd0;
    end
   1:
    begin
    radd=601;
    datain={4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000};
    end 
  2:
    begin
    radd=602;
    datain={4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0001,4'b0000,4'b0000};
    end
 //2 
   3:
    begin
    radd=603;
    datain={4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000,4'b0000};
    end 
    4:
    begin
    radd=604;
    datain={4'b0000,4'b0000,4'b0000,4'b0000,4'b0001,4'b0010,4'b0000,4'b0000};
    end
//3 
    5:
    begin
    radd=605;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001};
    end 
    6:
    begin
    radd=606;
    datain={4'b0001,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//4 
    7:
    begin
    radd=607;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'd3,4'd3,4'd3};
    end 
    8:
    begin
    radd=608;
    datain={4'd3,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//5 
    9:
    begin
    radd=609;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'd3,4'd3,4'b0001,4'b0001};
    end 
   10:
    begin
    radd=610;
    datain={4'd3,4'd3,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//6 
    11:
    begin
    radd=611;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'd3,4'd3,4'b0001,4'b0001};
    end 
    12:
    begin
    radd=612;
    datain={4'd3,4'd3,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//7 
    13:
    begin
    radd=613;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001};
    end 
    14:
    begin
    radd=614;
    datain={4'd3,4'd3,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//8 
    15:
    begin
    radd=615;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001,4'd3};
    end 
    16:
    begin
    radd=616;
    datain={4'd3,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//9 
    17:
    begin
    radd=617;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'd3,4'd3};
    end 
    18:
    begin
    radd=618;
    datain={4'b0001,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//10 
   19:
    begin
    radd=619;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001,4'b0001};
    end 
    20:
    begin
    radd=620;
    datain={4'b0001,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//11 
    21:
    begin
    radd=621;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'd3,4'd3};
    end 
    22:
    begin
    radd=622;
    datain={4'b0001,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//12 
    23:
    begin
    radd=623;
    datain={4'b0000,4'b0000,4'b0001,4'b0001,4'b0001,4'b0001,4'd3,4'd3};
    end 
    24:
    begin
    radd=624;
    datain={4'b0001,4'b0001,4'b0001,4'b0001,4'b0010,4'b0010,4'b0000,4'b0000};
    end 
//13
    25:
    begin
    radd=625;
    datain={4'b0000,4'b0001,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010};
    end
    26:
    begin
    radd=626;
    datain={4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0000,4'b0000};
    end 
//14
    27:
    begin
    radd=627;
    datain={4'b0001,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010};
    end
    28:
    begin
    radd=628;
    datain={4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0010,4'b0000,4'b0000};
    end
//display 1
//1
    29:
    begin
    radd=29;
    datain={4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd2};
    end 
   30:
    begin
    radd=30;
    datain={4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd0,4'd0};
    end 
//2
   31:
    begin
    radd=31;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
   32:
    begin
    radd=32;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//3 
   33:
    begin
    radd=33;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
   34:
    begin
    radd=34;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//4 
  35:
    begin
    radd=35;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
   36:
    begin
    radd=36;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//5
   37:
    begin
    radd=37;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd8};
    end 
   38:
    begin
    radd=38;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//6 
   39:
    begin
    radd=39;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd8,4'd8};
    end 
   40:
    begin
    radd=40;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//7 
  41:
    begin
    radd=41;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd8,4'd8,4'd8};
    end 
   42:
    begin
    radd=42;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//8
   43:
    begin
    radd=43;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd8};
    end 
   44:
    begin
    radd=44;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 

//9
   45:
    begin
    radd=45;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd8};
    end 
   46:
    begin
    radd=46;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//10
   47:
    begin
    radd=47;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd8};
    end 
   48:
    begin
    radd=48;
    datain={4'd8,4'd8,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//11
   49:
    begin
    radd=49;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd8,4'd8,4'd8};
    end 
   50:
    begin
    radd=50;
    datain={4'd8,4'd8,4'd8,4'd8,4'd1,4'd1,4'd0,4'd0};
    end 

   endcase
    data_counter=data_counter+1;
     if(data_counter==51)
        counter=1; 
  end
1:begin
   case(data_counter2)
   //12
  1:
    begin
    radd=51;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd8,4'd8,4'd8};
    end 
  2:
    begin
    radd=52;
    datain={4'd8,4'd8,4'd8,4'd8,4'd1,4'd1,4'd0,4'd0};
    end 
//13
  3:
    begin
    radd=53;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
  4:
    begin
    radd=54;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//14
  5:
    begin
    radd=55;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
  6:
    begin
    radd=56;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end

//display 2
//1
  7:
    begin
    radd=57;
    datain={4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd2};
    end 
  8:
    begin
    radd=58;
    datain={4'd2,4'd2,4'd2,4'd2,4'd2,4'd2,4'd0,4'd0};
    end 
//2
  9:
    begin
    radd=59;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
  10:
    begin
    radd=60;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 

//3 
 11:
    begin
    radd=61;
    datain={4'd2,4'd1,4'd1,4'd6,4'd6,4'd6,4'd6,4'd6};
    end 
  12:
    begin
    radd=62;
    datain={4'd6,4'd6,4'd6,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//4 
13:
    begin
    radd=63;
    datain={4'd2,4'd1,4'd6,4'd6,4'd6,4'd6,4'd6,4'd6};
    end 
 14:
    begin
    radd=64;
    datain={4'd6,4'd6,4'd6,4'd6,4'd1,4'd1,4'd0,4'd0};
    end 

//5
  15:
    begin
    radd=65;
    datain={4'd2,4'd1,4'd6,4'd6,4'd6,4'd1,4'd1,4'd1};
    end 
  16:
    begin
    radd=66;
    datain={4'd1,4'd6,4'd6,4'd6,4'd1,4'd1,4'd0,4'd0};
    end 
//6 
 17:
    begin
    radd=67;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
  18:
    begin
    radd=68;
    datain={4'd1,4'd6,4'd6,4'd6,4'd1,4'd1,4'd0,4'd0};
    end 

//7 
 19:
    begin
    radd=69;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd6};
    end 
  20:
    begin
    radd=70;
    datain={4'd6,4'd6,4'd6,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//8
  21:
    begin
    radd=71;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd6,4'd6,4'd6};
    end 
  22:
    begin
    radd=72;
    datain={4'd6,4'd6,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 

//9
  23:
    begin
    radd=73;
    datain={4'd2,4'd1,4'd1,4'd6,4'd6,4'd6,4'd6,4'd6};
    end 
  24:
    begin
    radd=74;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//10
  25:
    begin
    radd=75;
    datain={4'd2,4'd1,4'd6,4'd6,4'd6,4'd6,4'd1,4'd1};
    end 
  26:
    begin
    radd=76;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 

//11
  27:
    begin
    radd=77;
    datain={4'd2,4'd1,4'd6,4'd6,4'd6,4'd6,4'd6,4'd6};
    end 
  28:
    begin
    radd=78;
    datain={4'd6,4'd6,4'd6,4'd6,4'd1,4'd1,4'd0,4'd0};
    end 
//12
  29:
    begin
    radd=79;
    datain={4'd2,4'd1,4'd6,4'd6,4'd6,4'd6,4'd6,4'd6};
    end 
  30:
    begin
    radd=80;
    datain={4'd6,4'd6,4'd6,4'd6,4'd1,4'd1,4'd0,4'd0};
    end 

//13
  31:
    begin
    radd=81;
    datain={4'd2,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd1};
    end 
  32:
    begin
    radd=82;
    datain={4'd1,4'd1,4'd1,4'd1,4'd1,4'd1,4'd0,4'd0};
    end 
//14
  33:

⌨️ 快捷键说明

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