⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 am29lv160d.v

📁 在逻辑的系统仿真中使用的FLASH模型(AMD的Am29lv160d)
💻 V
📖 第 1 页 / 共 5 页
字号:
////////////////////////////////////////////////////////////////////////////////  File name : am29lv160d.v////////////////////////////////////////////////////////////////////////////////  Copyright (C) 2003, 2004 Spansion, LLC.////  MODIFICATION HISTORY :////  version:  | author:        | % date:   | changes made://    V0.1    J.Bogosavljevic   03 Sept 01  Initial//    v0.2    J.BOgosavljevic   03 Sept 02  FSM modified, RY_zd generation//                                          modified, timings edited//    v0.3    J.Bogosavljevic   03 Oct 08  Handleing TimingModel changed//    v0.4    J.Bogosavljevic   03 Oct 31//                                       1) read is modified so DQ2 toggles//                                          only if sector selected for erasure//                                          is read.//                                         -if sector that is not selected for//                                          erasure is read DQ2 stays does//                                          not change vaule//                                        2) CTMOUT//                                        3) path delays from OE and CE to DATA//                                           modified//                                        4) path delay from DQ15 to DQ0 when//                                           byte mode added//                                        5) pulse watch modified//    v0.5    J.Bogosavljevic   03 Dec 10  RY changend to open drain//                                         multidim arrays removed (Mem and//                                         sssa and ssea)//    v0.6    J.Bogosavljevic   03 Dec 16  Memory preload moved to initial//                                         process//                                         current_state generation modified//    v0.7    J.Bogosavljevic   03 Dec 19  Memory preload modified, same sdf//                                         for modelsim and NCsim//    v0.8     J.Bogosavljevic  04 Feb 27 - elapsed_erase timer suspended as//                                          soon as erase suspend command issued//    v0.9     J.Bogosavljevic  04 Apr 29 - CTMOUT bug fix//                                        - tpd_BYTENeg_Dq0 removed////////////////////////////////////////////////////////////////////////////////  PART DESCRIPTION:////  Library:        AMD//  Technology:     Flash Memory//  Part:           AM29LV160D////  Description:   16Mbit(2M x 8-Bit/1M x 16-Bit) CMOS Boot Sector Flash Memory//                 Boot sector determined by TimingModel generic//////////////////////////////////////////////////////////////////////////////////  Known Bugs://////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// MODULE DECLARATION                                                       ////////////////////////////////////////////////////////////////////////////////`timescale 1 ns/1 nsmodule am29lv160d(    A19      ,    A18      ,    A17      ,    A16      ,    A15      ,    A14      ,    A13      ,    A12      ,    A11      ,    A10      ,    A9       ,    A8       ,    A7       ,    A6       ,    A5       ,    A4       ,    A3       ,    A2       ,    A1       ,    A0       ,                 DQ15     ,    DQ14     ,    DQ13     ,    DQ12     ,    DQ11     ,    DQ10     ,    DQ9      ,    DQ8      ,    DQ7      ,    DQ6      ,    DQ5      ,    DQ4      ,    DQ3      ,    DQ2      ,    DQ1      ,    DQ0      ,                 CENeg    ,    OENeg    ,    WENeg    ,    RESETNeg ,    BYTENeg  ,    RY       );////////////////////////////////////////////////////////////////////////// Port / Part Pin Declarations////////////////////////////////////////////////////////////////////////    input  A19  ;    input  A18  ;    input  A17  ;    input  A16  ;    input  A15  ;    input  A14  ;    input  A13  ;    input  A12  ;    input  A11  ;    input  A10  ;    input  A9   ;    input  A8   ;    input  A7   ;    input  A6   ;    input  A5   ;    input  A4   ;    input  A3   ;    input  A2   ;    input  A1   ;    input  A0   ;    inout  DQ15  ;     inout  DQ14  ;     inout  DQ13  ;     inout  DQ12  ;     inout  DQ11  ;     inout  DQ10  ;     inout  DQ9   ;     inout  DQ8   ;     inout  DQ7   ;     inout  DQ6   ;     inout  DQ5   ;     inout  DQ4   ;     inout  DQ3   ;     inout  DQ2   ;     inout  DQ1   ;     inout  DQ0   ;                      input  CENeg    ;    input  OENeg    ;    input  WENeg    ;    input  RESETNeg ;    input  BYTENeg  ;    output RY       ;// interconnect path delay signals        wire  A19_ipd  ;         wire  A18_ipd  ;         wire  A17_ipd  ;         wire  A16_ipd  ;         wire  A15_ipd  ;         wire  A14_ipd  ;         wire  A13_ipd  ;         wire  A12_ipd  ;    wire  A11_ipd  ;         wire  A10_ipd  ;    wire  A9_ipd   ;         wire  A8_ipd   ;         wire  A7_ipd   ;    wire  A6_ipd   ;         wire  A5_ipd   ;         wire  A4_ipd   ;         wire  A3_ipd   ;         wire  A2_ipd   ;         wire  A1_ipd   ;         wire  A0_ipd   ;    wire [19 : 0] A;    assign A = {                A19_ipd,                                A18_ipd,                                A17_ipd,                                A16_ipd,                                A15_ipd,                                A14_ipd,                                A13_ipd,                A12_ipd,                                A11_ipd,                                A10_ipd,                                A9_ipd,                                 A8_ipd,                                 A7_ipd,                                 A6_ipd,                                 A5_ipd,                                 A4_ipd,                                 A3_ipd,                A2_ipd,                                 A1_ipd,                                 A0_ipd };                                                                            wire  DQ15_ipd  ;        wire  DQ14_ipd  ;        wire  DQ13_ipd  ;        wire  DQ12_ipd  ;        wire  DQ11_ipd  ;        wire  DQ10_ipd  ;    wire  DQ9_ipd   ;        wire  DQ8_ipd   ;        wire  DQ7_ipd   ;    wire  DQ6_ipd   ;        wire  DQ5_ipd   ;    wire  DQ4_ipd   ;             wire  DQ3_ipd   ;             wire  DQ2_ipd   ;    wire  DQ1_ipd   ;             wire  DQ0_ipd   ;          wire [15 : 0 ] DIn;    assign DIn = {DQ15_ipd,                   DQ14_ipd,                  DQ13_ipd,                  DQ12_ipd,                                 DQ11_ipd,                                 DQ10_ipd,                                 DQ9_ipd,                                  DQ8_ipd,                                  DQ7_ipd,                                  DQ6_ipd,                                  DQ5_ipd,                                  DQ4_ipd,                                  DQ3_ipd,                                  DQ2_ipd,                                  DQ1_ipd,                                  DQ0_ipd };    wire [15 : 0 ] DOut;    assign DOut = {DQ15,                   DQ14,                                 DQ13,                                 DQ12,                                 DQ11,                  DQ10,                                 DQ9,                                  DQ8,                                  DQ7,                                  DQ6,                                  DQ5,                                  DQ4,                                  DQ3,                                  DQ2,                                  DQ1,                                  DQ0 };                                                                                wire  CENeg_ipd    ;    wire  OENeg_ipd    ;          wire  WENeg_ipd    ;    wire  RESETNeg_ipd ;          wire  BYTENeg_ipd  ;//  internal delays    reg HANG_out    ; // Program/Erase Timing Limit    reg HANG_in     ;    reg START_T1    ; // Start TimeOut    reg START_T1_in ;    reg CTMOUT      ; // Sector Erase TimeOut    reg CTMOUT_in   ;    reg READY_in    ;    reg READY       ; // Device ready after reset    wire  DQ15_zd  ;    wire  DQ14_zd  ;    wire  DQ13_zd  ;    wire  DQ12_zd  ;    wire  DQ11_zd  ;    wire  DQ10_zd  ;    wire  DQ9_zd   ;    wire  DQ8_zd   ;    wire  DQ7_zd   ;    wire  DQ6_zd   ;    wire  DQ5_zd   ;    wire  DQ4_zd   ;    wire  DQ3_zd   ;    wire  DQ2_zd   ;    wire  DQ1_zd   ;    wire  DQ0_zd   ;    reg [15 : 0] DOut_zd;    assign {DQ15_zd,            DQ14_zd,            DQ13_zd,            DQ12_zd,            DQ11_zd,            DQ10_zd,            DQ9_zd,            DQ8_zd,            DQ7_zd,            DQ6_zd,            DQ5_zd,            DQ4_zd,            DQ3_zd,            DQ2_zd,            DQ1_zd,            DQ0_zd  } = DOut_zd;    reg RY_zd;    parameter UserPreload     = 1'b0;    parameter mem_file_name   = "none";    parameter prot_file_name  = "none";    parameter TimingModel = "DefaultTimingModel";    parameter PartID    = "AM29LV160D";    parameter MaxData   = 255;    parameter SecSize   = 65535;    parameter SecNum    = 31;    parameter SubSecNum = 3;    parameter HiAddrBit = 19;    parameter MemSize   = (SecNum+1) *(SecSize+1)-1;    //varaibles to resolve if bottom or top architecture is used    reg [20*8-1:0] tmp_timing;//stores copy of TimingModel    reg [20*8-1:0] tmp1_timing;//stores copy of TimingModel    reg [7:0] tmp_char;//stores "t" or "b" character    integer found = 1'b0;    // powerup    reg PoweredUp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -