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

Subversion Repositories z80soc

[/] [z80soc/] [tags/] [z80soc05/] [DE1/] [rtl/] [VHDL/] [VIDEO_80X40.vhd] - Diff between revs 20 and 31

Only display areas with differences | Details | Blame | View Log

Rev 20 Rev 31
library IEEE;
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_unsigned.all;
-- use IEEE.std_logic_arith.all;
-- use IEEE.std_logic_arith.all;
use IEEE.numeric_std.all;
use IEEE.numeric_std.all;
--use IEEE.std_logic_signed.all;
--use IEEE.std_logic_signed.all;
--use IEEE.math_real.all;
--use IEEE.math_real.all;
--use IEEE.math_complex.all;
--use IEEE.math_complex.all;
 
 
 
 
ENTITY video_80x40 is
ENTITY video_80x40 is
        PORT(   CLOCK_50                : IN STD_LOGIC;
        PORT(   CLOCK_50                : IN STD_LOGIC;
                        VRAM_DATA               : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
                        VRAM_DATA               : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
                        VRAM_ADDR               : OUT STD_LOGIC_VECTOR(12 DOWNTO 0);
                        VRAM_ADDR               : OUT STD_LOGIC_VECTOR(12 DOWNTO 0);
                        VRAM_CLOCK              : OUT STD_LOGIC;
                        VRAM_CLOCK              : OUT STD_LOGIC;
                        VRAM_WREN               : OUT STD_LOGIC;
                        VRAM_WREN               : OUT STD_LOGIC;
                        VGA_R,
                        VGA_R,
                        VGA_G,
                        VGA_G,
                        VGA_B                   : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
                        VGA_B                   : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
                        VGA_HS,
                        VGA_HS,
                        VGA_VS                  : OUT STD_LOGIC);
                        VGA_VS                  : OUT STD_LOGIC);
END video_80x40;
END video_80x40;
 
 
ARCHITECTURE A OF video_80x40 IS
ARCHITECTURE A OF video_80x40 IS
 
 
        -- Added for VDU support
        -- Added for VDU support
        signal Clock_video              : std_logic;
        signal Clock_video              : std_logic;
        signal VGA_R_sig                : std_logic_vector(3 downto 0);
        signal VGA_R_sig                : std_logic_vector(3 downto 0);
        signal VGA_G_sig                : std_logic_vector(3 downto 0);
        signal VGA_G_sig                : std_logic_vector(3 downto 0);
        signal VGA_B_sig                : std_logic_vector(3 downto 0);
        signal VGA_B_sig                : std_logic_vector(3 downto 0);
        signal pixel_row_sig    : std_logic_vector(9 downto 0);
        signal pixel_row_sig    : std_logic_vector(9 downto 0);
        signal pixel_column_sig : std_logic_vector(9 downto 0);
        signal pixel_column_sig : std_logic_vector(9 downto 0);
        signal pixel_clock_sig  : std_logic;
        signal pixel_clock_sig  : std_logic;
        signal char_addr_sig    : std_logic_vector(7 downto 0);
        signal char_addr_sig    : std_logic_vector(7 downto 0);
        signal font_row_sig             : std_logic_vector(2 downto 0);
        signal font_row_sig             : std_logic_vector(2 downto 0);
        signal font_col_sig             : std_logic_vector(2 downto 0);
        signal font_col_sig             : std_logic_vector(2 downto 0);
        signal pixel_sig                : std_logic;
        signal pixel_sig                : std_logic;
        signal video_on_sig             : std_logic;
        signal video_on_sig             : std_logic;
 
 
BEGIN
BEGIN
 
 
        VGA_R_sig <= "0000";
        VGA_R_sig <= "0000";
        VGA_G_sig <= "0000";
        VGA_G_sig <= "0000";
        VGA_B_sig <= pixel_sig & pixel_sig & pixel_sig & pixel_sig;
        VGA_B_sig <= pixel_sig & pixel_sig & pixel_sig & pixel_sig;
 
 
        VRAM_WREN <= video_on_sig;
        VRAM_WREN <= video_on_sig;
        VRAM_CLOCK <= pixel_clock_sig;
        VRAM_CLOCK <= pixel_clock_sig;
        VRAM_ADDR <= (pixel_row_sig(9 downto 4) * "0101000" + pixel_column_sig(9 downto 4));
        VRAM_ADDR <= (pixel_row_sig(9 downto 4) * "0101000" + pixel_column_sig(9 downto 4));
 
 
        -- Fonts ROM read
        -- Fonts ROM read
        char_addr_sig <= VRAM_DATA;
        char_addr_sig <= VRAM_DATA;
        font_row_sig(2 downto 0) <= pixel_row_sig(3 downto 1);
        font_row_sig(2 downto 0) <= pixel_row_sig(3 downto 1);
        font_col_sig(2 downto 0) <= pixel_column_sig(3 downto 1);
        font_col_sig(2 downto 0) <= pixel_column_sig(3 downto 1);
 
 
        vga_sync_inst : work.vga_sync
        vga_sync_inst : work.vga_sync
                port map (
                port map (
                        clock_50Mhz                     => CLOCK_50,
                        clock_50Mhz                     => CLOCK_50,
                        red                                     => VGA_R_sig,
                        red                                     => VGA_R_sig,
                        green                           => VGA_G_sig,
                        green                           => VGA_G_sig,
                        blue                            => VGA_B_sig,
                        blue                            => VGA_B_sig,
                        red_out                         => VGA_R,
                        red_out                         => VGA_R,
                        green_out                       => VGA_G,
                        green_out                       => VGA_G,
                        blue_out                        => VGA_B,
                        blue_out                        => VGA_B,
                        horiz_sync_out          => VGA_HS,
                        horiz_sync_out          => VGA_HS,
                        vert_sync_out           => VGA_VS,
                        vert_sync_out           => VGA_VS,
                        video_on                        => video_on_sig,
                        video_on                        => video_on_sig,
                        pixel_clock                     => pixel_clock_sig,
                        pixel_clock                     => pixel_clock_sig,
                        pixel_row                       => pixel_row_sig,
                        pixel_row                       => pixel_row_sig,
                        pixel_column            => pixel_column_sig
                        pixel_column            => pixel_column_sig
        );
        );
 
 
        char_rom_inst : work.char_rom
        char_rom_inst : work.char_rom
                port map (
                port map (
                        clock                           => pixel_clock_sig,
                        clock                           => pixel_clock_sig,
                        character_address       => char_addr_sig,
                        character_address       => char_addr_sig,
                        font_row                        => font_row_sig,
                        font_row                        => font_row_sig,
                        font_col                        => font_col_sig,
                        font_col                        => font_col_sig,
                        rom_mux_output          => pixel_sig
                        rom_mux_output          => pixel_sig
        );
        );
 
 
END A;
END A;
 
 

powered by: WebSVN 2.1.0

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