- added model
git-svn-id: http://moon:8086/svn/vhdl/trunk@1291 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -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;
|
||||
Reference in New Issue
Block a user