OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.23/] [fpga/] [src/] [dsp/] [timing.v] - Blame information for rev 199

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 123 hellwig
//
2
// timing.v -- timing generator
3
//
4
 
5
 
6 27 hellwig
module timing(clk, pixclk,
7
              txtrow, txtcol,
8
              chrrow, chrcol,
9
              blank, hsync, vsync, blink);
10
    input clk;
11
    output pixclk;
12
    output [4:0] txtrow;
13
    output [6:0] txtcol;
14
    output [3:0] chrrow;
15
    output [2:0] chrcol;
16
    output blank;
17
    output hsync;
18
    output vsync;
19
    output reg blink;
20
 
21
  reg pclk;
22
  reg [9:0] hcnt;
23
  reg hblank, hsynch;
24
  reg [9:0] vcnt;
25
  reg vblank, vsynch;
26
  reg [5:0] bcnt;
27
 
28
  always @(posedge clk) begin
29
    pclk <= ~pclk;
30
  end
31
 
32
  assign pixclk = pclk;
33
 
34
  always @(posedge clk) begin
35
    if (pclk == 1) begin
36
      if (hcnt == 10'd799) begin
37
        hcnt <= 10'd0;
38
        hblank <= 1;
39
      end else begin
40
        hcnt <= hcnt + 1;
41
      end
42
      if (hcnt == 10'd639) begin
43
        hblank <= 0;
44
      end
45
      if (hcnt == 10'd655) begin
46
        hsynch <= 0;
47
      end
48
      if (hcnt == 10'd751) begin
49
        hsynch <= 1;
50
      end
51
    end
52
  end
53
 
54
  always @(posedge clk) begin
55
    if (pclk == 1 && hcnt == 10'd799) begin
56
      if (vcnt == 10'd524) begin
57
        vcnt <= 10'd0;
58
        vblank <= 1;
59
      end else begin
60
        vcnt <= vcnt + 1;
61
      end
62
      if (vcnt == 10'd479) begin
63
        vblank <= 0;
64
      end
65
      if (vcnt == 10'd489) begin
66
        vsynch <= 0;
67
      end
68
      if (vcnt == 10'd491) begin
69
        vsynch <= 1;
70
      end
71
    end
72
  end
73
 
74
  always @(posedge clk) begin
75
    if (pclk == 1 && hcnt == 10'd799 && vcnt == 10'd524) begin
76
      if (bcnt == 6'd59) begin
77
        bcnt <= 6'd0;
78
        blink <= 1;
79
      end else begin
80
        bcnt <= bcnt + 1;
81
      end
82
      if (bcnt == 6'd29) begin
83
        blink <= 0;
84
      end
85
    end
86
  end
87
 
88
  assign blank = hblank & vblank;
89
 
90
  assign hsync = hsynch;
91
  assign vsync = vsynch;
92
 
93
  assign txtrow[4:0] = vcnt[8:4];
94
  assign txtcol[6:0] = hcnt[9:3];
95
  assign chrrow[3:0] = vcnt[3:0];
96
  assign chrcol[2:0] = hcnt[2:0];
97
 
98
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.