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

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

?? tfsm.vhd

?? NANDFlashController.zip
?? VHD
字號:
---------------------------------------------------------------------------
--  >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
---------------------------------------------------------------------------
--  Copyright (c) 2010 by Lattice Semiconductor Corporation      
-- 
---------------------------------------------------------------------------
-- Permission:
--
--   Lattice Semiconductor grants permission to use this code for use
--   in synthesis for any Lattice programmable logic product.  Other
--   use of this code, including the selling or duplication of any
--   portion is strictly prohibited.
--
-- Disclaimer:
--
--   This VHDL or Verilog source code is intended as a design reference
--   which illustrates how these types of functions can be implemented.
--   It is the user's responsibility to verify their design for
--   consistency and functionality through the use of formal
--   verification methods.  Lattice Semiconductor provides no warranty
--   regarding the use or functionality of this code.
---------------------------------------------------------------------------
--
--    Lattice Semiconductor Corporation
--    5555 NE Moore Court
--    Hillsboro, OR 97124
--    U.S.A
--
--    TEL: 1-800-Lattice (USA and Canada)
--    503-268-8001 (other locations)
--
--    web: http://www.latticesemi.com/
--    email: techsupport@latticesemi.com
-- 
---------------------------------------------------------------------------
--
-- Revision History :
-- --------------------------------------------------------------------
--   Ver  :| Author      :| Mod. Date :| Changes Made:
--   V01.0:| Rainy Zhang :| 01/14/10  :| Initial ver
-- --------------------------------------------------------------------
--
-- 
--Description of module:
----------------------------------------------------------------------------------
-- Timing FSM creating all the necessary control signals for the nand-flash memory.
-- --------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;

ENTITY TFSM IS 
        PORT(
        CLK : IN STD_LOGIC;
        RES : IN STD_LOGIC;
        TC3 : IN STD_LOGIC;
        TC2048 : IN STD_LOGIC;
        start  : IN STD_LOGIC;
        cmd_code : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
        CLE : OUT STD_LOGIC;
        ALE : OUT STD_LOGIC;
        WE_n : OUT STD_LOGIC;
        RE_n : OUT STD_LOGIC;
        CE_n : OUT STD_LOGIC;
        DOS  : OUT STD_LOGIC;
        DIS  : OUT STD_LOGIC;
        cnt_en : OUT STD_LOGIC;
        Done : OUT STD_LOGIC;
        ecc_en : OUT STD_LOGIC           
        );
END ENTITY TFSM;
        
ARCHITECTURE translated OF TFSM IS 
constant Init        : std_logic_vector(5 downto 0) := "000000";
constant S_Start     : std_logic_vector(5 downto 0) := "000001";
constant S_CE        : std_logic_vector(5 downto 0) := "000010";
constant S_CLE        : std_logic_vector(5 downto 0):= "000011";
constant S_CmdOut    : std_logic_vector(5 downto 0) := "000100";
constant S_WaitCmd   : std_logic_vector(5 downto 0) := "000101";
constant DoneCmd     : std_logic_vector(5 downto 0) := "000110";
constant Finish      : std_logic_vector(5 downto 0) := "000111";
constant S_ALE       : std_logic_vector(5 downto 0) := "001000";
constant S_ADout     : std_logic_vector(5 downto 0) := "001001";
constant WaitAd      : std_logic_vector(5 downto 0) := "001010";
constant DoneAd      : std_logic_vector(5 downto 0) := "001011";
constant S_RE1       : std_logic_vector(5 downto 0) := "001100";
constant WaitR1      : std_logic_vector(5 downto 0) := "001101";
constant WaitR2      : std_logic_vector(5 downto 0) := "001110";
constant DoneR1      : std_logic_vector(5 downto 0) := "001111";
constant S_RE        : std_logic_vector(5 downto 0) := "010000";
constant WaitR1m     : std_logic_vector(5 downto 0) := "010001";
constant WaitR2m     : std_logic_vector(5 downto 0) := "010010";
constant WaitR3m     : std_logic_vector(5 downto 0) := "010011";
constant S_DIS       : std_logic_vector(5 downto 0) := "010100";
constant FinishR     : std_logic_vector(5 downto 0) := "010101";
constant S_WE        : std_logic_vector(5 downto 0) := "010110";
constant WaitW       : std_logic_vector(5 downto 0) := "010111";
constant WaitW1      : std_logic_vector(5 downto 0) := "011000";
constant WaitW2      : std_logic_vector(5 downto 0) := "011001";
constant S_nWE       : std_logic_vector(5 downto 0) := "011010";
constant FinishW     : std_logic_vector(5 downto 0) := "011011";

