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

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

?? spi_ctrl.vhd

?? 可實現對ST公司的SPI flash的控制
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
      when TxCMD =>        if tx_bit_cnt < x"7" then          next_state <= TxCMD;        else          case cmd is            when WREN | WRDI | BE | DP => next_state <= CLR_CMD;            when SE | PP | RES | RDCMD | F_RD|WRSR|RDSR => next_state <= WAIT1;            when others => next_state <= CLR_CMD;          end case;        end if;      when WAIT1 =>        case cmd is          when WREN | WRDI | BE | DP => next_state <= CLR_CMD;          when SE | PP | RES | RDCMD | F_RD => next_state <= TxADD_H;          when WRSR => next_state <= TxDATA;          when RDSR => next_state <= RxDATA;          when others => next_state <= CLR_CMD;        end case;      when TxADD_H =>        if tx_bit_cnt < x"7" then          next_state <= TxADD_H;        else          next_state <= WAIT2;        end if;      when WAIT2 => next_state <= TxADD_M;      when TxADD_M =>        if tx_bit_cnt < x"7" then          next_state <= TxADD_M;        else          next_state <= WAIT3;        end if;      when WAIT3 => next_state <= TxADD_L;      when TxADD_L =>        if tx_bit_cnt < x"7" then          next_state <= TxADD_L;        else          case cmd is            when PP => next_state <= WAIT6;            when SE | RES | RDCMD | F_RD => next_state <= WAIT4;            when others => next_state <= CLR_CMD;          end case;        end if;      when WAIT4 =>        case cmd is          when F_RD => next_state <= TxDUMMY;          when RES | RDCMD => next_state <= RxDATA;          when others => next_state <= CLR_CMD;        end case;      when TxDUMMY =>        if tx_bit_cnt < x"7" then          next_state <= TxDUMMY;        else          next_state <= WAIT8;        end if;      when WAIT7 => next_state <= WAIT8;      when WAIT8 =>        case cmd is          when RDCMD | F_RD =>            if rx_empty = '1' then              next_state <= RxDATA;            else              next_state <= WAIT8;            end if;          when others => next_state <= CLR_CMD;        end case;      when RxDATA =>        if rx_bit_cnt < x"7" then          next_state <= RxDATA;        else          case cmd is            when RDCMD | F_RD => next_state <= WAIT7;            when RDSR | RES => next_state <= WAIT5;            when others => next_state <= CLR_CMD;          end case;        end if;      when TxDATA =>        if tx_bit_cnt < x"7" then          next_state <= TxDATA;        else          case cmd is            when PP => next_state <= WAIT6;            when others => next_state <= CLR_CMD;          end case;        end if;      when WAIT6 =>        case cmd is          when PP =>            if tx_new_data = '1' then              next_state <= TxDATA;            else              next_state <= WAIT6;            end if;          when others => next_state <= CLR_CMD;        end case;      when WAIT5 => next_state <= CLR_CMD;      when CLR_CMD => next_state <= IDLE;    end case;  end process;  -- state machine output table  process (state, cmd, tx_data, add_m, add_l, add_h)  begin    -- default values    tx_enable <= '0';    rx_enable <= '0';    rx_bit_cnt_clr <= '1';    tx_reg <= x"FF";    spi_cs_int <= '0';    busy <= '1';    cmd_clr <= '0';    is_tx_data <= '0';    is_wait6 <= '0';    case state is      when IDLE =>        busy <= '0';      when TxCMD =>        tx_reg <= cmd;        tx_enable <= '1';        spi_cs_int <= '1';      when TxDATA =>        tx_reg <= tx_data;        tx_enable <= '1';        spi_cs_int <= '1';        is_tx_data <= '1';      when TxADD_H =>        tx_reg <= add_h;        tx_enable <= '1';        spi_cs_int <= '1';      when TxADD_M =>        tx_reg <= add_m;        tx_enable <= '1';        spi_cs_int <= '1';      when TxADD_L =>        tx_reg <= add_l;        tx_enable <= '1';        spi_cs_int <= '1';      when TxDUMMY =>        tx_reg <= x"00";        tx_enable <= '1';        spi_cs_int <= '1';      when RxDATA =>        rx_bit_cnt_clr <= '0';        rx_enable <= '1';        spi_cs_int <= '1';      when WAIT1 | WAIT2 | WAIT3 | WAIT4 | WAIT8 =>        spi_cs_int <= '1';      when WAIT6 =>        is_wait6 <= '1';        spi_cs_int <= '1';      when WAIT5 | WAIT7 =>        rx_bit_cnt_clr <= '0';        spi_cs_int <= '1';      when CLR_CMD =>        cmd_clr <= '1';      when others => null;    end case;  end process;  -- the tx_empty flip flop  process (rst, wr_data, clk_in)  begin    if rst = '1' then      tx_empty <= '1';    elsif wr_data = '1' then      tx_empty <= '0';    elsif rising_edge (clk_in) then      if tx_empty_set = '1' then        tx_empty <= '1';      end if;    end if;  end process;  -- delay the tx_enable signal  process (rst, clk_in)  begin    if rst = '1' then      tx_enable_d <= '0';    elsif rising_edge (clk_in) then      tx_enable_d <= tx_enable;    end if;  end process;  -- transmitter shift register and bit counter  process (rst, tx_reg, tx_enable_d, clk_in)  begin    if rst = '1' then      tx_sreg <= x"FF";      tx_bit_cnt <= x"0";      tx_empty_set <= '0';    elsif tx_enable_d = '0' then      tx_sreg <= tx_reg;      tx_bit_cnt <= x"0";      tx_empty_set <= '0';    elsif rising_edge (clk_in) then      if clk_en = '1' then        tx_bit_cnt <= tx_bit_cnt + 1;        tx_sreg <= tx_sreg (6 downto 0) & '1';        if tx_bit_cnt = x"6" and is_tx_data = '1' then          tx_empty_set <= '1';        else          tx_empty_set <= '0';        end if;      end if;    end if;  end process;  -- synchronize rd_data  process (rst, clk_in)  begin    if rst = '1' then      rd_data1 <= '0';    elsif falling_edge (clk_in) then      rd_data1 <= rd_data;    end if;  end process;  process (rst, clk_in)  begin    if rst = '1' then      rd_data2 <= '0';    elsif falling_edge (clk_in) then      if rd_data = '0' then        rd_data2 <= rd_data1;      end if;    end if;  end process;  -- the rx_empty flip flop  process (rst, clk_in)  begin    if rst = '1' then      rx_empty <= '1';    elsif rising_edge (clk_in) then      if rx_empty_clr = '1' then        rx_empty <= '0';      elsif rd_data2 = '1' then        rx_empty <= '1';      end if;    end if;  end process;  -- the rx_ready flip flop  process (rst, clk_in)  begin    if rst = '1' then      rx_ready <= '0';    elsif rising_edge (clk_in) then      if rd_data = '1' then        rx_ready <= '0';      elsif rx_ready_set = '1' then        rx_ready <= '1';      end if;    end if;  end process;  -- the rx_data register  process (rst, clk_in)  begin    if rst = '1' then      rx_data <= x"FF";    elsif rising_edge (clk_in) then      if rx_ready_set = '1' then        rx_data <= rx_sreg;      end if;    end if;  end process;  -- receiver shift register and bit counter  process (rst, rx_bit_cnt_clr, clk_in)  begin    if rst = '1' or rx_bit_cnt_clr = '1' then      rx_bit_cnt <= x"0";      rx_ready_set <= '0';      rx_empty_clr <= '0';      rx_sreg <= x"FF";    elsif rising_edge (clk_in) then      if clk_en = '1' then        rx_sreg <= rx_sreg (6 downto 0) & spi_din;        case rx_bit_cnt is          when x"0" =>            rx_bit_cnt <= rx_bit_cnt + 1;            rx_ready_set <= '0';            rx_empty_clr <= '1';          when x"1" | x"2" | x"3" | x"4" | x"5" | x"6" =>            rx_bit_cnt <= rx_bit_cnt + 1;            rx_ready_set <= '0';            rx_empty_clr <= '0';          when x"7" =>            rx_bit_cnt <= rx_bit_cnt + 1;            rx_ready_set <= '1';            rx_empty_clr <= '0';          when others =>            null;        end case;      end if;    end if;  end process;end rtl;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级做a爱片久久| 91精品国产综合久久久久| 性做久久久久久久免费看| 亚洲欧美经典视频| 中文子幕无线码一区tr| 欧美国产精品久久| 国产精品久久久久9999吃药| 亚洲国产成人午夜在线一区| 亚洲国产成人午夜在线一区| 国产精品美女久久久久aⅴ| 久久奇米777| 中文字幕二三区不卡| 亚洲人成在线播放网站岛国| 亚洲色图一区二区三区| 亚洲一二三区不卡| 日韩av网站在线观看| 久久国产福利国产秒拍| 国产麻豆视频精品| www.99精品| 欧美日韩成人一区| 欧美成人一区二区三区在线观看| 久久亚洲综合色| 中文字幕在线一区免费| 亚洲自拍偷拍网站| 免费视频最近日韩| 成人毛片老司机大片| 日本电影亚洲天堂一区| 欧美一区二区美女| 国产精品久久久久久亚洲伦| 亚洲摸摸操操av| 免费观看30秒视频久久| 成人精品小蝌蚪| 欧美丝袜丝nylons| 久久久久久久久久美女| 亚洲欧美日韩在线不卡| 久久99久久99小草精品免视看| 成人性生交大片免费| 欧美日韩视频不卡| 国产精品乱码人人做人人爱| 天堂影院一区二区| 成人av网站免费观看| 制服丝袜亚洲精品中文字幕| 日本一区二区三区久久久久久久久不 | 国产清纯白嫩初高生在线观看91| 一区在线中文字幕| 久久精品免费观看| 91黄色免费版| 久久一夜天堂av一区二区三区| 亚洲柠檬福利资源导航| 精品影视av免费| 欧美剧在线免费观看网站| 国产精品不卡一区| 国内精品久久久久影院色| 欧美伦理电影网| 亚洲天堂2014| 成人免费毛片aaaaa**| 欧美一区二区美女| 亚洲午夜在线观看视频在线| 成人免费三级在线| 久久久精品天堂| 精品一区二区三区在线播放| 欧美男生操女生| 亚洲在线免费播放| 91麻豆国产在线观看| 自拍偷拍亚洲综合| 国产成+人+日韩+欧美+亚洲| 2020国产精品| 麻豆视频一区二区| 欧美一区二区三区精品| 午夜激情一区二区三区| 欧美日韩在线播| 亚洲成人免费在线观看| 色欲综合视频天天天| 悠悠色在线精品| 在线观看av一区| 午夜成人免费电影| 欧美猛男男办公室激情| 亚洲成人激情社区| 制服丝袜av成人在线看| 日韩国产欧美一区二区三区| 欧美久久久久久蜜桃| 日韩1区2区日韩1区2区| 欧美一区二区三区不卡| 狠狠色狠狠色综合日日91app| 欧美tk丨vk视频| 国产精品一区二区三区网站| 国产欧美一区二区三区鸳鸯浴 | 精品一区二区三区在线观看| 亚洲精品一区在线观看| 国产精一品亚洲二区在线视频| 久久久国际精品| 成人av资源下载| 亚洲成人动漫av| 欧美大尺度电影在线| 国产高清亚洲一区| 亚洲天堂网中文字| 在线视频欧美区| 麻豆精品精品国产自在97香蕉| 精品动漫一区二区三区在线观看| 福利一区在线观看| 亚洲激情男女视频| 日韩美女一区二区三区四区| 成人午夜看片网址| 亚洲国产精品久久人人爱蜜臀| 日韩女优制服丝袜电影| av在线播放不卡| 日本欧美久久久久免费播放网| 国产视频在线观看一区二区三区| 97精品国产97久久久久久久久久久久| 亚洲最色的网站| 久久久久久久久久久99999| 91免费观看国产| 久久er99精品| 艳妇臀荡乳欲伦亚洲一区| 2020国产成人综合网| 在线精品视频小说1| 国产在线乱码一区二区三区| 亚洲人成亚洲人成在线观看图片| 日韩一级二级三级| 日本电影欧美片| 国产精品一区二区三区99| 亚洲成人av福利| 亚洲三级理论片| 国产亚洲欧洲一区高清在线观看| 欧美群妇大交群的观看方式| 成人av影视在线观看| 久草在线在线精品观看| 亚洲大型综合色站| 亚洲精品乱码久久久久久黑人| 久久亚洲私人国产精品va媚药| 欧美日韩在线电影| 一本一本大道香蕉久在线精品| 国产成人精品一区二区三区四区 | 久久精品999| 亚洲日本va在线观看| 久久久高清一区二区三区| 欧美一区中文字幕| 在线免费观看不卡av| 99国产精品久久久久久久久久久| 国产在线不卡一区| 久久99最新地址| 美脚の诱脚舐め脚责91| 五月综合激情网| 亚洲电影你懂得| 亚洲成人1区2区| 尤物在线观看一区| 一区二区三区色| 亚洲综合精品自拍| 性欧美疯狂xxxxbbbb| 亚洲综合999| 五月天激情综合| 三级欧美在线一区| 日本麻豆一区二区三区视频| 婷婷丁香激情综合| 日本不卡不码高清免费观看| 五月天久久比比资源色| 蜜桃视频在线一区| 精品一区二区免费看| 国产美女娇喘av呻吟久久| 狠狠久久亚洲欧美| 岛国精品在线播放| 91亚洲大成网污www| 欧美专区在线观看一区| 欧美喷潮久久久xxxxx| 日韩视频免费观看高清完整版| 日韩亚洲欧美成人一区| 久久综合狠狠综合久久激情| 久久亚洲一级片| 国产精品福利av| 亚洲永久精品大片| 麻豆国产欧美一区二区三区| 激情五月婷婷综合| 成人午夜在线免费| 在线日韩国产精品| 91精品国产高清一区二区三区蜜臀| 日韩三级在线免费观看| 国产色产综合产在线视频| 椎名由奈av一区二区三区| 亚洲成人免费视频| 精品一区二区在线免费观看| 成人一道本在线| 欧美日韩一区二区三区四区| 久久亚洲二区三区| 亚洲视频资源在线| 奇米在线7777在线精品| 风流少妇一区二区| 777午夜精品免费视频| 国产三级欧美三级| 午夜精品福利一区二区三区蜜桃| 国产剧情一区二区| 欧美亚洲国产bt| 久久久www免费人成精品| 亚洲码国产岛国毛片在线| 免费成人在线影院| 欧美精品高清视频| 国产日韩综合av| 轻轻草成人在线| 欧美综合久久久| 中文字幕亚洲不卡| 国产在线精品不卡|