亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? control_fsm_rtl.vhd

?? mc8051內核,VHDL程序,內有說明,超詳細.
?? VHD
?? 第 1 頁 / 共 5 頁
字號:
    IC_XRL_D_DATA     when s_command             = XRL_D_DATA     else    IC_NOP;  -------------------------------------------------------------------------------- purpose: main-process to control the mcu--          includes the interupt-handling and the state machine-- inputs:  state,s_help,s_ti,s_ri,s_it0,s_ie0,s_it1,s_ie1,s_tf0,s_tf1,--          s_bit_data,aludata_i,s_command,s_inthigh,--          s_intlow,acc,psw,s_intpre,s_intpre2,ie,ip-- outputs: pc_inc_en_o,s_nextstate_o,adr_mux_o,data_mux_o,bdata_mux_o--          regs_wr_en_o,help_en_o,help16_en_o,helpb_en_o,inthigh_en_o--          intlow_en_o,intpre2_en_o,inthigh_d_o,intlow_d_o,intpre2_d_o------------------------------------------------------------------------------ p_state: process (state,s_help,s_ti,s_ri,s_it0,s_ie0,s_it1,s_ie1,s_tf0,s_tf1,                   s_bit_data,aludata_i,s_instr_category,s_inthigh,                   s_intlow,acc,psw,s_intpre,s_intpre2,ie,ip)  begin    s_data_mux   <= "0000";             -- default values    s_adr_mux    <= "0000";    s_bdata_mux  <= "0000";    alu_cmd_o    <= OFF;    s_regs_wr_en <= "000";    s_help_en    <= "0000";    s_help16_en  <= "00";    s_helpb_en   <= '0';    s_pc_inc_en  <= "0000";    s_inthigh_en <= '0';    s_intlow_en  <= '0';    s_intpre2_en <= '0';    s_inthigh_d  <= '0';    s_intlow_d   <= '0';    s_intpre2_d  <= '0';    s_adrx_mux   <= "00";    s_wrx_mux    <= '0';    s_nextstate  <= FETCH;    if state=STARTUP then      -- Power up wait cycle      NULL;    else      -- begin of starting the interrupt procedure                                                      -- saving the old adress      if (s_intpre='1' and state=FETCH) or s_intpre2='1' then        if state=FETCH then          s_intpre2_en <= '1';          s_intpre2_d <= '1';          s_regs_wr_en <= "001";            -- increment stackpointer          s_nextstate <= EXEC1;        elsif state=EXEC1 then          if (PX0 and EX0 and s_ie0)='1' then   -- external interrupt 0            s_help_en <= "0101";                -- interruptvector 0003h            s_inthigh_d <= '1';            s_inthigh_en <= '1';            if s_it0='1' then         -- interrupt is edge-sensitive              s_adr_mux <= "0001";              s_regs_wr_en <= "110";  -- reset IE0            else              NULL;            end if;          elsif (PT0 and ET0 and s_tf0)='1' then  -- timer interrupt 0            s_help_en <= "0110";                  -- interruptvector 000Bh            s_inthigh_d <= '1';            s_inthigh_en <= '1';            s_adr_mux <= "0010";            s_regs_wr_en <= "110";                -- reset TF0          elsif (PX1 and EX1 and s_ie1)='1' then  -- external interrupt 1            s_help_en <= "0111";                  -- interruptvector 0013h            s_inthigh_d <= '1';            s_inthigh_en <= '1';            if s_it1='1' then         -- interrupt is edge-sensitive              s_adr_mux <= "0011";              s_regs_wr_en <= "110";  -- reset IE1            else              NULL;            end if;          elsif (PT1 and ET1 and s_tf1)='1' then  -- timer interrupt 1            s_help_en <= "1000";                  -- interruptvector 001Bh            s_inthigh_d <= '1';            s_inthigh_en <= '1';            s_adr_mux <= "0100";            s_regs_wr_en <= "110";          -- reset TF1          elsif (PS0 and ES and (s_ri or s_ti))='1' then -- serial interrupt 0            s_help_en <= "1001";            -- interruptvector 0023h            s_inthigh_d <= '1';            s_inthigh_en <= '1';         elsif (EX0 and s_ie0)='1' then   -- external interrupt 0 low priority            s_help_en <= "0101";          -- interruptvector 0003h            s_intlow_d <= '1';            s_intlow_en <= '1';            if s_it0='1' then         -- interrupt is edge-sensitive              s_adr_mux <= "0001";              s_regs_wr_en <= "110";  -- reset IE0            else              NULL;            end if;          elsif (ET0 and s_tf0)='1' then   -- timer interrupt 0 low priority            s_help_en <= "0110";           -- interruptvector 000Bh            s_intlow_d <= '1';            s_intlow_en <= '1';            s_adr_mux <= "0010";            s_regs_wr_en <= "110";         -- reset TF0          elsif (EX1 and s_ie1)='1' then   -- external interrupt 1 low priority            s_help_en <= "0111";           -- interruptvector 0013h            s_intlow_d <= '1';            s_intlow_en <= '1';            if s_it0='1' then         -- interrupt is edge-sensitive              s_adr_mux <= "0011";              s_regs_wr_en <= "110";  -- reset IE1            else              NULL;            end if;          elsif (ET1 and s_tf1)='1' then   -- timer interrupt 1 low priority            s_help_en <= "1000";           -- interruptvector 001Bh            s_intlow_d <= '1';            s_intlow_en <= '1';            s_adr_mux <= "0100";            s_regs_wr_en <= "110";               -- reset TF1          elsif (ES and (s_ri or s_ti))='1' then -- serial int 0 low priority            s_help_en <= "1001";                 -- interruptvector 0023h            s_intlow_d <= '1';            s_intlow_en <= '1';          else            NULL;          end if;          s_nextstate <= EXEC2;        elsif state=EXEC2 then          s_adr_mux <= "0101";          s_data_mux <= "0001";         -- data = pc(7 downto 0)          s_regs_wr_en <= "101";        -- write one byte and increment SP          s_nextstate <= EXEC3;        elsif state=EXEC3 then          s_intpre2_d <= '0';          s_intpre2_en <= '1';          s_adr_mux <= "0101";          s_data_mux <= "0010";         -- data = pc(15 downto 8)          s_regs_wr_en <= "100";        -- write one byte          s_pc_inc_en <= "0011";        -- load program counter          s_nextstate <= FETCH;        else          s_nextstate <= FETCH;        end if;       -- end of starting interrupt procedure       else        case s_instr_category is          ---------------------------------------------------------------------          when IC_ACALL =>              -- ACALL addr11            if state=FETCH then              s_adr_mux <= "1111";      -- adress = sp + 1              s_data_mux <= "1110";     -- data = (pc+2)(7 downto 0)              s_regs_wr_en <= "101";    -- write one byte and increment SP              s_help16_en <= "10";      -- s_help16 = pc+2              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= EXEC1;            elsif state=EXEC1 then              s_adr_mux <= "1111";       -- adress = sp + 1              s_data_mux <= "1101";      -- data = s_help16(15 downto 8)              s_regs_wr_en <= "101";     -- write one byte and increment SP              s_pc_inc_en <= "0100";     -- load PC with 11 bits (2k block)              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADD_A_RR =>           -- ADD A,Rr            if state=FETCH then              s_adr_mux <= "0110";      -- adress = RR-adress              s_nextstate <= EXEC1;            elsif state=EXEC1 then              alu_cmd_o <= ADD_ACC_RAM; -- addition command (ACC + RAM_DATA)              s_data_mux <= "0011";     -- data = aludata_i              s_regs_wr_en <= "011";    -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADD_A_D =>            -- ADD A, direct            if state=FETCH then              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= EXEC1;            elsif state=EXEC1 then              s_adr_mux <= "1000";      -- adress = rom_data_i              s_nextstate <= EXEC2;            elsif state=EXEC2 then              alu_cmd_o <= ADD_ACC_RAM; -- addition command (ACC + RAM_DATA)              s_data_mux <= "0011";     -- data = aludata_i              s_regs_wr_en <= "011";    -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADD_A_ATRI =>         -- ADD A,@Ri            if state=FETCH then              s_adr_mux <= "0111";      -- address = Ri-register              s_nextstate <= EXEC1;            elsif state=EXEC1 then              alu_cmd_o <= ADD_ACC_RAM; -- addition command (ACC + RAM_DATA)              s_data_mux <= "0011";     -- data = aludata_i              s_regs_wr_en <= "011";    -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADD_A_DATA =>         -- ADD A, DATA            if state=FETCH then              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= EXEC1;            elsif state=EXEC1 then              alu_cmd_o <= ADD_ACC_ROM; -- addition command (ACC + ROM_DATA_I)              s_data_mux <= "0011";     -- data = aludata_i              s_regs_wr_en <= "011";    -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADDC_A_RR =>          -- ADDC A,Rr            if state=FETCH then              s_adr_mux <= "0110";      -- adress = RR-adress              s_nextstate <= EXEC1;            elsif state=EXEC1 then              alu_cmd_o <= ADDC_ACC_RAM;  -- addition command (ACC+RAM_DATA+CY)              s_data_mux <= "0011";       -- data = aludata_i              s_regs_wr_en <= "011";      -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";      -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADDC_A_D =>           -- ADDC A, direct            if state=FETCH then              s_pc_inc_en <= "0001";    -- increment program-counter              s_nextstate <= EXEC1;            elsif state=EXEC1 then              s_adr_mux <= "1000";      -- adress = rom_data_i              s_nextstate <= EXEC2;            elsif state=EXEC2 then              alu_cmd_o <= ADDC_ACC_RAM;  -- addition command (ACC+RAM_DATA+CY)              s_data_mux <= "0011";       -- data = aludata_i              s_regs_wr_en <= "011";      -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";      -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADDC_A_ATRI =>        -- ADDC A,@Ri            if state=FETCH then              s_adr_mux <= "0111";      -- address = Ri-register              s_nextstate <= EXEC1;            elsif state=EXEC1 then              alu_cmd_o <= ADDC_ACC_RAM;  -- addition command (ACC+RAM_DATA+CY)              s_data_mux <= "0011";       -- data = aludata_i              s_regs_wr_en <= "011";      -- write ACC and CY,OV,AC              s_pc_inc_en <= "0001";      -- increment program-counter              s_nextstate <= FETCH;            end if;          ---------------------------------------------------------------------          when IC_ADDC_A_DATA =>        -- ADDC A, data            if state=FETCH then              s_pc_inc_en <= "0001";    -- increment program-counter

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av一二三| 欧美性生交片4| 91视视频在线观看入口直接观看www | 国产精品自在欧美一区| 日本久久精品电影| 国产欧美精品区一区二区三区| 五月婷婷久久丁香| 9久草视频在线视频精品| 精品福利二区三区| 天天综合网天天综合色| 99久久国产综合精品女不卡| 精品国产1区2区3区| 午夜不卡av在线| 日本电影欧美片| 亚洲少妇屁股交4| 岛国精品一区二区| 欧美精品一区二区三区很污很色的 | 精品国产在天天线2019| 亚洲成人动漫在线观看| 在线观看成人免费视频| 亚洲男同1069视频| 91亚洲国产成人精品一区二区三| 国产日韩欧美精品综合| 国产一区三区三区| 欧美另类久久久品| 日韩国产成人精品| 在线播放亚洲一区| 午夜视频在线观看一区二区| 欧美日韩中文一区| 亚洲国产中文字幕| 欧美精品在线一区二区| 日本亚洲一区二区| 日韩视频在线观看一区二区| 日本伊人色综合网| 欧美精品一区视频| 国产福利一区在线| 国产精品久久久久久妇女6080 | 成人18精品视频| 国产精品久久久久7777按摩 | 欧美一区二区三区啪啪| 视频一区二区不卡| 日韩欧美中文字幕公布| 久久99精品久久久久久久久久久久| 精品毛片乱码1区2区3区| 九九精品视频在线看| 2024国产精品| 成人av影院在线| 亚洲黄网站在线观看| 欧美疯狂做受xxxx富婆| 久久国产精品72免费观看| 久久久精品综合| 91热门视频在线观看| 亚洲一区二区视频在线| 日韩欧美国产精品| 豆国产96在线|亚洲| 一区二区三区在线视频观看58| 欧美日韩三级一区| 极品美女销魂一区二区三区免费| 国产精品欧美一区喷水| 欧美午夜理伦三级在线观看| 久久精品国产免费| 亚洲欧美一区二区三区孕妇| 欧美精品九九99久久| 国产精品一区二区黑丝| 一区二区三区影院| 精品日韩在线观看| 在线一区二区观看| 久久精品久久精品| 夜夜嗨av一区二区三区四季av| 日韩午夜激情免费电影| 成人av电影观看| 奇米一区二区三区av| 国产精品理伦片| 日韩一区二区三区视频| 91丨porny丨最新| 精品无码三级在线观看视频| 亚洲欧美日韩久久精品| 2021国产精品久久精品| 91行情网站电视在线观看高清版| 韩国女主播一区| 亚洲va天堂va国产va久| 中文字幕日本乱码精品影院| 欧美一区二区视频观看视频| 91香蕉视频mp4| 国产经典欧美精品| 青青草成人在线观看| 亚洲免费在线看| 中文av一区二区| 精品国产乱码久久久久久久久| 欧美体内she精高潮| 91在线你懂得| 成人深夜福利app| 国产精品白丝jk白祙喷水网站| 亚洲国产日韩在线一区模特| 综合久久综合久久| 亚洲国产精品高清| 久久久久久麻豆| 欧美电影免费观看高清完整版在 | 亚洲欧洲成人精品av97| 久久这里只有精品首页| 日韩欧美一二三四区| 欧美乱妇一区二区三区不卡视频| 色香色香欲天天天影视综合网| 国产一区在线观看视频| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美久久久久久久久| 91高清视频免费看| 95精品视频在线| www.欧美日韩| 99久久精品免费观看| 99re6这里只有精品视频在线观看| 国产传媒一区在线| 国产高清亚洲一区| 成人性生交大片免费看中文| 豆国产96在线|亚洲| av中文字幕亚洲| 色噜噜狠狠成人网p站| 99re成人在线| 日本韩国欧美国产| 欧美性高清videossexo| 51久久夜色精品国产麻豆| 日韩欧美www| 久久一区二区视频| 国产精品私人影院| 亚洲少妇30p| 亚洲丰满少妇videoshd| 日产欧产美韩系列久久99| 激情丁香综合五月| 成人免费视频播放| 91高清视频免费看| 日韩午夜电影在线观看| 国产亚洲精品免费| 亚洲精品免费在线| 日本午夜精品一区二区三区电影| 美女在线视频一区| 国产精品一区在线| 99国产欧美另类久久久精品| 色94色欧美sute亚洲线路一ni | 欧美在线视频不卡| 精品毛片乱码1区2区3区| 国产精品久久久久四虎| 午夜电影一区二区| 国产精品1区2区3区| 色综合久久中文字幕| 欧美一区二区三区在线电影| 欧美成人伊人久久综合网| 国产精品欧美精品| 日本成人在线视频网站| 高清成人免费视频| 欧美日韩久久一区二区| 欧美激情综合网| 亚洲一区二区黄色| 国产在线麻豆精品观看| 一本到不卡免费一区二区| 精品国产第一区二区三区观看体验 | 国产日韩欧美电影| 亚洲一区日韩精品中文字幕| 国产美女在线精品| 欧美巨大另类极品videosbest | 亚洲一区二区三区激情| 国产精品自拍一区| 精品视频999| 亚洲日本成人在线观看| 九九**精品视频免费播放| 欧美午夜一区二区三区| 国产精品每日更新在线播放网址| 日本成人在线看| 精品视频1区2区3区| 国产精品成人网| 国产精品亚洲专一区二区三区| 欧美日韩三级视频| 亚洲精品美国一| 成人中文字幕电影| 337p粉嫩大胆色噜噜噜噜亚洲 | 日韩美女天天操| 玉足女爽爽91| 99国产精品久| 国产欧美日韩精品一区| 九九国产精品视频| 欧美一区二区三区思思人| 亚洲国产欧美一区二区三区丁香婷| aaa亚洲精品一二三区| 国产亚洲综合在线| 精品一区二区影视| 日韩欧美国产综合| 日本不卡的三区四区五区| 在线一区二区观看| 亚洲在线免费播放| 色久优优欧美色久优优| 亚洲欧美在线视频观看| 成人福利视频网站| 国产精品全国免费观看高清| 成人爽a毛片一区二区免费| 日本一区二区综合亚洲| 成人一道本在线| 亚洲手机成人高清视频| av中文一区二区三区| 中文字幕欧美一| 日本精品一区二区三区高清 | 亚洲精品一区二区三区福利|