signal NxST : STD_LOGIC_VECTOR(5 DOWNTO 0);
signal CrST : STD_LOGIC_VECTOR(5 DOWNTO 0);
signal Done_i : STD_LOGIC;
signal TC   : STD_LOGIC;
signal cmd_code_int : STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

TC <= TC2048 WHEN (cmd_code_int(0) = '1') ELSE TC3;


PROCESS(CLK, RES)
BEGIN
  IF (RES = '1') THEN
     Done <= '0';
  ELSIF (CLK'EVENT AND CLK = '1') THEN
     Done <= Done_i;
  END IF;
END PROCESS;

PROCESS(CLK)
BEGIN
  IF (CLK'EVENT AND CLK = '1') THEN
      cmd_code_int <= cmd_code;
  END IF;
END PROCESS;

PROCESS(CLK)
BEGIN
  IF (CLK'EVENT AND CLK= '1') THEN
     CrST <= NxST;
  END IF;
END PROCESS;


PROCESS(RES, TC, cmd_code_int, start, CrST)
BEGIN
   IF (RES = '1') THEN
       NxST   <= Init;
       DIS    <= '0';
       DOS    <= '0';
       Done_i <= '0';
       ALE    <= '0';
       CLE    <= '0';
       WE_n   <= '1';
       RE_n   <= '1';
       CE_n   <= '1';
       cnt_en <= '0';
       ecc_en <= '0';
  ELSE
       DIS    <= '0';
       DOS    <= '0';
       Done_i <='0';
       ALE    <= '0';
       CLE    <= '0';
       WE_n   <= '1';
       RE_n   <= '1';
       CE_n   <= '1';
       cnt_en <= '0';
       ecc_en <= '0';
   case CrST IS
    WHEN Init => 
      if (start = '1') THEN
        NxST <= S_Start;
      else
        NxST <= Init;
      end IF;
    WHEN S_Start=>
      if (cmd_code_int = "011") THEN
        NxST <= Init;
      else
        NxST <= S_CE;
      end IF;
    WHEN S_CE =>
      if (cmd_code_int = "000") THEN
        NxST <= S_CLE;
        CE_n <= '0';
      elsif (cmd_code_int = "001") THEN
        NxST <= S_ALE;
        CE_n <= '0';        
      elsif (cmd_code_int = "010") THEN
        NxST <= S_RE1;
        CE_n <= '0';        
      elsif (cmd_code_int(2 DOWNTO 1) = "10") THEN
        NxST <= S_RE;
        CE_n <= '0';        
      elsif (cmd_code_int(2 downto 1) = "11") THEN
        NxST <= S_WE;
        CE_n <= '0';        
      else
        NxST <= Init;
      end if; 
    WHEN S_CLE =>
      CE_n <= '0';
      CLE  <= '1';
      WE_n <= '0';
      NxST <= S_CmdOut;
    WHEN S_CmdOut =>
      CE_n <= '0';
      CLE  <= '1';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= S_WaitCmd;
    WHEN S_WaitCmd =>
      CE_n <= '0';
      CLE  <= '1';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= DoneCmd;
    WHEN DoneCmd =>
      Done_i <= '1';      
      CE_n   <= '0';
      CLE    <= '1';
      DOS    <= '1';
      NxST   <= Finish;
    WHEN Finish=>
      DIS <= '1'; 
      if (start = '1') THEN
        NxST <= S_Start;
      else
        NxST <= Init;
      end if;
    WHEN S_ALE =>
      CE_n <= '0';
      ALE  <= '1';
      WE_n <= '0';
      NxST <= S_ADout;
    WHEN S_ADout =>
      CE_n <= '0';
      ALE  <= '1';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= WaitAd;
    WHEN WaitAd =>
      CE_n <= '0';
      ALE  <= '1';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= DoneAd;
    WHEN DoneAd =>
      Done_i <= '1';
      CE_n   <= '0';
      ALE    <= '1';
      DOS    <= '1';
      NxST   <= Finish;
    WHEN S_RE1 =>
      CE_n   <= '0';
      RE_n   <= '0';
      NxST   <= WaitR1;
    WHEN WaitR1 =>
      CE_n <= '0';
      RE_n <= '0';
      NxST <= WaitR2;
    WHEN WaitR2 =>
      CE_n <= '0';
      RE_n <= '0';
      NxST <= DoneR1;
    WHEN DoneR1 =>
      Done_i <= '1'; 
      cnt_en <= '1';   
      NxST   <= Finish; 
   WHEN S_RE =>
      CE_n <= '0';
      RE_n <= '0';
      NxST <= WaitR1m;
   WHEN WaitR1m =>
      CE_n <= '0';
      RE_n <= '0';
      NxST <= WaitR2m;
   WHEN WaitR2m =>
      CE_n <= '0';
      RE_n <= '0';
      NxST <= S_DIS;
   WHEN S_DIS =>
      CE_n <= '0';
      if (TC = '0') then
        NxST <= WaitR3m;
      else
        NxST <= FinishR;
    end if;
    WHEN WaitR3m =>
      CE_n   <= '0';
      cnt_en <= '1';
      DIS    <= '1'; 
      NxST   <= S_RE;
    WHEN FinishR =>
      Done_i <= '1';
      cnt_en <= '1';  
      DIS    <= '1'; 
      if (start = '1') THEN
        NxST <= S_Start;
      else
        NxST <= Init;
      end if; 
    WHEN S_WE =>
      CE_n <= '0';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= WaitW;
    WHEN WaitW =>
      ecc_en <= '1';
      CE_n   <= '0';
      WE_n   <= '0';
      DOS    <= '1';
      NxST   <= WaitW1;
    WHEN WaitW1 =>
      CE_n <= '0';
      WE_n <= '0';
      DOS  <= '1';
      NxST <= S_nWE;
    WHEN S_nWE =>
      CE_n <= '0';
      DOS  <= '1';
      if (TC = '0') THEN
        NxST <= WaitW2;
      else
        NxST <= FinishW;
      end if;
    WHEN WaitW2 =>
      CE_n   <= '0';
      DOS    <= '1';    
      cnt_en <= '1';
      NxST   <= S_WE;
    WHEN FinishW =>
      Done_i <= '1';
      cnt_en <= '1';
      DOS    <= '1';
      if (start = '1') THEN
        NxST <= S_Start;
      else
        NxST <= Init;
    end  if;
    WHEN OTHERS =>
       NxST <= Init;
  end case;
END IF;


END PROCESS;

END ARCHITECTURE translated;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日韩三级| 日韩视频在线永久播放| 欧美日韩高清在线| 精品嫩草影院久久| 亚洲福利一二三区| 福利视频网站一区二区三区| 一本大道综合伊人精品热热 | 麻豆一区二区在线| 91小视频免费观看| 欧美韩国日本不卡| 麻豆中文一区二区| 欧美一级视频精品观看| 亚洲欧美日韩人成在线播放| 国产精品一区二区91| 91精品国产综合久久福利| 一区二区三区四区高清精品免费观看 | 极品尤物av久久免费看| 欧美亚洲国产怡红院影院| 国产欧美精品一区| 精品一二三四在线| 日韩小视频在线观看专区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲电影一区二区| 99精品视频一区二区| 国产精品三级视频| 粗大黑人巨茎大战欧美成人| 精品少妇一区二区三区在线视频| 日韩国产一区二| 欧美日韩国产高清一区二区三区 | 久久久久久久精| 久久国内精品自在自线400部| 6080午夜不卡| 日本三级亚洲精品| 日韩午夜小视频| 久88久久88久久久| 久久综合网色—综合色88| 精品一区二区三区在线视频| 91精品国产欧美一区二区| 日韩av一级电影| 欧美一区二区二区| 国内精品免费**视频| 精品国产乱码久久久久久老虎| 免费在线看成人av| 26uuu国产电影一区二区| 国产专区欧美精品| 国产女人18毛片水真多成人如厕| 国产东北露脸精品视频| 国产精品久久久久久久久晋中 | 日韩一区二区三区免费观看| 麻豆国产欧美日韩综合精品二区| 欧美一级一级性生活免费录像| 免费在线观看日韩欧美| 久久综合色播五月| 成人app软件下载大全免费| 亚洲视频资源在线| 欧美理论在线播放| 国模无码大尺度一区二区三区| 国产视频一区不卡| 在线观看国产一区二区| 日本不卡视频一二三区| 日本一区二区三区久久久久久久久不 | 久久综合九色综合久久久精品综合| 国产乱子伦视频一区二区三区 | 日韩色在线观看| 国产一区二区三区在线观看精品| 国产精品毛片无遮挡高清| 在线免费观看不卡av| 免播放器亚洲一区| 国产精品美女久久久久av爽李琼 | 精品在线免费观看| 亚洲图片激情小说| 欧美一级高清大全免费观看| 大白屁股一区二区视频| 日韩高清一区二区| 中文字幕一区在线观看视频| 欧美亚洲国产一区二区三区va | 蜜桃一区二区三区四区| 国产精品久久看| 日韩欧美aaaaaa| 在线观看欧美黄色| 高清国产午夜精品久久久久久| 午夜精品在线视频一区| 国产视频视频一区| 欧美一区二区三区播放老司机| 成人午夜在线播放| 日本中文字幕一区二区有限公司| 国产精品欧美精品| 欧美一级艳片视频免费观看| 日本韩国一区二区| 国产高清在线观看免费不卡| 视频在线在亚洲| 亚洲免费观看视频| 欧美高清一级片在线观看| 日韩一区二区三区视频在线| 91福利国产成人精品照片| 国产jizzjizz一区二区| 麻豆91免费观看| 午夜影院久久久| 一区二区三区中文在线| 亚洲国产电影在线观看| 久久精品人人做人人爽人人| 日韩欧美一级精品久久| 欧美亚洲日本国产| 日本道精品一区二区三区| 成人小视频在线| 成人av在线网| 丁香天五香天堂综合| 国产精品一区二区在线观看不卡| 免费在线看一区| 蜜桃av噜噜一区二区三区小说| 午夜av一区二区| 午夜伦理一区二区| 日一区二区三区| 日韩成人伦理电影在线观看| 亚洲第一电影网| 午夜日韩在线电影| 奇米色777欧美一区二区| 天天做天天摸天天爽国产一区| 一区二区三区在线观看视频| 一区二区三区四区五区视频在线观看 | 麻豆成人91精品二区三区| 日韩和欧美一区二区三区| 亚洲国产精品久久一线不卡| 亚洲一区视频在线| 图片区小说区国产精品视频| 青青草原综合久久大伊人精品| 日一区二区三区| 国精产品一区一区三区mba视频 | 欧美色偷偷大香| 91精品国产综合久久精品 | 久久不见久久见免费视频1| 捆绑调教一区二区三区| 国产在线精品一区二区不卡了| 国产精品一区二区男女羞羞无遮挡| 国产在线观看免费一区| 99精品视频在线播放观看| 欧美色精品在线视频| 欧美变态tickle挠乳网站| 久久久国产午夜精品| 中文字幕在线观看一区二区| 亚洲线精品一区二区三区| 日本va欧美va精品| 成人精品免费视频| 欧美视频三区在线播放| 日韩精品一区二区三区在线播放| 久久蜜桃一区二区| 亚洲欧美精品午睡沙发| 丝袜a∨在线一区二区三区不卡| 国产做a爰片久久毛片| 色素色在线综合| 精品久久久久香蕉网| 中文字幕在线播放不卡一区| 亚洲第一在线综合网站| 国产一区二区精品久久99| 色婷婷激情一区二区三区| 欧美一区二区三区性视频| 国产色爱av资源综合区| 亚洲国产va精品久久久不卡综合| 老司机精品视频在线| 欧洲色大大久久| 国产蜜臀av在线一区二区三区| 亚洲国产综合色| 国产黄色精品网站| 在线不卡中文字幕| 国产精品毛片久久久久久久| 蜜臀精品久久久久久蜜臀| 99精品热视频| 久久久高清一区二区三区| 丝袜美腿高跟呻吟高潮一区| www.日韩在线| 精品国产百合女同互慰| 亚洲国产精品自拍| 大胆欧美人体老妇| 日韩精品一区二区三区四区| 亚洲一区二区三区中文字幕| 国产福利一区在线| 日韩欧美久久久| 亚洲18色成人| 色婷婷精品大在线视频| 国产精品乱码一区二三区小蝌蚪| 日韩成人av影视| 欧美日韩一区二区三区不卡| 自拍偷拍亚洲欧美日韩| 国产精品99久| 久久久99免费| 国产一区二区三区免费观看| 欧美一级艳片视频免费观看| 午夜精品福利在线| 91国产成人在线| 亚洲激情图片qvod| 91免费在线播放| 国产精品久久久久9999吃药| 国产一本一道久久香蕉| 欧美变态tickling挠脚心| 毛片av一区二区| 精品国产乱码久久久久久牛牛| 久久91精品久久久久久秒播| 91麻豆精品国产| 免费看黄色91| 日韩美女天天操|