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

Subversion Repositories tg68kc

[/] [tg68kc/] [trunk/] [TG68KdotC_Kernel.vhd] - Diff between revs 5 and 6

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

Rev 5 Rev 6
Line 1055... Line 1055...
                                        IF exec(get_bfoffset)='1' THEN
                                        IF exec(get_bfoffset)='1' THEN
                                                alu_width <= bf_width;
                                                alu_width <= bf_width;
                                                alu_bf_shift <= bf_shift;
                                                alu_bf_shift <= bf_shift;
                                                alu_bf_loffset <= bf_loffset;
                                                alu_bf_loffset <= bf_loffset;
                                                alu_bf_ffo_offset <= bf_full_offset+bf_width+1;
                                                alu_bf_ffo_offset <= bf_full_offset+bf_width+1;
--                                      ELSIF set_exec(exec_BS)='1' THEN
 
--                                      
 
----                                                    IF set_exec(exec_BS)='1' THEN
 
----                                                            alu_width<="001111";
 
----                                                            alu_bf_loffset <= "000000";
 
----                                                    END IF;
 
--                                      
 
----                                            alu_bf_shift <= set_rot_cnt;
 
--                                                      IF opcode(5)='1' THEN
 
----                                                            next_micro_state <= rota1;
 
----                                                            set(ld_rot_cnt) <= '1';
 
----                                                            setstate <= "01";
 
--                                                              alu_bf_shift <= OP2out(5 downto 0);
 
--                                                      ELSE
 
--                                                              alu_bf_shift(2 downto 0) <= opcode(11 downto 9);
 
--                                                              IF opcode(11 downto 9)="000" THEN
 
--                                                                      alu_bf_shift(5 downto 3) <="001";
 
--                                                              ELSE
 
--                                                                      alu_bf_shift(5 downto 3) <="000";
 
--                                                              END IF;
 
--                                                      END IF;
 
                                        END IF;
                                        END IF;
--                                      byte <= '0';
 
                                        memread <= "1111";
                                        memread <= "1111";
                                        FC(1) <= NOT setstate(1) OR (PCbase AND NOT setstate(0));
                                        FC(1) <= NOT setstate(1) OR (PCbase AND NOT setstate(0));
                                        FC(0) <= setstate(1) AND (NOT PCbase OR setstate(0));
                                        FC(0) <= setstate(1) AND (NOT PCbase OR setstate(0));
                                        IF interrupt='1' THEN
                                        IF interrupt='1' THEN
                                                FC(1 downto 0) <= "11";
                                                FC(1 downto 0) <= "11";
Line 1091... Line 1069...
                                                memmask <= "111111";
                                                memmask <= "111111";
                                        ELSIF execOPC='1' AND exec_write_back='1' THEN
                                        ELSIF execOPC='1' AND exec_write_back='1' THEN
                                                state <= "11";
                                                state <= "11";
                                                FC(1 downto 0) <= "01";
                                                FC(1 downto 0) <= "01";
                                                memmask <= wbmemmask;
                                                memmask <= wbmemmask;
--                                              IF datatype="00" THEN
 
--                                                      byte <= '1';
 
--                                              END IF;
 
                                        ELSE
                                        ELSE
                                                state <= setstate;
                                                state <= setstate;
                                                IF setstate="01" THEN
                                                IF setstate="01" THEN
                                                        memmask <= "111111";
                                                        memmask <= "111111";
                                                        wbmemmask <= "111111";
                                                        wbmemmask <= "111111";
Line 3014... Line 2989...
                                        IF opcode(5 downto 4)/="00" THEN
                                        IF opcode(5 downto 4)/="00" THEN
                                                setnextpass <= '1';
                                                setnextpass <= '1';
                                        END IF;
                                        END IF;
 
 
                                WHEN pack1 =>           -- pack -(Ax),-(Ay)
                                WHEN pack1 =>           -- pack -(Ax),-(Ay)
 
                                        IF opcode(2 downto 0)="111" THEN
 
                                                set(use_SP) <= '1';
 
                                        END IF;
                                        set(hold_ea_data) <= '1';
                                        set(hold_ea_data) <= '1';
                                        set(update_ld) <= '1';
                                        set(update_ld) <= '1';
                                        setstate <= "10";
                                        setstate <= "10";
                                        set(presub) <= '1';
                                        set(presub) <= '1';
                                        next_micro_state <= pack2;
                                        next_micro_state <= pack2;
                                        dest_areg <= '1';
                                        dest_areg <= '1';
                                WHEN pack2 =>
                                WHEN pack2 =>
 
                                        IF opcode(11 downto 9)="111" THEN
 
                                                set(use_SP) <= '1';
 
                                        END IF;
                                        set(hold_ea_data) <= '1';
                                        set(hold_ea_data) <= '1';
                                        set_direct_data <= '1';
                                        set_direct_data <= '1';
                                        IF opcode(7 downto 6) = "01" THEN       --pack
                                        IF opcode(7 downto 6) = "01" THEN       --pack
                                                datatype <= "00";               --Byte
                                                datatype <= "00";               --Byte
                                        ELSE                                                            --unpk
                                        ELSE                                                            --unpk

powered by: WebSVN 2.1.0

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