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

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

?? mx25l1005.v

?? Verilog based simluation model for MXIC SPI Flash.
?? V
?? 第 1 頁 / 共 5 頁
字號:
/*----------------------------------------------------------------------------
*
*    mx25L1005.v - 1M-BIT CMOS Serial Flash
*
*            COPYRIGHT 2005 BY Macronix International Corporation
*
*-----------------------------------------------------------------------------
*  Creation Date: 2005/9/
*  Doc		: REV.1.0, JUL. 29, 2005
*  VERSION      : V 0.01
*  Note         : This model do not include test mode 
*  Description  : 
*                 module flash_1m -> behavior model for the 1M serial flash
*-----------------------------------------------------------------------------
*/

`timescale 1ns / 10ps
      // Define controller state
      `define    STANDBY_STATE          0
      `define    ACTION_STATE           1
      `define    CMD_STATE              2
      `define    BAD_CMD_STATE          3
      `define    SECTOR_ERASE_TIME         90_000_000  //     90 ms
      `define    BLOCK_ERASE_TIME       1_000_000_000  //     1 s
      `define    CHIP_ERASE_TIME        2_500_000_000  //     3 s
      `define    PROG_TIME                  1_400_000  //     1.4 ms
      // Time delay to write instruction 
      `define    PUW_TIME                  10_000_000  //    10 ms  

`define    MX25L1005 //MX25L1005

`ifdef MX25L2005 
       `define    FLASH_ADDR 18 
       `define    SECTOR_ADDR 6
       `define    BLOCK_ADDR 2
`else  
       `ifdef MX25L1005
             `define    FLASH_ADDR  17 
             `define    SECTOR_ADDR 5
             `define    BLOCK_ADDR 1
       `endif  
`endif       


