Skip to content

Instantly share code, notes, and snippets.

@cr1901
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cr1901/b33900905d382050df79 to your computer and use it in GitHub Desktop.
Save cr1901/b33900905d382050df79 to your computer and use it in GitHub Desktop.
65816 Prop Delay Timing Helper Program
#!/usr/bin/env python
if __name__ == '__main__':
#Python 3 compatibility stuff
try:
input = raw_input
except:
pass
data_setup_time = 10
addr_max_setup = 30
freq_65xx = input('Desired 65816 frequency (MHz): ')
glue_logic_delay_eprom_ce = input('Decoding delay from A0-A15 to ~CE (ns): ')
#glue_logic_delay_eprom_ce = 0
eprom_speed = (1000/float(freq_65xx) - data_setup_time) - addr_max_setup - float(glue_logic_delay_eprom_ce)
print('Required EPROM speed w/ {0} glue logic (max access time): {1}'.format(glue_logic_delay_eprom_ce, eprom_speed))
oe_not_prop = 8.5 #PHI inversion prop delay
oe_373_prop = 10.4 #373 prop delay
clk_to_oe_eprom = 0
#Half the period b/c we need to wait for PHI2 rising edge
oe_max_prop = (1000/(2*float(freq_65xx)) - data_setup_time) - oe_373_prop - oe_not_prop - clk_to_oe_eprom
if oe_max_prop <= 0:
print('OE requirement impossible to satisfy')
else:
print('Decoding delay from A16-23 to ~OE: {0}'.format(oe_max_prop))
print('Required bank 0x1-0xFF RAM/EPROM speed w/o glue logic: {0}'.format(oe_max_prop))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment