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

📄 nand01gr3b.vhd

📁 nand flash NAND01GR3B (st)的仿真模型 (VHDL) 的
💻 VHD
📖 第 1 页 / 共 5 页
字号:
--   --           _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/--         _/                   _/  ____________________________________________ --         _/                  _/  /                                           / --         _/_/               _/  /                                NAND01GR3B / --          _/_/_/           _/  /                                           /  --             _/_/         _/  /                                     1Gbit / --              _/_/       _/  /        8 bit, 2112 Byte Page, 1.8 V, NAND / --                _/      _/  /                                           / --                _/     _/  /                     VHDL Behavioral Model / --                _/    _/  /                               Version 3.0 / --             _/_/    _/  /                                           /--          _/_/_/    _/  /     Copyright (c) 2006 STMicroelectronics / --        _/_/_/     _/  /___________________________________________/ --  _/_/_/_/_/      _/    --  ----******************************************************************************----******************************************************************************----******************************************************************************----******************************************************************************----                          CORE_SC ENTITY                                      ----******************************************************************************----******************************************************************************----******************************************************************************----******************************************************************************--LIBRARY IEEE;   Use IEEE.std_logic_1164.all;   Use IEEE.std_logic_TextIO.all;   Use IEEE.std_logic_arith.all;LIBRARY Work;    Use work.UserData.all;    Use work.CUIcommandData.all;    Use work.data.all;    Use work.TimingData.all;    Use work.StringLib.all;    Use work.BlockLib.all;    Use work.CoreComponents.all;    Use work.ResFunctions.all;ENTITY NANDxxxxxBx IS          GENERIC (     devId           : natural;  -- used in multiChip devices                 isDebug         : boolean;                MemoryFile_Name : String;                            timingCheck_on  : Boolean  );  PORT  (      I_O       : inout IObus_type;      E_N       : in std_logic;      R_N       : in std_logic;      W_N       : in std_logic;      AL        : in std_logic;      CL        : in std_logic;      WP_N      : in std_logic;      PRL       : in std_logic;      RB_N      : out std_logic;      Vss       : in real;      Vdd       : in real  );        END NANDxxxxxBx ;ARCHITECTURE behavior OF NANDxxxxxBx IS-- === Internal Signal Declaration ===-- Data BusSignal  DataBusOut    : IObus_type;Signal  DataBusBUFFER : IObus_type;-- Address BusSignal  hold_Address      : Address_type;Signal  hold_block        : BlockAddress_type;-- Address BusSignal  hold_Command  : IObus_type;-- Chip EnableSignal  CE_N      : Std_Logic;-- Data Write EnableSignal  WLE_N      : Std_Logic;-- Data Read Enable Signal  RLE_N      : Std_Logic;-- Address Latch EnableSignal  ALE_N      : Std_Logic;-- Command Latch EnableSignal  CLE_N      : Std_Logic;-- Internal RB_N signal (needed because RB_N is an OUT mode signal, and can't be read by Core's components)Signal  RB_N_int   : std_logic ;-- Interface signals delayed (for syncronization with RLE_N)signal E_N_d1, R_N_d1, W_N_d1 : std_logic;-- is Voltage in RangeSignal  VddOK      : Std_Logic := '1';-- ResetSignal  ResetSoftware : Boolean := false;  signal  PowerUp        : Boolean := false;Signal  Reset          : Boolean := false; -- is TRUE if ResetSoftware or PowerUp are true Signal  isInit         : boolean := true;-- ==== Signal Declaration ==== ---- Kernel SignalSignal  Kernel_Status           : Status_type;Signal  Kernel_Report           : KernelReportGuarded KernelReport_type register;Signal  Kernel_CUIcommand       : Event := False;Signal  Kernel_CommandDecode    : CommandGuarded Command_type register := None;Signal  Kernel_IseqCommand      : IndexCommandGuarded IndexCommand_type register := 1;Signal  Kernel_ReadEvent        : Event := False;Signal  Kernel_ErrorEvent       : EventGuarded ErrorEvent register := 'X';Signal  Kernel_VerifyEvent      : EventTimeGuarded TimeEvent register := 0 ns;Signal  Kernel_LatchAddress     : TimeEvent := 0 ns;Signal  Kernel_ReadTaskComplete : EventTimeGuarded TimeEvent register := 0 ns;Signal  kernel_ReadEventComplete : EventTimeGuarded TimeEvent register := 0 ns;Signal  Kernel_PageComplete     : PageBufferEventGuarded PageBufferEvent register ;Signal  Kernel_BlockLockComplete: EventTimeGuarded TimeEvent register := 0 ns;Signal  Kernel_ReadStatusRegComplete : EventTimeGuarded TimeEvent register := 0 ns;-- Output Buffer Signal  Buffer_task             : BufferTaskGuarded BufferTask_type register;-- Read Array Signal  Read_Status             : Status_type;Signal  Read_mode               : ReadModeGuarded ReadMode_type register;Signal  Read_task               : ReadTaskGuarded ReadTask_type register;-- Page Buffer Signal  PageBuffer_task         : PageBufferTaskGuarded PageBufferTask_type register;-- Page Program Shared Variable isPageProgramCmdCode   : Boolean := false;Shared Variable isFirstData            : Boolean := false;-- ProgramSignal  Program_task            : ProgramTaskGuarded ProgramTask_type register;Signal  Program_Status          : StatusGuarded Status_type register ;-- Cache operationssignal CacheStatus                : CacheStatusGuarded CacheStatus_type register;  Shared Variable isFirstCPoperation     : Boolean := true;-- Copy Back ProgramShared Variable isCopyBackCmdCode      : Boolean := false;Shared Variable waitFirstCopyBackAddress : boolean := false;Signal updateCopyBackMode              : EventTimeGuarded TimeEvent register := 0 ns;Signal isCopyBackMode                  : boolean := false;Signal notActive_cmd                    : boolean := false;-- Cache ReadShared Variable isSR_underCACHEREAD    : Boolean := false;-- Block Lock Signal  BlockLock_task          : BlockLockTaskGuarded BlockLockTask_type register;Signal  BlockLock_Status        : Status_type;Signal  BlockMode_on            : boolean := false; signal  BlockBoundary           : BlockBoundary_type;Signal  SetBlocks               : EventTimeGuarded TimeEvent register;Shared Variable isLatchBlockAddress : boolean := false;Shared Variable isStartBlockAddress : Boolean := false;Shared Variable isEndBlockAddress : Boolean := false;-- EraseSignal  Erase_task                   : EraseTaskGuarded EraseTask_type register;Signal  Erase_Status                 : Status_type;-- Electronic SignatureSignal  Signature_data               : SignatureData_type;-- Status RegisterSignal  StatusRegister_task          : StatusRegisterTaskGuarded StatusRegisterTask_type register;-- DC Digitalizer SignalSignal  VDD_check               : Boolean := false; -- Support DeclarationConstant ColumnAddress0 : Std_Logic_vector(ColumnAddress_range) := (Others => '0' );-- output message used in multichip deviceConstant chip_indication : string := "";--  ===================== Architecture ============================== Begin                              ---------------------------------------------------------------------------- Component Istantation ------------------------------------------------------------------------------------------------------------------------  ist_Kernel_entity : Kernel_entity      generic map ( devId )      Port map ( VDD, Read_status, CacheStatus, Program_Status, Erase_Status, Kernel_Status, Kernel_Report,                  Kernel_LatchAddress, Kernel_VerifyEvent, Kernel_ErrorEvent, Read_mode, Reset );  ist_Read_entity : Read_entity       Generic map ( isDebug, devId )      Port map ( Read_Status, DataBusBUFFER, hold_block, Signature_data, Read_mode, Kernel_ReadEvent, Read_task,                 Kernel_ReadTaskComplete, kernel_ReadEventComplete, BlockLock_task, StatusRegister_task,                  PageBuffer_task, Kernel_PageComplete, Kernel_BlockLockComplete, Kernel_ReadStatusRegComplete,                  Kernel_Status, Kernel_Report, Reset );  ist_Program_entity : Program_entity      Port Map ( Program_Status, Program_Task, BlockLock_task, Kernel_BlockLockComplete, PageBuffer_task, Kernel_PageComplete,                 VDD_check, Kernel_CUIcommand, Reset );  ist_BlockLock_entity : BlockLock_entity      generic map ( devId )      Port map ( BlockLock_task, BlockBoundary, Kernel_BlockLockComplete, BlockLock_status, WP_N, SetBlocks, BlockMode_on,                  Reset );                                  ist_TimingCheck_entity : TimingCheck_entity       Port map ( I_O, E_N, R_N, W_N, AL, CL, WP_N, RB_N_int, timingCheck_on );  ist_OutputBuffer_entity : OutputBuffer_entity       Port map ( DataBusBUFFER, DataBusOut, RLE_N, Buffer_Task, Reset );  ist_Erase_entity : Erase_Entity      port map ( Erase_Status, Erase_Task, PageBuffer_task, Kernel_PageComplete, BlockLock_task, BlockBoundary,                  Kernel_BlockLockComplete, Kernel_CUIcommand, Reset );  ist_StatusRegister_entity : StatusRegister_entity      generic map ( devId )      port map ( Kernel_status, CacheStatus, Read_Status, Kernel_ReadStatusRegComplete, StatusRegister_task,                 Kernel_CUIcommand, WP_N, Reset );   ist_ElectronicSignature_entity : ElectronicSignature_entity      port map ( Signature_data, Reset );  ist_PageBuffer_entity : PageBuffer_entity       Generic map ( MemoryFile_Name, 0 )      Port map ( PageBuffer_task, Kernel_PageComplete, CacheStatus, Program_task, Reset, Program_Status );--------------------------------------------------------------  Command Recognition (CUI decoders istantation)  --------------------------------------------------------------CUIdec_ReadArraySetup: CUIdecoder_entity       generic map (ReadCmdCode_cmd, ReadCmdCode_seqAddr, ReadCmdCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_ReadArrayCfm: CUIdecoder_entity       generic map (ReadCfmCode_cmd, ReadCfmCode_seqAddr, ReadCfmCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_RandomDataOutputSetup: CUIdecoder_entity       generic map (RandomDataOutputCmdCode_cmd, RandomDataOutputCmdCode_seqAddr, RandomDataOutputCmdCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_RandomDataOutputCfm: CUIdecoder_entity       generic map (RandomDataOutputCfmCode_cmd, RandomDataOutputCfmCode_seqAddr, RandomDataOutputCfmCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_CacheRead: CUIdecoder_entity       generic map (CacheRead_cmd, CacheRead_seqAddr, CacheRead_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_ExitCacheRead: CUIdecoder_entity       generic map (ExitCacheRead_cmd, ExitCacheRead_seqAddr, ExitCacheRead_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_PageProgramSetup: CUIdecoder_entity       generic map (PageProgramCmdCode_cmd, PageProgramCmdCode_seqAddr, PageProgramCmdCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_PageProgramCfm: CUIdecoder_entity       generic map (PageProgramCfmCode_cmd, PageProgramCfmCode_seqAddr, PageProgramCfmCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_RandomDataInput: CUIdecoder_entity       generic map (RandomDataInput_cmd, RandomDataInput_seqAddr, RandomDataInput_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_CopyBackProgramSetup: CUIdecoder_entity       generic map (CopyBackProgramCmdCode_cmd, CopyBackProgramCmdCode_seqAddr, CopyBackProgramCmdCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_CopyBackProgramCfm: CUIdecoder_entity       generic map (CopyBackProgramCfmCode_cmd, CopyBackProgramCfmCode_seqAddr, CopyBackProgramCfmCode_CmdLen, true)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, isCopyBackMode);CUIdec_CacheProgramCfm: CUIdecoder_entity       generic map (CacheProgramCfmCode_cmd, CacheProgramCfmCode_seqAddr, CacheProgramCfmCode_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_BlockErase: CUIdecoder_entity       generic map (BlockErase_cmd, BlockErase_seqAddr, BlockErase_CmdLen, false)       port map (hold_Command, Kernel_CUIcommand, Kernel_VerifyEvent, Kernel_CommandDecode, Kernel_IseqCommand, notActive_cmd);CUIdec_ReadStatusRegister: CUIdecoder_entity       generic map (ReadStatusRegister_cmd, ReadStatusRegister_seqAddr, ReadStatusRegister_CmdLen, false)

⌨️ 快捷键说明

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