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

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [mc/] [src/] [dsp/] [bpp9/] [pixel.v] - Blame information for rev 290

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 123 hellwig
//
2
// pixel.v -- last stage in display pipeline
3
//
4
 
5
 
6 290 hellwig
`timescale 1ns/10ps
7
`default_nettype none
8
 
9
 
10 27 hellwig
module pixel(clk, pixclk, attcode,
11
             pixel, blank, hsync_in, vsync_in, blink,
12 123 hellwig
             hsync, vsync, r, g, b);
13 27 hellwig
    input clk;
14
    input pixclk;
15
    input [7:0] attcode;
16
    input pixel;
17
    input blank;
18
    input hsync_in;
19
    input vsync_in;
20
    input blink;
21 123 hellwig
    output reg hsync;
22
    output reg vsync;
23 27 hellwig
    output reg [2:0] r;
24
    output reg [2:0] g;
25
    output reg [2:0] b;
26
 
27
  wire blink_bit;
28
  wire bg_red;
29
  wire bg_green;
30
  wire bg_blue;
31
  wire inten_bit;
32
  wire fg_red;
33
  wire fg_green;
34
  wire fg_blue;
35
  wire foreground;
36
  wire intensify;
37
  wire red;
38
  wire green;
39
  wire blue;
40
 
41
  assign blink_bit = attcode[7];
42
  assign bg_red = attcode[6];
43
  assign bg_green = attcode[5];
44
  assign bg_blue = attcode[4];
45
  assign inten_bit = attcode[3];
46
  assign fg_red = attcode[2];
47
  assign fg_green = attcode[1];
48
  assign fg_blue = attcode[0];
49
 
50
  assign foreground = pixel & ~(blink_bit & blink);
51
  assign intensify = foreground & inten_bit;
52
 
53
  assign red = (foreground ? fg_red : bg_red);
54
  assign green = (foreground ? fg_green : bg_green);
55
  assign blue = (foreground ? fg_blue : bg_blue);
56
 
57
  always @(posedge clk) begin
58
    if (pixclk == 1) begin
59 123 hellwig
      hsync <= hsync_in;
60
      vsync <= vsync_in;
61 27 hellwig
      r[2] <= blank & red;
62
      r[1] <= blank & intensify;
63
      r[0] <= blank & red & intensify;
64
      g[2] <= blank & green;
65
      g[1] <= blank & intensify;
66
      g[0] <= blank & green & intensify;
67
      b[2] <= blank & blue;
68
      b[1] <= blank & intensify;
69
      b[0] <= blank & blue & intensify;
70
    end
71
  end
72
 
73
endmodule

powered by: WebSVN 2.1.0

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