- added model

git-svn-id: http://moon:8086/svn/vhdl/trunk@1291 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2015-06-10 20:00:51 +00:00
parent 2edaa4d7cb
commit b19c4c2883
14 changed files with 9423 additions and 0 deletions
@@ -0,0 +1,227 @@
##########################################
Date (DD/MM/YYYY) - 22.01.2008.
Model name - S25FL032P
Vendor - Spansion LLC
Publication ID - SPANSION, S25FL064 032P DRS Rev.16 Issue Date: November 7, 2007
VITAL model author - Dragisa Stanojkovic
d-stanojkovic@hdl-dh.com
##########################################
##########################################
INITIAL RELEASE
# Release Label => vital-amd-REL-s25fl032p-2008-01-22-1.tar.gz
# Release Date (DD/MM/YYYY) => 22/01/2008
# Release Version => 1.0
##########################################
RELEASE 1.1
# Release Label => vital-amd-REL-s25fl032p-2008-02-20-2.tar.gz
# Release Date (DD/MM/YYYY) => 20/02/2008
# Release Version => 1.1
# Bugs fixed (from previous release)
- Quad functionality issue
# Files modified (from previous release)
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- model_release_history.txt
##########################################
##########################################
Publication ID - SPANSION, S25FL064 032P DRS Rev.19, 2008
VITAL model author - Dragisa Stanojkovic
d-stanojkovic@hdl-dh.com
##########################################
##########################################
RELEASE 1.2
# Release Label => vital-amd-REL-s25fl032p-2008-03-05-1.tar.gz
# Release Date (DD/MM/YYYY) => 05/03/2008
# Release Version => 1.2
# Bugs fixed (from previous release)
- MPM mode for Dual/Quad High Performance changed
# Files modified (from previous release)
- s25fl032p.ftm
- s25fl032p.ftmv
- s25fl032p_vhdl.sdf
- s25fl032p_verilog.sdf
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- model_release_history.txt
##########################################
##########################################
RELEASE 1.3
# Release Label => vital-amd-REL-s25fl032p-2008-03-20-1.tar.gz
# Release Date (DD/MM/YYYY) => 20/03/2008
# Release Version => 1.3
# Bugs fixed (from previous release)
- MPM mode removed
# Files modified (from previous release)
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- model_release_history.txt
##########################################
##########################################
VITAL model author - Jadranka Stoickov
j-stoickov@hdl-dh.com
##########################################
##########################################
RELEASE 1.4
# Release Label => vital-amd-REL-s25fl032p-2008-08-07-1.tar.gz
# Release Date (DD/MM/YYYY) => 07/08/2008
# Release Version => 1.4
# Bugs fixed (from previous release)
- WEL bit fixed
# Files modified (from previous release)
- s25fl032p.v
- model_release_history.txt
##########################################
##########################################
Publication ID - SPANSION, S25FL032P_00 Rev.01, 2008
VITAL model author - Jadranka Stoickov
j-stoickov@hdl-dh.com
##########################################
##########################################
RELEASE 1.5
# Release Label => vital-amd-REL-s25fl032p-2008-09-16-1.tar.gz
# Release Date (DD/MM/YYYY) => 16/09/2008
# Release Version => 1.5
# Changes made (from previous release)
- alignment to new datasheet
# Files modified (from previous release)
- s25fl032p.ftm
- s25fl032p.ftmv
- s25fl032p_vhdl.sdf
- s25fl032p_verilog.sdf
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- spansion_flash_testbench_struct.pdf
- spansion_flash_test_cases_list.pdf
- model_release_history.txt
##########################################
##########################################
Publication ID - SPANSION, S25FL129_064_032P_DRS Rev.23.2, Oct 13, 2008
VITAL model author - Jadranka Stoickov
j-stoickov@hdl-dh.com
##########################################
##########################################
RELEASE 1.6
# Release Label => vital-amd-REL-s25fl032p-2008-12-15-2.tar.gz
# Release Date (DD/MM/YYYY) => 15/12/2008
# Release Version => 1.6
# Changes made (from previous release)
- alignment to new datasheet
# Files modified (from previous release)
- s25fl032p.ftm
- s25fl032p.ftmv
- s25fl032p_vhdl.sdf
- s25fl032p_verilog.sdf
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- spansion_flash_testbench_struct.pdf
- spansion_flash_test_cases_list.pdf
- model_release_history.txt
##########################################
VITAL model author - Snezana Petrovic
s-petrovic@hdl-dh.com
##########################################
##########################################
RELEASE 1.7
# Release Label => vital-amd-REL-s25fl032p-2009-05-29-1.tar.gz
# Release Date (DD/MM/YYYY) => 29/05/2009
# Release Version => 1.7
# Changes made (from previous release)
- Timing ranges in timing files corrected
# Files modified (from previous release)
- s25fl032p.ftm
- s25fl032p.ftmv
- s25fl032p_vhdl.sdf
- s25fl032p_verilog.sdf
##########################################
##########################################
VITAL model author - Vesna Mancev
v-mancev@hdl-dh.com
##########################################
##########################################
RELEASE 1.8
# Release Label => vital-amd-REL-s25fl032p-2010-09-29-1.tar.gz
# Release Date (DD/MM/YYYY) => 29/09/2010
# Release Version => 1.8
# Changes made (from previous release)
# 1. During the QUAD mode HOLD# input is not monitored for its normal function
# 2. Internal pull-up resistors for HOLD# and WP# inputs are implemented
# Files modified (from previous release)
- s25fl032p.vhd
- s25fl032p.v
##########################################
##########################################
VITAL model author - Vesna Mancev
v-mancev@hdl-dh.com
##########################################
##########################################
RELEASE 1.9
# Release Label => vital-amd-REL-s25fl032p-2011-12-15-1.tar.gz
# Release Date (DD/MM/YYYY) => 15/12/2011
# Release Version => 1.9
# Changes made (from previous release)
- alignment to new datasheet (S25FL032P_00_05, October 5, 2009)
# Files modified (from previous release)
- s25fl032p.ftm
- s25fl032p.ftmv
- s25fl032p_vhdl.sdf
- s25fl032p_verilog.sdf
- s25fl032p.vhd
- s25fl032p.v
- testbench_s25fl032p_vhdl.vhd
- testbench_s25fl032p_verilog.vhd
- spansion_tc_pkg.vhd
- spansion_flash_testbench_struct.pdf
- spansion_flash_test_cases_list.pdf
- model_release_history.txt
##########################################
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,267 @@
<!DOCTYPE FTML SYSTEM "ftml.dtd">
<FTML><HEAD><TITLE>FMF Timing for s25fl032p Parts</TITLE>
<BODY>
<REVISION.HISTORY>
version: | author: | mod date: | changes made:
V1.0 D.Stanojkovic 08 Jan 22 Initial release
V1.1 D.Stanojkovic 08 Mar 05 New timmings added and changed
timming model labeling
V1.2 J.Stoickov 08 Sep 16 Latest datasheet update
V1.3 J.Stoickov 08 Dec 10 Changed timming model labeling
V1.4 S.Petrovic 09 May 29 Timing ranges corrected
V1.5 V.Mancev 11 Dec 13 Latest datasheet update
</REVISION.HISTORY>
<TIMESCALE>1ns</TIMESCALE>
<MODEL>s25fl032p
<FMFTIME>
S25FL032P0XMFI000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for VCC=2.7V to 3.6V, CL=30pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(COND ~dual (IOPATH SCK SO (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8)))
(COND dual (IOPATH SCK SO (6.5:8:9.5) (6.5:8:9.5) () (6.5:8:9.5) () (6.5:8:9.5)))
(COND CSNeg (IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND ~dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH SCK SI (6.5:8:9.5) (6.5:8:9.5) () (6.5:8:9.5) () (6.5:8:9.5)))
(COND dual (IOPATH HOLDNeg SI () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual && CSNeg (IOPATH CSNeg SI () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK HOLDNeg (6.5:8:9.5) (6.5:8:9.5) () (6.5:8:9.5) () (6.5:8:9.5)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg HOLDNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK WPNeg (6.5:8:9.5) (6.5:8:9.5) () (6.5:8:9.5) () (6.5:8:9.5)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg WPNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND fast_rd (negedge SCK)) (4.5))
(WIDTH (COND fast_rd (posedge SCK)) (4.5))
(WIDTH (COND dual_rd (negedge SCK)) (4.5))
(WIDTH (COND dual_rd (posedge SCK)) (4.5))
(WIDTH (COND rd (negedge SCK)) (4.5))
(WIDTH (COND rd (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND RD_EQU_1 (posedge CSNeg)) (10))
(WIDTH (COND RD_EQU_0 (posedge CSNeg)) (50))
(PERIOD (COND fast_rd SCK) (9.6))
(PERIOD (COND rd SCK) (25.0))
(PERIOD (COND rd_jid SCK) (20.0))
(PERIOD (COND dual_rd SCK) (12.5))
)
</TIMING></FMFTIME>
<FMFTIME>
</BODY></FTML>
<FMFTIME>
S25FL032P0XMFI000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for regulated Vcc range VCC=3.0V to 3.6V, CL=30pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(COND ~dual (IOPATH SCK SO (4.5:5.5:6.5) (4.5:5.5:6.5) () (4.5:5.5:6.5) () (4.5:5.5:6.5)))
(COND dual (IOPATH SCK SO (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8)))
(COND CSNeg (IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND ~dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH SCK SI (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8)))
(COND dual (IOPATH HOLDNeg SI () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual && CSNeg (IOPATH CSNeg SI () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK HOLDNeg (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg HOLDNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK WPNeg (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg WPNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND fast_rd (negedge SCK)) (4.5))
(WIDTH (COND fast_rd (posedge SCK)) (4.5))
(WIDTH (COND dual_rd (negedge SCK)) (4.5))
(WIDTH (COND dual_rd (posedge SCK)) (4.5))
(WIDTH (COND rd (negedge SCK)) (4.5))
(WIDTH (COND rd (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND RD_EQU_1 (posedge CSNeg)) (10))
(WIDTH (COND RD_EQU_0 (posedge CSNeg)) (50))
(PERIOD (COND fast_rd SCK) (9.6))
(PERIOD (COND rd SCK) (25.0))
(PERIOD (COND rd_jid SCK) (20.0))
(PERIOD (COND dual_rd SCK) (12.5))
)
</TIMING></FMFTIME>
<FMFTIME>
</BODY></FTML>
<FMFTIME>
S25FL032P0XMFI000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for regulated Vcc range VCC=3.0V to 3.6V, CL=15pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(COND ~dual (IOPATH SCK SO (4.5:5.5:6.5) (4.5:5.5:6.5) () (4.5:5.5:6.5) () (4.5:5.5:6.5)))
(COND dual (IOPATH SCK SO (4.7:5.8:7) (4.7:5.8:7) () (4.7:5.8:7) () (4.7:5.8:7)))
(COND CSNeg (IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND ~dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual (IOPATH SCK SI (4.7:5.8:7) (4.7:5.8:7) () (4.7:5.8:7) () (4.7:5.8:7)))
(COND dual (IOPATH HOLDNeg SI () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8)))
(COND dual && CSNeg (IOPATH CSNeg SI () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK HOLDNeg (4.7:5.8:7) (4.7:5.8:7) () (4.7:5.8:7) () (4.7:5.8:7)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg HOLDNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
(COND dual && QUAD (IOPATH SCK WPNeg (4.7:5.8:7) (4.7:5.8:7) () (4.7:5.8:7) () (4.7:5.8:7)))
(COND dual && CSNeg && QUAD (IOPATH CSNeg WPNeg () () (5.4:6.7:8) () (5.4:6.7:8) ()))
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND fast_rd (negedge SCK)) (4.5))
(WIDTH (COND fast_rd (posedge SCK)) (4.5))
(WIDTH (COND dual_rd (negedge SCK)) (4.5))
(WIDTH (COND dual_rd (posedge SCK)) (4.5))
(WIDTH (COND rd (negedge SCK)) (4.5))
(WIDTH (COND rd (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND RD_EQU_1 (posedge CSNeg)) (10))
(WIDTH (COND RD_EQU_0 (posedge CSNeg)) (50))
(PERIOD (COND fast_rd SCK) (9.6))
(PERIOD (COND rd SCK) (25.0))
(PERIOD (COND rd_jid SCK) (20.0))
(PERIOD (COND dual_rd SCK) (12.5))
)
</TIMING></FMFTIME>
<FMFTIME>
</BODY></FTML>
@@ -0,0 +1,279 @@
<!DOCTYPE FTML SYSTEM "ftml.dtd">
<FTML><HEAD><TITLE>FMF Timing for s25fl032p Parts</TITLE>
<BODY>
<REVISION.HISTORY>
version: | author: | mod date: | changes made:
V1.0 D.Stanojkovic 08 Jan 22 Initial release
V1.1 D.Stanojkovic 08 Mar 05 New timmings added and changed
timming model labeling
V1.2 J.Stoickov 08 Sep 16 Latest datasheet update
V1.3 J.Stoickov 08 Dec 10 Changed timming model labeling
V1.4 S.Petrovic 09 May 29 Timing ranges corrected
V1.5 V.Mancev 11 Dec 13 Latest datasheet update
</REVISION.HISTORY>
<TIMESCALE>1ns</TIMESCALE>
<MODEL>s25fl032p
<FMFTIME>
S25FL032P0XMFI000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_F_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for full Vcc range VCC=2.7V to 3.6V, CL=30pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH SCK SO (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8))
(IOPATH SCK SI (6.5:8:9.5) (6.5:8:9.5) () (6.5:8:9.5) () (6.5:8:9.5))
(IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8))
(IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ())
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND serial_fast (negedge SCK)) (4.5))
(WIDTH (COND serial_fast (posedge SCK)) (4.5))
(WIDTH (COND dual (negedge SCK)) (4.5))
(WIDTH (COND dual (posedge SCK)) (4.5))
(WIDTH (COND serial (negedge SCK)) (4.5))
(WIDTH (COND serial (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND read (posedge CSNeg)) (10))
(WIDTH (COND pgm (posedge CSNeg)) (50))
(PERIOD (COND serial_fast_rd SCK) (9.6))
(PERIOD (COND serial_rd SCK) (25.0))
(PERIOD (COND serial_rd_jid SCK) (20.0))
(PERIOD (COND dual_fast_rd SCK) (12.5))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PP) (DELAY (ABSOLUTE (DEVICE(1200000:1500000:3000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/EP) (DELAY (ABSOLUTE (DEVICE(1000000:1200000:2400000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/SE) (DELAY (ABSOLUTE (DEVICE(40e7:50e7:2e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/BE) (DELAY (ABSOLUTE (DEVICE(25e9:32e9:64e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/WR) (DELAY (ABSOLUTE(DEVICE(50000000:50000000:50000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PU) (DELAY (ABSOLUTE (DEVICE(300000:300000:300000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/DP) (DELAY (ABSOLUTE (DEVICE(10000:10000:10000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PE) (DELAY (ABSOLUTE (DEVICE(20e7:20e7:80e7) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/RES) (DELAY (ABSOLUTE (DEVICE(30000:30000:30000) ) ) )
</TIMING></FMFTIME>
</BODY></FTML>
<FMFTIME>
S25FL032P0XMFI000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_R_30pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for regulated Vcc range VCC=3.0V to 3.6V, CL=30pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH SCK SO (4.5:5.5:6.5) (4.5:5.5:6.5) () (4.5:5.5:6.5) () (4.5:5.5:6.5))
(IOPATH SCK SI (5.4:6.7:8) (5.4:6.7:8) () (5.4:6.7:8) () (5.4:6.7:8))
(IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8))
(IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ())
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND serial_fast (negedge SCK)) (4.5))
(WIDTH (COND serial_fast (posedge SCK)) (4.5))
(WIDTH (COND dual (negedge SCK)) (4.5))
(WIDTH (COND dual (posedge SCK)) (4.5))
(WIDTH (COND serial (negedge SCK)) (4.5))
(WIDTH (COND serial (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND read (posedge CSNeg)) (10))
(WIDTH (COND pgm (posedge CSNeg)) (50))
(PERIOD (COND serial_fast_rd SCK) (9.6))
(PERIOD (COND serial_rd SCK) (25.0))
(PERIOD (COND serial_rd_jid SCK) (20.0))
(PERIOD (COND dual_fast_rd SCK) (12.5))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PP) (DELAY (ABSOLUTE (DEVICE(1200000:1500000:3000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/EP) (DELAY (ABSOLUTE (DEVICE(1000000:1200000:2400000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/SE) (DELAY (ABSOLUTE (DEVICE(40e7:50e7:2e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/BE) (DELAY (ABSOLUTE (DEVICE(25e9:32e9:64e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/WR) (DELAY (ABSOLUTE(DEVICE(50000000:50000000:50000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PU) (DELAY (ABSOLUTE (DEVICE(300000:300000:300000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/DP) (DELAY (ABSOLUTE (DEVICE(10000:10000:10000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PE) (DELAY (ABSOLUTE (DEVICE(20e7:20e7:80e7) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/RES) (DELAY (ABSOLUTE (DEVICE(30000:30000:30000) ) ) )
</TIMING></FMFTIME>
</BODY></FTML>
<FMFTIME>
S25FL032P0XMFI000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFI013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFI013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XMFV013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV000_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV001_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV003_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV010_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV011_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XNFV013_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI020_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI023_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI030_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHI033_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV020_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV023_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV030_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
S25FL032P0XBHV033_R_15pF<SOURCE> Spansion, S25FL032P_00_05, October 5, 2009 </SOURCE>
<COMMENT>The values listed are for regulated Vcc range VCC=3.0V to 3.6V, CL=15pF,
Industrial Ta=-40 to +85 Celsius</COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH SCK SO (4.5:5.5:6.5) (4.5:5.5:6.5) () (4.5:5.5:6.5) () (4.5:5.5:6.5))
(IOPATH SCK SI (4.7:5.8:7) (4.7:5.8:7) () (4.7:5.8:7) () (4.7:5.8:7))
(IOPATH HOLDNeg SO () () (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8) (5.4:6.7:8))
(IOPATH CSNeg SO () () (5.4:6.7:8) () (5.4:6.7:8) ())
))
(TIMINGCHECK
(SETUP CSNeg SCK (3))
(SETUP HOLDNeg SCK (3))
(SETUP SI SCK (3))
(SETUP WPNeg CSNeg (20))
(HOLD CSNeg SCK (3))
(HOLD HOLDNeg SCK (3))
(HOLD SI SCK (2))
(HOLD WPNeg CSNeg (100))
(WIDTH (COND serial_fast (negedge SCK)) (4.5))
(WIDTH (COND serial_fast (posedge SCK)) (4.5))
(WIDTH (COND dual (negedge SCK)) (4.5))
(WIDTH (COND dual (posedge SCK)) (4.5))
(WIDTH (COND serial (negedge SCK)) (4.5))
(WIDTH (COND serial (posedge SCK)) (4.5))
(WIDTH (COND rd_jid (negedge SCK)) (4.5))
(WIDTH (COND rd_jid (posedge SCK)) (4.5))
(WIDTH (COND read (posedge CSNeg)) (10))
(WIDTH (COND pgm (posedge CSNeg)) (50))
(PERIOD (COND serial_fast_rd SCK) (9.6))
(PERIOD (COND serial_rd SCK) (25.0))
(PERIOD (COND serial_rd_jid SCK) (20.0))
(PERIOD (COND dual_fast_rd SCK) (12.5))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PP) (DELAY (ABSOLUTE (DEVICE(1200000:1500000:3000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/EP) (DELAY (ABSOLUTE (DEVICE(1000000:1200000:2400000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/SE) (DELAY (ABSOLUTE (DEVICE(40e7:50e7:2e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/BE) (DELAY (ABSOLUTE (DEVICE(25e9:32e9:64e9) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/WR) (DELAY (ABSOLUTE(DEVICE(50000000:50000000:50000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PU) (DELAY (ABSOLUTE (DEVICE(300000:300000:300000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/DP) (DELAY (ABSOLUTE (DEVICE(10000:10000:10000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/PE) (DELAY (ABSOLUTE (DEVICE(20e7:20e7:80e7) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE %LABEL%/RES) (DELAY (ABSOLUTE (DEVICE(30000:30000:30000) ) ) )
</TIMING></FMFTIME>
</BODY></FTML>
@@ -0,0 +1,10 @@
SET sdffile_suffix .sdf
SET use_global_timing_dir false
SET timingfile_dir /user/USERNAME/CreateSDF
SET timingfile_suffix .ftm
SET time_scale 1ns
SET local_path .
SET vendor MODELSIM_HOME
SET diagnostics on
SET vhdl_file testbench.vhd
SET lwb false
@@ -0,0 +1,462 @@
#!/usr/local/bin/perl
#
# mk_sdf : Perl replacement for C mk_sdf
#
# Copyright (C) 2000, 1999 Free Model Foundry; http:/vhdl.org/fmf/
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# Author : R. Munden
# Date : 20001115
# Version : 2.0.4
#
# Revision history:
# 2.0: 19990702
# o Intial release of perl version
# 2.0.1: 19990722
# o fixed problem with . in path for TimingModels
# 2.0.2: 20000616
# o changed instance search to work with Mentor
# 2.0.3: 20001115
# o changed to parse ":" without leading space
# o fixed problem with . in path for TimingModels again
# 2.0.4: 20030405
# o chaged SDF version to 3.0
#
#################################################################
#
# command line arguments:
# ARGV[0] - name of VHDL netlist
# global variables:
# %component_list - list of instance names by component name
# %instance_isin - list architectures by instances contained therein
# %instance_comp - list of component names by instance name
# %comp_lib - library each component (by name) is configured to
# @instance_list - array of all instance names in design in order found
$version = "2.0.4";
$design_name = '';
$timing_dir = '';
$diags = "off";
%keywords = (architecture => 1,
component => 1,
timingmodel => 1);
# INPUT files
$CMD = "mk_sdf.cmd";
$VHD = ''; # name of VHDL netlist
# OUTPUT files
$RFV = "/tmp/short.vhd"; # reformatted VHDL
$sdf_file = ''; # name of SDF file
&read_cmd_file;
&get_names;
&reformat;
open INPUT, $RFV;
@lines = <INPUT>;
close INPUT;
$current_architecture = "";
foreach $line (@lines)
{
@words = split / /, $line;
foreach $word (@words)
{
$keywords{$word} == "1" and do { &$word(@words);};
if ($component_list{$word})
{
$line =~ /(.+) : $word/ and do {
if ($1 !~ /for/) { # instantiation found
$component_list{$word} = $component_list{$word} . $1;
push (@instance_list, $1);
$instance_name = $1;
}
};
$instance_comp{$1} = $word;
$instance_isin{$1} = $current_architecture;
if ( $diags ne off ) {
print "reading instance $instance_name: $word in $current_architecture\n";
}
$line =~ /for all : $word use entity (.+)/ and do
{
@config = split(/\./, $1);
$comp_lib{$word} = $config[0];};
}
}
}
if ( $diags ne off ) {
print "finished with netlist\n\n";
}
&begin_sdf;
&build_paths;
&close_sdf;
`rm $RFV`;
print "$time\n";
sub architecture
{
$current_architecture = $_[3];
push (@architectures, $current_architecture);
}
sub component
{
if ($_[0] ne "end")
{
$name = $_[1];
$arch_list{$current_architecture} =
$arch_list{$current_architecture} . " " . $name;
unless ($component_list{$name}) { $component_list{$name} = " ";}
}
}
sub timingmodel
{
$line =~ /timingmodel => \"(.+)\"/ and do {
$model = $1;
$model_name{$instance_name} = $model;
};
}
sub begin_sdf
{
if ( $diags ne off ) {
print "writing SDF boilerplate\n";
}
$time = localtime;
if (open(SDF, ">$sdf_file") !=1) { die "can't open $sdf_file\n";}
print "Opening $sdf_file\n";
print SDF "(DELAYFILE\n";
print SDF " (SDFVERSION \"3.0\")\n";
print SDF " (DESIGN \"$design_name\")\n";
print SDF " (DATE \"$time\")\n";
print SDF " (VENDOR \"Free Model Foundry\")\n";
print SDF " (PROGRAM \"SDF timing utility(tm)\")\n";
print SDF " (VERSION \"$version\")\n";
print SDF " (DIVIDER /)\n";
print SDF " (VOLTAGE)\n";
print SDF " (PROCESS)\n";
print SDF " (TEMPERATURE)\n";
print SDF " (TIMESCALE 1ns)\n";
}
sub build_paths
{
foreach $instance_list (@instance_list)
{
@instance = $instance_list;
foreach $instance (@instance)
{
if ( $diags ne off ) {
print "working on $instance\n";
}
if ($gtd =~ /true/i) {
$path = "$lib_path{$comp_lib{$instance_comp{$instance}}}/$timing_dir";
# $path = "$lib_path{$comp_lib{$instance_comp{$instance}}}./$timing_dir";
} else {
$path = "$lib_path{$comp_lib{$instance_comp{$instance}}}/$timing_dir";
}
$timing_file = "$path/$instance_comp{$instance}_vhd.ftm";
$timing_file =~ s/\s//;
if ( $diags ne off ) {
print "$instance should be in $timing_file\n";
}
if (-e $timing_file) {
if ($model_name{$instance} ne "") {
print SDF " (CELL\n";
print SDF " (CELLTYPE \"$instance_comp{$instance}\")\n";
$inst = $instance;
$full_inst = $instance;
while ($component_list{$instance_isin{$inst}}) {
$full_inst = "$component_list{$instance_isin{$inst}}/$full_inst";
$full_inst =~ s/\s+//;
$inst = $component_list{$instance_isin{$inst}};
$inst =~ s/\s+//;
# print SDF " (INSTANCE $component_list{$instance_isin{$instance}}/$instance)\n";
}
print SDF " (INSTANCE $full_inst)\n";
&add_timing;
}
} else {
if ( $diags ne off ) {
print "$timing_file not found!\n";
}
}
}
}
}
sub add_timing
{
$timing_found = "false";
$part_found = "false";
# unless ($lib_path{$comp_lib{$instance_comp{$instance}}})
unless ($timing_file)
{
print "path to $timing_file not found\n";
exit;
}
if ($gtd =~ /true/i) {
$path = "$lib_path{$comp_lib{$instance_comp{$instance}}}/$timing_dir";
# $path = "$lib_path{$comp_lib{$instance_comp{$instance}}}./$timing_dir";
} else {
$path = "$lib_path{$comp_lib{$instance_comp{$instance}}}/$timing_dir";
}
$timing_file = "$path/$instance_comp{$instance}_vhd.ftm";
if (open(TF, "<$timing_file") !=1) { warn "can't open $timing_file\n"; }
if ( $diags ne off ) {
print "reading $timing_file\n";
}
$section_found = "false";
while (<TF>)
{
next unless (/$model_name{$instance}/i || ($part_found eq "true"));
$part_found = "true";
if ( $diags ne off ) {
print "found entry for $model_name{$instance}\n";
}
next unless (/<timing>/i || ($timing_found eq "true"));
$timing_found = "true";
next if (/<timing>/i);
if (/<\/timing>/i)
{
print SDF " )\n";
$timing_found = "false";
$part_found = "false";
$section_found = "true";
last;
} else {
if (/%LABEL%/)
{
if ($component_list{$instance_isin{$instance}})
{
$_ =~ s/%LABEL%/$component_list{$instance_isin{$instance}}\/$instance/;
} else {
$_ =~ s/%LABEL%/$instance/;
}
}
print SDF $_;
}
}
unless ($section_found eq "true") {
print "$model_name not found\n";
}
}
sub close_sdf
{
print SDF ")\n";
print "closing $sdf_file\n";
close(SDF);
}
# read mk_sdf.cmd
sub read_cmd_file {
if (open(CMD, $CMD) !=1) { die "can't open $CMD\n"; }
while (<CMD>) {
chop;
@fields = '';
@fields = split;
unless ($fields[0] =~ /#/) {
if ($fields[0] =~ /SET/) {
if ($fields[1] =~ /vhdl_file/) {$VHD = $fields[2]}
if ($fields[1] =~ /sdffile_suffix/) {$suffix = $fields[2]}
if ($fields[1] =~ /use_global_timing_dir/) {$gtd = $fields[2]}
if ($fields[1] =~ /timingfile_dir/) {$timing_dir = $fields[2]}
if ($fields[1] =~ /vendor/) {$vendor = $fields[2]}
if ($fields[1] =~ /diagnostics/) {$diags = $fields[2]}
}
}
}
if ( $diags ne off ) {
print "\nmk_sdf diagnostics on\n\n";
print "vhdl_file $VHD\n";
print "sdffile_suffix $suffix\n";
print "use_global_timing_dir $gtd\n";
print "timingfile_dir $timing_dir\n";
print "vendor $vendor\n\n";
}
}
#
# get name of netlist
sub get_names
{
if ($ARGV[0] ne "") { $VHD = "$ARGV[0]"; }
if ($ARGV[1] eq "")
{
@name = split(/\./,$VHD);
$design_name = $name[0];
} else {
$design_name = "$ARGV[1]";
}
$sdf_file = $design_name . $suffix;
if ($gtd =~ /false/i)
{
if ($vendor =~ /modeltech/i) { &read_mti; }
if ($vendor =~ /cadence/i) { &read_cds; }
}
if ( $diags ne off ) {
print "design name is $design_name\n\n";
}
}
#
################################################################
#
# reformat netlist
sub reformat
{
$entfound = false;
if (open(VHD, $VHD) !=1) { die "can't open $VHD\n"; }
if (open(OUT, ">$RFV") !=1) { die "can't open $OUT\n"; }
while (<VHD>) {
if (/^--|library|package/i) { next }
if (/--/) { # strip embeded comments
@line = split("--");
$_ = $line[0];
}
s/:/ : /g;
s/;/ ;/g;
s/\s+/ /g; # reduces spaces and tabs
s/^\s//g; # no leading spaces
if (/entity/i) {
$entfound = "true";
}
chomp;
if ( $entfound eq true ) {
print OUT lc($_);
if (/;|is|begin/i) { print OUT "\n"; }
}
}
close OUT;
if ( $diags ne off ) {
print "reformatted netlist written to $RFV\n\n";
}
}
# read ModelTech's modelsim.ini file
sub read_mti
{
$lib_found = "false";
if ($ENV{MODELPATH})
{
$ini_file = "$ENV{MODELPATH}/../modelsim.ini";
if (open(INI, "$ini_file") !=1) { die "can't open $ini_file\n";}
if ( $diags ne off ) {
print "reading $ini_file\n\n";
}
while (<INI>)
{
if ($lib_found eq "true")
{
chomp;
if (/\[.+\]/) { last; }
s/\s+//;
@lib_line = split(/=/);
$lib_line[1] =~ s/\/work//;
$lib_path{$lib_line[0]} = $lib_line[1];
} elsif (/\[Library\]/i)
{
$lib_found = "true";
next;
}
}
} else {
print "\$MODELPATH environment variable not found\n";
}
$lib_found = "false";
if (-e "modelsim.ini")
{
$ini_file = "modelsim.ini";
if (open(INI, "$ini_file") !=1) { die "can't open $ini_file\n";}
if ( $diags ne off ) {
print "reading $ini_file\n\n";
}
while (<INI>)
{
if ($lib_found eq "true")
{
chomp;
if (/\[.+\]/) { last; }
s/\s+//;
@lib_line = split(/=/);
$lib_line[1] =~ s/\/work//;
$lib_path{$lib_line[0]} = $lib_line[1];
} elsif (/\[Library\]/i)
{
$lib_found = "true";
next;
}
}
} else {
print "local modelsim.ini file not found, may not be needed\n";
}
}
# read Cadence's cds.lib file
sub read_cds
{
if ($ENV{CDS_VHDL})
{
$ini_file = "$ENV{CDS_VHDL}/files/cds.lib";
if (open(INI, "$ini_file") !=1) { die "can't open $ini_file\n";}
if ( $diags ne off ) {
print "reading $ini_file\n\n";
}
while (<INI>)
{
chomp;
s/\s+/ /;
if (/define/i)
{
@lib_line = split;
$lib_path{$lib_line[1]} = $lib_line[2];
}
}
} else {
print "\$CDS_VHDL environment variable not found\n";
}
if (-e "cds.lib")
{
$ini_file = "cds.lib";
if (open(INI, "$ini_file") !=1) { die "can't open $ini_file\n";}
if ( $diags ne off ) {
print "reading $ini_file\n\n";
}
while (<INI>)
{
chomp;
s/\s+/ /;
if (/define/i)
{
@lib_line = split;
$lib_path{$lib_line[1]} = $lib_line[2];
}
}
} else {
print "local cds.lib file not found, may not be needed\n";
}
}
@@ -0,0 +1,205 @@
<!DOCTYPE FTML SYSTEM "ftml.dtd">
<FTML><HEAD><TITLE>FMF Timing for testbench Parts</TITLE>
<BODY>
<REVISION.HISTORY>
version: | author: | mod date: | changes made:
V1.0 VHD2FTM 03 July 11 Initial release
</REVISION.HISTORY>
<TIMESCALE>1ns</TIMESCALE>
<MODEL>am29lv640m
<FMFTIME>
MY_MEM<SOURCE></SOURCE>
AM29LV640MH90R<SOURCE></SOURCE>
AM29LV640ML90R<SOURCE></SOURCE>
<COMMENT></COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH A0 DQ0 (90:90:90) (90:90:90))
(IOPATH A0 DQ1 (25:25:25) (25:25:25))
(IOPATH CENeg DQ0 (85:85:85) (85:85:85) (11:11:11) (85:85:85) (11:11:11) (85:85:85))
(IOPATH OENeg DQ0 (20:20:20) (20:20:20) (11:11:11) (20:20:20) (11:11:11) (20:20:20))
(IOPATH RESETNeg DQ0 () () (0:0:0) () (0:0:0) ())
(IOPATH CENeg RY (0) (90))
(IOPATH WENeg RY (0) (90))
))
(TIMINGCHECK
(SETUP A0 CENeg (0:0:0))
(SETUP A0 OENeg (15:15:15))
(SETUP DQ0 CENeg (45:45:45))
(HOLD CENeg RESETNeg (50:50:50))
(HOLD OENeg WENeg (0:0:0))
(HOLD A0 CENeg (45:45:45))
(HOLD A0 OENeg (0:0:0))
(HOLD DQ0 CENeg (0:0:0))
(HOLD WENeg OENeg (0:0:0))
(WIDTH (negedge RESETNeg) (500:500:500))
(WIDTH (posedge OENeg) (20:20:20))
(WIDTH (negedge WENeg) (35:35:35))
(WIDTH (posedge WENeg) (30:30:30))
(WIDTH (negedge CENeg) (45:45:45))
(WIDTH (posedge CENeg) (30:30:30))
(WIDTH (negedge A0) (90:90:90))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/WBPB) (DELAY (ABSOLUTE (DEVICE(11000:11000:11000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/POB) (DELAY (ABSOLUTE (DEVICE(100000:100000:100000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/SEO) (DELAY (ABSOLUTE (DEVICE(500000000:500000000:500000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/HANG) (DELAY (ABSOLUTE (DEVICE(400000000:400000000:400000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/START_T1) (DELAY (ABSOLUTE (DEVICE(5000:5000:20000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/CTMOUT) (DELAY (ABSOLUTE (DEVICE(50000:50000:50000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/READY) (DELAY (ABSOLUTE (DEVICE(20000:20000:20000) ) ) )
</TIMING></FMFTIME>
<FMFTIME>
AM29LV640MH101<SOURCE></SOURCE>
AM29LV640ML101<SOURCE></SOURCE>
AM29LV640MH101R<SOURCE></SOURCE>
AM29LV640ML101R<SOURCE></SOURCE>
<COMMENT></COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH A0 DQ0 (100:100:100) (100:100:100))
(IOPATH A0 DQ1 (30:30:30) (30:30:30))
(IOPATH CENeg DQ0 (95:95:95) (95:95:95) (11:11:11) (95:95:95) (11:11:11) (95:95:95))
(IOPATH OENeg DQ0 (25:25:25) (25:25:25) (11:11:11) (25:25:25) (11:11:11) (25:25:25))
(IOPATH RESETNeg DQ0 () () (0:0:0) () (0:0:0) ())
(IOPATH CENeg RY (0) (100))
(IOPATH WENeg RY (0) (100))
))
(TIMINGCHECK
(SETUP A0 CENeg (0:0:0))
(SETUP A0 OENeg (15:15:15))
(SETUP DQ0 CENeg (45:45:45))
(HOLD CENeg RESETNeg (50:50:50))
(HOLD OENeg WENeg (0:0:0))
(HOLD A0 CENeg (45:45:45))
(HOLD A0 OENeg (0:0:0))
(HOLD DQ0 CENeg (0:0:0))
(HOLD WENeg OENeg (0:0:0))
(WIDTH (negedge RESETNeg) (500:500:500))
(WIDTH (posedge OENeg) (20:20:20))
(WIDTH (negedge WENeg) (35:35:35))
(WIDTH (posedge WENeg) (30:30:30))
(WIDTH (negedge CENeg) (45:45:45))
(WIDTH (posedge CENeg) (30:30:30))
(WIDTH (negedge A0) (100:100:100))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/WBPB) (DELAY (ABSOLUTE (DEVICE(11000:11000:11000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/POB) (DELAY (ABSOLUTE (DEVICE(100000:100000:100000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/SEO) (DELAY (ABSOLUTE (DEVICE(500000000:500000000:500000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/HANG) (DELAY (ABSOLUTE (DEVICE(400000000:400000000:400000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/START_T1) (DELAY (ABSOLUTE (DEVICE(5000:5000:20000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/CTMOUT) (DELAY (ABSOLUTE (DEVICE(50000:50000:50000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/READY) (DELAY (ABSOLUTE (DEVICE(20000:20000:20000) ) ) )
</TIMING></FMFTIME>
<FMFTIME>
AM29LV640MH112<SOURCE></SOURCE>
AM29LV640ML112<SOURCE></SOURCE>
AM29LV640MH112R<SOURCE></SOURCE>
AM29LV640ML112R<SOURCE></SOURCE>
<COMMENT></COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH A0 DQ0 (110:110:110) (110:110:110))
(IOPATH A0 DQ1 (40:40:40) (40:40:40))
(IOPATH CENeg DQ0 (105:105:105) (105:105:105) (11:11:11) (105:105:105) (11:11:11) (105:105:105))
(IOPATH OENeg DQ0 (35:35:35) (35:35:35) (11:11:11) (35:35:35) (11:11:11) (35:35:35))
(IOPATH RESETNeg DQ0 () () (0:0:0) () (0:0:0) ())
(IOPATH CENeg RY (0) (110))
(IOPATH WENeg RY (0) (110))
))
(TIMINGCHECK
(SETUP A0 CENeg (0:0:0))
(SETUP A0 OENeg (15:15:15))
(SETUP DQ0 CENeg (45:45:45))
(HOLD CENeg RESETNeg (50:50:50))
(HOLD OENeg WENeg (0:0:0))
(HOLD A0 CENeg (45:45:45))
(HOLD A0 OENeg (0:0:0))
(HOLD DQ0 CENeg (0:0:0))
(HOLD WENeg OENeg (0:0:0))
(WIDTH (negedge RESETNeg) (500:500:500))
(WIDTH (posedge OENeg) (20:20:20))
(WIDTH (negedge WENeg) (35:35:35))
(WIDTH (posedge WENeg) (30:30:30))
(WIDTH (negedge CENeg) (45:45:45))
(WIDTH (posedge CENeg) (30:30:30))
(WIDTH (negedge A0) (110:110:110))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/WBPB) (DELAY (ABSOLUTE (DEVICE(11000:11000:11000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/POB) (DELAY (ABSOLUTE (DEVICE(100000:100000:100000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/SEO) (DELAY (ABSOLUTE (DEVICE(500000000:500000000:500000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/HANG) (DELAY (ABSOLUTE (DEVICE(400000000:400000000:400000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/START_T1) (DELAY (ABSOLUTE (DEVICE(5000:5000:20000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/CTMOUT) (DELAY (ABSOLUTE (DEVICE(50000:50000:50000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/READY) (DELAY (ABSOLUTE (DEVICE(20000:20000:20000) ) ) )
</TIMING></FMFTIME>
<FMFTIME>
AM29LV640MH120<SOURCE></SOURCE>
AM29LV640ML120<SOURCE></SOURCE>
AM29LV640MH120R<SOURCE></SOURCE>
AM29LV640ML120R<SOURCE></SOURCE>
<COMMENT></COMMENT>
<TIMING>
(DELAY (ABSOLUTE
(IOPATH A0 DQ0 (120:120:120) (120:120:120))
(IOPATH A0 DQ1 (40:40:40) (40:40:40))
(IOPATH CENeg DQ0 (115:115:115) (115:115:115) (11:11:11) (115:115:115) (11:11:11) (115:115:115))
(IOPATH OENeg DQ0 (35:35:35) (35:35:35) (11:11:11) (35:35:35) (11:11:11) (35:35:35))
(IOPATH RESETNeg DQ0 () () (0:0:0) () (0:0:0) ())
(IOPATH CENeg RY (0) (120))
(IOPATH WENeg RY (0) (120))
))
(TIMINGCHECK
(SETUP A0 CENeg (0:0:0))
(SETUP A0 OENeg (15:15:15))
(SETUP DQ0 CENeg (45:45:45))
(HOLD CENeg RESETNeg (50:50:50))
(HOLD OENeg WENeg (0:0:0))
(HOLD A0 CENeg (45:45:45))
(HOLD A0 OENeg (0:0:0))
(HOLD DQ0 CENeg (0:0:0))
(HOLD WENeg OENeg (0:0:0))
(WIDTH (negedge RESETNeg) (500:500:500))
(WIDTH (posedge OENeg) (20:20:20))
(WIDTH (negedge WENeg) (35:35:35))
(WIDTH (posedge WENeg) (30:30:30))
(WIDTH (negedge CENeg) (45:45:45))
(WIDTH (posedge CENeg) (30:30:30))
(WIDTH (negedge A0) (120:120:120))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/WBPB) (DELAY (ABSOLUTE (DEVICE(11000:11000:11000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/POB) (DELAY (ABSOLUTE (DEVICE(100000:100000:100000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/SEO) (DELAY (ABSOLUTE (DEVICE(500000000:500000000:500000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/HANG) (DELAY (ABSOLUTE (DEVICE(400000000:400000000:400000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/START_T1) (DELAY (ABSOLUTE (DEVICE(5000:5000:20000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/CTMOUT) (DELAY (ABSOLUTE (DEVICE(50000:50000:50000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/READY) (DELAY (ABSOLUTE (DEVICE(20000:20000:20000) ) ) )
</TIMING></FMFTIME>
</BODY></FTML>
@@ -0,0 +1,58 @@
(DELAYFILE
(SDFVERSION "3.0")
(DESIGN "testbench")
(DATE "Wed Jan 28 15:15:41 2004")
(VENDOR "Free Model Foundry")
(PROGRAM "SDF timing utility(tm)")
(VERSION "2.0.4")
(DIVIDER /)
(VOLTAGE)
(PROCESS)
(TEMPERATURE)
(TIMESCALE 1ns)
(CELL
(CELLTYPE "my_mem")
(INSTANCE dut)
(DELAY (ABSOLUTE
(IOPATH A0 DQ0 (90:90:90) (90:90:90))
(IOPATH A0 DQ1 (25:25:25) (25:25:25))
(IOPATH CENeg DQ0 (85:85:85) (85:85:85) (11:11:11) (85:85:85) (11:11:11) (85:85:85))
(IOPATH OENeg DQ0 (20:20:20) (20:20:20) (11:11:11) (20:20:20) (11:11:11) (20:20:20))
(IOPATH RESETNeg DQ0 () () (0:0:0) () (0:0:0) ())
(IOPATH CENeg RY (0) (90))
(IOPATH WENeg RY (0) (90))
))
(TIMINGCHECK
(SETUP A0 CENeg (0:0:0))
(SETUP A0 OENeg (15:15:15))
(SETUP DQ0 CENeg (45:45:45))
(HOLD CENeg RESETNeg (50:50:50))
(HOLD OENeg WENeg (0:0:0))
(HOLD A0 CENeg (45:45:45))
(HOLD A0 OENeg (0:0:0))
(HOLD DQ0 CENeg (0:0:0))
(HOLD WENeg OENeg (0:0:0))
(WIDTH (negedge RESETNeg) (500:500:500))
(WIDTH (posedge OENeg) (20:20:20))
(WIDTH (negedge WENeg) (35:35:35))
(WIDTH (posedge WENeg) (30:30:30))
(WIDTH (negedge CENeg) (45:45:45))
(WIDTH (posedge CENeg) (30:30:30))
(WIDTH (negedge A0) (90:90:90))
))
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/WBPB) (DELAY (ABSOLUTE (DEVICE(11000:11000:11000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/POB) (DELAY (ABSOLUTE (DEVICE(100000:100000:100000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/SEO) (DELAY (ABSOLUTE (DEVICE(500000000:500000000:500000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/HANG) (DELAY (ABSOLUTE (DEVICE(400000000:400000000:400000000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/START_T1) (DELAY (ABSOLUTE (DEVICE(5000:5000:20000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/CTMOUT) (DELAY (ABSOLUTE (DEVICE(50000:50000:50000) ) ) ) )
(CELL (CELLTYPE "VITALbuf")
(INSTANCE dut/READY) (DELAY (ABSOLUTE (DEVICE(20000:20000:20000) ) ) )
)
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,144 @@
--------------------------------------------------------------------------------
-- File name: gen_utils.vhd
--------------------------------------------------------------------------------
-- Copyright (C) 1996, 1998, 2001 Free Model Foundry; http://eda.org/fmf/
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License version 2 as
-- published by the Free Software Foundation.
--
-- MODIFICATION HISTORY:
--
-- version: | author: | mod date: | changes made:
-- V1.0 R. Steele 96 SEP 26 Initial release
-- V1.1 REV3 97 Feb 27 Added Xon and MsgOn generics
-- V1.2 R. Steele 97 APR 16 Changed wired-or to wired-and
-- V1.3 R. Steele 97 APR 16 Added diff. receiver table
-- V1.4 R. Munden 98 APR 13 Added GenParity and CheckParity
-- V1.5 R. Munden 01 NOV 24 Added UnitDelay01ZX
--
--------------------------------------------------------------------------------
LIBRARY IEEE; USE IEEE.std_Logic_1164.ALL;
USE IEEE.VITAL_primitives.ALL;
USE IEEE.VITAL_timing.ALL;
PACKAGE gen_utils IS
----------------------------------------------------------------------------
-- Result map for Wired-and output values (open collector)
----------------------------------------------------------------------------
CONSTANT STD_wired_and_rmap : VitalResultMapType := ('U','X','0','Z');
----------------------------------------------------------------------------
-- Table for computing a single signal from a differential receiver input
-- pair.
----------------------------------------------------------------------------
CONSTANT diff_rec_tab : VitalStateTableType := (
------INPUTS--|-PREV-|-OUTPUT----
-- A ANeg | Aint | Aint' --
--------------|------|-----------
( 'X', '-', '-', 'X'), -- A unknown
( '-', 'X', '-', 'X'), -- A unknown
( '1', '-', 'X', '1'), -- Recover from 'X'
( '0', '-', 'X', '0'), -- Recover from 'X'
( '/', '0', '0', '1'), -- valid diff. rising edge
( '1', '\', '0', '1'), -- valid diff. rising edge
( '\', '1', '1', '0'), -- valid diff. falling edge
( '0', '/', '1', '0'), -- valid diff. falling edge
( '-', '-', '-', 'S') -- default
); -- end of VitalStateTableType definition
----------------------------------------------------------------------------
-- Default Constants
----------------------------------------------------------------------------
CONSTANT UnitDelay : VitalDelayType := 1 ns;
CONSTANT UnitDelay01 : VitalDelayType01 := (1 ns, 1 ns);
CONSTANT UnitDelay01Z : VitalDelayType01Z := (others => 1 ns);
CONSTANT UnitDelay01ZX : VitalDelayType01ZX := (others => 1 ns);
CONSTANT DefaultInstancePath : STRING := "*";
CONSTANT DefaultTimingChecks : BOOLEAN := FALSE;
CONSTANT DefaultTimingModel : STRING := "UNIT";
CONSTANT DefaultXon : BOOLEAN := TRUE;
CONSTANT DefaultMsgOn : BOOLEAN := TRUE;
-- Older VITAL generic being phased out
CONSTANT DefaultXGeneration : BOOLEAN := TRUE;
-------------------------------------------------------------------
-- Generate Parity for each 8-bit in 9th bit
-------------------------------------------------------------------
FUNCTION GenParity
(Data : in std_logic_vector; -- Data
ODDEVEN : in std_logic; -- ODD (1) / EVEN(0)
SIZE : in POSITIVE) -- Bit Size
RETURN std_logic_vector;
-------------------------------------------------------------------
-- Check Parity for each 8-bit in 9th bit
-------------------------------------------------------------------
FUNCTION CheckParity
(Data : in std_logic_vector; -- Data
ODDEVEN : in std_logic; -- ODD (1) / EVEN(0)
SIZE : in POSITIVE) -- Bit Size
RETURN std_logic; -- '0' - Parity Error
END gen_utils;
PACKAGE BODY gen_utils IS
function XOR_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01 is
-- pragma subpgm_id 403
variable result: STD_LOGIC;
begin
result := '0';
for i in ARG'range loop
result := result xor ARG(i);
end loop;
return result;
end;
-------------------------------------------------------------------
-- Generate Parity for each 8-bit in 9th bit
-------------------------------------------------------------------
FUNCTION GenParity
(Data : in std_logic_vector; -- Data
ODDEVEN : in std_logic; -- ODD (1) / EVEN(0)
SIZE : in POSITIVE) -- Bit Size
RETURN std_logic_vector
IS
VARIABLE I: NATURAL;
VARIABLE Result: std_logic_vector (Data'Length - 1 DOWNTO 0);
BEGIN
I := 0;
WHILE (I < SIZE) LOOP
Result(I+7 DOWNTO I) := Data(I+7 downto I);
Result(I+8) := XOR_REDUCE( Data(I+7 downto I) ) XOR ODDEVEN;
I := I + 9;
END LOOP;
RETURN Result;
END GenParity;
-------------------------------------------------------------------
-- Check Parity for each 8-bit in 9th bit
-------------------------------------------------------------------
FUNCTION CheckParity
(Data : in std_logic_vector; -- Data
ODDEVEN : in std_logic; -- ODD (1) / EVEN(0)
SIZE : in POSITIVE) -- Bit Size
RETURN std_logic -- '0' - Parity Error
IS
VARIABLE I: NATURAL;
VARIABLE Result: std_logic;
BEGIN
I := 0; Result := '1';
WHILE (I < SIZE) LOOP
Result := Result AND
NOT (XOR_REDUCE( Data(I+8 downto I) ) XOR ODDEVEN);
I := I + 9;
END LOOP;
RETURN Result;
END CheckParity;
END gen_utils;