`define FLASH_TYPE 0
module flash_1m( SCLK, CS, SI, SO, WP, HOLD);

    //---------------------------------------------------------------------
    // Declaration of ports (input,output, inout)
    //---------------------------------------------------------------------
    input  SCLK,    // Signal of Clock Input
           CS,      // Chip select (Low active)
           SI,      // Serial Data Input
           WP,      // Write Protection:connect to GND
           HOLD;    // 
    output SO;      // Serial Data Output
           
    //---------------------------------------------------------------------
    // Declaration of parameter (parameter)
    //---------------------------------------------------------------------
    parameter  FLASH_SIZE  = 1 << `FLASH_ADDR,  // 512K bytes
               SECTOR_SIZE = 1 << 12,           // 4K bytes
               BLOCK_SIZE  = 1 << 16,           // 64K bytes
               tAA     = 12,                    // Access Time [ns],tAA = tSKH + tCLQ
               tC      = 14,                    // Clock Cycle Time,tC  = tSKH + tSKL 
               //tSKH   =  9,                   // Clock High Time
               //tSKL   =  9,                   // Clock Low Time
               tSHQZ   =  6,                    // CS High to SO Float Time [ns]
               tCLQV   =  1,                    // Clock Low to Output Valid
               tDP     =      	3_000,          // 3 us
               tRES1   =  	3_000,          // 3 us
               tRES2   =  	1_800,          // 1.8 us
               tW_SRWD =  15_000_000,           // 15 ms
               tW_BP   = 500_000_000,           // 500 ms
               tW_WIP  =  30_000_000,           //  30 ms
               tW_WEL  =  30_000_000;           //  30 ms
    
    parameter  [7:0]  ID_MXIC   = 8'hc2;
    `ifdef MX25L2005
           parameter  [7:0]  ID_Device   = 8'h11;    // MX25L2005
    `else 
           `ifdef MX25L1005
                  parameter  [7:0]  ID_Device   = 8'h10;    // MX25L1005
           `endif
    `endif
    
    
    parameter  [7:0]  WREN = 8'h06, //WriteEnable   = 8'h06,
                      WRDI = 8'h04, //WriteDisable  = 8'h04,
                      RDID = 8'h9F, //ReadID        = 8'h9f,
                      RDSR = 8'h05, //ReadStatus    = 8'h05,
                      WRSR = 8'h01, //WriteStatus   = 8'h01,
                      READ = 8'h03, //ReadData      = 8'h03,
                      FASTREAD = 8'h0b, //FastReadData  = 8'h0b,
                      PARALLELMODE = 8'h55, //PallelMode    = 8'h55,
                      SE = 8'h20, //SectorErase   = 8'h20
                      BE = 8'hd8, //BlockErase    = 8'hd8
                      CE1 = 8'h60, //ChipErase     = 8'h60,//8'hc7
                      CE2 = 8'hc7, //ChipErase     = 8'h60,//8'hc7
                      PP = 8'h02, //PageProgram   = 8'h02,
                      DP = 8'hb9, //DeepPowerDown = 8'hb9,
                      EN4K = 8'ha5, //Enter4kbSector= 8'ha5,
                      EX4K = 8'hb5, //Exit4kbSector = 8'hb5,
                      RDP  = 8'hab, //ReleaseFromDeepPowerDwon = 8'hab,
                      RES  = 8'hab, //ReadElectricID = 8'hab,
                      REMS = 8'h90; //ReadElectricManufacturerDeviceID = 90;


    //---------------------------------------------------------------------
    // Declaration of internal-register (reg)
    //---------------------------------------------------------------------

    // memory array
    reg  [7:0]       ROM_ARRAY[ 0:FLASH_SIZE-1 ];
    reg  [7:0]       status_reg;       // Status Register
    reg  [256*8-1:0] si_reg;           // temp reg to store serial in
    reg  [23:0]      address;          // 
    reg  [256*8-1:0] psi_reg;          // temp reg to store serial in
    reg  [256*8-1:0] dummy_A;          // page size
    reg  [12:0]      segment_addr;     // A[20:8] segment address
    reg  [7:0]       offset_addr;      // A[7:0] means 256 bytes
    reg  [`SECTOR_ADDR - 1:0]       sector;           // means 128 sectors

    reg  [2:0]       state, rState;
    reg  ENB_S0,ENB_P0,ENB_S1,ENB_P1;
    reg  SO_reg;
    reg  PO_reg6,PO_reg5,PO_reg4,PO_reg3,PO_reg2,PO_reg1,PO_reg0;
    reg  latch_SO,latch_PO6,latch_PO5,latch_PO4,latch_PO3,latch_PO2,latch_PO1,latch_PO0;
    reg  pp_p;
    reg  pmode;        // parallel mode
    reg  dpmode;       // deep power down mode
    reg  enter4kbmode; // enter 4kb mode
    reg  chip_erase_oe;
    integer i,chip_erase_count;
    wire wp_reg = WP;
    assign SO = pp_p ? 8'bz : SO_reg;
    always @(SO) begin
          latch_SO = SO;
          //latch_PO6 = PO6;
    end
    /*-------------------------------------------------------*/
    /*  initial variable value                               */
    /*-------------------------------------------------------*/    
    initial
    begin
         pp_p          = 1'b0;
         enter4kbmode  = 1'b0;
         dpmode        = 1'b0;
         pmode         = 1'b0;
         chip_erase_oe = 1'b0;
         chip_erase_count = 0;
         status_reg    = 8'b0000_0000;
         {ENB_S0,ENB_P0,ENB_S1,ENB_P1} = {1'b1,1'b0,1'b0,1'b0};
         i = 0;
    end
    /*-------------------------------------------------------*/
    /*  latch signal SI into si_reg                          */
    /*-------------------------------------------------------*/
    always @( posedge SCLK ) begin
        if ( $time > `PUW_TIME ) begin
            if ( CS == 1'b0 ) begin
                { si_reg[ 256*8-1:0 ] } = { si_reg[ 256*8-2:0 ], SI };
            end
        end 
    end
    /*-------------------------------------------------------*/
    /*  chip erase process                                   */
    /*-------------------------------------------------------*/
    always @( posedge chip_erase_oe ) begin
        chip_erase_count = 0;
        for ( chip_erase_count = 0;chip_erase_count<=`CHIP_ERASE_TIME;chip_erase_count=chip_erase_count+1)
        begin
        #1000;
        end
        //WIP : write in process bit
        chip_erase_count = 0;
        for( chip_erase_count = 0; chip_erase_count < FLASH_SIZE; chip_erase_count = chip_erase_count+1 )
        begin
            ROM_ARRAY[ chip_erase_count ] <= 8'hff;
        end
        chip_erase_count = 0;
        //WIP : write in process bit
        status_reg[0] <= 1'b0;//WIP
        //WEL : write enable latch
        status_reg[1] <= 1'b0;//WEL
        chip_erase_oe = 1'b0;
    end    
    /*-------------------------------------------------------*/
    /*  Finite state machine to control Flash operation      */
    /*-------------------------------------------------------*/
    always @( posedge SCLK or posedge CS ) begin
        if ( CS == 1'b1 ) begin    // Chip Disable
            state <= #(tC-1) `STANDBY_STATE;
           SO_reg <= #tCLQV 1'bz;
        end
        else begin    // Chip Enable
            case ( state )
                `STANDBY_STATE: begin
                    SO_reg <= #tCLQV 1'bz;
                    dummy_cycle( 6 );
                    state <= #(tC-1) `CMD_STATE;
                end

                `CMD_STATE: begin
                    #1;
                    if ( si_reg[ 7:0 ] == WREN ) begin
                        //$display( $stime, " Enter Write Enable Function ...");
                        write_enable;
                        //$display( $stime, " Leave Write Enable Function ...");
                        state <= `STANDBY_STATE;
                    end 

                    else if ( si_reg[ 7:0 ] == WRDI ) begin
                        //$display( $stime, " Enter Write Disable Function ...");
                        write_disable;
                        //$display( $stime, " Leave Write Disable Function ...");
                        state <= `STANDBY_STATE;                        
                    end
                    
                    else if ( si_reg[ 7:0 ] == RDID ) begin
                        //$display( $stime, " Enter Read ID Function ...");
                        read_id;
                        //$display( $stime, " Leave Read ID Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    else if ( si_reg[ 7:0 ] == RDSR ) begin
                        //$display( $stime, " Enter Read Status Function ...");
                        read_status ( status_reg );
                        //$display( $stime, " Leave Read Status Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    else if ( si_reg[ 7:0 ] == WRSR ) begin
                        //$display( $stime, " Enter Write Status Function ...");
                        write_status;
                        //$display( $stime, " Leave Write Status Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    else if ( si_reg[ 7:0 ] == READ ) begin
                        //$display( $stime, " Enter Read Data Function ...");
                        dummy_cycle( 24 );      // to get 24 bits address
                        read_data;
                        //$display( $stime, " Leave Read Data Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    else if ( si_reg[ 7:0 ] == FASTREAD ) begin
                        //$display( $stime, " Enter Fast Read Data Function ...");
                        dummy_cycle( 24 );      // to get 24 bits address
                        fast_read_data;
                        //$display( $stime, " Leave Fast Read Data Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    //else if ( si_reg[ 7:0 ] == PARALLELMODE ) begin
                    //    //$display( $stime, " Enter Parallel Mode Function ...");
                    //    parallel_mode;
                    //    //$display( $stime, " Leave Parallel Mode Function ...");
                    //    state <= `STANDBY_STATE;                        
                    //end

                    else if ( si_reg[ 7:0 ] == SE ) begin
                        //$display( $stime, " Enter Sector Erase Function ...");
                        dummy_cycle( 24 );      // to get 24 bits address
                        sector_erase;
                        //$display( $stime, " Leave Sector Erase Function ...");
                        state <= `STANDBY_STATE;                        
                    end

                    else if ( si_reg[ 7:0 ] == BE ) begin
                        //$display( $stime, " Enter Block Erase Function ...");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区久久久| 美女脱光内衣内裤视频久久网站 | 精品剧情v国产在线观看在线| 亚洲成人自拍网| 欧美一区二区视频在线观看2020| 日欧美一区二区| 日韩免费在线观看| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美国产77777| 欧美另类久久久品| 国产精品18久久久久久vr| 日韩一区在线免费观看| 欧美喷潮久久久xxxxx| 国产中文一区二区三区| 自拍偷拍欧美精品| 欧美福利视频导航| 国产精品18久久久久久久网站| 亚洲视频免费看| 欧美高清视频一二三区| 国产成人在线视频免费播放| 亚洲乱码国产乱码精品精小说| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 免费久久99精品国产| 日本一区二区高清| 91精品国产综合久久精品| 国产精品香蕉一区二区三区| 亚洲一区二区三区在线看| 日韩精品专区在线| 91猫先生在线| 精品综合免费视频观看| 一区二区三区日韩欧美精品| wwwwxxxxx欧美| 在线中文字幕一区二区| 国产精品综合视频| 亚洲va国产天堂va久久en| 久久久久一区二区三区四区| 欧美日韩一级二级| 波多野结衣在线一区| 免费观看在线综合| 亚洲最新在线观看| 欧美高清在线一区| 欧美tickling挠脚心丨vk| 欧洲色大大久久| zzijzzij亚洲日本少妇熟睡| 蜜臀av国产精品久久久久| 一区二区不卡在线播放| 国产精品亲子伦对白| 日韩精品一区二区三区四区| 欧洲视频一区二区| 91免费版在线| 懂色av一区二区夜夜嗨| 国产综合成人久久大片91| 午夜不卡av在线| 伊人色综合久久天天| 国产精品系列在线| 国产欧美精品一区aⅴ影院| 日韩情涩欧美日韩视频| 欧美日韩三级在线| 91国偷自产一区二区三区观看| 国产精品自拍三区| 久久国产精品72免费观看| 天堂在线亚洲视频| 亚洲成人激情综合网| 亚洲在线一区二区三区| 亚洲欧美另类图片小说| 亚洲欧美中日韩| 2022国产精品视频| 久久亚洲春色中文字幕久久久| 欧美一级生活片| 日韩欧美一卡二卡| 91精品国产高清一区二区三区| 欧美在线观看一区二区| 色天使久久综合网天天| 色素色在线综合| 在线视频你懂得一区| 欧美私模裸体表演在线观看| 在线看不卡av| 欧美精品乱码久久久久久| 欧美老人xxxx18| 欧美一三区三区四区免费在线看| 欧美精品粉嫩高潮一区二区| 欧美一区二区三区视频免费 | 91麻豆123| 日本韩国精品一区二区在线观看| 一本色道综合亚洲| 欧美在线看片a免费观看| 在线播放日韩导航| 日韩久久久精品| 国产日韩精品视频一区| 中文字幕中文乱码欧美一区二区 | 亚洲成a人v欧美综合天堂 | 亚洲乱码中文字幕综合| 一区二区三区av电影| 爽爽淫人综合网网站| 日本欧美一区二区三区乱码| 精品影院一区二区久久久| 国产乱理伦片在线观看夜一区| 成人污污视频在线观看| 色综合久久久久久久久| 7777精品伊人久久久大香线蕉的| 日韩欧美国产精品| 国产精品麻豆欧美日韩ww| 亚洲午夜精品17c| 精品一区二区三区视频| 99精品视频在线免费观看| 7777精品伊人久久久大香线蕉最新版| 欧美大片一区二区| 中文字幕在线免费不卡| 午夜影视日本亚洲欧洲精品| 国产在线视频不卡二| 91蝌蚪porny| 欧美电影精品一区二区| 亚洲欧洲成人av每日更新| 日韩高清不卡一区二区三区| 成人黄色综合网站| 717成人午夜免费福利电影| 国产精品每日更新| 日本一不卡视频| www.亚洲人| 精品国产亚洲在线| 亚洲国产日韩精品| 国产69精品久久久久毛片| 欧美日韩和欧美的一区二区| 欧美激情综合在线| 秋霞成人午夜伦在线观看| 99精品热视频| 久久亚洲一区二区三区明星换脸 | 亚洲欧美激情视频在线观看一区二区三区| 天天色天天爱天天射综合| 成人小视频免费在线观看| 欧美精品亚洲二区| 亚洲日本在线看| 国产精品亚洲专一区二区三区| 欧美日韩一区二区电影| 亚洲人吸女人奶水| 成人性生交大片免费看视频在线 | 成人av电影免费在线播放| 欧美精品乱码久久久久久按摩| 1000精品久久久久久久久| 国内精品免费在线观看| 欧美剧在线免费观看网站| 中文字幕欧美一区| 高清在线不卡av| 日韩欧美高清在线| 亚洲成av人影院| 欧美性受极品xxxx喷水| 亚洲日本电影在线| 成人国产精品免费网站| 精品久久久网站| 久久99精品国产麻豆婷婷洗澡| 欧美色国产精品| 亚洲一区二区三区四区在线观看| 99久久精品免费观看| 国产精品成人在线观看| 丰满亚洲少妇av| 国产精品欧美一区二区三区| 成人综合激情网| 中文子幕无线码一区tr| 国产另类ts人妖一区二区| 精品国产一二三区| 久久99精品视频| 亚洲精品一区二区三区影院| 久久国产综合精品| 欧美一级一区二区| 免费观看久久久4p| 日韩欧美黄色影院| 麻豆91精品视频| 2021中文字幕一区亚洲| 国产麻豆精品一区二区| 国产日韩一级二级三级| 成人黄色国产精品网站大全在线免费观看| 国产欧美中文在线| 99久久精品免费看| 亚洲综合在线五月| 欧美精品乱码久久久久久按摩| 日韩精品午夜视频| 精品电影一区二区| 国产精品香蕉一区二区三区| 国产精品久久一级| 在线视频一区二区三| 日韩电影在线观看网站| 精品少妇一区二区三区日产乱码 | 亚洲成a天堂v人片| 欧美一区二区精品在线| 国精品**一区二区三区在线蜜桃| 精品奇米国产一区二区三区| 国产精品综合在线视频| 亚洲欧美成人一区二区三区| 欧美日韩精品久久久| 精品亚洲aⅴ乱码一区二区三区| 国产欧美中文在线| 欧洲中文字幕精品| 久久草av在线| 最新国产成人在线观看| 欧美日韩国产成人在线91| 激情综合网激情| 一区二区三区日韩在线观看| 日韩一区二区三区四区五区六区| 国产91精品一区二区麻豆亚洲| 伊人色综合久久天天人手人婷|