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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flash_interface.vhd

?? NANDFlashController.zip
?? VHD
字號(hào):
---------------------------------------------------------------------------
--  >>>>>>>>>>>>>>>>>>>>>>>>> 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:
----------------------------------------------------------------------------------
-- 
-- --------------------------------------------------------------------

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.NUMERIC_STD.ALL;
USE IEEE.STD_LOGIC_TEXTIO.ALL;
USE STD.TEXTIO.ALL;

ENTITY flash_interface IS  PORT(
       DIO : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);
       CLE : IN STD_LOGIC;
       ALE : IN STD_LOGIC;
       WE_n : IN STD_LOGIC;
       RE_n : IN STD_LOGIC;
       CE_n : IN STD_LOGIC;
       rst  : IN STD_LOGIC;
       R_nB : OUT STD_LOGIC
);
END ENTITY flash_interface;

ARCHITECTURE translated OF flash_interface IS           
  
TYPE memory_2113 IS ARRAY (2112 DOWNTO 0) OF STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL memory : memory_2113;
SIGNAL dat_en : std_logic;
SIGNAL datout : std_logic_vector(7 downto 0);
SIGNAL command: std_logic_vector(7 downto 0);
SIGNAL row1   : std_logic_vector(7 downto 0);
SIGNAL row2   : std_logic_vector(7 downto 0);
SIGNAL col1   : std_logic_vector(7 downto 0);
SIGNAL col2   : std_logic_vector(7 downto 0);
SIGNAL idaddr : std_logic_vector(7 downto 0);

SIGNAL con1   : std_logic_vector(11 downto 0);
SIGNAL con1_835 : std_logic_vector(11 downto 0);

SIGNAL con   : std_logic_vector(1 downto 0);
 
SIGNAL con2  : std_logic_vector(11 downto 0);
SIGNAL con2_835 : std_logic_vector(11 downto 0);

BEGIN

DIO <= datout when (dat_en = '1') else "ZZZZZZZZ";  

PROCESS(WE_n , rst)
VARIABLE L : line;
BEGIN
  IF (rst = '1') THEN
     command <= "11111111";
  ELSIF (WE_n'EVENT AND WE_n = '1') THEN
    IF (CE_n = '0' and CLE = '1') THEN
     command <= DIO;
     CASE command IS
     WHEN x"60" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" auto block erase setup command "));
        writeline(output,L);
     WHEN x"d0" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" erase address:     "));
        write(L, row1&row2);
        writeline(output,L);
     WHEN X"70" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read status command "));
        writeline(output,L);
     WHEN x"80" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" write page setup command "));
        writeline(output,L);
     WHEN x"85" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" write page row address:     "));
        write(L, row1&row2);
        writeline(output,L);
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" random data write command "));
        writeline(output,L);
     WHEN x"10" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" random write page column address: "));
        write(L, col1&col2);
        writeline(output,L);
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" write page command "));
        writeline(output,L);
     WHEN x"00" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read page setup command "));
        writeline(output,L);
     WHEN x"30" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read page row address:     "));
        write(L,row1&row2);
        writeline(output,L);
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read page column address: "));
        write(L,col1&col2);
        writeline(output,L);
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read page command "));
        writeline(output,L);
     WHEN x"05" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" random read page setup command "));
        writeline(output,L);
     WHEN x"e0" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" random read page column address: "));
        write(L,col1&col2);
        writeline(output,L);
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" random read page command "));
        writeline(output,L);
     WHEN x"ff" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" reset function "));
        writeline(output,L);
     WHEN x"90" =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" read ID function "));
        writeline(output,L);
    WHEN OTHERS =>
        write(L,now, justified => right, field=>20,unit=>ns);
        write(L, string'(" NOT USEFUL COMMAND "));
        writeline(output,L);
    END CASE;
  END IF;
  END IF;
  END PROCESS;


  PROCESS(WE_n , rst)
  BEGIN
     IF (rst = '1') THEN
       row1 <= "00000000";
       row2 <= "00000000";
       col1 <= "00000000";
       col2 <= "00000000";
       idaddr <= "00000000";
     ELSIF (WE_n'EVENT AND WE_n = '1') THEN 
       IF (CE_n = '0' AND ALE = '1') THEN
       CASE command IS 
       WHEN x"60" =>
            row1 <= DIO;
            row2 <= row1;
       WHEN x"80" =>
            row1 <= DIO;
            row2 <= row1;
            col1 <= row2;
            col2 <= col1;
       WHEN x"85" =>
            col1 <= DIO;
            col2 <= col1;
       WHEN x"00" =>
            row1 <= DIO;
            row2 <= row1;
            col1 <= row2;
            col2 <= col1;
       WHEN x"05" =>
            col1 <= DIO;
            col2 <= col1;
       WHEN x"90" =>
            idaddr <= DIO;
       WHEN OTHERS =>
            row1 <= "00000000";
            row2 <= "00000000";
            col1 <= "00000000";
            col2 <= "00000000";
            idaddr <= "00000000";
       END CASE;
       END IF;
     END IF;
  END PROCESS;


  

PROCESS(WE_n , rst)
variable cnt    : std_logic_vector(11 downto 0);
variable cnt_835: std_logic_vector(11 downto 0);
variable data_temp : std_logic_vector(7 downto 0);
 BEGIN
   IF (rst = '1') THEN
     con1_835 <= x"835";
     con1     <= x"000";
     for i in 0 to 2112 loop
         memory(i) <= "00000000";
     end loop;
   ELSIF (WE_n'EVENT AND WE_n = '1') THEN
     IF (CE_n = '0' AND ALE = '0' and CLE = '0' and command = x"80") THEN
         memory(to_integer(unsigned(con1))) <= DIO;
         con1 <= con1 + '1';
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"85") THEN
         memory(to_integer(unsigned(con1_835))) <= DIO;
         con1_835 <= con1_835 + '1';
     END IF;
   END IF;
 END PROCESS;


PROCESS(RE_n, rst)
BEGIN
   IF (rst = '1') THEN
      con <= "00";
   ELSIF (RE_n'EVENT AND RE_n = '0') THEN
      IF (CE_n = '0' AND ALE = '0' AND command = x"90") THEN
      con <= con + 1;
      END IF;
   END IF;
END PROCESS;



PROCESS(RE_n , rst)
variable L : line;
BEGIN
  IF (rst = '1') THEN
     con2 <= x"000";
     datout <= x"00";
     con2_835 <= x"835";
  ELSIF (RE_n'EVENT AND RE_n = '0') THEN
     IF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"30") THEN
        datout <= memory(to_integer(unsigned(con2)));
        con2   <= con2 + 1;
        con2_835 <= x"835";
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"e0") THEN
        datout <= memory(to_integer(unsigned(con2_835)));
        con2_835 <= con2_835 + 1;
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"70") THEN
        datout <= "00000000";
        con2   <= x"000";
        con2_835 <= x"000";
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"90") THEN
        con2 <= x"000";
        con2_835 <= x"000";
        IF (con = "00" ) THEN
        datout <= x"ec";
        write(L,now, justified => right, field=>20,unit=>ns) ;
        write(L, string'(" id code :     "));
        write(L,datout);
        writeline(output,L);
        ELSIF ( con = "01") THEN
        datout <= x"f1";
        write(L,now, justified => right, field=>20,unit=>ns) ;
        write(L, string'(" id code :     "));
        write(L,datout);
        writeline(output,L);
        ELSIF ( con = "10") THEN
        datout <= x"00";
        write(L,now, justified => right, field=>20,unit=>ns) ;
        write(L, string'(" id code :     "));
        write(L,datout);
        writeline(output,L);
        ELSIF (con = "11") THEN
        datout <= x"15";
        write(L,now, justified => right, field=>20,unit=>ns) ;
        write(L, string'(" id code :     "));
        write(L,datout);
        writeline(output,L);
        END IF;
     ELSE 
       con2    <= x"000";
       datout  <= x"00";
       con2_835<= x"835"; 
     END IF;
  END IF;
END PROCESS;

PROCESS(RE_n, rst, con2, con2_835) 
BEGIN
  IF (rst = '1') THEN
     dat_en <= '0';
  ELSIF (RE_n'EVENT AND RE_n = '1') THEN
          IF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"30") THEN
        IF (con2 /= x"800") THEN
           dat_en <= '1';
        ELSE
           dat_en <= '0' after 50ns;
        END IF;
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"e0") THEN
        IF (con2_835 /= x"841") THEN
           dat_en <= '1';
        ELSE
           dat_en <= '0' after 50ns;
        END IF;
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"90") THEN
        dat_en <= '1','0' after 50ns;
     ELSIF (command = x"70") THEN
        dat_en <= '1', '0' after 151ns;
     END IF;

  ELSE
     IF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"30") THEN
        IF (con2 /= x"800") THEN
           dat_en <= '1';
        ELSE
           dat_en <= '0' after 50ns;
        END IF;
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"e0") THEN
        IF (con2_835 /= x"841") THEN
           dat_en <= '1';
        ELSE
           dat_en <= '0' after 50ns;
        END IF;
     ELSIF (CE_n = '0' AND ALE = '0' AND CLE = '0' AND command = x"90") THEN
         dat_en <= '1','0' after 50ns;
     ELSIF (command = x"70") THEN
        dat_en <= '1', '0' after 151ns;
     END IF;
  END IF;
