Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/09/05 21:38
Read: times


 
#87037 - coloured as well.
Responding to: ???'s previous message
Well I know nothing about html but I managed to produce this listing using gvim to colour the syntax,expand the tabs and convert to html,all without my hands leaving my arms at any time.


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;

entity vga is
 port(

            clk         : in    std_logic;      ---25.175 Mhz clk
            reset       : in    std_logic;
            addr_data   : in   unsigned (7 downto 0);
            addr_high   : in   unsigned (7 downto 0);
            write       : in    std_logic;
            ale         : in    std_logic;
            psen_n      : in    std_logic;
            rd_n        : in    std_logic;
            wr_n        : in    std_logic;
            hsync       : out   std_logic;
            vsync       : out   std_logic;
            red         : out   std_logic;
            green       : out   std_logic;
            blue        : out   std_logic;
            int_n       : out   std_logic
           );

end vga;


architecture rtl of vga is
type UC_STATE_TYPE is (IDLE, ADDR_DECODE,ADDR_MATCH, DATA_TRS, END_CYCLE);
signal prs_state, next_state : UC_STATE_TYPE;
signal colour,row,column,reg_addr : unsigned (7 downto 0);
signal ale_i,psen_i,wr_i,rd_i,done_screen_i,write_i :std_logic;
constant upper_addr :unsigned:=X"FF";   ---register addresses
constant colour_reg :unsigned:=X"00";
constant row_reg    :unsigned:=X"01";
constant col_reg    :unsigned:=X"02";
component  vgacon
port( clock   : in  std_logic;
     resetn   : in  std_logic;
     row      : in  std_logic_vector(5 downto 0);
      col     : in  std_logic_vector( 5 downto 0 );
     colour   : in  std_logic_vector(2 downto 0);
     do_write : in  std_logic;
     hsync    :out std_logic;
     vsync    : out std_logic;
     data_r      : out std_logic;
    data_g       : out std_logic;
    data_b       : out std_logic;
    done_screen  : out std_logic );
end component;


begin

vgacon1:vgacon port map( clock=>clk,
                resetn=>reset,
                row=>std_logic_vector(row(5 downto 0)),
                col=> std_logic_vector(column(5 downto 0 )),
                colour=>std_logic_vector(colour(2 downto 0)),
                do_write=>write_i,
                hsync=>hsync,
                vsync=>vsync,
                data_r=>red,
                data_g=>green,
                data_b=>blue,
                done_screen=>done_screen_i);

int_n<= not(done_screen_i);     ---make this open drain to allow wired_or

sync:process(clk)
begin
        if rising_edge(clk) then
                ale_i<=ale;
                psen_i<=psen_n;
                rd_i<=rd_n;
                wr_i<=wr_n;
                write_i<=write;
        end if;
end process;



UC_REGS: process (clk)
begin

        if rising_edge(clk) then
                if reset = '0' then
                    prs_state <= IDLE;
                else
                    prs_state <= next_state;
                end if;

        end if;

end process;


Uc_decode: process (prs_state,addr_high,addr_data)

begin

        case prs_state is
        when IDLE =>

                if ale_i='1' and psen_i = '1' then
                next_state <= ADDR_DECODE;
                end if;

        when ADDR_DECODE =>
                if ale_i='0' then
                        if (addr_high=upper_addr and (addr_data=colour_reg or addr_data=col_reg or addr_data=row_reg)) then
                        reg_addr<=addr_data;
                        next_state<=addr_match;
                        else next_state <=idle;
                        end if;
                end if;

        when ADDR_MATCH =>

                if wr_i='0' then
                        case reg_addr is
                        when colour_reg=>colour<=addr_data;
                        when col_reg=>column<=addr_data;
                        when row_reg=>row<=addr_data;
                        when others =>null;
                        end case;
                end if;
                next_state<=data_trs;

        when DATA_TRS =>

        if rd_i = '1' and wr_i = '1' then
                next_state <= END_CYCLE;
        end if;

        when END_CYCLE =>

        if ale_i = '0' then
        next_state <= IDLE;
        end if;


        end case;

end process;

    end rtl;









List of 29 messages in thread
TopicAuthorDate
Webmaster editing for PRE tags            01/01/70 00:00      
   Education            01/01/70 00:00      
      True, but...            01/01/70 00:00      
      a better idea?            01/01/70 00:00      
         What if...            01/01/70 00:00      
            good question            01/01/70 00:00      
               Tabs ?            01/01/70 00:00      
                  So why should I learn HTML?            01/01/70 00:00      
                  Why ?            01/01/70 00:00      
                  Already possible            01/01/70 00:00      
               Good idea            01/01/70 00:00      
                  if you inform            01/01/70 00:00      
      RE: education            01/01/70 00:00      
         What are you looking for            01/01/70 00:00      
            HTML Examples            01/01/70 00:00      
            Education            01/01/70 00:00      
               Education            01/01/70 00:00      
            RE: HTML            01/01/70 00:00      
               Ther e is one somewhere            01/01/70 00:00      
   But why..            01/01/70 00:00      
   coloured as well.            01/01/70 00:00      
   Get rid PRE tags and use text files.            01/01/70 00:00      
   re:Get rid PRE tags and use text files.            01/01/70 00:00      
      KISS            01/01/70 00:00      
   re: KISS            01/01/70 00:00      
   My comments on this issue.......            01/01/70 00:00      
      Post/Preview            01/01/70 00:00      
      Don't think it's possible            01/01/70 00:00      
   Why not?            01/01/70 00:00      

Back to Subject List