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

Subversion Repositories ft245r_interface

[/] [ft245r_interface/] [trunk/] [ft245rl_interface.vhd] - Diff between revs 2 and 3

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 122... Line 122...
 
 
                                                                        -- Well, here we simply write a byte to FT245RL's data bus
                                                                        -- Well, here we simply write a byte to FT245RL's data bus
                                                                        elsif(do_write = '1')then
                                                                        elsif(do_write = '1')then
                                                                                c_state         <= WRITE_BYTE;
                                                                                c_state         <= WRITE_BYTE;
                                                                        end if;
                                                                        end if;
--                                                                      leds                            <= "1111";
 
 
 
 
 
                                -- Read one byte from the device
                                -- Read one byte from the device
                                when READ_BYTE =>
                                when READ_BYTE =>
                                                                        busy                            <= '1';
                                                                        busy                            <= '1';
                                                                        nrd                             <= '0';
                                                                        nrd                             <= '0';
                                                                        current_delay   <= t3_delay;
                                                                        current_delay   <= t3_delay;
                                                                        c_state                 <= DO_DELAY;
                                                                        c_state                 <= DO_DELAY;
                                                                        n_state                 <= READ_BYTE1;
                                                                        n_state                 <= READ_BYTE1;
--                                                                      leds                            <= "1111";
 
 
 
                                when READ_BYTE1 =>
                                when READ_BYTE1 =>
                                                                        current_delay   <= t1_delay - t3_delay;
                                                                        current_delay   <= t1_delay - t3_delay;
                                                                        c_state                 <= DO_DELAY;
                                                                        c_state                 <= DO_DELAY;
                                                                        n_state                 <= READ_BYTE2;
                                                                        n_state                 <= READ_BYTE2;
--                                                                      leds                            <= "1110";
 
 
 
                                when READ_BYTE2 =>
                                when READ_BYTE2 =>
                                                                        data_out                        <= in_buff;
                                                                        data_out                        <= in_buff;
                                                                        nrd                             <= '1';
                                                                        nrd                             <= '1';
                                                                        current_delay   <= t5_delay;
                                                                        current_delay   <= t5_delay;
                                                                        c_state                 <= DO_DELAY;
                                                                        c_state                 <= DO_DELAY;
                                                                        n_state                 <= READ_BYTE3;
                                                                        n_state                 <= READ_BYTE3;
--                                                                      leds                            <= "1101";
 
 
 
                                when READ_BYTE3 =>
                                when READ_BYTE3 =>
                                                                        current_delay   <= t2_delay;
                                                                        current_delay   <= t2_delay;
                                                                        c_state                 <= DO_DELAY;
                                                                        c_state                 <= DO_DELAY;
                                                                        n_state                 <= IDLE;
                                                                        n_state                 <= IDLE;
                                                                        data_available  <= '1';
                                                                        data_available  <= '1';
                                                                        busy                            <= '0';
                                                                        busy                            <= '0';
--                                                                      leds                            <= "1100";
 
 
 
                                -- Write one byte to the device
                                -- Write one byte to the device
                                when WRITE_BYTE =>
                                when WRITE_BYTE =>
                                                                        busy                    <= '1';
                                                                        busy                    <= '1';
                                                                        if(ntxe = '0')then
                                                                        if(ntxe = '0')then
Line 169... Line 164...
                                                                                n_state         <= WRITE_BYTE1;
                                                                                n_state         <= WRITE_BYTE1;
                                                                                out_buff                <= data_in;
                                                                                out_buff                <= data_in;
                                                                        else
                                                                        else
                                                                                c_state         <= WRITE_BYTE;
                                                                                c_state         <= WRITE_BYTE;
                                                                        end if;
                                                                        end if;
--                                                                      leds                            <= "1011";
 
 
 
                                when WRITE_BYTE1 =>
                                when WRITE_BYTE1 =>
                                                                        nwr                             <= '0';
                                                                        nwr                             <= '0';
                                                                        current_delay   <= t11_delay;
                                                                        current_delay   <= t11_delay;
                                                                        c_state                 <= DO_DELAY;
                                                                        c_state                 <= DO_DELAY;
                                                                        n_state                 <= WRITE_BYTE2;
                                                                        n_state                 <= WRITE_BYTE2;
--                                                                      leds                            <= "1010";
 
 
 
                                when WRITE_BYTE2 =>
                                when WRITE_BYTE2 =>
                                                                        we                                      <= '0';
                                                                        we                                      <= '0';
                                                                        current_delay   <= t12_delay;
                                                                        current_delay   <= t12_delay;
                                                                        c_state                 <=DO_DELAY;
                                                                        c_state                 <=DO_DELAY;
                                                                        n_state                 <= WRITE_BYTE3;
                                                                        n_state                 <= WRITE_BYTE3;
--                                                                      leds                            <= "1001";
 
 
 
                                when WRITE_BYTE3 =>
                                when WRITE_BYTE3 =>
                                                                        busy                            <= '0';
                                                                        busy                            <= '0';
                                                                        c_state                 <= IDLE;
                                                                        c_state                 <= IDLE;
--                                                                      leds                            <= "1000";
 
 
 
                                when DO_DELAY =>
                                when DO_DELAY =>
                                                                        if(delay_cnt < current_delay)then
                                                                        if(delay_cnt < current_delay)then
                                                                                delay_cnt       <= delay_cnt + 1;
                                                                                delay_cnt       <= delay_cnt + 1;
                                                                        else
                                                                        else
                                                                                c_state         <= n_state;
                                                                                c_state         <= n_state;
                                                                                delay_cnt       <= 0;
                                                                                delay_cnt       <= 0;
                                                                        end if;
                                                                        end if;
--                                                                      leds                            <= "0111";
 
 
 
                                when others =>
                                when others =>
                                                                        c_state         <= INIT;
                                                                        c_state         <= INIT;
                        end case;       -- c_state
                        end case;       -- c_state
                end if;
                end if;

powered by: WebSVN 2.1.0

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