END PROCESS;
  

PROCESS(RE_n , rst, CE_n, ALE, CLE, WE_n)
BEGIN
  IF (rst = '1') then
      R_nB <= '1';
  ELSE
     IF (command = x"d0") THEN
        R_nB <= '0' after 60ns, '1' after 200ns;
     ELSIF (command = x"10") THEN
        R_nB <= '0' after 60ns, '1' after 200ns;
     ELSIF (command = x"30") THEN
        R_nB <= '0' after 60ns, '1' after 200ns;
     ELSE
        R_nB <= '1';
     END IF;
  END IF;
END PROCESS;

     
  

END ARCHITECTURE translated;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文一区| 亚洲不卡在线观看| 国产片一区二区三区| 欧美刺激午夜性久久久久久久| 欧美视频中文一区二区三区在线观看| 99视频精品全部免费在线| 成人app在线| av男人天堂一区| 色综合一区二区| 欧美在线免费视屏| 欧美日韩一区高清| 欧美日韩国产乱码电影| 欧美日韩国产小视频在线观看| 欧美午夜精品久久久久久超碰| 91国产丝袜在线播放| 欧美亚洲高清一区二区三区不卡| 在线一区二区视频| 欧美精品高清视频| 精品日韩在线一区| 欧美高清在线一区| 亚洲女同一区二区| 亚洲高清三级视频| 久久成人免费网站| 国产 欧美在线| 91在线云播放| 欧美在线free| 欧美tickling挠脚心丨vk| 久久人人超碰精品| 亚洲欧美色一区| 图片区小说区区亚洲影院| 精品一区二区精品| 国产激情91久久精品导航| 99精品国产91久久久久久 | 色激情天天射综合网| 精品视频999| 欧美成人官网二区| 欧美激情一区在线观看| 亚洲综合在线五月| 韩国毛片一区二区三区| 91玉足脚交白嫩脚丫在线播放| 欧美日韩电影一区| 精品国产免费一区二区三区四区 | 欧美日韩国产中文| www激情久久| 一区二区三区免费观看| 另类小说一区二区三区| 99久久久精品免费观看国产蜜| 欧美丰满嫩嫩电影| 国产精品久久久久久久久动漫 | 99久免费精品视频在线观看| 欧美日韩国产综合久久| 国产婷婷色一区二区三区四区 | 成人精品亚洲人成在线| 欧美日韩三级一区二区| 欧美国产日韩一二三区| 亚洲成人激情综合网| 国产盗摄一区二区| 欧美丰满少妇xxxxx高潮对白| 国产欧美精品一区二区色综合 | 国产酒店精品激情| 欧美亚洲高清一区二区三区不卡| 2017欧美狠狠色| 亚洲午夜久久久久久久久久久| 国产成人精品aa毛片| 欧美福利一区二区| 日韩理论片网站| 国产精品主播直播| 欧美久久一二区| 亚洲人成网站色在线观看| 国产乱码精品一区二区三区av | 99re8在线精品视频免费播放| 日韩欧美国产电影| 亚洲成a人v欧美综合天堂| 91亚洲精品久久久蜜桃网站| 欧美成人猛片aaaaaaa| 亚洲国产另类av| 99re66热这里只有精品3直播| 久久综合九色综合久久久精品综合| 亚洲午夜精品网| 91美女在线视频| 中文字幕一区日韩精品欧美| 国产精品一线二线三线精华| 欧美一区二区三区免费观看视频| 一区二区在线观看免费视频播放| 丁香一区二区三区| 久久久久久久电影| 久久精品国产99国产精品| 6080午夜不卡| 亚洲成人黄色影院| 欧美日韩亚洲国产综合| 亚洲精品伦理在线| 91网页版在线| 中文字幕视频一区二区三区久| 大美女一区二区三区| 国产三级三级三级精品8ⅰ区| 久久99精品久久久久久久久久久久| 欧美精品乱码久久久久久按摩| 亚洲一区二区偷拍精品| 欧美最新大片在线看| 亚洲欧美电影一区二区| 色综合av在线| 一区二区三区免费看视频| 91丨porny丨蝌蚪视频| 中文字幕佐山爱一区二区免费| 波多野结衣一区二区三区 | 日本免费在线视频不卡一不卡二 | 中文字幕乱码久久午夜不卡| 国产精品自在在线| 中文字幕不卡的av| 成人国产视频在线观看| 中文字幕一区免费在线观看| 91麻豆国产福利在线观看| 一区二区三区色| 欧美三级在线播放| 轻轻草成人在线| 久久综合九色综合97_久久久 | 久久奇米777| 成人综合婷婷国产精品久久| 国产精品美女久久久久久久久| 成人午夜激情视频| 亚洲欧美偷拍三级| 欧美日韩二区三区| 精品一区二区三区在线观看国产| xnxx国产精品| 99久久精品国产网站| 亚洲国产精品一区二区久久恐怖片| 欧美高清精品3d| 国产一区不卡视频| 中文字幕在线一区二区三区| 色嗨嗨av一区二区三区| 石原莉奈一区二区三区在线观看| 欧美一二区视频| 国产福利91精品一区二区三区| 综合激情网...| 欧美日韩精品是欧美日韩精品| 六月婷婷色综合| 国产精品久久久久久久午夜片| 91成人免费网站| 久久99精品久久久久久动态图| 国产精品伦理在线| 欧美日韩成人在线| 国产毛片精品视频| 亚洲主播在线观看| 亚洲精品在线电影| 色吊一区二区三区| 美女精品一区二区| 亚洲欧美日韩综合aⅴ视频| 日韩一区国产二区欧美三区| 99久久精品国产一区| 青青草原综合久久大伊人精品| 中文字幕成人网| 884aa四虎影成人精品一区| 国产成人在线色| 午夜精品123| 中文字幕一区二区三区色视频| 51久久夜色精品国产麻豆| 成人av小说网| 另类成人小视频在线| 亚洲欧美另类小说视频| 精品精品国产高清a毛片牛牛 | 欧美一区二区观看视频| 成人福利视频在线| 久久成人精品无人区| 亚洲精品国久久99热| 久久五月婷婷丁香社区| 欧美色综合网站| gogogo免费视频观看亚洲一| 男女男精品视频网| 亚洲综合视频在线观看| 中文成人av在线| 日韩欧美国产电影| 欧美吞精做爰啪啪高潮| 不卡的av网站| 国产又黄又大久久| 石原莉奈在线亚洲三区| 亚洲免费在线视频| 欧美激情在线看| 亚洲精品一区二区三区福利| 欧美日韩和欧美的一区二区| 99久久99精品久久久久久| 韩国三级电影一区二区| 日韩成人dvd| 婷婷夜色潮精品综合在线| 亚洲激情男女视频| 国产精品福利在线播放| 久久你懂得1024| 日韩一区二区三区视频在线观看| 欧美性受xxxx黑人xyx性爽| 成人丝袜18视频在线观看| 精品夜夜嗨av一区二区三区| 午夜欧美在线一二页| 亚洲男女毛片无遮挡| 国产精品第五页| 国产精品久久久久天堂| 中文成人综合网| 亚洲国产精品精华液2区45| 国产午夜精品久久久久久久| 久久婷婷国产综合国色天香| 日韩欧美一二三四区| 91精品国产综合久久蜜臀|