##// END OF EJS Templates
New RHF1401 ADC driver (with simple filter)
New RHF1401 ADC driver (with simple filter)

File last commit:

r284:058199c2c092 martin
r400:fc21de09fe8a JC
Show More
flash.vhd
115 lines | 5.2 KiB | text/x-vhdl | VhdlLexer
library ieee;
use ieee.std_logic_1164.all;
use ieee.vital_timing.ALL;
USE ieee.vital_primitives.ALL;
library fmf;
use fmf.gen_utils.all;
use fmf.conversions.all;
package flash is
component s25fl064a
generic (
tipd_SCK : VitalDelayType01 := VitalZeroDelay01;
tipd_SI : VitalDelayType01 := VitalZeroDelay01;
tipd_CSNeg : VitalDelayType01 := VitalZeroDelay01;
tipd_HOLDNeg : VitalDelayType01 := VitalZeroDelay01;
tipd_WNeg : VitalDelayType01 := VitalZeroDelay01;
tpd_SCK_SO : VitalDelayType01Z := UnitDelay01Z;
tpd_CSNeg_SO : VitalDelayType01Z := UnitDelay01Z;
tpd_HOLDNeg_SO : VitalDelayType01Z := UnitDelay01Z;
tsetup_SI_SCK : VitalDelayType := UnitDelay;
tsetup_CSNeg_SCK : VitalDelayType := UnitDelay;
tsetup_HOLDNeg_SCK : VitalDelayType := UnitDelay;
tsetup_WNeg_CSNeg : VitalDelayType := UnitDelay;
thold_SI_SCK : VitalDelayType := UnitDelay;
thold_CSNeg_SCK : VitalDelayType := UnitDelay;
thold_HOLDNeg_SCK : VitalDelayType := UnitDelay;
thold_WNeg_CSNeg : VitalDelayType := UnitDelay;
tpw_SCK_posedge : VitalDelayType := UnitDelay;
tpw_SCK_negedge : VitalDelayType := UnitDelay;
tpw_CSNeg_posedge : VitalDelayType := UnitDelay;
tperiod_SCK_rd : VitalDelayType := UnitDelay;
tperiod_SCK_fast_rd : VitalDelayType := UnitDelay;
tdevice_PP : VitalDelayType := 3 ms;
tdevice_SE : VitalDelayType := 3 sec;
tdevice_BE : VitalDelayType := 384 sec;
tdevice_WR : VitalDelayType := 60 ms;
tdevice_DP : VitalDelayType := 3 us;
tdevice_RES : VitalDelayType := 30 us;
tdevice_PU : VitalDelayType := 10 ms;
InstancePath : STRING := DefaultInstancePath;
TimingChecksOn : BOOLEAN := DefaultTimingChecks;
MsgOn : BOOLEAN := DefaultMsgOn;
XOn : BOOLEAN := DefaultXon;
mem_file_name : STRING := "s25fl064a.mem";
UserPreload : BOOLEAN := FALSE;
LongTimming : BOOLEAN := TRUE;
TimingModel : STRING := DefaultTimingModel
);
port (
SCK : IN std_ulogic := 'U';
SI : IN std_ulogic := 'U';
CSNeg : IN std_ulogic := 'U';
HOLDNeg : IN std_ulogic := 'U';
WNeg : IN std_ulogic := 'U';
SO : OUT std_ulogic := 'U'
);
end component;
component m25p80
generic (
tipd_C : VitalDelayType01 := VitalZeroDelay01;
tipd_D : VitalDelayType01 := VitalZeroDelay01;
tipd_SNeg : VitalDelayType01 := VitalZeroDelay01;
tipd_HOLDNeg : VitalDelayType01 := VitalZeroDelay01;
tipd_WNeg : VitalDelayType01 := VitalZeroDelay01;
tpd_C_Q : VitalDelayType01 := UnitDelay01;
tpd_SNeg_Q : VitalDelayType01Z := UnitDelay01Z;
tpd_HOLDNeg_Q : VitalDelayType01Z := UnitDelay01Z;
tsetup_D_C : VitalDelayType := UnitDelay;
tsetup_SNeg_C : VitalDelayType := UnitDelay;
tsetup_HOLDNeg_C : VitalDelayType := UnitDelay;
tsetup_C_HOLDNeg : VitalDelayType := UnitDelay;
tsetup_WNeg_SNeg : VitalDelayType := UnitDelay;
thold_D_C : VitalDelayType := UnitDelay;
thold_SNeg_C : VitalDelayType := UnitDelay;
thold_HOLDNeg_C : VitalDelayType := UnitDelay;
thold_C_HOLDNeg : VitalDelayType := UnitDelay;
thold_WNeg_SNeg : VitalDelayType := UnitDelay;
tpw_C_posedge : VitalDelayType := UnitDelay;
tpw_C_negedge : VitalDelayType := UnitDelay;
tpw_SNeg_posedge : VitalDelayType := UnitDelay;
tperiod_C_rd : VitalDelayType := UnitDelay;
tperiod_C_fast_rd : VitalDelayType := UnitDelay;
tdevice_PP : VitalDelayType := 5 ms;
tdevice_SE : VitalDelayType := 3 sec;
tdevice_BE : VitalDelayType := 20 sec;
tdevice_WR : VitalDelayType := 15 ms;
tdevice_DP : VitalDelayType := 3 us;
tdevice_RES1 : VitalDelayType := 3 us;
tdevice_RES2 : VitalDelayType := 1.8 us;
tdevice_VSL : VitalDelayType := 10 us;
tdevice_PUW : VitalDelayType := 10 ms;
InstancePath : STRING := DefaultInstancePath;
TimingChecksOn : BOOLEAN := DefaultTimingChecks;
MsgOn : BOOLEAN := DefaultMsgOn;
XOn : BOOLEAN := DefaultXon;
mem_file_name : STRING := "m25p80.mem";
UserPreload : BOOLEAN := FALSE;
DebugInfo : BOOLEAN := FALSE;
LongTimming : BOOLEAN := TRUE;
TimingModel : STRING := DefaultTimingModel
);
port (
C : IN std_ulogic := 'U';
D : IN std_ulogic := 'U';
SNeg : IN std_ulogic := 'U';
HOLDNeg : IN std_ulogic := 'U';
WNeg : IN std_ulogic := 'U';
Q : OUT std_ulogic := 'U'
);
end component;
end flash;