From 3fcf6a1bb2eedf296fdbcd42a45535f4ea589d1e Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Wed, 10 Mar 2021 21:14:12 -0500 Subject: [PATCH] Added MAX V CPLD firmware --- cpld_maxv/New folder/RAM2E.qsf | 259 +++++ cpld_maxv/New folder/RAM2E.qws | Bin 0 -> 407 bytes cpld_maxv/New folder/RAM2E.v | 636 +++++++++++ cpld_maxv/New folder/UFM.qip | 3 + cpld_maxv/New folder/UFM.v | 268 +++++ cpld_maxv/RAM2E - 16MB.mif | 26 + cpld_maxv/RAM2E - AF.mif | 273 +++++ cpld_maxv/RAM2E - E.mif | 25 + cpld_maxv/RAM2E - F.mif | 281 +++++ cpld_maxv/RAM2E.mif | 25 + cpld_maxv/RAM2E.qpf | 30 + cpld_maxv/RAM2E.qsf | 259 +++++ cpld_maxv/RAM2E.qws | Bin 0 -> 613 bytes cpld_maxv/RAM2E.v | 636 +++++++++++ cpld_maxv/UFM.qip | 3 + cpld_maxv/UFM.v | 268 +++++ cpld_maxv/constraints.sdc | 1 + cpld_maxv/db/RAM2E.(0).cnf.cdb | Bin 0 -> 35287 bytes cpld_maxv/db/RAM2E.(0).cnf.hdb | Bin 0 -> 4075 bytes cpld_maxv/db/RAM2E.(1).cnf.cdb | Bin 0 -> 1261 bytes cpld_maxv/db/RAM2E.(1).cnf.hdb | Bin 0 -> 928 bytes cpld_maxv/db/RAM2E.(2).cnf.cdb | Bin 0 -> 1263 bytes cpld_maxv/db/RAM2E.(2).cnf.hdb | Bin 0 -> 1018 bytes cpld_maxv/db/RAM2E.asm.qmsg | 6 + cpld_maxv/db/RAM2E.asm.rdb | Bin 0 -> 1405 bytes cpld_maxv/db/RAM2E.asm_labs.ddb | Bin 0 -> 2863 bytes cpld_maxv/db/RAM2E.cmp.cdb | Bin 0 -> 45831 bytes cpld_maxv/db/RAM2E.cmp.hdb | Bin 0 -> 18845 bytes cpld_maxv/db/RAM2E.cmp.idb | Bin 0 -> 13788 bytes cpld_maxv/db/RAM2E.cmp.kpt | Bin 0 -> 219 bytes cpld_maxv/db/RAM2E.cmp.logdb | 1 + cpld_maxv/db/RAM2E.cmp.rdb | Bin 0 -> 15115 bytes cpld_maxv/db/RAM2E.cmp0.ddb | Bin 0 -> 84616 bytes cpld_maxv/db/RAM2E.db_info | 3 + cpld_maxv/db/RAM2E.fit.qmsg | 39 + cpld_maxv/db/RAM2E.hier_info | 350 +++++++ cpld_maxv/db/RAM2E.hif | Bin 0 -> 576 bytes cpld_maxv/db/RAM2E.ipinfo | Bin 0 -> 351 bytes cpld_maxv/db/RAM2E.lpc.html | 50 + cpld_maxv/db/RAM2E.lpc.rdb | Bin 0 -> 508 bytes cpld_maxv/db/RAM2E.lpc.txt | 8 + cpld_maxv/db/RAM2E.map.cdb | Bin 0 -> 17249 bytes cpld_maxv/db/RAM2E.map.hdb | Bin 0 -> 18028 bytes cpld_maxv/db/RAM2E.map.logdb | 1 + cpld_maxv/db/RAM2E.map.qmsg | 19 + cpld_maxv/db/RAM2E.map.rdb | Bin 0 -> 1248 bytes cpld_maxv/db/RAM2E.pre_map.hdb | Bin 0 -> 16736 bytes cpld_maxv/db/RAM2E.pti_db_list.ddb | Bin 0 -> 191 bytes .../db/RAM2E.root_partition.map.reg_db.cdb | Bin 0 -> 210 bytes cpld_maxv/db/RAM2E.routing.rdb | Bin 0 -> 1464 bytes cpld_maxv/db/RAM2E.rtlv.hdb | Bin 0 -> 16558 bytes cpld_maxv/db/RAM2E.rtlv_sg.cdb | Bin 0 -> 28718 bytes cpld_maxv/db/RAM2E.rtlv_sg_swap.cdb | Bin 0 -> 816 bytes cpld_maxv/db/RAM2E.sgdiff.cdb | Bin 0 -> 17288 bytes cpld_maxv/db/RAM2E.sgdiff.hdb | Bin 0 -> 16780 bytes cpld_maxv/db/RAM2E.sld_design_entry.sci | Bin 0 -> 216 bytes cpld_maxv/db/RAM2E.sld_design_entry_dsc.sci | Bin 0 -> 216 bytes cpld_maxv/db/RAM2E.smart_action.txt | 1 + cpld_maxv/db/RAM2E.sta.qmsg | 22 + cpld_maxv/db/RAM2E.sta.rdb | Bin 0 -> 10721 bytes cpld_maxv/db/RAM2E.sta_cmp.5_slow.tdb | Bin 0 -> 43427 bytes cpld_maxv/db/RAM2E.syn_hier_info | 0 cpld_maxv/db/RAM2E.tis_db_list.ddb | Bin 0 -> 191 bytes cpld_maxv/db/RAM2E.tmw_info | 6 + cpld_maxv/db/RAM2E.vpr.ammdb | Bin 0 -> 612 bytes cpld_maxv/db/logic_util_heursitic.dat | Bin 0 -> 11396 bytes cpld_maxv/db/prev_cmp_RAM2E.qmsg | 94 ++ cpld_maxv/greybox_tmp/cbx_args.txt | 25 + cpld_maxv/incremental_db/README | 11 + .../compiled_partitions/RAM2E.db_info | 3 + .../RAM2E.root_partition.map.kpt | Bin 0 -> 2893 bytes cpld_maxv/output_files/RAM2E.asm.rpt | 114 ++ cpld_maxv/output_files/RAM2E.done | 1 + cpld_maxv/output_files/RAM2E.fit.rpt | 987 ++++++++++++++++++ cpld_maxv/output_files/RAM2E.fit.smsg | 4 + cpld_maxv/output_files/RAM2E.fit.summary | 11 + cpld_maxv/output_files/RAM2E.flow.rpt | 125 +++ cpld_maxv/output_files/RAM2E.jdi | 8 + cpld_maxv/output_files/RAM2E.map.rpt | 305 ++++++ cpld_maxv/output_files/RAM2E.map.smsg | 3 + cpld_maxv/output_files/RAM2E.map.summary | 9 + cpld_maxv/output_files/RAM2E.pin | 164 +++ cpld_maxv/output_files/RAM2E.pof | Bin 0 -> 7879 bytes cpld_maxv/output_files/RAM2E.sta.rpt | 809 ++++++++++++++ cpld_maxv/output_files/RAM2E.sta.summary | 17 + 85 files changed, 6189 insertions(+) create mode 100644 cpld_maxv/New folder/RAM2E.qsf create mode 100644 cpld_maxv/New folder/RAM2E.qws create mode 100644 cpld_maxv/New folder/RAM2E.v create mode 100644 cpld_maxv/New folder/UFM.qip create mode 100644 cpld_maxv/New folder/UFM.v create mode 100644 cpld_maxv/RAM2E - 16MB.mif create mode 100644 cpld_maxv/RAM2E - AF.mif create mode 100644 cpld_maxv/RAM2E - E.mif create mode 100644 cpld_maxv/RAM2E - F.mif create mode 100644 cpld_maxv/RAM2E.mif create mode 100644 cpld_maxv/RAM2E.qpf create mode 100644 cpld_maxv/RAM2E.qsf create mode 100644 cpld_maxv/RAM2E.qws create mode 100644 cpld_maxv/RAM2E.v create mode 100644 cpld_maxv/UFM.qip create mode 100644 cpld_maxv/UFM.v create mode 100644 cpld_maxv/constraints.sdc create mode 100644 cpld_maxv/db/RAM2E.(0).cnf.cdb create mode 100644 cpld_maxv/db/RAM2E.(0).cnf.hdb create mode 100644 cpld_maxv/db/RAM2E.(1).cnf.cdb create mode 100644 cpld_maxv/db/RAM2E.(1).cnf.hdb create mode 100644 cpld_maxv/db/RAM2E.(2).cnf.cdb create mode 100644 cpld_maxv/db/RAM2E.(2).cnf.hdb create mode 100644 cpld_maxv/db/RAM2E.asm.qmsg create mode 100644 cpld_maxv/db/RAM2E.asm.rdb create mode 100644 cpld_maxv/db/RAM2E.asm_labs.ddb create mode 100644 cpld_maxv/db/RAM2E.cmp.cdb create mode 100644 cpld_maxv/db/RAM2E.cmp.hdb create mode 100644 cpld_maxv/db/RAM2E.cmp.idb create mode 100644 cpld_maxv/db/RAM2E.cmp.kpt create mode 100644 cpld_maxv/db/RAM2E.cmp.logdb create mode 100644 cpld_maxv/db/RAM2E.cmp.rdb create mode 100644 cpld_maxv/db/RAM2E.cmp0.ddb create mode 100644 cpld_maxv/db/RAM2E.db_info create mode 100644 cpld_maxv/db/RAM2E.fit.qmsg create mode 100644 cpld_maxv/db/RAM2E.hier_info create mode 100644 cpld_maxv/db/RAM2E.hif create mode 100644 cpld_maxv/db/RAM2E.ipinfo create mode 100644 cpld_maxv/db/RAM2E.lpc.html create mode 100644 cpld_maxv/db/RAM2E.lpc.rdb create mode 100644 cpld_maxv/db/RAM2E.lpc.txt create mode 100644 cpld_maxv/db/RAM2E.map.cdb create mode 100644 cpld_maxv/db/RAM2E.map.hdb create mode 100644 cpld_maxv/db/RAM2E.map.logdb create mode 100644 cpld_maxv/db/RAM2E.map.qmsg create mode 100644 cpld_maxv/db/RAM2E.map.rdb create mode 100644 cpld_maxv/db/RAM2E.pre_map.hdb create mode 100644 cpld_maxv/db/RAM2E.pti_db_list.ddb create mode 100644 cpld_maxv/db/RAM2E.root_partition.map.reg_db.cdb create mode 100644 cpld_maxv/db/RAM2E.routing.rdb create mode 100644 cpld_maxv/db/RAM2E.rtlv.hdb create mode 100644 cpld_maxv/db/RAM2E.rtlv_sg.cdb create mode 100644 cpld_maxv/db/RAM2E.rtlv_sg_swap.cdb create mode 100644 cpld_maxv/db/RAM2E.sgdiff.cdb create mode 100644 cpld_maxv/db/RAM2E.sgdiff.hdb create mode 100644 cpld_maxv/db/RAM2E.sld_design_entry.sci create mode 100644 cpld_maxv/db/RAM2E.sld_design_entry_dsc.sci create mode 100644 cpld_maxv/db/RAM2E.smart_action.txt create mode 100644 cpld_maxv/db/RAM2E.sta.qmsg create mode 100644 cpld_maxv/db/RAM2E.sta.rdb create mode 100644 cpld_maxv/db/RAM2E.sta_cmp.5_slow.tdb create mode 100644 cpld_maxv/db/RAM2E.syn_hier_info create mode 100644 cpld_maxv/db/RAM2E.tis_db_list.ddb create mode 100644 cpld_maxv/db/RAM2E.tmw_info create mode 100644 cpld_maxv/db/RAM2E.vpr.ammdb create mode 100644 cpld_maxv/db/logic_util_heursitic.dat create mode 100644 cpld_maxv/db/prev_cmp_RAM2E.qmsg create mode 100644 cpld_maxv/greybox_tmp/cbx_args.txt create mode 100644 cpld_maxv/incremental_db/README create mode 100644 cpld_maxv/incremental_db/compiled_partitions/RAM2E.db_info create mode 100644 cpld_maxv/incremental_db/compiled_partitions/RAM2E.root_partition.map.kpt create mode 100644 cpld_maxv/output_files/RAM2E.asm.rpt create mode 100644 cpld_maxv/output_files/RAM2E.done create mode 100644 cpld_maxv/output_files/RAM2E.fit.rpt create mode 100644 cpld_maxv/output_files/RAM2E.fit.smsg create mode 100644 cpld_maxv/output_files/RAM2E.fit.summary create mode 100644 cpld_maxv/output_files/RAM2E.flow.rpt create mode 100644 cpld_maxv/output_files/RAM2E.jdi create mode 100644 cpld_maxv/output_files/RAM2E.map.rpt create mode 100644 cpld_maxv/output_files/RAM2E.map.smsg create mode 100644 cpld_maxv/output_files/RAM2E.map.summary create mode 100644 cpld_maxv/output_files/RAM2E.pin create mode 100644 cpld_maxv/output_files/RAM2E.pof create mode 100644 cpld_maxv/output_files/RAM2E.sta.rpt create mode 100644 cpld_maxv/output_files/RAM2E.sta.summary diff --git a/cpld_maxv/New folder/RAM2E.qsf b/cpld_maxv/New folder/RAM2E.qsf new file mode 100644 index 0000000..c9ec12d --- /dev/null +++ b/cpld_maxv/New folder/RAM2E.qsf @@ -0,0 +1,259 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 32-bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 22:58:44 May 05, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# RAM2E_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "MAX II" +set_global_assignment -name DEVICE EPM240T100C5 +set_global_assignment -name TOP_LEVEL_ENTITY RAM2E +set_global_assignment -name ORIGINAL_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_CREATION_TIME_DATE "22:58:44 MAY 05, 2020" +set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 100 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 5 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR "-1" +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVCMOS" +set_global_assignment -name VERILOG_FILE RAM2E.v +set_global_assignment -name SDC_FILE constraints.sdc +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS OFF +set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO PATHS AND MINIMUM TPD PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" +set_global_assignment -name MAXII_OPTIMIZATION_TECHNIQUE BALANCED +set_global_assignment -name ALLOW_POWER_UP_DONT_CARE OFF +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS OFF +set_global_assignment -name SAFE_STATE_MACHINE ON +set_global_assignment -name PARALLEL_SYNTHESIS OFF +set_global_assignment -name SYNTH_MESSAGE_LEVEL HIGH +set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT NORMAL +set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_ASYNCHRONOUS_SIGNAL_PIPELINING OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA OFF +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +set_global_assignment -name MIF_FILE RAM2E.mif +set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER OFF +set_global_assignment -name POWER_DEFAULT_INPUT_IO_TOGGLE_RATE "12.5 %" + +set_location_assignment PIN_12 -to C14M +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to C14M +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to C14M + +set_location_assignment PIN_37 -to PHI1 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to PHI1 +set_instance_assignment -name PAD_TO_CORE_DELAY 1 -to PHI1 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to PHI1 + +set_location_assignment PIN_51 -to nWE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nWE +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nWE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nWE + +set_location_assignment PIN_28 -to nEN80 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nEN80 +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nEN80 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nEN80 + +set_location_assignment PIN_33 -to nWE80 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nWE80 +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nWE80 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nWE80 + +set_location_assignment PIN_52 -to nC07X +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nC07X +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nC07X +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nC07X + +set_location_assignment PIN_56 -to Ain[0] +set_location_assignment PIN_54 -to Ain[1] +set_location_assignment PIN_43 -to Ain[2] +set_location_assignment PIN_47 -to Ain[3] +set_location_assignment PIN_44 -to Ain[4] +set_location_assignment PIN_34 -to Ain[5] +set_location_assignment PIN_39 -to Ain[6] +set_location_assignment PIN_53 -to Ain[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Ain +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to Ain +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Ain + +set_location_assignment PIN_38 -to Din[0] +set_location_assignment PIN_40 -to Din[1] +set_location_assignment PIN_42 -to Din[2] +set_location_assignment PIN_41 -to Din[3] +set_location_assignment PIN_48 -to Din[4] +set_location_assignment PIN_49 -to Din[5] +set_location_assignment PIN_36 -to Din[6] +set_location_assignment PIN_35 -to Din[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Din +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to Din +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Din + +set_location_assignment PIN_55 -to nDOE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nDOE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nDOE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nDOE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to nDOE + +set_location_assignment PIN_77 -to Dout[0] +set_location_assignment PIN_76 -to Dout[1] +set_location_assignment PIN_74 -to Dout[2] +set_location_assignment PIN_75 -to Dout[3] +set_location_assignment PIN_73 -to Dout[4] +set_location_assignment PIN_72 -to Dout[5] +set_location_assignment PIN_84 -to Dout[6] +set_location_assignment PIN_85 -to Dout[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Dout +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to Dout +set_instance_assignment -name SLOW_SLEW_RATE ON -to Dout +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to Dout +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Dout + +set_location_assignment PIN_50 -to nVOE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nVOE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nVOE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nVOE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to nVOE + +set_location_assignment PIN_70 -to Vout[0] +set_location_assignment PIN_67 -to Vout[1] +set_location_assignment PIN_69 -to Vout[2] +set_location_assignment PIN_62 -to Vout[3] +set_location_assignment PIN_71 -to Vout[4] +set_location_assignment PIN_68 -to Vout[5] +set_location_assignment PIN_58 -to Vout[6] +set_location_assignment PIN_57 -to Vout[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Vout +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to Vout +set_instance_assignment -name SLOW_SLEW_RATE ON -to Vout +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to Vout +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Vout + +set_location_assignment PIN_4 -to CKE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to CKE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to CKE +set_instance_assignment -name SLOW_SLEW_RATE ON -to CKE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to CKE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to CKE + +set_location_assignment PIN_8 -to nCS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nCS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nCS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nCS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nCS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nCS + +set_location_assignment PIN_2 -to nRWE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nRWE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nRWE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nRWE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nRWE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nRWE + +set_location_assignment PIN_5 -to nRAS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nRAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nRAS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nRAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nRAS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nRAS + +set_location_assignment PIN_3 -to nCAS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nCAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nCAS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nCAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nCAS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nCAS + +set_location_assignment PIN_6 -to BA[0] +set_location_assignment PIN_14 -to BA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to BA +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to BA +set_instance_assignment -name SLOW_SLEW_RATE ON -to BA +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to BA +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to BA + +set_location_assignment PIN_18 -to RA[0] +set_location_assignment PIN_20 -to RA[1] +set_location_assignment PIN_30 -to RA[2] +set_location_assignment PIN_27 -to RA[3] +set_location_assignment PIN_26 -to RA[4] +set_location_assignment PIN_29 -to RA[5] +set_location_assignment PIN_21 -to RA[6] +set_location_assignment PIN_19 -to RA[7] +set_location_assignment PIN_17 -to RA[8] +set_location_assignment PIN_15 -to RA[9] +set_location_assignment PIN_16 -to RA[10] +set_location_assignment PIN_7 -to RA[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to RA +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to RA +set_instance_assignment -name SLOW_SLEW_RATE ON -to RA +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to RA +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to RA + +set_location_assignment PIN_100 -to DQMH +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to DQMH +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to DQMH +set_instance_assignment -name SLOW_SLEW_RATE ON -to DQMH +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to DQMH +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to DQMH + +set_location_assignment PIN_98 -to DQML +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to DQML +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to DQML +set_instance_assignment -name SLOW_SLEW_RATE ON -to DQML +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to DQML +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to DQML + +set_location_assignment PIN_97 -to RD[0] +set_location_assignment PIN_90 -to RD[1] +set_location_assignment PIN_99 -to RD[2] +set_location_assignment PIN_89 -to RD[3] +set_location_assignment PIN_91 -to RD[4] +set_location_assignment PIN_92 -to RD[5] +set_location_assignment PIN_95 -to RD[6] +set_location_assignment PIN_96 -to RD[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to RD +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to RD +set_instance_assignment -name SLOW_SLEW_RATE ON -to RD +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to RD +set_instance_assignment -name ENABLE_BUS_HOLD_CIRCUITRY ON -to RD +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to RD + +set_global_assignment -name QIP_FILE UFM.qip \ No newline at end of file diff --git a/cpld_maxv/New folder/RAM2E.qws b/cpld_maxv/New folder/RAM2E.qws new file mode 100644 index 0000000000000000000000000000000000000000..ab951d37e7f6f2841374dfb0d8482ab716dd7f0f GIT binary patch literal 407 zcmZusOA5kJ44n7;&_j3tH=UK1Z{V2%W9Y%s3>wq$LBsS_E-0d`2yK}<+Yk-$QiLKVDrL~nVTqG-R7)}prf^+XqZ`e<#?`FDbW_gdJLi&`Hg{nk{oa9n1exMZM332c>k>KLn)K;swTL BSjPYW literal 0 HcmV?d00001 diff --git a/cpld_maxv/New folder/RAM2E.v b/cpld_maxv/New folder/RAM2E.v new file mode 100644 index 0000000..5c553eb --- /dev/null +++ b/cpld_maxv/New folder/RAM2E.v @@ -0,0 +1,636 @@ +module RAM2E(C14M, PHI1, + nWE, nWE80, nEN80, nC07X, + Ain, Din, Dout, nDOE, Vout, nVOE, + CKE, nCS, nRAS, nCAS, nRWE, + BA, RA, RD, DQML, DQMH); + + /* Clocks */ + input C14M, PHI1; + + /* Control inputs */ + input nWE, nWE80, nEN80, nC07X; + + /* Delay for EN80 signal */ + //output DelayOut = 1'b0; + //input DelayIn; + wire EN80 = ~nEN80; + + /* Address Bus */ + input [7:0] Ain; // Multiplexed DRAM address input + + /* 6502 Data Bus */ + input [7:0] Din; // 6502 data bus inputs + reg DOEEN = 0; // 6502 data bus output enable from state machine + output nDOE = ~(EN80 & nWE & DOEEN); // 6502 data bus output enable + output reg [7:0] Dout; // 6502 data Bus output + + /* Video Data Bus */ + output nVOE = ~(~PHI1); /// Video data bus output enable + output reg [7:0] Vout; // Video data bus + + /* SDRAM */ + output reg CKE = 0; + output reg nCS = 1, nRAS = 1, nCAS = 1, nRWE = 1; + output reg [1:0] BA; + output reg [11:0] RA; + output reg DQML = 1, DQMH = 1; + wire RDOE = EN80 & ~nWE80; + inout [7:0] RD = RDOE ? Din[7:0] : 8'bZ; + + /* RAMWorks Bank Register and Capacity Mask */ + reg [7:0] RWBank = 0; // RAMWorks bank register + reg [7:0] RWMask = 0; // RAMWorks bank reg. capacity mask + reg RWSel = 0; // RAMWorks bank register select + reg RWMaskSet = 0; // RAMWorks Mask register set flag + reg SetRWBankFF = 0; // Causes RWBank to be zeroed next RWSel access + + /* Command Sequence Detector */ + reg [2:0] CS = 0; // Command sequence state + reg [2:0] CmdTout = 0; // Command sequence timeout + + /* UFM Interface */ + reg [15:8] UFMD = 0; // *Parallel* UFM data register + reg ARCLK = 0; // UFM address register clock + // UFM address register data input tied to 0 + reg ARShift = 0; // 1 to Shift UFM address in, 0 to increment + reg DRCLK = 0; // UFM data register clock + reg DRDIn = 0; // UFM data register input + reg DRShift = 0; // 1 to shift UFM out, 0 to load from current address + reg UFMErase = 0; // Rising edge starts erase. UFM+RTP must not be busy + reg UFMProgram = 0; // Rising edge starts program. UFM+RTP must not be busy + wire UFMBusy; // 1 if UFM is doing user operation. Asynchronous + wire RTPBusy; // 1 if real-time programming in progress. Asynchronous + wire DRDOut; // UFM data output + // UFM oscillator always enabled + wire UFMOsc; // UFM oscillator output (3.3-5.5 MHz) + UFM UFM_inst ( // UFM IP block (for Altera MAX II and MAX V) + .arclk (ARCLK), + .ardin (1'b0), + .arshft (ARShift), + .drclk (DRCLK), + .drdin (DRDIn), + .drshft (DRShift), + .erase (UFMErase), + .oscena (1'b1), + .program (UFMProgram), + .busy (UFMBusy), + .drdout (DRDOut), + .osc (UFMOsc), + .rtpbusy (RTPBusy)); + reg UFMBusyReg = 0; // UFMBusy registered to sync with C14M + reg RTPBusyReg = 0; // RTPBusy registered to sync with C14M + + /* UFM State & User Command Triggers */ + reg UFMInitDone = 0; // 1 if UFM initialization finished + reg UFMReqErase = 0; // 1 if UFM requires erase + reg UFMBitbang = 0; // Set by user command. Loads UFM outputs next RWSel + reg UFMPrgmEN = 0; // Set by user command. Programs UFM + reg UFMEraseEN = 0; // Set by user command. Erases UFM + reg DRCLKPulse = 0; // Set by user command. Causes DRCLK pulse next C14M + + /* State Counters */ + reg PHI1reg = 0; // Saved PHI1 at last rising clock edge + reg Ready = 0; // 1 if done with init sequence (S0) and enter S1-S15 + reg [15:0] FS = 0; // Fast state counter + reg [3:0] S = 0; // IIe State counter + + /* State Counters */ + always @(posedge C14M) begin + // Increment fast state counter + FS <= FS+1; + // Synchronize Apple state counter to S1 when just entering PHI1 + PHI1reg <= PHI1; // Save old PHI1 + S <= (PHI1 & ~PHI1reg & Ready) ? 4'h1 : + S==4'h0 ? 4'h0 : + S==4'hF ? 4'hF : S+1; + end + + /* UFM Control */ + always @(posedge C14M) begin + // Synchronize asynchronous UFM signals + UFMBusyReg <= UFMBusy; + RTPBusyReg <= RTPBusy; + + if (S==4'h0) begin + if ((FS[15:13]==3'b101) | (FS[15:13]==3'b111 & UFMReqErase)) begin + // In states AXXX-BXXX and also EXXX-FXXX if erase/wrap req'd + // shift in 0's to address register + ARCLK <= FS[0]; // Clock address register + DRCLK <= 1'b0; // Don't clock data register + ARShift <= 1'b1; // Shift address registers + DRDIn <= 1'b0; // Don't care DRDIn + DRShift <= 1'b0; // Don't care DRDShift + end else if (~UFMInitDone & FS[15:13]==3'b110 & FS[4:1]==4'h4) begin + // In states CXXX-DXXX (substep 4) + // Xfer to data reg (repeat 256x 1x) + ARCLK <= 1'b0; // Don't clock address register + DRCLK <= FS[0]; // Clock data register + ARShift <= 1'b0; // Don't care ARShift + DRDIn <= 1'b0; // Don't care DRDIn + DRShift <= 1'b0; // Don't care DRShift + end else if (~UFMInitDone & FS[15:13]==3'b110 & FS[4]==1'b1) begin + // In states CXXX-DXXX (substeps 8-F) + // Save UFM D15-8, shift out D14-7 (repeat 256x 8x) + DRCLK <= FS[0]; // Clock data register + ARShift <= 1'b0; // ARShift is 0 because we want to increment + DRDIn <= 1'b0; // Don't care what to shift into data register + DRShift <= 1'b1; // Shift data register + // Shift into UFMD + if (FS[0]) UFMD[15:8] <= {UFMD[14:8], DRDOut}; + + // Compare and store mask + if (FS[4:1]==4'hF) begin + ARCLK <= FS[0]; // Clock address register to increment + // If byte is erased (0xFF, i.e. all 1's, is erased)... + if (UFMD[14:8]==7'b1111111 & DRDOut==1'b1) begin + // Current UFM address is where we want to store + UFMInitDone <= 1'b1; // Quit iterating + // Otherwise byte is valid setting (i.e. some bit is 0)... + end else begin + // Set RWMask, but if saved mask is 0x80, store ~0xFF + if (UFMD[14:8]==7'b1000000 & DRDOut==1'b0) begin + RWMask[7:0] <= {1'b1, ~7'h7F}; + end else RWMask[7:0] <= {UFMD[14], ~UFMD[13:8], ~DRDOut}; + // If last byte in sector... + if (FS[12:5]==8'hFF) begin + UFMReqErase <= 1'b1; // Mark need to erase + end + end + end else ARCLK <= 1'b0; // Don't clock address register + end else begin + ARCLK <= 1'b0; + DRCLK <= 1'b0; + ARShift <= 1'b0; + DRDIn <= 1'b0; + DRShift <= 1'b0; + end + + // Don't erase or program UFM during initialization + UFMErase <= 1'b0; + UFMProgram <= 1'b0; + // Keep DRCLK pulse control disabled during init + DRCLKPulse <= 1'b0; + end else begin + // Can only shift UFM data register now + ARCLK <= 1'b0; + ARShift <= 1'b0; + DRShift <= 1'b1; + + // UFM bitbang control + if (UFMBitbang & CS==3'h7 & RWSel & S==4'hC) begin + DRDIn <= Din[6]; + DRCLKPulse <= Din[7]; + DRCLK <= 1'b0; + end else begin + DRCLKPulse <= 1'b0; + DRCLK <= DRCLKPulse; + end + + // Set capacity mask + if (RWMaskSet & RWSel & S==4'hC) RWMask[7:0] <= {Din[7], ~Din[6:0]}; + + // UFM programming sequence + if (UFMPrgmEN | UFMEraseEN) begin + if (~UFMBusyReg & ~RTPBusyReg) begin + if (UFMReqErase | UFMEraseEN) UFMErase <= 1'b1; + else if (UFMPrgmEN) UFMProgram <= 1'b1; + end else if (UFMBusyReg) UFMReqErase <= 1'b0; + end + end + end + + /* SDRAM Control */ + always @(posedge C14M) begin + if (S==4'h0) begin + // SDRAM initialization + if (FS[15:0]==16'hFFC0) begin + // Precharge All + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b0; + RA[10] <= 1'b1; // "all" + end else if (FS[15:4]==16'hFFD & FS[0]==1'b0) begin // Repeat 8x + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end else if (FS[15:0]==16'hFFE8) begin + // Set Mode Register + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b0; + RA[10] <= 1'b0; // Reserved in mode register + end else if (FS[15:4]==12'hFFF & FS[0]==1'b0) begin // Repeat 8x + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end else begin // Otherwise send no-op + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end + // Enable SDRAM clock after 65,280 cycles (~4.56ms) + CKE <= FS[15:8] == 8'hFF; + + // Mode register contents + BA[1:0] <= 2'b00; // Reserved + RA[11] <= 1'b0; // Reserved + // RA[10] set above ^ + RA[9] <= 1'b1; // "1" for single write mode + RA[8] <= 1'b0; // Reserved + RA[7] <= 1'b0; // "0" for not test mode + RA[6:4] <= 3'b010; // "2" for CAS latency 2 + RA[3] <= 1'b0; // "0" for sequential burst (not used) + RA[2:0] <= 3'b000; // "0" for burst length 1 (no burst) + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + + // Begin normal operation after 128k init cycles (~9.15ms) + if (FS == 16'hFFFF) Ready <= 1'b1; + end else if (S==4'h1) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h2) begin + // Enable clock + CKE <= 1'b1; + + // Activate + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // SDRAM bank 0, high-order row address is 0 + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Row address is as previously latched + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h3) begin + // Enable clock + CKE <= 1'b1; + + // Read + nCS <= 1'b0; + nRAS <= 1'b1; + nCAS <= 1'b0; + nRWE <= 1'b1; + + // SDRAM bank 0, RA[11,9:8] don't care + BA <= 2'b00; + RA[11] <= 1'b0; + RA[10] <= 1'b1; // (A10 set to auto-precharge) + RA[9] <= 1'b0; + RA[8] <= 1'b0; + // Latch column address for read command + RA[7:0] <= Ain[7:0]; + + // Read low byte (high byte is +4MB in ramworks) + DQML <= 1'b0; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h4) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h5) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h6) begin + // Enable clock + CKE <= 1'b1; + + if (FS[5:4]==0) begin + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + end else begin + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + end + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h7) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for activate command + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h8) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // Activate if '245 output enabled + nCS <= nEN80; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // SDRAM bank, RA[11:8] determine by RamWorks bank + BA <= RWBank[5:4]; + RA[11:8] <= RWBank[3:0]; + // Row address is as previously latched + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h9) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // Read/Write if '245 output enabled + nCS <= nEN80; + nRAS <= 1'b1; + nCAS <= 1'b0; + nRWE <= nWE80; + + // SDRAM bank still determined by RamWorks, RA[11,9:8] don't care + BA <= RWBank[5:4]; + RA[11] <= 1'b0; + RA[10] <= 1'b1; // (A10 set to auto-precharge) + RA[9] <= 1'b0; + RA[8] <= RWBank[7]; + // Latch column address for R/W command + RA[7:0] <= Ain[7:0]; + + // Latch RAMWorks low nybble write select using old row address + RWSel <= RA[0] & ~RA[3] & ~nWE & ~nC07X; + + // Mask according to RAMWorks bank (high byte is +4MB) + DQML <= RWBank[6]; + DQMH <= ~RWBank[6]; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'hA) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'hB) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hC) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + + // RAMWorks Bank Register Select + if (RWSel) begin + // Latch RAMWorks bank if accessed + if (SetRWBankFF) RWBank <= 8'hFF; + else RWBank <= Din[7:0] & {RWMask[7], ~RWMask[6:0]}; + + // Recognize command sequence and advance CS state + if ((CS==3'h0 & Din[7:0]==8'hFF) | + (CS==3'h1 & Din[7:0]==8'h00) | + (CS==3'h2 & Din[7:0]==8'h55) | + (CS==3'h3 & Din[7:0]==8'hAA) | + (CS==3'h4 & Din[7:0]==8'hC1) | + (CS==3'h5 & Din[7:0]==8'hAD) | + CS==3'h6 | CS==3'h7) CS <= CS+1; + else CS <= 0; // Back to beginning if it's not right + + if (CS==3'h6) begin // Recognize and submit command in CS6 + SetRWBankFF <= Din[7:0]==8'hFF; + if (Din[7:0]==8'hEF) UFMPrgmEN <= 1'b1; + if (Din[7:0]==8'hEE) UFMEraseEN <= 1'b1; + UFMBitbang <= Din[7:0]==8'hEA; + RWMaskSet <= Din[7:0]==8'hE0; + end else begin // Reset command triggers + SetRWBankFF <= 1'b0; + UFMBitbang <= 1'b0; + RWMaskSet <= 1'b0; + end + + CmdTout <= 0; // Reset command timeout if RWSel accessed + end else begin + CmdTout <= CmdTout+1; // Increment command timeout + // If command sequence times out, reset sequence state + if (CmdTout==3'h7) CS <= 0; + end + end else if (S==4'hD) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hE) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for next video read + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hF) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for next video read + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end + end + always @(negedge C14M) begin + // Latch video and read data outputs + if (S==4'h6) Vout[7:0] <= RD[7:0]; + if (S==4'hC) Dout[7:0] <= RD[7:0]; + end +endmodule diff --git a/cpld_maxv/New folder/UFM.qip b/cpld_maxv/New folder/UFM.qip new file mode 100644 index 0000000..e2d8458 --- /dev/null +++ b/cpld_maxv/New folder/UFM.qip @@ -0,0 +1,3 @@ +set_global_assignment -name IP_TOOL_NAME "ALTUFM_NONE" +set_global_assignment -name IP_TOOL_VERSION "13.0" +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "UFM.v"] diff --git a/cpld_maxv/New folder/UFM.v b/cpld_maxv/New folder/UFM.v new file mode 100644 index 0000000..ec5b564 --- /dev/null +++ b/cpld_maxv/New folder/UFM.v @@ -0,0 +1,268 @@ +// megafunction wizard: %ALTUFM_NONE% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: ALTUFM_NONE + +// ============================================================ +// File Name: UFM.v +// Megafunction Name(s): +// ALTUFM_NONE +// +// Simulation Library Files(s): +// maxii +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +// ************************************************************ + + +//Copyright (C) 1991-2013 Altera Corporation +//Your use of Altera Corporation's design tools, logic functions +//and other software and tools, and its AMPP partner logic +//functions, and any output files from any of the foregoing +//(including device programming or simulation files), and any +//associated documentation or information are expressly subject +//to the terms and conditions of the Altera Program License +//Subscription Agreement, Altera MegaCore Function License +//Agreement, or other applicable license agreement, including, +//without limitation, that your use is for the sole purpose of +//programming logic devices manufactured by Altera and sold by +//Altera or its authorized distributors. Please refer to the +//applicable agreement for further details. + + +//altufm_none CBX_AUTO_BLACKBOX="ALL" DEVICE_FAMILY="MAX II" ERASE_TIME=500000000 LPM_FILE="RAM2E.mif" OSC_FREQUENCY=180000 PORT_ARCLKENA="PORT_UNUSED" PORT_DRCLKENA="PORT_UNUSED" PROGRAM_TIME=1600000 WIDTH_UFM_ADDRESS=9 arclk ardin arshft busy drclk drdin drdout drshft erase osc oscena program rtpbusy +//VERSION_BEGIN 13.0 cbx_a_gray2bin 2013:06:12:18:03:43:SJ cbx_a_graycounter 2013:06:12:18:03:43:SJ cbx_altufm_none 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_maxii 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END +// synthesis VERILOG_INPUT_VERSION VERILOG_2001 +// altera message_off 10463 + + +//synthesis_resources = maxii_ufm 1 +//synopsys translate_off +`timescale 1 ps / 1 ps +//synopsys translate_on +module UFM_altufm_none_a7r + ( + arclk, + ardin, + arshft, + busy, + drclk, + drdin, + drdout, + drshft, + erase, + osc, + oscena, + program, + rtpbusy) ; + input arclk; + input ardin; + input arshft; + output busy; + input drclk; + input drdin; + output drdout; + input drshft; + input erase; + output osc; + input oscena; + input program; + output rtpbusy; + + wire wire_maxii_ufm_block1_bgpbusy; + wire wire_maxii_ufm_block1_busy; + wire wire_maxii_ufm_block1_drdout; + wire wire_maxii_ufm_block1_osc; + wire ufm_arclk; + wire ufm_ardin; + wire ufm_arshft; + wire ufm_bgpbusy; + wire ufm_busy; + wire ufm_drclk; + wire ufm_drdin; + wire ufm_drdout; + wire ufm_drshft; + wire ufm_erase; + wire ufm_osc; + wire ufm_oscena; + wire ufm_program; + + maxii_ufm maxii_ufm_block1 + ( + .arclk(ufm_arclk), + .ardin(ufm_ardin), + .arshft(ufm_arshft), + .bgpbusy(wire_maxii_ufm_block1_bgpbusy), + .busy(wire_maxii_ufm_block1_busy), + .drclk(ufm_drclk), + .drdin(ufm_drdin), + .drdout(wire_maxii_ufm_block1_drdout), + .drshft(ufm_drshft), + .erase(ufm_erase), + .osc(wire_maxii_ufm_block1_osc), + .oscena(ufm_oscena), + .program(ufm_program) + // synopsys translate_off + , + .ctrl_bgpbusy(1'b0), + .devclrn(1'b1), + .devpor(1'b1), + .sbdin(1'b0), + .sbdout() + // synopsys translate_on + ); + defparam + maxii_ufm_block1.address_width = 9, + maxii_ufm_block1.erase_time = 500000000, + maxii_ufm_block1.init_file = "RAM2E.mif", + maxii_ufm_block1.mem1 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem10 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem11 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem12 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem13 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem14 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem15 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem16 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem2 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem3 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem4 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem5 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem6 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem7 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem8 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem9 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.osc_sim_setting = 180000, + maxii_ufm_block1.program_time = 1600000, + maxii_ufm_block1.lpm_type = "maxii_ufm"; + assign + busy = ufm_busy, + drdout = ufm_drdout, + osc = ufm_osc, + rtpbusy = ufm_bgpbusy, + ufm_arclk = arclk, + ufm_ardin = ardin, + ufm_arshft = arshft, + ufm_bgpbusy = wire_maxii_ufm_block1_bgpbusy, + ufm_busy = wire_maxii_ufm_block1_busy, + ufm_drclk = drclk, + ufm_drdin = drdin, + ufm_drdout = wire_maxii_ufm_block1_drdout, + ufm_drshft = drshft, + ufm_erase = erase, + ufm_osc = wire_maxii_ufm_block1_osc, + ufm_oscena = oscena, + ufm_program = program; +endmodule //UFM_altufm_none_a7r +//VALID FILE + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module UFM ( + arclk, + ardin, + arshft, + drclk, + drdin, + drshft, + erase, + oscena, + program, + busy, + drdout, + osc, + rtpbusy); + + input arclk; + input ardin; + input arshft; + input drclk; + input drdin; + input drshft; + input erase; + input oscena; + input program; + output busy; + output drdout; + output osc; + output rtpbusy; + + wire sub_wire0; + wire sub_wire1; + wire sub_wire2; + wire sub_wire3; + wire osc = sub_wire0; + wire rtpbusy = sub_wire1; + wire drdout = sub_wire2; + wire busy = sub_wire3; + + UFM_altufm_none_a7r UFM_altufm_none_a7r_component ( + .arshft (arshft), + .drclk (drclk), + .erase (erase), + .program (program), + .arclk (arclk), + .drdin (drdin), + .oscena (oscena), + .ardin (ardin), + .drshft (drshft), + .osc (sub_wire0), + .rtpbusy (sub_wire1), + .drdout (sub_wire2), + .busy (sub_wire3)); + +endmodule + +// ============================================================ +// CNX file retrieval info +// ============================================================ +// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX II" +// Retrieval info: CONSTANT: ERASE_TIME NUMERIC "500000000" +// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX II" +// Retrieval info: CONSTANT: LPM_FILE STRING "RAM2E.mif" +// Retrieval info: CONSTANT: LPM_HINT STRING "UNUSED" +// Retrieval info: CONSTANT: LPM_TYPE STRING "altufm_none" +// Retrieval info: CONSTANT: OSC_FREQUENCY NUMERIC "180000" +// Retrieval info: CONSTANT: PORT_ARCLKENA STRING "PORT_UNUSED" +// Retrieval info: CONSTANT: PORT_DRCLKENA STRING "PORT_UNUSED" +// Retrieval info: CONSTANT: PROGRAM_TIME NUMERIC "1600000" +// Retrieval info: CONSTANT: WIDTH_UFM_ADDRESS NUMERIC "9" +// Retrieval info: USED_PORT: arclk 0 0 0 0 INPUT NODEFVAL "arclk" +// Retrieval info: CONNECT: @arclk 0 0 0 0 arclk 0 0 0 0 +// Retrieval info: USED_PORT: ardin 0 0 0 0 INPUT NODEFVAL "ardin" +// Retrieval info: CONNECT: @ardin 0 0 0 0 ardin 0 0 0 0 +// Retrieval info: USED_PORT: arshft 0 0 0 0 INPUT NODEFVAL "arshft" +// Retrieval info: CONNECT: @arshft 0 0 0 0 arshft 0 0 0 0 +// Retrieval info: USED_PORT: busy 0 0 0 0 OUTPUT NODEFVAL "busy" +// Retrieval info: CONNECT: busy 0 0 0 0 @busy 0 0 0 0 +// Retrieval info: USED_PORT: drclk 0 0 0 0 INPUT NODEFVAL "drclk" +// Retrieval info: CONNECT: @drclk 0 0 0 0 drclk 0 0 0 0 +// Retrieval info: USED_PORT: drdin 0 0 0 0 INPUT NODEFVAL "drdin" +// Retrieval info: CONNECT: @drdin 0 0 0 0 drdin 0 0 0 0 +// Retrieval info: USED_PORT: drdout 0 0 0 0 OUTPUT NODEFVAL "drdout" +// Retrieval info: CONNECT: drdout 0 0 0 0 @drdout 0 0 0 0 +// Retrieval info: USED_PORT: drshft 0 0 0 0 INPUT NODEFVAL "drshft" +// Retrieval info: CONNECT: @drshft 0 0 0 0 drshft 0 0 0 0 +// Retrieval info: USED_PORT: erase 0 0 0 0 INPUT NODEFVAL "erase" +// Retrieval info: CONNECT: @erase 0 0 0 0 erase 0 0 0 0 +// Retrieval info: USED_PORT: osc 0 0 0 0 OUTPUT NODEFVAL "osc" +// Retrieval info: CONNECT: osc 0 0 0 0 @osc 0 0 0 0 +// Retrieval info: USED_PORT: oscena 0 0 0 0 INPUT NODEFVAL "oscena" +// Retrieval info: CONNECT: @oscena 0 0 0 0 oscena 0 0 0 0 +// Retrieval info: USED_PORT: program 0 0 0 0 INPUT NODEFVAL "program" +// Retrieval info: CONNECT: @program 0 0 0 0 program 0 0 0 0 +// Retrieval info: USED_PORT: rtpbusy 0 0 0 0 OUTPUT NODEFVAL "rtpbusy" +// Retrieval info: CONNECT: rtpbusy 0 0 0 0 @rtpbusy 0 0 0 0 +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.v TRUE FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.qip TRUE FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.bsf FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM_inst.v FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM_bb.v FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.inc FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.cmp FALSE TRUE +// Retrieval info: LIB_FILE: maxii diff --git a/cpld_maxv/RAM2E - 16MB.mif b/cpld_maxv/RAM2E - 16MB.mif new file mode 100644 index 0000000..5b546ed --- /dev/null +++ b/cpld_maxv/RAM2E - 16MB.mif @@ -0,0 +1,26 @@ +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + +-- Quartus II generated Memory Initialization File (.mif) + +WIDTH=16; +DEPTH=512; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + 000 : 8080; + [001..1FF] : FFFF; +END; diff --git a/cpld_maxv/RAM2E - AF.mif b/cpld_maxv/RAM2E - AF.mif new file mode 100644 index 0000000..fdefd00 --- /dev/null +++ b/cpld_maxv/RAM2E - AF.mif @@ -0,0 +1,273 @@ +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + +-- Quartus II generated Memory Initialization File (.mif) + +WIDTH=16; +DEPTH=512; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + 000 : 0000; + 001 : 0101; + 002 : 0202; + 003 : 0303; + 004 : 0404; + 005 : 0505; + 006 : 0606; + 007 : 0707; + 008 : 0808; + 009 : 0909; + 00A : 0A0A; + 00B : 0B0B; + 00C : 0C0C; + 00D : 0D0D; + 00E : 0E0E; + 00F : 0F0F; + 010 : 1010; + 011 : 1111; + 012 : 1212; + 013 : 1313; + 014 : 1414; + 015 : 1515; + 016 : 1616; + 017 : 1717; + 018 : 1818; + 019 : 1919; + 01A : 1A1A; + 01B : 1B1B; + 01C : 1C1C; + 01D : 1D1D; + 01E : 1E1E; + 01F : 1F1F; + 020 : 2020; + 021 : 2121; + 022 : 2222; + 023 : 2323; + 024 : 2424; + 025 : 2525; + 026 : 2626; + 027 : 2727; + 028 : 2828; + 029 : 2929; + 02A : 2A2A; + 02B : 2B2B; + 02C : 2C2C; + 02D : 2D2D; + 02E : 2E2E; + 02F : 2F2F; + 030 : 3030; + 031 : 3131; + 032 : 3232; + 033 : 3333; + 034 : 3434; + 035 : 3535; + 036 : 3636; + 037 : 3737; + 038 : 3838; + 039 : 3939; + 03A : 3A3A; + 03B : 3B3B; + 03C : 3C3C; + 03D : 3D3D; + 03E : 3E3E; + 03F : 3F3F; + 040 : 4040; + 041 : 4141; + 042 : 4242; + 043 : 4343; + 044 : 4444; + 045 : 4545; + 046 : 4646; + 047 : 4747; + 048 : 4848; + 049 : 4949; + 04A : 4A4A; + 04B : 4B4B; + 04C : 4C4C; + 04D : 4D4D; + 04E : 4E4E; + 04F : 4F4F; + 050 : 5050; + 051 : 5151; + 052 : 5252; + 053 : 5353; + 054 : 5454; + 055 : 5555; + 056 : 5656; + 057 : 5757; + 058 : 5858; + 059 : 5959; + 05A : 5A5A; + 05B : 5B5B; + 05C : 5C5C; + 05D : 5D5D; + 05E : 5E5E; + 05F : 5F5F; + 060 : 6060; + 061 : 6161; + 062 : 6262; + 063 : 6363; + 064 : 6464; + 065 : 6565; + 066 : 6666; + 067 : 6767; + 068 : 6868; + 069 : 6969; + 06A : 6A6A; + 06B : 6B6B; + 06C : 6C6C; + 06D : 6D6D; + 06E : 6E6E; + 06F : 6F6F; + 070 : 7070; + 071 : 7171; + 072 : 7272; + 073 : 7373; + 074 : 7474; + 075 : 7575; + 076 : 7676; + 077 : 7777; + 078 : 7878; + 079 : 7979; + 07A : 7A7A; + 07B : 7B7B; + 07C : 7C7C; + 07D : 7D7D; + 07E : 7E7E; + 07F : 7F7F; + 080 : 8080; + 081 : 8181; + 082 : 8282; + 083 : 8383; + 084 : 8484; + 085 : 8585; + 086 : 8686; + 087 : 8787; + 088 : 8888; + 089 : 8989; + 08A : 8A8A; + 08B : 8B8B; + 08C : 8C8C; + 08D : 8D8D; + 08E : 8E8E; + 08F : 8F8F; + 090 : 9090; + 091 : 9191; + 092 : 9292; + 093 : 9393; + 094 : 9494; + 095 : 9595; + 096 : 9696; + 097 : 9797; + 098 : 9898; + 099 : 9999; + 09A : 9A9A; + 09B : 9B9B; + 09C : 9C9C; + 09D : 9D9D; + 09E : 9E9E; + 09F : 9F9F; + 0A0 : A0A0; + 0A1 : A1A1; + 0A2 : A2A2; + 0A3 : A3A3; + 0A4 : A4A4; + 0A5 : A5A5; + 0A6 : A6A6; + 0A7 : A7A7; + 0A8 : A8A8; + 0A9 : A9A9; + 0AA : AAAA; + 0AB : ABAB; + 0AC : ACAC; + 0AD : ADAD; + 0AE : AEAE; + 0AF : AFAF; + 0B0 : B0B0; + 0B1 : B1B1; + 0B2 : B2B2; + 0B3 : B3B3; + 0B4 : B4B4; + 0B5 : B5B5; + 0B6 : B6B6; + 0B7 : B7B7; + 0B8 : B8B8; + 0B9 : B9B9; + 0BA : BABA; + 0BB : BBBB; + 0BC : BCBC; + 0BD : BDBD; + 0BE : BEBE; + 0BF : BFBF; + 0C0 : C0C0; + 0C1 : C1C1; + 0C2 : C2C2; + 0C3 : C3C3; + 0C4 : C4C4; + 0C5 : C5C5; + 0C6 : C6C6; + 0C7 : C7C7; + 0C8 : C8C8; + 0C9 : C9C9; + 0CA : CACA; + 0CB : CBCB; + 0CC : CCCC; + 0CD : CDCD; + 0CE : CECE; + 0CF : CFCF; + 0D0 : D0D0; + 0D1 : D1D1; + 0D2 : D2D2; + 0D3 : D3D3; + 0D4 : D4D4; + 0D5 : D5D5; + 0D6 : D6D6; + 0D7 : D7D7; + 0D8 : D8D8; + 0D9 : D9D9; + 0DA : DADA; + 0DB : DBDB; + 0DC : DCDC; + 0DD : DDDD; + 0DE : DEDE; + 0DF : DFDF; + 0E0 : E0E0; + 0E1 : E1E1; + 0E2 : E2E2; + 0E3 : E3E3; + 0E4 : E4E4; + 0E5 : E5E5; + 0E6 : E6E6; + 0E7 : E7E7; + 0E8 : E8E8; + 0E9 : E9E9; + 0EA : EAEA; + 0EB : EBEB; + 0EC : ECEC; + 0ED : EDED; + 0EE : EEEE; + 0EF : EFEF; + 0F0 : F0F0; + 0F1 : F1F1; + 0F2 : F2F2; + 0F3 : F3F3; + 0F4 : F4F4; + 0F5 : F5F5; + 0F6 : F6F6; + 0F7 : 7F7F; + [0F8..1FF] : FFFF; +END; diff --git a/cpld_maxv/RAM2E - E.mif b/cpld_maxv/RAM2E - E.mif new file mode 100644 index 0000000..80fa213 --- /dev/null +++ b/cpld_maxv/RAM2E - E.mif @@ -0,0 +1,25 @@ +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + +-- Quartus II generated Memory Initialization File (.mif) + +WIDTH=16; +DEPTH=512; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + [000..1FF] : FFFF; +END; diff --git a/cpld_maxv/RAM2E - F.mif b/cpld_maxv/RAM2E - F.mif new file mode 100644 index 0000000..63b1e81 --- /dev/null +++ b/cpld_maxv/RAM2E - F.mif @@ -0,0 +1,281 @@ +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + +-- Quartus II generated Memory Initialization File (.mif) + +WIDTH=16; +DEPTH=512; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + 000 : 0000; + 001 : 0101; + 002 : 0202; + 003 : 0303; + 004 : 0404; + 005 : 0505; + 006 : 0606; + 007 : 0707; + 008 : 0808; + 009 : 0909; + 00A : 0A0A; + 00B : 0B0B; + 00C : 0C0C; + 00D : 0D0D; + 00E : 0E0E; + 00F : 0F0F; + 010 : 1010; + 011 : 1111; + 012 : 1212; + 013 : 1313; + 014 : 1414; + 015 : 1515; + 016 : 1616; + 017 : 1717; + 018 : 1818; + 019 : 1919; + 01A : 1A1A; + 01B : 1B1B; + 01C : 1C1C; + 01D : 1D1D; + 01E : 1E1E; + 01F : 1F1F; + 020 : 2020; + 021 : 2121; + 022 : 2222; + 023 : 2323; + 024 : 2424; + 025 : 2525; + 026 : 2626; + 027 : 2727; + 028 : 2828; + 029 : 2929; + 02A : 2A2A; + 02B : 2B2B; + 02C : 2C2C; + 02D : 2D2D; + 02E : 2E2E; + 02F : 2F2F; + 030 : 3030; + 031 : 3131; + 032 : 3232; + 033 : 3333; + 034 : 3434; + 035 : 3535; + 036 : 3636; + 037 : 3737; + 038 : 3838; + 039 : 3939; + 03A : 3A3A; + 03B : 3B3B; + 03C : 3C3C; + 03D : 3D3D; + 03E : 3E3E; + 03F : 3F3F; + 040 : 4040; + 041 : 4141; + 042 : 4242; + 043 : 4343; + 044 : 4444; + 045 : 4545; + 046 : 4646; + 047 : 4747; + 048 : 4848; + 049 : 4949; + 04A : 4A4A; + 04B : 4B4B; + 04C : 4C4C; + 04D : 4D4D; + 04E : 4E4E; + 04F : 4F4F; + 050 : 5050; + 051 : 5151; + 052 : 5252; + 053 : 5353; + 054 : 5454; + 055 : 5555; + 056 : 5656; + 057 : 5757; + 058 : 5858; + 059 : 5959; + 05A : 5A5A; + 05B : 5B5B; + 05C : 5C5C; + 05D : 5D5D; + 05E : 5E5E; + 05F : 5F5F; + 060 : 6060; + 061 : 6161; + 062 : 6262; + 063 : 6363; + 064 : 6464; + 065 : 6565; + 066 : 6666; + 067 : 6767; + 068 : 6868; + 069 : 6969; + 06A : 6A6A; + 06B : 6B6B; + 06C : 6C6C; + 06D : 6D6D; + 06E : 6E6E; + 06F : 6F6F; + 070 : 7070; + 071 : 7171; + 072 : 7272; + 073 : 7373; + 074 : 7474; + 075 : 7575; + 076 : 7676; + 077 : 7777; + 078 : 7878; + 079 : 7979; + 07A : 7A7A; + 07B : 7B7B; + 07C : 7C7C; + 07D : 7D7D; + 07E : 7E7E; + 07F : 7F7F; + 080 : 8080; + 081 : 8181; + 082 : 8282; + 083 : 8383; + 084 : 8484; + 085 : 8585; + 086 : 8686; + 087 : 8787; + 088 : 8888; + 089 : 8989; + 08A : 8A8A; + 08B : 8B8B; + 08C : 8C8C; + 08D : 8D8D; + 08E : 8E8E; + 08F : 8F8F; + 090 : 9090; + 091 : 9191; + 092 : 9292; + 093 : 9393; + 094 : 9494; + 095 : 9595; + 096 : 9696; + 097 : 9797; + 098 : 9898; + 099 : 9999; + 09A : 9A9A; + 09B : 9B9B; + 09C : 9C9C; + 09D : 9D9D; + 09E : 9E9E; + 09F : 9F9F; + 0A0 : A0A0; + 0A1 : A1A1; + 0A2 : A2A2; + 0A3 : A3A3; + 0A4 : A4A4; + 0A5 : A5A5; + 0A6 : A6A6; + 0A7 : A7A7; + 0A8 : A8A8; + 0A9 : A9A9; + 0AA : AAAA; + 0AB : ABAB; + 0AC : ACAC; + 0AD : ADAD; + 0AE : AEAE; + 0AF : AFAF; + 0B0 : B0B0; + 0B1 : B1B1; + 0B2 : B2B2; + 0B3 : B3B3; + 0B4 : B4B4; + 0B5 : B5B5; + 0B6 : B6B6; + 0B7 : B7B7; + 0B8 : B8B8; + 0B9 : B9B9; + 0BA : BABA; + 0BB : BBBB; + 0BC : BCBC; + 0BD : BDBD; + 0BE : BEBE; + 0BF : BFBF; + 0C0 : C0C0; + 0C1 : C1C1; + 0C2 : C2C2; + 0C3 : C3C3; + 0C4 : C4C4; + 0C5 : C5C5; + 0C6 : C6C6; + 0C7 : C7C7; + 0C8 : C8C8; + 0C9 : C9C9; + 0CA : CACA; + 0CB : CBCB; + 0CC : CCCC; + 0CD : CDCD; + 0CE : CECE; + 0CF : CFCF; + 0D0 : D0D0; + 0D1 : D1D1; + 0D2 : D2D2; + 0D3 : D3D3; + 0D4 : D4D4; + 0D5 : D5D5; + 0D6 : D6D6; + 0D7 : D7D7; + 0D8 : D8D8; + 0D9 : D9D9; + 0DA : DADA; + 0DB : DBDB; + 0DC : DCDC; + 0DD : DDDD; + 0DE : DEDE; + 0DF : DFDF; + 0E0 : E0E0; + 0E1 : E1E1; + 0E2 : E2E2; + 0E3 : E3E3; + 0E4 : E4E4; + 0E5 : E5E5; + 0E6 : E6E6; + 0E7 : E7E7; + 0E8 : E8E8; + 0E9 : E9E9; + 0EA : EAEA; + 0EB : EBEB; + 0EC : ECEC; + 0ED : EDED; + 0EE : EEEE; + 0EF : EFEF; + 0F0 : F0F0; + 0F1 : F1F1; + 0F2 : F2F2; + 0F3 : F3F3; + 0F4 : F4F4; + 0F5 : F5F5; + 0F6 : F6F6; + 0F7 : 7F7F; + 0F8 : F8F8; + 0F9 : F9F9; + 0FA : FAFA; + 0FB : FBFB; + 0FC : FCFC; + 0FD : FDFD; + 0FE : FEFE; + 0FF : 0F0F; + [100..1FF] : FFFF; +END; diff --git a/cpld_maxv/RAM2E.mif b/cpld_maxv/RAM2E.mif new file mode 100644 index 0000000..80fa213 --- /dev/null +++ b/cpld_maxv/RAM2E.mif @@ -0,0 +1,25 @@ +-- Copyright (C) 1991-2013 Altera Corporation +-- Your use of Altera Corporation's design tools, logic functions +-- and other software and tools, and its AMPP partner logic +-- functions, and any output files from any of the foregoing +-- (including device programming or simulation files), and any +-- associated documentation or information are expressly subject +-- to the terms and conditions of the Altera Program License +-- Subscription Agreement, Altera MegaCore Function License +-- Agreement, or other applicable license agreement, including, +-- without limitation, that your use is for the sole purpose of +-- programming logic devices manufactured by Altera and sold by +-- Altera or its authorized distributors. Please refer to the +-- applicable agreement for further details. + +-- Quartus II generated Memory Initialization File (.mif) + +WIDTH=16; +DEPTH=512; + +ADDRESS_RADIX=HEX; +DATA_RADIX=HEX; + +CONTENT BEGIN + [000..1FF] : FFFF; +END; diff --git a/cpld_maxv/RAM2E.qpf b/cpld_maxv/RAM2E.qpf new file mode 100644 index 0000000..100c9bd --- /dev/null +++ b/cpld_maxv/RAM2E.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 32-bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 22:58:44 May 05, 2020 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.0" +DATE = "22:58:44 May 05, 2020" + +# Revisions + +PROJECT_REVISION = "RAM2E" diff --git a/cpld_maxv/RAM2E.qsf b/cpld_maxv/RAM2E.qsf new file mode 100644 index 0000000..43d7247 --- /dev/null +++ b/cpld_maxv/RAM2E.qsf @@ -0,0 +1,259 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 32-bit +# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +# Date created = 22:58:44 May 05, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# RAM2E_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "MAX V" +set_global_assignment -name DEVICE 5M240ZT100C5 +set_global_assignment -name TOP_LEVEL_ENTITY RAM2E +set_global_assignment -name ORIGINAL_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_CREATION_TIME_DATE "22:58:44 MAY 05, 2020" +set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 100 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 5 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR "-1" +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVCMOS" +set_global_assignment -name VERILOG_FILE RAM2E.v +set_global_assignment -name SDC_FILE constraints.sdc +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS OFF +set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO PATHS AND MINIMUM TPD PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" +set_global_assignment -name MAXII_OPTIMIZATION_TECHNIQUE BALANCED +set_global_assignment -name ALLOW_POWER_UP_DONT_CARE OFF +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS OFF +set_global_assignment -name SAFE_STATE_MACHINE ON +set_global_assignment -name PARALLEL_SYNTHESIS OFF +set_global_assignment -name SYNTH_MESSAGE_LEVEL HIGH +set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT NORMAL +set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_ASYNCHRONOUS_SIGNAL_PIPELINING OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION OFF +set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA OFF +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +set_global_assignment -name MIF_FILE RAM2E.mif +set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER OFF +set_global_assignment -name POWER_DEFAULT_INPUT_IO_TOGGLE_RATE "12.5 %" + +set_location_assignment PIN_12 -to C14M +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to C14M +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to C14M + +set_location_assignment PIN_37 -to PHI1 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to PHI1 +set_instance_assignment -name PAD_TO_CORE_DELAY 1 -to PHI1 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to PHI1 + +set_location_assignment PIN_51 -to nWE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nWE +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nWE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nWE + +set_location_assignment PIN_28 -to nEN80 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nEN80 +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nEN80 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nEN80 + +set_location_assignment PIN_33 -to nWE80 +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nWE80 +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nWE80 +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nWE80 + +set_location_assignment PIN_52 -to nC07X +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nC07X +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to nC07X +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nC07X + +set_location_assignment PIN_56 -to Ain[0] +set_location_assignment PIN_54 -to Ain[1] +set_location_assignment PIN_43 -to Ain[2] +set_location_assignment PIN_47 -to Ain[3] +set_location_assignment PIN_44 -to Ain[4] +set_location_assignment PIN_34 -to Ain[5] +set_location_assignment PIN_39 -to Ain[6] +set_location_assignment PIN_53 -to Ain[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Ain +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to Ain +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Ain + +set_location_assignment PIN_38 -to Din[0] +set_location_assignment PIN_40 -to Din[1] +set_location_assignment PIN_42 -to Din[2] +set_location_assignment PIN_41 -to Din[3] +set_location_assignment PIN_48 -to Din[4] +set_location_assignment PIN_49 -to Din[5] +set_location_assignment PIN_36 -to Din[6] +set_location_assignment PIN_35 -to Din[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Din +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to Din +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Din + +set_location_assignment PIN_55 -to nDOE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nDOE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nDOE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nDOE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to nDOE + +set_location_assignment PIN_77 -to Dout[0] +set_location_assignment PIN_76 -to Dout[1] +set_location_assignment PIN_74 -to Dout[2] +set_location_assignment PIN_75 -to Dout[3] +set_location_assignment PIN_73 -to Dout[4] +set_location_assignment PIN_72 -to Dout[5] +set_location_assignment PIN_84 -to Dout[6] +set_location_assignment PIN_85 -to Dout[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Dout +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to Dout +set_instance_assignment -name SLOW_SLEW_RATE ON -to Dout +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to Dout +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Dout + +set_location_assignment PIN_50 -to nVOE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nVOE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nVOE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nVOE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to nVOE + +set_location_assignment PIN_70 -to Vout[0] +set_location_assignment PIN_67 -to Vout[1] +set_location_assignment PIN_69 -to Vout[2] +set_location_assignment PIN_62 -to Vout[3] +set_location_assignment PIN_71 -to Vout[4] +set_location_assignment PIN_68 -to Vout[5] +set_location_assignment PIN_58 -to Vout[6] +set_location_assignment PIN_57 -to Vout[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to Vout +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to Vout +set_instance_assignment -name SLOW_SLEW_RATE ON -to Vout +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to Vout +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to Vout + +set_location_assignment PIN_4 -to CKE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to CKE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to CKE +set_instance_assignment -name SLOW_SLEW_RATE ON -to CKE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to CKE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to CKE + +set_location_assignment PIN_8 -to nCS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nCS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nCS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nCS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nCS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nCS + +set_location_assignment PIN_2 -to nRWE +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nRWE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nRWE +set_instance_assignment -name SLOW_SLEW_RATE ON -to nRWE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nRWE +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nRWE + +set_location_assignment PIN_5 -to nRAS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nRAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nRAS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nRAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nRAS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nRAS + +set_location_assignment PIN_3 -to nCAS +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to nCAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to nCAS +set_instance_assignment -name SLOW_SLEW_RATE ON -to nCAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to nCAS +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to nCAS + +set_location_assignment PIN_6 -to BA[0] +set_location_assignment PIN_14 -to BA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to BA +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to BA +set_instance_assignment -name SLOW_SLEW_RATE ON -to BA +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to BA +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to BA + +set_location_assignment PIN_18 -to RA[0] +set_location_assignment PIN_20 -to RA[1] +set_location_assignment PIN_30 -to RA[2] +set_location_assignment PIN_27 -to RA[3] +set_location_assignment PIN_26 -to RA[4] +set_location_assignment PIN_29 -to RA[5] +set_location_assignment PIN_21 -to RA[6] +set_location_assignment PIN_19 -to RA[7] +set_location_assignment PIN_17 -to RA[8] +set_location_assignment PIN_15 -to RA[9] +set_location_assignment PIN_16 -to RA[10] +set_location_assignment PIN_7 -to RA[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to RA +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to RA +set_instance_assignment -name SLOW_SLEW_RATE ON -to RA +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to RA +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to RA + +set_location_assignment PIN_100 -to DQMH +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to DQMH +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to DQMH +set_instance_assignment -name SLOW_SLEW_RATE ON -to DQMH +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to DQMH +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to DQMH + +set_location_assignment PIN_98 -to DQML +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to DQML +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to DQML +set_instance_assignment -name SLOW_SLEW_RATE ON -to DQML +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to DQML +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to DQML + +set_location_assignment PIN_97 -to RD[0] +set_location_assignment PIN_90 -to RD[1] +set_location_assignment PIN_99 -to RD[2] +set_location_assignment PIN_89 -to RD[3] +set_location_assignment PIN_91 -to RD[4] +set_location_assignment PIN_92 -to RD[5] +set_location_assignment PIN_95 -to RD[6] +set_location_assignment PIN_96 -to RD[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to RD +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to RD +set_instance_assignment -name SLOW_SLEW_RATE ON -to RD +set_instance_assignment -name PAD_TO_CORE_DELAY 0 -to RD +set_instance_assignment -name ENABLE_BUS_HOLD_CIRCUITRY ON -to RD +set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to RD + +set_global_assignment -name QIP_FILE UFM.qip \ No newline at end of file diff --git a/cpld_maxv/RAM2E.qws b/cpld_maxv/RAM2E.qws new file mode 100644 index 0000000000000000000000000000000000000000..9f0f8e8b91b9cde16083581c112ecaad90c281ca GIT binary patch literal 613 zcmbV}O-chn5QX22KV<0vvIrs)gpnjha48X7xsq%ILB>pvh9pi%MqG&3F?bd?ZoPn) zFh;*>S~rTI)zn{4)vH%M`*nRvRYRqks??coRA{0B*_gYYTquh0N4iy}UA0m3nQ|rC zA#YKasL9FDgwBTceAFOnp((XFw#{ks?d}~h?C1gGqc_X!3VD&@**qqSUNP(H(t8e1 zry2}%>;e7?&d%Fu=!|ESpUQ);oEQrEa?lFCG7kw(Hei#z9Ec^D9bMx~k6dGB!5K0) z)x=5-)>E|@S<@k{j-{=nr@>D}M$ELXWA$~R%l}OBF9FDgCpG?^Ds|teE^%cnw%D-< fJC6PivmHG@J%0Tqo1@hZ?|AP+3=gz0wLI1b!GmZw literal 0 HcmV?d00001 diff --git a/cpld_maxv/RAM2E.v b/cpld_maxv/RAM2E.v new file mode 100644 index 0000000..5c553eb --- /dev/null +++ b/cpld_maxv/RAM2E.v @@ -0,0 +1,636 @@ +module RAM2E(C14M, PHI1, + nWE, nWE80, nEN80, nC07X, + Ain, Din, Dout, nDOE, Vout, nVOE, + CKE, nCS, nRAS, nCAS, nRWE, + BA, RA, RD, DQML, DQMH); + + /* Clocks */ + input C14M, PHI1; + + /* Control inputs */ + input nWE, nWE80, nEN80, nC07X; + + /* Delay for EN80 signal */ + //output DelayOut = 1'b0; + //input DelayIn; + wire EN80 = ~nEN80; + + /* Address Bus */ + input [7:0] Ain; // Multiplexed DRAM address input + + /* 6502 Data Bus */ + input [7:0] Din; // 6502 data bus inputs + reg DOEEN = 0; // 6502 data bus output enable from state machine + output nDOE = ~(EN80 & nWE & DOEEN); // 6502 data bus output enable + output reg [7:0] Dout; // 6502 data Bus output + + /* Video Data Bus */ + output nVOE = ~(~PHI1); /// Video data bus output enable + output reg [7:0] Vout; // Video data bus + + /* SDRAM */ + output reg CKE = 0; + output reg nCS = 1, nRAS = 1, nCAS = 1, nRWE = 1; + output reg [1:0] BA; + output reg [11:0] RA; + output reg DQML = 1, DQMH = 1; + wire RDOE = EN80 & ~nWE80; + inout [7:0] RD = RDOE ? Din[7:0] : 8'bZ; + + /* RAMWorks Bank Register and Capacity Mask */ + reg [7:0] RWBank = 0; // RAMWorks bank register + reg [7:0] RWMask = 0; // RAMWorks bank reg. capacity mask + reg RWSel = 0; // RAMWorks bank register select + reg RWMaskSet = 0; // RAMWorks Mask register set flag + reg SetRWBankFF = 0; // Causes RWBank to be zeroed next RWSel access + + /* Command Sequence Detector */ + reg [2:0] CS = 0; // Command sequence state + reg [2:0] CmdTout = 0; // Command sequence timeout + + /* UFM Interface */ + reg [15:8] UFMD = 0; // *Parallel* UFM data register + reg ARCLK = 0; // UFM address register clock + // UFM address register data input tied to 0 + reg ARShift = 0; // 1 to Shift UFM address in, 0 to increment + reg DRCLK = 0; // UFM data register clock + reg DRDIn = 0; // UFM data register input + reg DRShift = 0; // 1 to shift UFM out, 0 to load from current address + reg UFMErase = 0; // Rising edge starts erase. UFM+RTP must not be busy + reg UFMProgram = 0; // Rising edge starts program. UFM+RTP must not be busy + wire UFMBusy; // 1 if UFM is doing user operation. Asynchronous + wire RTPBusy; // 1 if real-time programming in progress. Asynchronous + wire DRDOut; // UFM data output + // UFM oscillator always enabled + wire UFMOsc; // UFM oscillator output (3.3-5.5 MHz) + UFM UFM_inst ( // UFM IP block (for Altera MAX II and MAX V) + .arclk (ARCLK), + .ardin (1'b0), + .arshft (ARShift), + .drclk (DRCLK), + .drdin (DRDIn), + .drshft (DRShift), + .erase (UFMErase), + .oscena (1'b1), + .program (UFMProgram), + .busy (UFMBusy), + .drdout (DRDOut), + .osc (UFMOsc), + .rtpbusy (RTPBusy)); + reg UFMBusyReg = 0; // UFMBusy registered to sync with C14M + reg RTPBusyReg = 0; // RTPBusy registered to sync with C14M + + /* UFM State & User Command Triggers */ + reg UFMInitDone = 0; // 1 if UFM initialization finished + reg UFMReqErase = 0; // 1 if UFM requires erase + reg UFMBitbang = 0; // Set by user command. Loads UFM outputs next RWSel + reg UFMPrgmEN = 0; // Set by user command. Programs UFM + reg UFMEraseEN = 0; // Set by user command. Erases UFM + reg DRCLKPulse = 0; // Set by user command. Causes DRCLK pulse next C14M + + /* State Counters */ + reg PHI1reg = 0; // Saved PHI1 at last rising clock edge + reg Ready = 0; // 1 if done with init sequence (S0) and enter S1-S15 + reg [15:0] FS = 0; // Fast state counter + reg [3:0] S = 0; // IIe State counter + + /* State Counters */ + always @(posedge C14M) begin + // Increment fast state counter + FS <= FS+1; + // Synchronize Apple state counter to S1 when just entering PHI1 + PHI1reg <= PHI1; // Save old PHI1 + S <= (PHI1 & ~PHI1reg & Ready) ? 4'h1 : + S==4'h0 ? 4'h0 : + S==4'hF ? 4'hF : S+1; + end + + /* UFM Control */ + always @(posedge C14M) begin + // Synchronize asynchronous UFM signals + UFMBusyReg <= UFMBusy; + RTPBusyReg <= RTPBusy; + + if (S==4'h0) begin + if ((FS[15:13]==3'b101) | (FS[15:13]==3'b111 & UFMReqErase)) begin + // In states AXXX-BXXX and also EXXX-FXXX if erase/wrap req'd + // shift in 0's to address register + ARCLK <= FS[0]; // Clock address register + DRCLK <= 1'b0; // Don't clock data register + ARShift <= 1'b1; // Shift address registers + DRDIn <= 1'b0; // Don't care DRDIn + DRShift <= 1'b0; // Don't care DRDShift + end else if (~UFMInitDone & FS[15:13]==3'b110 & FS[4:1]==4'h4) begin + // In states CXXX-DXXX (substep 4) + // Xfer to data reg (repeat 256x 1x) + ARCLK <= 1'b0; // Don't clock address register + DRCLK <= FS[0]; // Clock data register + ARShift <= 1'b0; // Don't care ARShift + DRDIn <= 1'b0; // Don't care DRDIn + DRShift <= 1'b0; // Don't care DRShift + end else if (~UFMInitDone & FS[15:13]==3'b110 & FS[4]==1'b1) begin + // In states CXXX-DXXX (substeps 8-F) + // Save UFM D15-8, shift out D14-7 (repeat 256x 8x) + DRCLK <= FS[0]; // Clock data register + ARShift <= 1'b0; // ARShift is 0 because we want to increment + DRDIn <= 1'b0; // Don't care what to shift into data register + DRShift <= 1'b1; // Shift data register + // Shift into UFMD + if (FS[0]) UFMD[15:8] <= {UFMD[14:8], DRDOut}; + + // Compare and store mask + if (FS[4:1]==4'hF) begin + ARCLK <= FS[0]; // Clock address register to increment + // If byte is erased (0xFF, i.e. all 1's, is erased)... + if (UFMD[14:8]==7'b1111111 & DRDOut==1'b1) begin + // Current UFM address is where we want to store + UFMInitDone <= 1'b1; // Quit iterating + // Otherwise byte is valid setting (i.e. some bit is 0)... + end else begin + // Set RWMask, but if saved mask is 0x80, store ~0xFF + if (UFMD[14:8]==7'b1000000 & DRDOut==1'b0) begin + RWMask[7:0] <= {1'b1, ~7'h7F}; + end else RWMask[7:0] <= {UFMD[14], ~UFMD[13:8], ~DRDOut}; + // If last byte in sector... + if (FS[12:5]==8'hFF) begin + UFMReqErase <= 1'b1; // Mark need to erase + end + end + end else ARCLK <= 1'b0; // Don't clock address register + end else begin + ARCLK <= 1'b0; + DRCLK <= 1'b0; + ARShift <= 1'b0; + DRDIn <= 1'b0; + DRShift <= 1'b0; + end + + // Don't erase or program UFM during initialization + UFMErase <= 1'b0; + UFMProgram <= 1'b0; + // Keep DRCLK pulse control disabled during init + DRCLKPulse <= 1'b0; + end else begin + // Can only shift UFM data register now + ARCLK <= 1'b0; + ARShift <= 1'b0; + DRShift <= 1'b1; + + // UFM bitbang control + if (UFMBitbang & CS==3'h7 & RWSel & S==4'hC) begin + DRDIn <= Din[6]; + DRCLKPulse <= Din[7]; + DRCLK <= 1'b0; + end else begin + DRCLKPulse <= 1'b0; + DRCLK <= DRCLKPulse; + end + + // Set capacity mask + if (RWMaskSet & RWSel & S==4'hC) RWMask[7:0] <= {Din[7], ~Din[6:0]}; + + // UFM programming sequence + if (UFMPrgmEN | UFMEraseEN) begin + if (~UFMBusyReg & ~RTPBusyReg) begin + if (UFMReqErase | UFMEraseEN) UFMErase <= 1'b1; + else if (UFMPrgmEN) UFMProgram <= 1'b1; + end else if (UFMBusyReg) UFMReqErase <= 1'b0; + end + end + end + + /* SDRAM Control */ + always @(posedge C14M) begin + if (S==4'h0) begin + // SDRAM initialization + if (FS[15:0]==16'hFFC0) begin + // Precharge All + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b0; + RA[10] <= 1'b1; // "all" + end else if (FS[15:4]==16'hFFD & FS[0]==1'b0) begin // Repeat 8x + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end else if (FS[15:0]==16'hFFE8) begin + // Set Mode Register + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b0; + RA[10] <= 1'b0; // Reserved in mode register + end else if (FS[15:4]==12'hFFF & FS[0]==1'b0) begin // Repeat 8x + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end else begin // Otherwise send no-op + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + RA[10] <= 1'b0; + end + // Enable SDRAM clock after 65,280 cycles (~4.56ms) + CKE <= FS[15:8] == 8'hFF; + + // Mode register contents + BA[1:0] <= 2'b00; // Reserved + RA[11] <= 1'b0; // Reserved + // RA[10] set above ^ + RA[9] <= 1'b1; // "1" for single write mode + RA[8] <= 1'b0; // Reserved + RA[7] <= 1'b0; // "0" for not test mode + RA[6:4] <= 3'b010; // "2" for CAS latency 2 + RA[3] <= 1'b0; // "0" for sequential burst (not used) + RA[2:0] <= 3'b000; // "0" for burst length 1 (no burst) + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + + // Begin normal operation after 128k init cycles (~9.15ms) + if (FS == 16'hFFFF) Ready <= 1'b1; + end else if (S==4'h1) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h2) begin + // Enable clock + CKE <= 1'b1; + + // Activate + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // SDRAM bank 0, high-order row address is 0 + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Row address is as previously latched + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h3) begin + // Enable clock + CKE <= 1'b1; + + // Read + nCS <= 1'b0; + nRAS <= 1'b1; + nCAS <= 1'b0; + nRWE <= 1'b1; + + // SDRAM bank 0, RA[11,9:8] don't care + BA <= 2'b00; + RA[11] <= 1'b0; + RA[10] <= 1'b1; // (A10 set to auto-precharge) + RA[9] <= 1'b0; + RA[8] <= 1'b0; + // Latch column address for read command + RA[7:0] <= Ain[7:0]; + + // Read low byte (high byte is +4MB in ramworks) + DQML <= 1'b0; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h4) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h5) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h6) begin + // Enable clock + CKE <= 1'b1; + + if (FS[5:4]==0) begin + // Auto-refresh + nCS <= 1'b0; + nRAS <= 1'b0; + nCAS <= 1'b0; + nRWE <= 1'b1; + end else begin + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + end + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h7) begin + // Enable clock + CKE <= 1'b1; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for activate command + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h8) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // Activate if '245 output enabled + nCS <= nEN80; + nRAS <= 1'b0; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // SDRAM bank, RA[11:8] determine by RamWorks bank + BA <= RWBank[5:4]; + RA[11:8] <= RWBank[3:0]; + // Row address is as previously latched + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'h9) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // Read/Write if '245 output enabled + nCS <= nEN80; + nRAS <= 1'b1; + nCAS <= 1'b0; + nRWE <= nWE80; + + // SDRAM bank still determined by RamWorks, RA[11,9:8] don't care + BA <= RWBank[5:4]; + RA[11] <= 1'b0; + RA[10] <= 1'b1; // (A10 set to auto-precharge) + RA[9] <= 1'b0; + RA[8] <= RWBank[7]; + // Latch column address for R/W command + RA[7:0] <= Ain[7:0]; + + // Latch RAMWorks low nybble write select using old row address + RWSel <= RA[0] & ~RA[3] & ~nWE & ~nC07X; + + // Mask according to RAMWorks bank (high byte is +4MB) + DQML <= RWBank[6]; + DQMH <= ~RWBank[6]; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'hA) begin + // Enable clock if '245 output enabled + CKE <= EN80; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Inhibit data bus output + DOEEN <= 1'b0; + end else if (S==4'hB) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hC) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + + // RAMWorks Bank Register Select + if (RWSel) begin + // Latch RAMWorks bank if accessed + if (SetRWBankFF) RWBank <= 8'hFF; + else RWBank <= Din[7:0] & {RWMask[7], ~RWMask[6:0]}; + + // Recognize command sequence and advance CS state + if ((CS==3'h0 & Din[7:0]==8'hFF) | + (CS==3'h1 & Din[7:0]==8'h00) | + (CS==3'h2 & Din[7:0]==8'h55) | + (CS==3'h3 & Din[7:0]==8'hAA) | + (CS==3'h4 & Din[7:0]==8'hC1) | + (CS==3'h5 & Din[7:0]==8'hAD) | + CS==3'h6 | CS==3'h7) CS <= CS+1; + else CS <= 0; // Back to beginning if it's not right + + if (CS==3'h6) begin // Recognize and submit command in CS6 + SetRWBankFF <= Din[7:0]==8'hFF; + if (Din[7:0]==8'hEF) UFMPrgmEN <= 1'b1; + if (Din[7:0]==8'hEE) UFMEraseEN <= 1'b1; + UFMBitbang <= Din[7:0]==8'hEA; + RWMaskSet <= Din[7:0]==8'hE0; + end else begin // Reset command triggers + SetRWBankFF <= 1'b0; + UFMBitbang <= 1'b0; + RWMaskSet <= 1'b0; + end + + CmdTout <= 0; // Reset command timeout if RWSel accessed + end else begin + CmdTout <= CmdTout+1; // Increment command timeout + // If command sequence times out, reset sequence state + if (CmdTout==3'h7) CS <= 0; + end + end else if (S==4'hD) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hE) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for next video read + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end else if (S==4'hF) begin + // Disable clock + CKE <= 1'b0; + + // NOP + nCS <= 1'b1; + nRAS <= 1'b1; + nCAS <= 1'b1; + nRWE <= 1'b1; + + // Don't care bank, RA[11:8] + BA <= 2'b00; + RA[11:8] <= 4'b0000; + // Latch row address for next video read + RA[7:0] <= Ain[7:0]; + + // Mask everything + DQML <= 1'b1; + DQMH <= 1'b1; + + // Enable data bus output + DOEEN <= 1'b1; + end + end + always @(negedge C14M) begin + // Latch video and read data outputs + if (S==4'h6) Vout[7:0] <= RD[7:0]; + if (S==4'hC) Dout[7:0] <= RD[7:0]; + end +endmodule diff --git a/cpld_maxv/UFM.qip b/cpld_maxv/UFM.qip new file mode 100644 index 0000000..e2d8458 --- /dev/null +++ b/cpld_maxv/UFM.qip @@ -0,0 +1,3 @@ +set_global_assignment -name IP_TOOL_NAME "ALTUFM_NONE" +set_global_assignment -name IP_TOOL_VERSION "13.0" +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "UFM.v"] diff --git a/cpld_maxv/UFM.v b/cpld_maxv/UFM.v new file mode 100644 index 0000000..613c750 --- /dev/null +++ b/cpld_maxv/UFM.v @@ -0,0 +1,268 @@ +// megafunction wizard: %ALTUFM_NONE% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: ALTUFM_NONE + +// ============================================================ +// File Name: UFM.v +// Megafunction Name(s): +// ALTUFM_NONE +// +// Simulation Library Files(s): +// maxv +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +// ************************************************************ + + +//Copyright (C) 1991-2013 Altera Corporation +//Your use of Altera Corporation's design tools, logic functions +//and other software and tools, and its AMPP partner logic +//functions, and any output files from any of the foregoing +//(including device programming or simulation files), and any +//associated documentation or information are expressly subject +//to the terms and conditions of the Altera Program License +//Subscription Agreement, Altera MegaCore Function License +//Agreement, or other applicable license agreement, including, +//without limitation, that your use is for the sole purpose of +//programming logic devices manufactured by Altera and sold by +//Altera or its authorized distributors. Please refer to the +//applicable agreement for further details. + + +//altufm_none CBX_AUTO_BLACKBOX="ALL" DEVICE_FAMILY="MAX V" ERASE_TIME=500000000 LPM_FILE="RAM2E.mif" OSC_FREQUENCY=180000 PORT_ARCLKENA="PORT_UNUSED" PORT_DRCLKENA="PORT_UNUSED" PROGRAM_TIME=1600000 WIDTH_UFM_ADDRESS=9 arclk ardin arshft busy drclk drdin drdout drshft erase osc oscena program rtpbusy +//VERSION_BEGIN 13.0 cbx_a_gray2bin 2013:06:12:18:03:43:SJ cbx_a_graycounter 2013:06:12:18:03:43:SJ cbx_altufm_none 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_maxii 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END +// synthesis VERILOG_INPUT_VERSION VERILOG_2001 +// altera message_off 10463 + + +//synthesis_resources = maxv_ufm 1 +//synopsys translate_off +`timescale 1 ps / 1 ps +//synopsys translate_on +module UFM_altufm_none_e4r + ( + arclk, + ardin, + arshft, + busy, + drclk, + drdin, + drdout, + drshft, + erase, + osc, + oscena, + program, + rtpbusy) ; + input arclk; + input ardin; + input arshft; + output busy; + input drclk; + input drdin; + output drdout; + input drshft; + input erase; + output osc; + input oscena; + input program; + output rtpbusy; + + wire wire_maxii_ufm_block1_bgpbusy; + wire wire_maxii_ufm_block1_busy; + wire wire_maxii_ufm_block1_drdout; + wire wire_maxii_ufm_block1_osc; + wire ufm_arclk; + wire ufm_ardin; + wire ufm_arshft; + wire ufm_bgpbusy; + wire ufm_busy; + wire ufm_drclk; + wire ufm_drdin; + wire ufm_drdout; + wire ufm_drshft; + wire ufm_erase; + wire ufm_osc; + wire ufm_oscena; + wire ufm_program; + + maxv_ufm maxii_ufm_block1 + ( + .arclk(ufm_arclk), + .ardin(ufm_ardin), + .arshft(ufm_arshft), + .bgpbusy(wire_maxii_ufm_block1_bgpbusy), + .busy(wire_maxii_ufm_block1_busy), + .drclk(ufm_drclk), + .drdin(ufm_drdin), + .drdout(wire_maxii_ufm_block1_drdout), + .drshft(ufm_drshft), + .erase(ufm_erase), + .osc(wire_maxii_ufm_block1_osc), + .oscena(ufm_oscena), + .program(ufm_program) + // synopsys translate_off + , + .ctrl_bgpbusy(1'b0), + .devclrn(1'b1), + .devpor(1'b1), + .sbdin(1'b0), + .sbdout() + // synopsys translate_on + ); + defparam + maxii_ufm_block1.address_width = 9, + maxii_ufm_block1.erase_time = 500000000, + maxii_ufm_block1.init_file = "RAM2E.mif", + maxii_ufm_block1.mem1 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem10 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem11 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem12 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem13 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem14 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem15 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem16 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem2 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem3 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem4 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem5 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem6 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem7 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem8 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.mem9 = 512'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + maxii_ufm_block1.osc_sim_setting = 180000, + maxii_ufm_block1.program_time = 1600000, + maxii_ufm_block1.lpm_type = "maxv_ufm"; + assign + busy = ufm_busy, + drdout = ufm_drdout, + osc = ufm_osc, + rtpbusy = ufm_bgpbusy, + ufm_arclk = arclk, + ufm_ardin = ardin, + ufm_arshft = arshft, + ufm_bgpbusy = wire_maxii_ufm_block1_bgpbusy, + ufm_busy = wire_maxii_ufm_block1_busy, + ufm_drclk = drclk, + ufm_drdin = drdin, + ufm_drdout = wire_maxii_ufm_block1_drdout, + ufm_drshft = drshft, + ufm_erase = erase, + ufm_osc = wire_maxii_ufm_block1_osc, + ufm_oscena = oscena, + ufm_program = program; +endmodule //UFM_altufm_none_e4r +//VALID FILE + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module UFM ( + arclk, + ardin, + arshft, + drclk, + drdin, + drshft, + erase, + oscena, + program, + busy, + drdout, + osc, + rtpbusy); + + input arclk; + input ardin; + input arshft; + input drclk; + input drdin; + input drshft; + input erase; + input oscena; + input program; + output busy; + output drdout; + output osc; + output rtpbusy; + + wire sub_wire0; + wire sub_wire1; + wire sub_wire2; + wire sub_wire3; + wire osc = sub_wire0; + wire rtpbusy = sub_wire1; + wire drdout = sub_wire2; + wire busy = sub_wire3; + + UFM_altufm_none_e4r UFM_altufm_none_e4r_component ( + .arshft (arshft), + .drclk (drclk), + .erase (erase), + .program (program), + .arclk (arclk), + .drdin (drdin), + .oscena (oscena), + .ardin (ardin), + .drshft (drshft), + .osc (sub_wire0), + .rtpbusy (sub_wire1), + .drdout (sub_wire2), + .busy (sub_wire3)); + +endmodule + +// ============================================================ +// CNX file retrieval info +// ============================================================ +// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "MAX V" +// Retrieval info: CONSTANT: ERASE_TIME NUMERIC "500000000" +// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "MAX V" +// Retrieval info: CONSTANT: LPM_FILE STRING "RAM2E.mif" +// Retrieval info: CONSTANT: LPM_HINT STRING "UNUSED" +// Retrieval info: CONSTANT: LPM_TYPE STRING "altufm_none" +// Retrieval info: CONSTANT: OSC_FREQUENCY NUMERIC "180000" +// Retrieval info: CONSTANT: PORT_ARCLKENA STRING "PORT_UNUSED" +// Retrieval info: CONSTANT: PORT_DRCLKENA STRING "PORT_UNUSED" +// Retrieval info: CONSTANT: PROGRAM_TIME NUMERIC "1600000" +// Retrieval info: CONSTANT: WIDTH_UFM_ADDRESS NUMERIC "9" +// Retrieval info: USED_PORT: arclk 0 0 0 0 INPUT NODEFVAL "arclk" +// Retrieval info: CONNECT: @arclk 0 0 0 0 arclk 0 0 0 0 +// Retrieval info: USED_PORT: ardin 0 0 0 0 INPUT NODEFVAL "ardin" +// Retrieval info: CONNECT: @ardin 0 0 0 0 ardin 0 0 0 0 +// Retrieval info: USED_PORT: arshft 0 0 0 0 INPUT NODEFVAL "arshft" +// Retrieval info: CONNECT: @arshft 0 0 0 0 arshft 0 0 0 0 +// Retrieval info: USED_PORT: busy 0 0 0 0 OUTPUT NODEFVAL "busy" +// Retrieval info: CONNECT: busy 0 0 0 0 @busy 0 0 0 0 +// Retrieval info: USED_PORT: drclk 0 0 0 0 INPUT NODEFVAL "drclk" +// Retrieval info: CONNECT: @drclk 0 0 0 0 drclk 0 0 0 0 +// Retrieval info: USED_PORT: drdin 0 0 0 0 INPUT NODEFVAL "drdin" +// Retrieval info: CONNECT: @drdin 0 0 0 0 drdin 0 0 0 0 +// Retrieval info: USED_PORT: drdout 0 0 0 0 OUTPUT NODEFVAL "drdout" +// Retrieval info: CONNECT: drdout 0 0 0 0 @drdout 0 0 0 0 +// Retrieval info: USED_PORT: drshft 0 0 0 0 INPUT NODEFVAL "drshft" +// Retrieval info: CONNECT: @drshft 0 0 0 0 drshft 0 0 0 0 +// Retrieval info: USED_PORT: erase 0 0 0 0 INPUT NODEFVAL "erase" +// Retrieval info: CONNECT: @erase 0 0 0 0 erase 0 0 0 0 +// Retrieval info: USED_PORT: osc 0 0 0 0 OUTPUT NODEFVAL "osc" +// Retrieval info: CONNECT: osc 0 0 0 0 @osc 0 0 0 0 +// Retrieval info: USED_PORT: oscena 0 0 0 0 INPUT NODEFVAL "oscena" +// Retrieval info: CONNECT: @oscena 0 0 0 0 oscena 0 0 0 0 +// Retrieval info: USED_PORT: program 0 0 0 0 INPUT NODEFVAL "program" +// Retrieval info: CONNECT: @program 0 0 0 0 program 0 0 0 0 +// Retrieval info: USED_PORT: rtpbusy 0 0 0 0 OUTPUT NODEFVAL "rtpbusy" +// Retrieval info: CONNECT: rtpbusy 0 0 0 0 @rtpbusy 0 0 0 0 +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.v TRUE FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.qip TRUE FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.bsf FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM_inst.v FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM_bb.v FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.inc FALSE TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL UFM.cmp FALSE TRUE +// Retrieval info: LIB_FILE: maxv diff --git a/cpld_maxv/constraints.sdc b/cpld_maxv/constraints.sdc new file mode 100644 index 0000000..0875412 --- /dev/null +++ b/cpld_maxv/constraints.sdc @@ -0,0 +1 @@ +create_clock -period 69.841 C14M diff --git a/cpld_maxv/db/RAM2E.(0).cnf.cdb b/cpld_maxv/db/RAM2E.(0).cnf.cdb new file mode 100644 index 0000000000000000000000000000000000000000..f8329f8ec48f40fd88ad07db12e36c3c2ae414de GIT binary patch literal 35287 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.(0).cnf.hdb b/cpld_maxv/db/RAM2E.(0).cnf.hdb new file mode 100644 index 0000000000000000000000000000000000000000..d22a80621376c7965372bf137439c4042b7a4ddc GIT binary patch literal 4075 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 V`C^$3#M^=5oB4cp2*E!a{U5cduZ{o! literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.(1).cnf.cdb b/cpld_maxv/db/RAM2E.(1).cnf.cdb new file mode 100644 index 0000000000000000000000000000000000000000..3bfe6fe2a006bd4014f6cd8ad597e1f473580c5f GIT binary patch literal 1261 zcmVc4=c}AW&grYalToQ%WFLWnv&jWNCD1Z*KDw00000003|U00000 z004jj00000008X-00000004La>{!We)IbpRum%u_zyWbX0&(HOcH-10ZX7vV&e#c2 zGWN(bqlgRhAAB2MfJ6X=eKYU%=61`oxF?51nvTldUDdCuT<*5tq^hdwALMEjMSszE z6~JtJdoGH4_}kE$9{NA<$^JKbs?YL*b^(%<{rx>TQ#d`ennmbzH@6VRaNE4t7qKuY zN3XWW7SRRH)Ke#QCf{uHf-CeYsi&)@o|VZcv-x&Oopmcl{VY#{;M^9&ve+q;K@k2t zP+ODHYYArFU2{*%w3viFbL?#1x(v-rm(aZLay+!DTPJ#elTm%Csws~ORDx>yukLfy z-e4E*`u0_|cD=r?McXK(KCT}=LwD|v>EGAQn;-Z3je9B@_gP!qS@BM~{>nRb6qzSK zG5So{TU=HD^{#UD3%)QT1pR0#1ruY{)syS z;j=kH4QVrU;5LnDd`C(;@aB$spi-+Y%VF_F4ZvQKaY+RNz)V^afnaQS(uxEG29^{c z0LyAA0uTVc46y$E1N~lZjQXWX{>crpNIs|yB*0mxSUx3=n`x2wIKZL@yr4aXynOy5 zPWH!>?LnLuc@}3+%V#aRxL*v0u;-daFg*8oS7BJw$ZHOYa*yaY#?L?@(YL3O%)*aby*GaGLb2pPxVG_I2&qPQ0G) zi_v5&KG-d@Cr)WbQ>q6?I&zz{e%pI9Cw_e{~rem$ojuQiCOa2#1tG=nD zCCFzeW^PD?ncswsA{+LHY&@52da68t&XCv28<^D_0HgS8jE&Lwfm+6&?_-%cdS_hpS7xpTCQ%jkAkWe6YJ?h%1<@rDJGdUHAr z+(d{SB!aFVWFc<-ARSB$5kT@_i-#@90U|(*u+GENHOMi@*#qHPPKFMkvc!FRo&gnt zeTGmC^&dzA>@yw)1t4pismvabh&&J@)H?h71~`UzI{CQ92f4Zf9qAer3{nLKYz!Sh zI=wr41}BgP1s_6VNRTHma3E?WfHKSs3xMRb@M3FTAPvF@wVwWr>L9xcj z%8&sR+%fyY3uPcJfTF-3=wDx;2qeN-7#x7Ceh16_IzSp#r6*jaHBgQZ9NC7qR_6dY X48lMRvJ@Uo@lKAxu8aTx00960aS}na literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.(1).cnf.hdb b/cpld_maxv/db/RAM2E.(1).cnf.hdb new file mode 100644 index 0000000000000000000000000000000000000000..c1870cb5a83e19530cc3cd85f460b9e4a236e9a2 GIT binary patch literal 928 zcmV;R17G|R000233jqKC0CNCy073u&09Ivkb7^mGATcv8FfK75LUn0uWFRs#G9WNE zFEKJNGB7bSAX8;>c4=c}AW&grYalToQ%WFLWnv&jWNCD1Z*I&700000002({00000 z000OA00000005u^00000004La#8t^o!!Qs{*@eUjZb*Cr>cWXrPTV+hj?yNDiZ-d7 z1jL{62YdoM;XOM}?BEt5HcQib-i)6;i=DD8OAlig@`m|O2{}3TA+O;5D|x|Q&yWuG z?Lp2?PJ?io7vouwq)8maN8;Fl1*3E}hds%;cn1rg@c&iuypGrT*5Y;S9E#EO@)6r( z4nhotMw7%sH(&`xb}`N^n9h-tA`&i&$W0N8FpDi>?w4kxI0-Fy6YyN5=OUb0_!{tG zk=>9Nqk*MRywYQc18nsd<(T~}v zokKIvwX>aP3G>GYTVjr|4GJ@J5^iT%f*#R-9jZ6c$7+JUV_d3iss}2YOe}3GJ+#Ss z5mL>zg;~{K+n8p>Fu0zGxN9msQ|X(^-~eluUijZRDsLfMSB1v1u_lO!;Z$wicOPx} z`}BZ^p`zln;iqPhQ`LvirYen8>qJv&@~=&@ERBLb38e8{^+A__MIDP2nFpx_7S=#i)>kSHkVDUu(6FQDQNka)8u38Hv2>o;!>&y>lb zDDr;g^8A(6WhneC1_c9HE0yQ9cqEpSHyh zME4CJG(SujNu3D_K!3U)ifg(tW=F$?ToOE%~B_2zy7%nA@{KQpq4 z+Ji%AFOZ?&47;MT9imseyI`gYaLPZmGi499c=ol$s@Y$aI>Lce0|PN@C-?yX0RR7# CCYc}r literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.(2).cnf.cdb b/cpld_maxv/db/RAM2E.(2).cnf.cdb new file mode 100644 index 0000000000000000000000000000000000000000..9c692b210723271f38b7c42bff73a3826d9189b9 GIT binary patch literal 1263 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 T?RP|%_R~9Fb!VdgXHx$MNChEl literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.cmp.hdb b/cpld_maxv/db/RAM2E.cmp.hdb new file mode 100644 index 0000000000000000000000000000000000000000..7d95f835479dfce79ccaceab8657200c431475f2 GIT binary patch literal 18845 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.cmp.idb b/cpld_maxv/db/RAM2E.cmp.idb new file mode 100644 index 0000000000000000000000000000000000000000..389414adb84f102e6e99bb7e022a7032917159a8 GIT binary patch literal 13788 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.cmp0.ddb b/cpld_maxv/db/RAM2E.cmp0.ddb new file mode 100644 index 0000000000000000000000000000000000000000..29d5e119ee1c8263c82d88555d9bee3e081ea134 GIT binary patch literal 84616 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.db_info b/cpld_maxv/db/RAM2E.db_info new file mode 100644 index 0000000..5f861e2 --- /dev/null +++ b/cpld_maxv/db/RAM2E.db_info @@ -0,0 +1,3 @@ +Quartus_Version = Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +Version_Index = 302049280 +Creation_Time = Wed Mar 10 20:54:25 2021 diff --git a/cpld_maxv/db/RAM2E.fit.qmsg b/cpld_maxv/db/RAM2E.fit.qmsg new file mode 100644 index 0000000..267c129 --- /dev/null +++ b/cpld_maxv/db/RAM2E.fit.qmsg @@ -0,0 +1,39 @@ +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Fitter" 0 -1 1615428149527 ""} +{ "Info" "IMPP_MPP_USER_DEVICE" "RAM2E 5M240ZT100C5 " "Selected device 5M240ZT100C5 for design \"RAM2E\"" { } { } 0 119006 "Selected device %2!s! for design \"%1!s!\"" 0 0 "Fitter" 0 -1 1615428149562 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1615428149621 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1615428149621 ""} +{ "Info" "IFITCC_FITCC_INFO_STANDARD_FIT_COMPILATION_ON" "" "Fitter is performing a Standard Fit compilation using maximum Fitter effort to optimize design performance" { } { } 0 171004 "Fitter is performing a Standard Fit compilation using maximum Fitter effort to optimize design performance" 0 0 "Fitter" 0 -1 1615428150075 ""} +{ "Warning" "WCPT_FEATURE_DISABLED_POST" "LogicLock " "Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." { } { } 0 292013 "Feature %1!s! is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." 0 0 "Fitter" 0 -1 1615428150103 ""} +{ "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED" "" "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" { { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M80ZT100C5 " "Device 5M80ZT100C5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M80ZT100I5 " "Device 5M80ZT100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M160ZT100C5 " "Device 5M160ZT100C5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M160ZT100I5 " "Device 5M160ZT100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M240ZT100I5 " "Device 5M240ZT100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M570ZT100C5 " "Device 5M570ZT100C5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "5M570ZT100I5 " "Device 5M570ZT100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1615428150459 ""} } { } 2 176444 "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" 0 0 "Fitter" 0 -1 1615428150459 ""} +{ "Info" "ISTA_SDC_FOUND" "constraints.sdc " "Reading SDC File: 'constraints.sdc'" { } { } 0 332104 "Reading SDC File: '%1!s!'" 0 0 "Fitter" 0 -1 1615428150747 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "DRCLK " "Node: DRCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1615428150756 "|RAM2E|DRCLK"} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "ARCLK " "Node: ARCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1615428150757 "|RAM2E|ARCLK"} +{ "Info" "ISTA_USER_TDC_OPTIMIZATION_GOALS" "" "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" { } { } 0 332129 "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" 0 0 "Fitter" 0 -1 1615428150764 ""} +{ "Info" "ISTA_REPORT_CLOCKS_INFO" "Found 1 clocks " "Found 1 clocks" { { "Info" "ISTA_REPORT_CLOCKS_INFO" " Period Clock Name " " Period Clock Name" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1615428150765 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" "======== ============ " "======== ============" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1615428150765 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" " 69.841 C14M " " 69.841 C14M" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1615428150765 ""} } { } 0 332111 "%1!s!" 0 0 "Fitter" 0 -1 1615428150765 ""} +{ "Extra Info" "IFSAC_FSAC_START_REG_LOCATION_PROCESSING" "" "Performing register packing on registers with non-logic cell location assignments" { } { } 1 176273 "Performing register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1615428150774 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_REG_LOCATION_PROCESSING" "" "Completed register packing on registers with non-logic cell location assignments" { } { } 1 176274 "Completed register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1615428150775 ""} +{ "Info" "IFYGR_FYGR_OPINFO_COMPLETED_OP" "User Assigned Global Signals Promotion Operation " "Completed User Assigned Global Signals Promotion Operation" { } { } 0 186079 "Completed %1!s!" 0 0 "Fitter" 0 -1 1615428150781 ""} +{ "Info" "IFYGR_FYGR_AUTO_GLOBAL_ASSIGNED_ALL_TO_GLOBAL" "C14M Global clock in PIN 12 " "Automatically promoted signal \"C14M\" to use Global clock in PIN 12" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 8 -1 0 } } } 0 186215 "Automatically promoted signal \"%1!s!\" to use %2!s!" 0 0 "Fitter" 0 -1 1615428150794 ""} +{ "Info" "IFYGR_FYGR_OPINFO_COMPLETED_OP" "Auto Global Promotion Operation " "Completed Auto Global Promotion Operation" { } { } 0 186079 "Completed %1!s!" 0 0 "Fitter" 0 -1 1615428150794 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_START_FYGR_REGPACKING_INFO" "" "Starting register packing" { } { } 0 176234 "Starting register packing" 0 0 "Fitter" 0 -1 1615428150802 ""} +{ "Info" "IFYGR_FYGR_INFO_AUTO_MODE_REGISTER_PACKING" "Auto Normal " "Fitter is using Normal packing mode for logic elements with Auto setting for Auto Packed Registers logic option" { } { } 0 186391 "Fitter is using %2!s! packing mode for logic elements with %1!s! setting for Auto Packed Registers logic option" 0 0 "Fitter" 0 -1 1615428150830 ""} +{ "Extra Info" "IFSAC_FSAC_START_LUT_PACKING" "" "Moving registers into LUTs to improve timing and density" { } { } 1 176244 "Moving registers into LUTs to improve timing and density" 1 0 "Fitter" 0 -1 1615428150830 ""} +{ "Info" "IFYGR_FYGR_NO_REGS_IN_IOS_HEADER" "" "Started processing fast register assignments" { } { } 0 186468 "Started processing fast register assignments" 0 0 "Fitter" 0 -1 1615428150872 ""} +{ "Info" "IFYGR_FYGR_NO_REGS_IN_IOS_FOOTER" "" "Finished processing fast register assignments" { } { } 0 186469 "Finished processing fast register assignments" 0 0 "Fitter" 0 -1 1615428150877 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_LUT_PACKING" "00:00:00 " "Finished moving registers into LUTs: elapsed time is 00:00:00" { } { } 1 176245 "Finished moving registers into LUTs: elapsed time is %1!s!" 1 0 "Fitter" 0 -1 1615428150877 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_REGPACKING_INFO" "" "Finished register packing" { } { } 0 176235 "Finished register packing" 0 0 "Fitter" 0 -1 1615428150878 ""} +{ "Info" "IFITCC_FITTER_PREPARATION_END" "00:00:00 " "Fitter preparation operations ending: elapsed time is 00:00:00" { } { } 0 171121 "Fitter preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1615428150984 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_START" "" "Fitter placement preparation operations beginning" { } { } 0 170189 "Fitter placement preparation operations beginning" 0 0 "Fitter" 0 -1 1615428151178 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_END" "00:00:00 " "Fitter placement preparation operations ending: elapsed time is 00:00:00" { } { } 0 170190 "Fitter placement preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1615428151386 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_START" "" "Fitter placement operations beginning" { } { } 0 170191 "Fitter placement operations beginning" 0 0 "Fitter" 0 -1 1615428151403 ""} +{ "Info" "IFITAPI_FITAPI_INFO_VPR_PLACEMENT_FINISH" "" "Fitter placement was successful" { } { } 0 170137 "Fitter placement was successful" 0 0 "Fitter" 0 -1 1615428151776 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_END" "00:00:00 " "Fitter placement operations ending: elapsed time is 00:00:00" { } { } 0 170192 "Fitter placement operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1615428151777 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_START" "" "Fitter routing operations beginning" { } { } 0 170193 "Fitter routing operations beginning" 0 0 "Fitter" 0 -1 1615428151814 ""} +{ "Info" "IFITAPI_FITAPI_VPR_STATUS_DELAY_ADDED_FOR_HOLD" "2e+01 ns 1.0% " "2e+01 ns of routing delay (approximately 1.0% of available device routing delay) has been added to meet hold timing. For more information, refer to the Estimated Delay Added for Hold Timing section in the Fitter report." { } { } 0 170089 "%1!s! of routing delay (approximately %2!s! of available device routing delay) has been added to meet hold timing. For more information, refer to the Estimated Delay Added for Hold Timing section in the Fitter report." 0 0 "Fitter" 0 -1 1615428152024 ""} +{ "Info" "IFITAPI_FITAPI_VPR_PERCENT_ROUTING_RESOURCE_USAGE" "21 " "Router estimated average interconnect usage is 21% of the available device resources" { { "Info" "IFITAPI_FITAPI_VPR_PEAK_ROUTING_REGION" "21 X0_Y0 X8_Y5 " "Router estimated peak interconnect usage is 21% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5" { } { { "loc" "" { Generic "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/" { { 1 { 0 "Router estimated peak interconnect usage is 21% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5"} { { 11 { 0 "Router estimated peak interconnect usage is 21% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5"} 0 0 9 6 } } } } } } } 0 170196 "Router estimated peak interconnect usage is %1!d!%% of the available device resources in the region that extends from location %2!s! to location %3!s!" 0 0 "Quartus II" 0 -1 1615428152066 ""} } { } 0 170195 "Router estimated average interconnect usage is %1!d!%% of the available device resources" 0 0 "Fitter" 0 -1 1615428152066 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_END" "00:00:00 " "Fitter routing operations ending: elapsed time is 00:00:00" { } { } 0 170194 "Fitter routing operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1615428152232 ""} +{ "Info" "IVPR20K_VPR_TIMING_ANALYSIS_TIME" "0.22 " "Total time spent on timing analysis during the Fitter is 0.22 seconds." { } { } 0 11888 "Total time spent on timing analysis during the Fitter is %1!s! seconds." 0 0 "Fitter" 0 -1 1615428152246 ""} +{ "Info" "IFITCC_FITTER_POST_OPERATION_END" "00:00:00 " "Fitter post-fit operations ending: elapsed time is 00:00:00" { } { } 0 11218 "Fitter post-fit operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1615428152251 ""} +{ "Warning" "WFIOMGR_RESERVE_ASSIGNMENT_FOR_UNUSED_PINS_IS_DEFAULT" "As output driving ground " "The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'." { } { } 0 169174 "The Reserve All Unused Pins setting has not been specified, and will default to '%1!s!'." 0 0 "Fitter" 0 -1 1615428152297 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.fit.smsg " "Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.fit.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Fitter" 0 -1 1615428152414 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Fitter 0 s 5 s Quartus II 64-Bit " "Quartus II 64-Bit Fitter was successful. 0 errors, 5 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4766 " "Peak virtual memory: 4766 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1615428152724 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Mar 10 21:02:32 2021 " "Processing ended: Wed Mar 10 21:02:32 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1615428152724 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:04 " "Elapsed time: 00:00:04" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1615428152724 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:03 " "Total CPU time (on all processors): 00:00:03" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1615428152724 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Fitter" 0 -1 1615428152724 ""} diff --git a/cpld_maxv/db/RAM2E.hier_info b/cpld_maxv/db/RAM2E.hier_info new file mode 100644 index 0000000..cba7dd3 --- /dev/null +++ b/cpld_maxv/db/RAM2E.hier_info @@ -0,0 +1,350 @@ +|RAM2E +C14M => CmdTout[0].CLK +C14M => CmdTout[1].CLK +C14M => CmdTout[2].CLK +C14M => RWMaskSet.CLK +C14M => UFMBitbang.CLK +C14M => UFMEraseEN.CLK +C14M => UFMPrgmEN.CLK +C14M => SetRWBankFF.CLK +C14M => CS[0].CLK +C14M => CS[1].CLK +C14M => CS[2].CLK +C14M => RWBank[0].CLK +C14M => RWBank[1].CLK +C14M => RWBank[2].CLK +C14M => RWBank[3].CLK +C14M => RWBank[4].CLK +C14M => RWBank[5].CLK +C14M => RWBank[6].CLK +C14M => RWBank[7].CLK +C14M => RWSel.CLK +C14M => Ready.CLK +C14M => DOEEN.CLK +C14M => DQMH~reg0.CLK +C14M => DQML~reg0.CLK +C14M => BA[0]~reg0.CLK +C14M => BA[1]~reg0.CLK +C14M => CKE~reg0.CLK +C14M => RA[0]~reg0.CLK +C14M => RA[1]~reg0.CLK +C14M => RA[2]~reg0.CLK +C14M => RA[3]~reg0.CLK +C14M => RA[4]~reg0.CLK +C14M => RA[5]~reg0.CLK +C14M => RA[6]~reg0.CLK +C14M => RA[7]~reg0.CLK +C14M => RA[8]~reg0.CLK +C14M => RA[9]~reg0.CLK +C14M => RA[10]~reg0.CLK +C14M => RA[11]~reg0.CLK +C14M => nRWE~reg0.CLK +C14M => nCAS~reg0.CLK +C14M => nRAS~reg0.CLK +C14M => nCS~reg0.CLK +C14M => DRCLKPulse.CLK +C14M => UFMProgram.CLK +C14M => UFMErase.CLK +C14M => UFMReqErase.CLK +C14M => RWMask[0].CLK +C14M => RWMask[1].CLK +C14M => RWMask[2].CLK +C14M => RWMask[3].CLK +C14M => RWMask[4].CLK +C14M => RWMask[5].CLK +C14M => RWMask[6].CLK +C14M => RWMask[7].CLK +C14M => UFMInitDone.CLK +C14M => UFMD[8].CLK +C14M => UFMD[9].CLK +C14M => UFMD[10].CLK +C14M => UFMD[11].CLK +C14M => UFMD[12].CLK +C14M => UFMD[13].CLK +C14M => UFMD[14].CLK +C14M => DRShift.CLK +C14M => DRDIn.CLK +C14M => ARShift.CLK +C14M => DRCLK.CLK +C14M => ARCLK.CLK +C14M => RTPBusyReg.CLK +C14M => UFMBusyReg.CLK +C14M => S[0].CLK +C14M => S[1].CLK +C14M => S[2].CLK +C14M => S[3].CLK +C14M => PHI1reg.CLK +C14M => FS[0].CLK +C14M => FS[1].CLK +C14M => FS[2].CLK +C14M => FS[3].CLK +C14M => FS[4].CLK +C14M => FS[5].CLK +C14M => FS[6].CLK +C14M => FS[7].CLK +C14M => FS[8].CLK +C14M => FS[9].CLK +C14M => FS[10].CLK +C14M => FS[11].CLK +C14M => FS[12].CLK +C14M => FS[13].CLK +C14M => FS[14].CLK +C14M => FS[15].CLK +C14M => Dout[0]~reg0.CLK +C14M => Dout[1]~reg0.CLK +C14M => Dout[2]~reg0.CLK +C14M => Dout[3]~reg0.CLK +C14M => Dout[4]~reg0.CLK +C14M => Dout[5]~reg0.CLK +C14M => Dout[6]~reg0.CLK +C14M => Dout[7]~reg0.CLK +C14M => Vout[0]~reg0.CLK +C14M => Vout[1]~reg0.CLK +C14M => Vout[2]~reg0.CLK +C14M => Vout[3]~reg0.CLK +C14M => Vout[4]~reg0.CLK +C14M => Vout[5]~reg0.CLK +C14M => Vout[6]~reg0.CLK +C14M => Vout[7]~reg0.CLK +PHI1 => S.IN1 +PHI1 => PHI1reg.DATAIN +PHI1 => nVOE.DATAIN +nWE => comb.IN0 +nWE => RWSel.IN1 +nWE80 => nRWE.DATAB +nWE80 => RDOE.IN0 +nEN80 => nCS.DATAB +nEN80 => nCS.DATAB +nEN80 => comb.IN1 +nEN80 => RDOE.IN1 +nEN80 => CKE.DATAB +nEN80 => CKE.DATAB +nEN80 => CKE.DATAB +nC07X => RWSel.IN1 +Ain[0] => RA.DATAB +Ain[0] => RA.DATAB +Ain[0] => RA.DATAB +Ain[0] => RA.DATAB +Ain[0] => RA.DATAB +Ain[1] => RA.DATAB +Ain[1] => RA.DATAB +Ain[1] => RA.DATAB +Ain[1] => RA.DATAB +Ain[1] => RA.DATAB +Ain[2] => RA.DATAB +Ain[2] => RA.DATAB +Ain[2] => RA.DATAB +Ain[2] => RA.DATAB +Ain[2] => RA.DATAB +Ain[3] => RA.DATAB +Ain[3] => RA.DATAB +Ain[3] => RA.DATAB +Ain[3] => RA.DATAB +Ain[3] => RA.DATAB +Ain[4] => RA.DATAB +Ain[4] => RA.DATAB +Ain[4] => RA.DATAB +Ain[4] => RA.DATAB +Ain[4] => RA.DATAB +Ain[5] => RA.DATAB +Ain[5] => RA.DATAB +Ain[5] => RA.DATAB +Ain[5] => RA.DATAB +Ain[5] => RA.DATAB +Ain[6] => RA.DATAB +Ain[6] => RA.DATAB +Ain[6] => RA.DATAB +Ain[6] => RA.DATAB +Ain[6] => RA.DATAB +Ain[7] => RA.DATAB +Ain[7] => RA.DATAB +Ain[7] => RA.DATAB +Ain[7] => RA.DATAB +Ain[7] => RA.DATAB +Din[0] => RWBank.IN1 +Din[0] => RD[0].DATAIN +Din[0] => RWMask.DATAB +Din[0] => Equal29.IN7 +Din[0] => Equal31.IN3 +Din[0] => Equal33.IN7 +Din[0] => Equal35.IN2 +Din[0] => Equal37.IN4 +Din[0] => Equal39.IN7 +Din[0] => Equal40.IN6 +Din[0] => Equal41.IN7 +Din[0] => Equal42.IN7 +Din[0] => Equal43.IN7 +Din[1] => RWBank.IN1 +Din[1] => RD[1].DATAIN +Din[1] => RWMask.DATAB +Din[1] => Equal29.IN6 +Din[1] => Equal31.IN7 +Din[1] => Equal33.IN3 +Din[1] => Equal35.IN7 +Din[1] => Equal37.IN7 +Din[1] => Equal39.IN6 +Din[1] => Equal40.IN5 +Din[1] => Equal41.IN5 +Din[1] => Equal42.IN4 +Din[1] => Equal43.IN6 +Din[2] => RWBank.IN1 +Din[2] => RD[2].DATAIN +Din[2] => RWMask.DATAB +Din[2] => Equal29.IN5 +Din[2] => Equal31.IN2 +Din[2] => Equal33.IN6 +Din[2] => Equal35.IN6 +Din[2] => Equal37.IN3 +Din[2] => Equal39.IN5 +Din[2] => Equal40.IN4 +Din[2] => Equal41.IN4 +Din[2] => Equal42.IN6 +Din[2] => Equal43.IN5 +Din[3] => RWBank.IN1 +Din[3] => RD[3].DATAIN +Din[3] => RWMask.DATAB +Din[3] => Equal29.IN4 +Din[3] => Equal31.IN6 +Din[3] => Equal33.IN2 +Din[3] => Equal35.IN5 +Din[3] => Equal37.IN2 +Din[3] => Equal39.IN4 +Din[3] => Equal40.IN3 +Din[3] => Equal41.IN3 +Din[3] => Equal42.IN3 +Din[3] => Equal43.IN4 +Din[4] => RWBank.IN1 +Din[4] => RD[4].DATAIN +Din[4] => RWMask.DATAB +Din[4] => Equal29.IN3 +Din[4] => Equal31.IN1 +Din[4] => Equal33.IN5 +Din[4] => Equal35.IN4 +Din[4] => Equal37.IN6 +Din[4] => Equal39.IN3 +Din[4] => Equal40.IN7 +Din[4] => Equal41.IN6 +Din[4] => Equal42.IN5 +Din[4] => Equal43.IN3 +Din[5] => RWBank.IN1 +Din[5] => RD[5].DATAIN +Din[5] => RWMask.DATAB +Din[5] => Equal29.IN2 +Din[5] => Equal31.IN5 +Din[5] => Equal33.IN1 +Din[5] => Equal35.IN3 +Din[5] => Equal37.IN1 +Din[5] => Equal39.IN2 +Din[5] => Equal40.IN2 +Din[5] => Equal41.IN2 +Din[5] => Equal42.IN2 +Din[5] => Equal43.IN2 +Din[6] => DRDIn.DATAB +Din[6] => RWBank.IN1 +Din[6] => RD[6].DATAIN +Din[6] => RWMask.DATAB +Din[6] => Equal29.IN1 +Din[6] => Equal31.IN0 +Din[6] => Equal33.IN4 +Din[6] => Equal35.IN1 +Din[6] => Equal37.IN5 +Din[6] => Equal39.IN1 +Din[6] => Equal40.IN1 +Din[6] => Equal41.IN1 +Din[6] => Equal42.IN1 +Din[6] => Equal43.IN1 +Din[7] => DRCLKPulse.DATAB +Din[7] => RWMask.DATAB +Din[7] => RWBank.IN1 +Din[7] => RD[7].DATAIN +Din[7] => Equal29.IN0 +Din[7] => Equal31.IN4 +Din[7] => Equal33.IN0 +Din[7] => Equal35.IN0 +Din[7] => Equal37.IN0 +Din[7] => Equal39.IN0 +Din[7] => Equal40.IN0 +Din[7] => Equal41.IN0 +Din[7] => Equal42.IN0 +Din[7] => Equal43.IN0 +Dout[0] <= Dout[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[1] <= Dout[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[2] <= Dout[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[3] <= Dout[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[4] <= Dout[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[5] <= Dout[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[6] <= Dout[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Dout[7] <= Dout[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +nDOE <= comb.DB_MAX_OUTPUT_PORT_TYPE +Vout[0] <= Vout[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[1] <= Vout[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[2] <= Vout[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[3] <= Vout[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[4] <= Vout[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[5] <= Vout[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[6] <= Vout[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +Vout[7] <= Vout[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +nVOE <= PHI1.DB_MAX_OUTPUT_PORT_TYPE +CKE <= CKE~reg0.DB_MAX_OUTPUT_PORT_TYPE +nCS <= nCS~reg0.DB_MAX_OUTPUT_PORT_TYPE +nRAS <= nRAS~reg0.DB_MAX_OUTPUT_PORT_TYPE +nCAS <= nCAS~reg0.DB_MAX_OUTPUT_PORT_TYPE +nRWE <= nRWE~reg0.DB_MAX_OUTPUT_PORT_TYPE +BA[0] <= BA[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +BA[1] <= BA[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[0] <= RA[0]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[1] <= RA[1]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[2] <= RA[2]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[3] <= RA[3]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[4] <= RA[4]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[5] <= RA[5]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[6] <= RA[6]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[7] <= RA[7]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[8] <= RA[8]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[9] <= RA[9]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[10] <= RA[10]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RA[11] <= RA[11]~reg0.DB_MAX_OUTPUT_PORT_TYPE +RD[0] <> RD[0] +RD[1] <> RD[1] +RD[2] <> RD[2] +RD[3] <> RD[3] +RD[4] <> RD[4] +RD[5] <> RD[5] +RD[6] <> RD[6] +RD[7] <> RD[7] +DQML <= DQML~reg0.DB_MAX_OUTPUT_PORT_TYPE +DQMH <= DQMH~reg0.DB_MAX_OUTPUT_PORT_TYPE + + +|RAM2E|UFM:UFM_inst +arclk => arclk.IN1 +ardin => ardin.IN1 +arshft => arshft.IN1 +drclk => drclk.IN1 +drdin => drdin.IN1 +drshft => drshft.IN1 +erase => erase.IN1 +oscena => oscena.IN1 +program => program.IN1 +busy <= UFM_altufm_none_e4r:UFM_altufm_none_e4r_component.busy +drdout <= UFM_altufm_none_e4r:UFM_altufm_none_e4r_component.drdout +osc <= UFM_altufm_none_e4r:UFM_altufm_none_e4r_component.osc +rtpbusy <= UFM_altufm_none_e4r:UFM_altufm_none_e4r_component.rtpbusy + + +|RAM2E|UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component +arclk => maxii_ufm_block1.ARCLK +ardin => maxii_ufm_block1.ARDIN +arshft => maxii_ufm_block1.ARSHFT +busy <= maxii_ufm_block1.BUSY +drclk => maxii_ufm_block1.DRCLK +drdin => maxii_ufm_block1.DRDIN +drdout <= maxii_ufm_block1.DRDOUT +drshft => maxii_ufm_block1.DRSHFT +erase => maxii_ufm_block1.ERASE +osc <= maxii_ufm_block1.OSC +oscena => maxii_ufm_block1.OSCENA +program => maxii_ufm_block1.PROGRAM +rtpbusy <= maxii_ufm_block1.BGPBUSY + + diff --git a/cpld_maxv/db/RAM2E.hif b/cpld_maxv/db/RAM2E.hif new file mode 100644 index 0000000000000000000000000000000000000000..a8f404b8bd9dc79db4b1a4aef8e46502ea61d23a GIT binary patch literal 576 zcmV-G0>AyN4*>uG0001Zob8lbZ<{a_$KNgOJ6P(=_K?&zx1?`rMpC8(I!Lld%h-q3 z8kY`8q^Rw8pCMgaHPN<*?P(JroBuh7bNN|(-io^2HaG~dYY#4Ui#AXO+t2(@qm^-fE`*Ft{96epkX7f7+MbZa7!O_A+69*SnOmnZCRvzu*r zw=7@>IYZ>>+Qi9{8;{M^VI^oVz)5S0!wa3(qTZWi?QMexgU;fY>ZE>%*j#;FJef7T z4mmcQVJKVO?om8hGT*#5ZB>gKKq`IcrQv(>VJOS&SUAIZb)zM(?z*n=J({dn5jQ?O z_NUQ23|7IR>qp}%MFYHnvN0ptL6@i6))IK8b3nBy7z}sF8dJ;3gylHGv%OS_6x7Id z##YLJK&sHl1nRPdx)k|KUegp0x^$BTpH0GOz2b{t8LawoABysmXdO>|o?K1hAe_Il z9G830qa!_-hf(bFjUNY#X#SjW8imO!UQbs^|J5JnUY>-elqkA>s>dOOJUfI@c+!bE zq@UQW27^i7cA)OjL$4J=)|DCKw=I+sP)|?2FkH`;CkfKG1nHk9xXlW~&$Ashk}jnq zcMM}?dqSp!IJTRma-_!OALeJ!T$qRJvT1)4B^P;X=E}>e1P*q65-od+miOxF>^gN0{V+{@o)nA#R-kes<<=z^5-Y1 O^U9$G^zJ*ah!3#tJsR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JRUIrQh0(%mRc~g>S5^jw|Nko(ladmWejGS)V8hm*ug%yL9xx}JXNY&-Uva*n!r$J!eu9F8 hfsqD7=I7gtw;f{~72E>F-#=mzVwXC80OaZa{{dpffnERr literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.lpc.html b/cpld_maxv/db/RAM2E.lpc.html new file mode 100644 index 0000000..a8acc8f --- /dev/null +++ b/cpld_maxv/db/RAM2E.lpc.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HierarchyInputConstant InputUnused InputFloating InputOutputConstant OutputUnused OutputFloating OutputBidirConstant BidirUnused BidirInput only BidirOutput only Bidir
UFM_inst|UFM_altufm_none_e4r_component9000400000000
UFM_inst9202422200000
diff --git a/cpld_maxv/db/RAM2E.lpc.rdb b/cpld_maxv/db/RAM2E.lpc.rdb new file mode 100644 index 0000000000000000000000000000000000000000..97e4bf11a5acd4175a8122ef91ffd01cc9f2cb94 GIT binary patch literal 508 zcmWe+U|?9w%?KomfzSy^hou%3XXfWA7#iyt=ouR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JRu3-k60t9U!Q-NS1gktyu02)^NY;@!YAjB7tAGXYVr%TOO5lwejqpJ?6jD z(pIlpCDoylxn*M9og>fEGL);oHTs+ndS-lj-GoJFEm$YUJo?Nz-Py0G^hj!E#TG`f z72C5EZ7aodW%i%Xe#P^0W}52t{YKgP0SBku(D=vnr{mP2)LBzs)ye5p&&t@x`ETo! zsjs(|U2WR)`cl~Cp#7h&Hu?O1VJtsU(0*Cyo>^fV&39~!ILUJAxtr$pfLCVGLF|`S z*n8OCd*a-1c4y7(Wg;h*u9Lo8IOAMH=FbN874-)kIrc;^uumutKj_!~Uu@3e%iq;r zFUz|2+jO;!=<2l4H}3;1->~in2G0Ng6^u!V2}uD72?-r{KYp0XH(?sfBL(s0KLp&> z<*)yEFhRlJ{(D8Ze0Y5Let`ud%+00(#>O5DCudDoeX1a+sNj~-xGFUz#ULRifg^eI r7uF!2CXK8=bN9r|RXk?Ms2U+*(U7Hf*X9)S6N3WhsZJt>Oki69u3^+e literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.lpc.txt b/cpld_maxv/db/RAM2E.lpc.txt new file mode 100644 index 0000000..9ebe4ce --- /dev/null +++ b/cpld_maxv/db/RAM2E.lpc.txt @@ -0,0 +1,8 @@ ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Legal Partition Candidates ; ++----------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ +; Hierarchy ; Input ; Constant Input ; Unused Input ; Floating Input ; Output ; Constant Output ; Unused Output ; Floating Output ; Bidir ; Constant Bidir ; Unused Bidir ; Input only Bidir ; Output only Bidir ; ++----------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ +; UFM_inst|UFM_altufm_none_e4r_component ; 9 ; 0 ; 0 ; 0 ; 4 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; +; UFM_inst ; 9 ; 2 ; 0 ; 2 ; 4 ; 2 ; 2 ; 2 ; 0 ; 0 ; 0 ; 0 ; 0 ; ++----------------------------------------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ diff --git a/cpld_maxv/db/RAM2E.map.cdb b/cpld_maxv/db/RAM2E.map.cdb new file mode 100644 index 0000000000000000000000000000000000000000..c4e834cec0444faec5fe9c100c11573728dfcc24 GIT binary patch literal 17249 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.map.hdb b/cpld_maxv/db/RAM2E.map.hdb new file mode 100644 index 0000000000000000000000000000000000000000..352c3b8956f02161c624cde06b58ddfee3a487d9 GIT binary patch literal 18028 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�QN zf4w&y>sZ@OZhqC#VMge?=V=gQ{^;uI#Bt~>H9;Y@ZQUrL#F?`U7j{CaS)OZ`(QPdd zI;DxPVP{}B_^R15_~CDwLemk@BbCVwz?mt_H?-gc+@8-Kf_`t~i+gc4 z1{z{9I3VzBVJ3yC>cYiM`f7;x31dMPr^BHkUU${BFnEmf0CoU&Uq1Ke5Ez)0g1ed- zmjd;yWs9KyW6(LeRZ@x^*7Y3UOXM`1#l`{t;+1zgU|?gRkzFF*h);5l<1Skctsg6c z{?N=i3^X9tbS$P_XP#7Xg>$Xx#o|yK_x2JHcINS>Iin4%}fd>xFXfp;N&~Y2koqtC zJOa`Fct9wBMo&20Y4UBZ=VEIip;j#4@)lAI4Jp)&r7reWE9cGI*jd;)?V| zQedj_v!?DTB@_pf|9$<~OMs9O={8~ThIbBKtPCTZwYsV9LBPp)F)hdF0vy580B};5 zj;?`mJTx?)A&i7@x;{p&Ke$lajN+C;L(M|>MHK-( z?kB8d6Ozz3ij~1QzUJ@=q>~omHi;ZuHdi=U{0I(F3id@`eY3^fgiBJS_+3Mj!_}oNRALyM9wHJ|NhZ@V_nb4BrA3U*>J#? zbd)@cPZn8gx{@gOQ2Z3_yj+b$^88%c1%X3n9|so*lH+{aI*f_P2wl*A+U6dHd+-&I zhHK7$_&&-mQ)G^YP{{l)vhc&j?=|AmNN8wbDg&})2bBnUR8l_uv8`qT8cxa$$%Ru= z4{|%~Fox-II-wUTPs~9XGo^TY6u1V|VuThsMorc8Y$kUzXX7oeue0UIedP)x;DJWKdRtCLtvV-vzM2O5(e2#0WPh(krC!;M13I zCbM%cqI?hHMR>SLB|#_Fhj*!GaYfoYP&C9UjihgL$s_HEk^ZOPa|L(Qw7*#7l2a!yF8o+s+PNJSmOkW;!<*>sNhmC(L)bIW*YBA7Kw%y*V`;id zKxHu{*<&s1uOW>r?|7b)q2q@ZZ`g=igP@^R9d2rrQE-tNZl)mST7650|E!bJ7m z4CL2(B#5$Tr42JzXu%6vz+;Ddq8=9mZ)tvlyP}~i_gBUwcT{X^Uya<;l6#^NJnO3* z-iEh&f)$e=(?d7;^SqB4>*lqvV_KNf4Xyrl@!Q_obcvV`n)>i2yskzUrH>z$!EbbZ_R%$|zSSkhH3)8o1s-gVq| zd-p?^%60R8@cQP5TRvwpDgMHzJKp>lG(#I1uI77Unde7UB&fcqIXeR_OX{DVvp>oa fNYVwZ+)kNfO!Hr4QM~nt(&L#ElidFR00960YaNTg literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.map.logdb b/cpld_maxv/db/RAM2E.map.logdb new file mode 100644 index 0000000..626799f --- /dev/null +++ b/cpld_maxv/db/RAM2E.map.logdb @@ -0,0 +1 @@ +v1 diff --git a/cpld_maxv/db/RAM2E.map.qmsg b/cpld_maxv/db/RAM2E.map.qmsg new file mode 100644 index 0000000..ab7618c --- /dev/null +++ b/cpld_maxv/db/RAM2E.map.qmsg @@ -0,0 +1,19 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1615428143615 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus II 64-Bit " "Running Quartus II 64-Bit Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1615428143616 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Mar 10 21:02:22 2021 " "Processing started: Wed Mar 10 21:02:22 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1615428143616 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1615428143616 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E " "Command: quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1615428143616 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1615428145711 ""} +{ "Warning" "WVRFX_L3_VERI_XZ_EXTEND_SIGNIFICANT" "RAM2E.v(38) " "Verilog HDL warning at RAM2E.v(38): extended using \"x\" or \"z\"" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 38 0 0 } } } 0 10273 "Verilog HDL warning at %1!s!: extended using \"x\" or \"z\"" 1 0 "Quartus II" 0 -1 1615428145839 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "ram2e.v 1 1 " "Found 1 design units, including 1 entities, in source file ram2e.v" { { "Info" "ISGN_ENTITY_NAME" "1 RAM2E " "Found entity 1: RAM2E" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 1 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1615428145848 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1615428145848 ""} +{ "Warning" "WVRFX_L2_VERI_ID_IS_SV_KEYWORD" "program UFM.v(72) " "Verilog HDL Declaration warning at UFM.v(72): \"program\" is SystemVerilog-2005 keyword" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v" 72 0 0 } } } 0 10463 "Verilog HDL Declaration warning at %2!s!: \"%1!s!\" is SystemVerilog-2005 keyword" 1 0 "Quartus II" 0 -1 1615428145928 ""} +{ "Warning" "WVRFX_L2_VERI_ID_IS_SV_KEYWORD" "program UFM.v(188) " "Verilog HDL Declaration warning at UFM.v(188): \"program\" is SystemVerilog-2005 keyword" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v" 188 0 0 } } } 0 10463 "Verilog HDL Declaration warning at %2!s!: \"%1!s!\" is SystemVerilog-2005 keyword" 1 0 "Quartus II" 0 -1 1615428145929 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "ufm.v 2 2 " "Found 2 design units, including 2 entities, in source file ufm.v" { { "Info" "ISGN_ENTITY_NAME" "1 UFM_altufm_none_e4r " "Found entity 1: UFM_altufm_none_e4r" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v" 46 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1615428145929 ""} { "Info" "ISGN_ENTITY_NAME" "2 UFM " "Found entity 2: UFM" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v" 165 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1615428145929 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1615428145929 ""} +{ "Info" "ISGN_START_ELABORATION_TOP" "RAM2E " "Elaborating entity \"RAM2E\" for the top level hierarchy" { } { } 0 12127 "Elaborating entity \"%1!s!\" for the top level hierarchy" 0 0 "Quartus II" 0 -1 1615428146009 ""} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 16 RAM2E.v(100) " "Verilog HDL assignment warning at RAM2E.v(100): truncated value with size 32 to match size of target (16)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 100 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1615428146018 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 4 RAM2E.v(103) " "Verilog HDL assignment warning at RAM2E.v(103): truncated value with size 32 to match size of target (4)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 103 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1615428146018 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 3 RAM2E.v(544) " "Verilog HDL assignment warning at RAM2E.v(544): truncated value with size 32 to match size of target (3)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 544 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1615428146023 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 3 RAM2E.v(561) " "Verilog HDL assignment warning at RAM2E.v(561): truncated value with size 32 to match size of target (3)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 561 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1615428146023 "|RAM2E"} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "UFM UFM:UFM_inst " "Elaborating entity \"UFM\" for hierarchy \"UFM:UFM_inst\"" { } { { "RAM2E.v" "UFM_inst" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v" 79 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1615428146122 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "UFM_altufm_none_e4r UFM:UFM_inst\|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component " "Elaborating entity \"UFM_altufm_none_e4r\" for hierarchy \"UFM:UFM_inst\|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component\"" { } { { "UFM.v" "UFM_altufm_none_e4r_component" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v" 216 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1615428146152 ""} +{ "Info" "ICUT_CUT_TM_SUMMARY" "268 " "Implemented 268 device resources after synthesis - the final resource count might be different" { { "Info" "ICUT_CUT_TM_IPINS" "22 " "Implemented 22 input pins" { } { } 0 21058 "Implemented %1!d! input pins" 0 0 "Quartus II" 0 -1 1615428147216 ""} { "Info" "ICUT_CUT_TM_OPINS" "39 " "Implemented 39 output pins" { } { } 0 21059 "Implemented %1!d! output pins" 0 0 "Quartus II" 0 -1 1615428147216 ""} { "Info" "ICUT_CUT_TM_BIDIRS" "8 " "Implemented 8 bidirectional pins" { } { } 0 21060 "Implemented %1!d! bidirectional pins" 0 0 "Quartus II" 0 -1 1615428147216 ""} { "Info" "ICUT_CUT_TM_LCELLS" "198 " "Implemented 198 logic cells" { } { } 0 21061 "Implemented %1!d! logic cells" 0 0 "Quartus II" 0 -1 1615428147216 ""} { "Info" "ICUT_CUT_TM_UFMS" "1 " "Implemented 1 User Flash Memory blocks" { } { } 0 21070 "Implemented %1!d! User Flash Memory blocks" 0 0 "Quartus II" 0 -1 1615428147216 ""} } { } 0 21057 "Implemented %1!d! device resources after synthesis - the final resource count might be different" 0 0 "Quartus II" 0 -1 1615428147216 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.map.smsg " "Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.map.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Quartus II" 0 -1 1615428147485 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Analysis & Synthesis 0 s 5 s Quartus II 64-Bit " "Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 5 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4567 " "Peak virtual memory: 4567 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1615428147569 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Mar 10 21:02:27 2021 " "Processing ended: Wed Mar 10 21:02:27 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1615428147569 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:05 " "Elapsed time: 00:00:05" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1615428147569 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:02 " "Total CPU time (on all processors): 00:00:02" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1615428147569 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1615428147569 ""} diff --git a/cpld_maxv/db/RAM2E.map.rdb b/cpld_maxv/db/RAM2E.map.rdb new file mode 100644 index 0000000000000000000000000000000000000000..cb9aaca4f9c3586c4f7ed3a0b414fa8718d02efc GIT binary patch literal 1248 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
;J4+@dH)gK==ZRZ0w3`z(TOnuW8w* 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.pti_db_list.ddb b/cpld_maxv/db/RAM2E.pti_db_list.ddb new file mode 100644 index 0000000000000000000000000000000000000000..89aa9b430d177793e191e5a385085595d88cff2d GIT binary patch literal 191 zcmWe+U|?9w%?KomfzSy^hou%3XXfWA7#iyt=ouR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JRasUkhfhGvWU=5}BL+J{}U;qFAuV+&L z@&Es?U`$F$NSTn3kRTBA^P&EPqzUYg8U)T)h%c{*cei&hzrNrH!}SFT=N|}!@1IcN QZ*N{dL5odIfeow~08m9Y0RR91 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.root_partition.map.reg_db.cdb b/cpld_maxv/db/RAM2E.root_partition.map.reg_db.cdb new file mode 100644 index 0000000000000000000000000000000000000000..b8970bb4903a650248be228475e35705c59ef222 GIT binary patch literal 210 zcmWe+U|?9w%?KomfzSy^hou%3XXfWA7#iyt=ouR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JRx&jRWfoTwm!5T_mg3=X?zyAOKU(cqI z&}_Kj!WxH-3hwdB;VC=$64}@U*no=u|F2+7N=ZnWaqz%_f`}bQWIYT|FmK%49bB_v mcXCH|&4ktK>u0Ryo>2Ckhp&*AtFOF}X=PFZQxeGh|NjBh;6CpF literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.routing.rdb b/cpld_maxv/db/RAM2E.routing.rdb new file mode 100644 index 0000000000000000000000000000000000000000..268e3e09143164a73df7d9687eea8683bc01c0d5 GIT binary patch literal 1464 zcmV;p1xNZ3000233jqKC0CNCy073u&09Ivkb7^mGATcv8FfK75LUn0uWFRs#G9WNE zFEKJNGB7bSAX8;>c4=c}AW&grYalToQ%WFLWnv&jWNCD1Z*G7&00000008#{00000 z000#M00000006iJ00000004La?3vGN6G0Tmn~UJVgQ6Y;G5QC{&dly6xe4t>&`Ys+ zE~VB$O-fBEc=3<+s;;xyF4^w~`_e7aYMerveVLtk-}jyOYiFyfs(!}L*2UjouysFP z?#|B^)7jDR{q*#3_;&x~b35Ms9^8x4k2tyS=UY{Mjfx(}>F?%?{o_W>-eP(@{j$H9 z&SzaM?e(2_F}NH5eUBQ~eKzXGXm>QZ-lA8LwWsmBVQqVUeD-OU$TPhmvUTxSllLTE zH{|Wk&l7V!n0pqP+dCQV#Ds8AhiHo0HEF1IyC!O%M{#FSzxd(qdzm+^l7Y-^y4Wn$gXcy z76Uz&QdBk@0ZyncTB!NCpNOmITt6LsD0!Ufph2DjPxkIjADA0l&ghE*A%017jo>dBD)n01U60 z!Rb;YN6iN+SOgcnu}A@`+Y)^ce-63}c_I6o2aThN`qfy)Oy=5q zUYAlBb{2J+xTq@xhIcaRCzAQ0H{?PrZnkR*K!Q5VMQ8*kv||)JL(y$H;lH6bh%>On zXq7~&hsc_OmCf{plnaqXMB4z2GK*@LYi|mwBt$eAc`31gQMf2X8wM;wGB4GlLU~52 z$5Q=ZprcUQp$O)q9)U@Cj?D)A3T!|TMeRng6vSRI?A<3w69$6LhLP!ZgIH`g+0YH8 zUTrUX!9dW#%@EGqedtvK*T6tl(WRi5_F`@lmrq2$JuB$93qe|@Y$ACQ#Tu@HLJtwW z3OX5r1Pp!d1`H@dp92vvU?5?@uN0LHBQK>lE7Syx0^}MPK&30gK&%YWYln=!t{)7b z+H?_*9;J5XBkjyfJ;1^4BaYx#wu@pzu`;}_&~Szch$F&K=Z9~=>)=-~5Tj58Cxi&S z5OK4u7cd|)K`C|6n?&P8EF%O-v@)~>fTqV7Elt{rVzx3vD z$xd^QbYrK)YaIB-Y8g&15jg36O2;?w%D_HRXCcs6=l1UNR9s(Vr1vS^Y{nvj67%P3 z3JQ?D`z(AWjDF|*8nEeoO4k{{%Kpf=a z6d&Xo;2#tM5@BEhVrB*lMh1qY`=t!LK%OKJgA{qVI)?Z<2E>OrI{CQ9`#X8LIzzPZ z0~N3^C;-XW9S>ja1DXKS0#Og(zU(Q+85h?PMCsHNs)NjZ>W5CUS5 zEf6hGwTx^G20)jDv03_p)Ci)efw+K?i9rLX#Ms9z8c4y7ar5_aaSejHl98Q(11LG^ S=20GyF)&|44FCWD0RR6%?v&L4 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.rtlv.hdb b/cpld_maxv/db/RAM2E.rtlv.hdb new file mode 100644 index 0000000000000000000000000000000000000000..30bd261429b5ffc3ecd44f15d9f5ed20926b35e1 GIT binary patch literal 16558 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 bSb7c>=cyoAiyl5Eqol6_e*PWs{r&#{62ygi literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.rtlv_sg.cdb b/cpld_maxv/db/RAM2E.rtlv_sg.cdb new file mode 100644 index 0000000000000000000000000000000000000000..ae0d2986b000748e8bfceb9822e0e7f012d58c03 GIT binary patch literal 28718 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𝔙 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.rtlv_sg_swap.cdb b/cpld_maxv/db/RAM2E.rtlv_sg_swap.cdb new file mode 100644 index 0000000000000000000000000000000000000000..019d4f8c00f35fb56512ab007bb334382eafd62a GIT binary patch literal 816 zcmV-01JC>s000233jqKC0CNCy073u&09Ivkb7^mGATcv8FfK75LUn0uWFRs#G9WNE zFEKJNGB7bSAX8;>c4=c}AW&grYalToQ%WFLWnv&jWNCD1Z*Efw00000002$`00000 z003zL00000001xp00000004La)Kke$!!Qs{S!J1M0a?>)VESz=@R&A zOE^e~V5%LSN;sB4WamA_r()v&>1>=`YDdq*o6#AWEi`p1A==`q6N)e$7kyhaNFi*d zzuu! z$6998!*kWa@Eq&=r(@*+jo^Pt`FXH~LGBrk#@^4XS^%#Lg5qku~0lQ>#6vB0{{U3|9Ao7U|?jhU|?XVHglW~q!{FZ*xAJ?KG@wc z#5F$1)!E-KI3y_4IV3*7KPV*L*D(O3ih&7?6@cXKf|OrCih&=95gLQTp$b`n!t4wJ zK(dEh+a5?UhyXD{A=p&7YLGlLg8(A~L&Wr}M?sdLs&@AG4e>IjMiDPT|oVh)B5Ai43H2iV7`4)^nSab;v>$N(zXG5f*` u4j>J3Ji<`_5Z54Ipa=s4ClIqRH~`6h2h06JKpIu0CtRfjP!0e90RR8d;%hYk literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.sgdiff.cdb b/cpld_maxv/db/RAM2E.sgdiff.cdb new file mode 100644 index 0000000000000000000000000000000000000000..b0c862d52b2bdc35afee543cdc8c6f9e474793cd GIT binary patch literal 17288 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 J|B68({Xcunbmag5 literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.sgdiff.hdb b/cpld_maxv/db/RAM2E.sgdiff.hdb new file mode 100644 index 0000000000000000000000000000000000000000..01a2ed6433032772c60db6e3159ae7c2362ac9ea GIT binary patch literal 16780 zcmZs?W0WSr5;oYjF>TwnX4dw`ac}dnz-YjEKr8XPkHOEm+(cS3hjw0QF_NPuDqv&t3nqZe89ApLOS5$;L zSpgx?>+x#(^r4f_10PSfO97LFL6aOukJ-e{|J@%iyz?!<)5zmFIXy`;b}}tjneBc2 zje9@I(%9HI!XqFc@J-nQbcR?L{Q%dpnCmx5LilEdW{1*3QpX3keNp%AP0CsI)Zdp( zP~oO8R=MBHg5U$m+giBWxnro;lrJ8|cT4z$1H^?{t;aTc39aDbWq5JLm)ROUW0RYW zpKFt;RF(!GxTibT0w-glZ!|a8cMw2Qu1Ze1CIvf$B#A9U4)p6L?ubG(RD(vnYIc&v z;6^4=3nBYzKTOq7ohw~%-h%H!!eTS}1%}_AKse6=tybJ2ub0OIw*A!UB@U=Mt=9RNCIesVl`aaN>wTTJ z)D7QeaYIvTzivhDw9Ty$&nH_V3jnp=%lI3&-7O2IGu_m-P1~^bGh{W?(mrtXchDO% zP3U_vtcg+HG6F;|(3VX{bFW>v$%El=jsfp~I%?NDz3Y;EjNawD*DHBry-{AJGh=as ztyyKI*_E9f-<7+|y_AN2+ryRJmaVJdm+{KG=iU82@*f9HhNMP(@!aj2*#1Y$d1tSm zmC>nhx>7Px+A0&)47|+=#UWm$X2`y?Ua{Jf{OO3Z~0=#8dZvRUf> z|12s0-=;$&A^Fia!<>Qm8N<*6*21k9Cgx{!@A~>_T4wh80$vOxMfyNV z>WJQ*0w)_%G-{sv`>Ier6Fr;ZBL}gvJcd;!$owY7u_jGX6KCS(ohXooarffE{S8ls zIHpJdhki52kufd*!V5(YE>GHZITNGh!&3QbL>X>3@$ymGz+t>rh{$`#i%#H?-W!;Q zoy0$x3>!TkAXJ})Ajso5v7~c9H3wVa>2FoRc4pl)Sx=99=-?df95I=%c6FK=+Go6Q=V`mq~(JSS4U*S*XGjS*M-7e@N2-taNu zE^M{Q5iQFG{%-cNG7OKJ7%WqfL$%+xvyZ0pL=Wi`wD_IejaW)0Hf`-oB0CDelkk-R zN5Ja4;hN{+*j4+ z;|z{K!emdw+gR-AE`xBF+J^-h^gLi~d~{R#I}zIKn*w_#=X2U8!7 z%wL1PhJ=QM$KK4_!C(nf^?r;svC0Iufj`H*it^+&6L4N2Hk7C^h*1s9xonrIWMz8l z^FEM@c;lB=tGSU#W^1=c?V$%a-`)S%D3`s`r0&VZ zCdtG&p%M$rXg5Sno&|!_1-HL^>378qr0wyXcnUjT2(C2nw8yUlSiGfQl<}YyN58{; z9mLA-pi%`($H%hcf1M{q=siQ+pYfAWo-IR3DB56U`NGUwa6}#Dt>pOxWOt3Z+bO`i+n8=@N<_dD_ zE@@q6FTx&NSnY(hcW(}$B{7A$PqER(QVd>FU(9R zn=G@b{@X6>I#7QnEbNt6i1_$EDm-n5h0>6JrtC*B@E<{BTCIPtdTU8f2_!@YYjXc0 zG6EF7L@Z!VWsHlGaYzA~kBsv$e*2RvBbGB8^r4i3YuT@Ixi`q)3gPx8kNq*8o!bt5 zagrsZn0^K-MLXw~rj55y&B1-R=FlN*6NJEJt&|L0d&`BsD_NxX`OI4wA*Y(zxV*p| zluLrBk;~}KD^zx`rdtXdy6wM&e}|>KsV+Y5;+`*7QYSh{TaUzS4t~gNP9Q->3k}R8 zkp=9oQ72{_?GguuDc6i~&?{#T>E1o&&krO1!yL#@o?!iA${kQI(z|4YGV{#jVVDnv zYH7+5{Pc5|9XIv#6zxjmY|I5b9w0}&g?!Sh3TK}S=}hS!L#vSFI7g(hzpYWEvAd~C zy3HuX+YJu44%OpRn73{eW9t;2w3 z*sio!MyWje?Np}d==JF6NGXmRw6^~Cj3K%DI3~>m1dwjSn3;{JnaQhlJTN&_HMfji z`6Ki%*6^8+s)Lsjz=q2%1-==PvAfF_SF15Dw9Hm2302f-xc!KKo%Q~Bdb<5r(Ba`S zAhTsLp_K)VduD{=ttKr!6Mu#|R&GkhAV^YfI5BM5xc*}0;bi8}-(a40I^65TeHB>ETS&aRm3b*X};W2tqOib*& z68WSOF7e^ntzt7Bv+|XZrRHHI2spBiLty3QWgaE*bvUI z7Ad~L_=M6EkiKi7xx0kwO?_@lm33DyaO_%D1DcklV1#<2;!(7Us5{i9m?AA+&B!+x zm~qQQ`au7BbH?GOHm(ogi+jr!uDa-&T$8f*A^^=A8{!OIkoxm^EM<`FVg5KKc< z2@TwE{H#?K(l`3wI2cpyC0ZGC*kISaPl8tQ#=@Fmpvi*C3J}aF_R|tP$*PcjGj-^h zke1>>()r`3f?PDDu1Whm1lRpcbPU@!JiX;9`(FI#w(*!bPh$TJk-)T>k5qa{chCTrxjQn>JlVF zUFfV7ft=vXl7~=4PaSm-JA*y(eXqhVN{%0^9r`)L_9&M*FTh-*zyXNf~ENc*L?A&%f#m=@NLZ%pYs_nv1h0cE(0Lv~Q zPmP(41=$l^O@`j?{i(ThXM{nm=?{&azyaI|@O?TXCx17`LyWN2$!?gz%y$WYw+Z)# z-<@r0=szMq*dLMpj|jK>w^yp1zDx2<3(TPFd)T!L1_OP<&;T+0RthZarCQ2bflZI% z?y`L{$i%<Sysft(kcJRv(f+ zo34;R2ArYl8OkOt9O@=5lAlWRQ(35++VFh+%R*>`3qb2xEnJ`#Dqu&QrL(TbSD3I= zs3pKn8Bo#`{O+?`K^hNW(e!K1t9v(9!C@G+9#!>iwn4ztYCUKe#f1GqCe^#p)5HRQ zB#kLFy(nI|C2;4b%>)aB(y?5@?2tOh>$rbJ%pEz=@~5n|g4j8fk=HLDiJRP!j)yol z!o%?oJ;9IdiD)v-U42mjSGEOPpE6AyJ>f3T9CKG+UKxi>TVy$SvbY zUBF^5{uz3flti`aIkjn%_a-?XOQHN$ z_Y26jP_*bW*)P>7{&Uc$?Hro08Lr(jJVF(4MxIa((*O!SW>A8p(u49};r5qi`=UL zL9TLfOuwN@aCa_kElWgl0=!>!RoOd}X)XI_Sc3FeX>RLYrBd6Hc4Jw>3pdHyhiUT| zW8lAlHjo9i`;JsYpFY$ogS$Otd@MOTEkX+l*H%CcfU8=61e+^udH4nP>zX5y3^R zJ1B5OKnKl^bT^W^Mm@r%FM{gdMpK4@z=Ybn_8|gN|6Rmi@oZwQ{9-347k`-{LKWrnwWVK z_s)mi>7Z8pv4dhr4$96)aeM~8e{y@(Vs~z5eE=9+zJ!r7inm_fMRa53_nN8XHm8#QLxFu>xcnmKYmqumUlEARY0D0e6_s{=pjq2z<- z>BbI3vl$Y26=F1K#^89S77*s(q7k4?An<|W+VODnxo#5!Gk93eJ@st!9n4CWA6TgD z#v0k>y21NQ{6{fvfD1b#8%C@bZDezRx%n#xzNZ2;*n#A8Qc5FTPt@z_X+~`}Ddq&m}j$lk=4a^If+KfZ?NY*KCwklM5PuBP;H9A?h)ko>|?B)jbou)@L4$!#sJNF1ZKpH+ec7`bm@*838<0Cv_ zs-7Olmb{}IL08vz6wN`0W@6*?7ACMu&tEo&z!)YsNV<^w*SOi;gqi_KZg(8j;rfH1 zv&rl2SZn|7=ftc`?kL(@(~0#ipQ!!5*Z9zWmF~{LufXh9L5!6{W0+TPJiRqYo^H_Y zz74pxuP@sh_!9=^;1wdrx|QaJ?;Flg6@Zt1t0T@ZZk0`_K(DrudNd>NE@7eKi!4%_ zIFxNFmVI8?{%>7OCI-=l({tFkF1OA1VbaQ$B(SBvfsOLL665=A*PI0jVs z-p~Sz4B!2yuFb?aQLtvpF~7`T3B6)V#FNU5?19eWQOA^$FCht{ z?AfbZL9_y>(7um)Ko9dG;>aT7a0(g4Jqj(qK#R`sCii%b5E#Mt_<6w)aw=lSBeim$ zPmMnAS=aJ?a=8}iyFu;QO5^g!?HFoO(TKeBs%;<)&RL6fCQ2|a22M-CNZj+W`-1Ru zYK-`(EHX+1oX~YEG3yZZs$tFNr4}1!ii(rZ1;~GOtDHzsE!B7i&U)G9+xU~yqSomx zLQC@bCEU-~GUIiFY| zH{SJO=T97zn6cb+pa&$BJSe}{ruWkKS06Yru7r92cgNz0lcJz7^mlm@K08|S`>a=9 zb)9)3?27Xs{2MyM(M@1!zFH^R`;D}67b?!mEhj@s<_)KL?_=eH-3RyO8Qww*UK%XR z5y9~7%%9T9gZdGYX{PU5c8TPnt z@U#=EnJ<-uYx+@6FjIkGi`<;Ol**GtQ$R2R{8;Ch}ui~eX<*Oob1gg|SayDy3@tdJ_xAOO> zN_WzPf;LeEO6}hNf9TgfxI7jmSh;@Mbl1W{;#M5|kNo(;HjvypI|X00H5H%zMAF)F zMoV<1F>&&pQ}M$ffYj|@2#M}wa=_CgQ|&-HXDs?fAfqhC@nUynRC;r}ZSpUuw|v#67#2pzX%d-J+#|42Qo20tI(Fl37!sTUdf%WGD55e~Z#6GJO`%o;0I1p4*@;T1i3>_Pcz~_yM7o8kg+wJ7 z&y7lfkDh#CTJPKVbeWA?saQu;mc|a(>Q%PpGwG&zlKYcFKP?5z_>_7>F{4P@4faN? zD!XqkLVKlh==5pL5hpFF`;v9x5#@X3iQ}onOm-QzR;w$Uv(v2ejNuM%g|`S(9GWRl z2p%(+*^*cH55#}yWJh%CgZRWY?6Wx}irsGr=UYMh(=AWsH8Ob3nrdRtPS46(Cxazp z$Hz}C2$;)kOL#ld3*OGOFD2v*VU`^hcjM@4HXAVTv7Uox`|tSXA%63Nt0s;Unt#=q zLSI^t?0Lov?9-vxgw||F4JmoJd3I(WlE<_+8@^EFI3 zkqT^#F3Qs1O?+sox~8OGO1_x?SvUP@=!k1*yo)f2ow;j`k6%90q+l&wM+U!1yOeBL z-X}Z&YgHvBZ>*P0#+E#pW=}Y+k6W{+KhOuwEc(F4TSPQEN#9J{BHiUm7kpEEKJRHy z&X$zvJROeDH@KhFOFz-WeqYdjG?CKfCXJ@LZzMD@ckefpP3h^BT?-6xdN|k6CmHV- z<|bfH-Iq*6T2n`+7gN$iz8BA`jZL=l90d4i!0ZSEq~QOI`ZAjg2X@LxWWA?~JR<#d z%vTKa7B$-@&zv^D)cO-o^gTv;d|6^2&pa{y>)5eg5|dh}&b8BrGl2F#s+aNUNQLx& zFmULoPZ{0U$x$jp)~n)MYnF#Bw?CI;ZI$r%?}+FI=N%2k_8kCutg~mf*2LvbBe#I- zMetm=#FlFK#x{&w`{k77mLD~nBr&YDEQ(GiS;Z%OIFFjV;*0P-0270AS%pbqNEjWp z9~73`R@5e_q~+UG;-^*V|}IGv)RF$ zK2_u!!1tyvNc*#(!B9`lBw4S4NpEPd4;}SwGo%r?Q;1~--u4~>7jg3FmF3R znmy@tL~)J#?ThLitunh(&sfT~#R0H zM@^F>Cv39sT&ykq14<4d4GrB6f_u%Hh5YaB|LEx#)U;KHF_OJgW#TIJ7GtOBs{*@X zy&L6C4`_690y7%8im=UiUD9M-6-^lJBLt#EqZo7(tYB`SqfYu6Oy)P_14}pZS z)VI5Ofax)6o7Ak@NtHxTF=ka5P{pB`O%%7$HueP zr58+}vlmZ<))+Grh9UkD;xGw;g#-AM&T8Yl=Bytq;1#m!#E|G+(PHio3`Sv)h+a z*bR#KZ&|5#v<FA5?u63f@_ja_$tfw6{C_hJpppC< zKv3}}QV&c0=54ycC{Te>33*o!Ny8dTkiQzD7cE;K22*KEBh0~uP?F|Ufr)_TN+BaE zYag^+;okV8PdR6ZF(IFlfE_{nYAZnGUMQ1!8IfbI?~AhpeIcX zos}Yv36q&PF{xvu6**j7*GTylj}x%8;_jF-3}!#^w^x5?Ks5>V!Wg`HPe;_+guCi&sp= z?4?7}qwY}x?!(5WOv}rY4j!b9!exwjD_`|d*Izb1UzsrslQafMTrm+`twdp$`0}HaNgz9$<9V2FO}v zxRfAJ&USRy1?c$-4!%d7;LAGXNpN;MDSs;9DFx1&#@u#dRu^Pl&(u6M@aYN8n#KJ3 z$8Y`iR10B;Ue_}-PYrM}3VEW)+sepy_Io;ltA=l?H8!Wq`}7Q1hFf1@ZbHxd6bpI6 zo$XG~=YwsMVs7dIwq_UdL^ao9X=?R*N`M1c=jr6+f0CJJ{s;oulk>Y!o5tV(I(a%7 z`JZg&Gc$v;p~yn96SMeWfO@QT+uvH5`QA`XUvL1Dyk;|VJrKYt9DryRg1N~T!rD3H zNnv)`*!&v=dw9+*>PW7EaR`hFCKW|CE-sDC72%iJ*`KMveZ#DQe11|0L=)&2yp6>? ztX*QdsesV1`7ou1psW-<6BAq`lRhk_>L-6%;GUNBmcZO-ag`d5i3FkDRIUZukJnBI ztezQShh~#^YOFRI@ULxZr6^7kZdoXObSlv@J=0iduEFo|hC`&7AR;>bn!Z|mFjtEd z7_uijPPPle$uz@-V7Mx}V(9A`6bJa=+(7ZhL+py0@*yZB+UPT+tQHcC(x>*rev}^I zEQEILBL~_E))b7n^0d+t_;=@&8`5YIRw0D=i?ue>QI&5>nbVOz-xoI>+PLEnh3L}m zcq;v_npSaVTZvB zUu|D^uKjup-}@4W!5!cC$ks#T6Z4eq_G28^`L|Ukg^dWLcTh8wc*B6gKuj2F+?ZVp zcq(!y5oXkYLU|q0A>u5|cPFL~|McN~SRJ^5OJ?k7rNxzj;5Ly$G6he$7Oa$_oIU#G$9#Ix|8s3n6`bS}P!q7%4MpslbDt^5vx zj%InA4r27nv8V`(+An`#<|@CfHyy-P2riJg#ai*rY1$#NxA&%)HqklXA= z;p=?yRoKJp6B~jyr;fFS!gGb^051WT@M!3g?uM!NROR`U3Ev2uK@o)O7?LDI^exJ- zfs68JW4=uL!qJ*h@y4FcIo)_&ZqzMpQv*xsLlcTsI>Pn{ z@eL4)TdL0!Y_#5ATh8GvV)1m5ohFG`Svcj1-I;1+FV%jn4>CbDt4f>3ypty^t%J)@ zwiq$hG+jE^zYo}y>r8ZqGc{itK9z4N^7LOZb-?|HzH^Ol<6Po5isf(3vsodf3nuSv z8__$L4`W!m6JWiU9Q`V^1~5|xL4m|VaVPPzmp%H4dIoM0U}!a$K{7&HEh4;An&<^L zZro<{w?h%=tG{G)(kKE7JCKqIs0HcKq=Hxk2eZ}{ z_bETGvZ{FcZ<36Ap39(EDx{c0wWH--K)6oo6g}*N33PKy{RwgedhXcJS0yG?#ncSs zgI@9`A0rqgMmc5%A4_8@YfqXOckz=Ul44Q{ZZVsf#e~ATV^R!mF-ytKaNjt7T49ou zpdtLboNcvrTq~qG1ICW$%Ch@PKq&2%XJ6hwwmdvUKU}pEIb}>lhp9@K#DuauC2(fQInIY4iybnr6sM32-IjT=qdS_ z@I=)a;LmMB2+~9$+QLE~L0NeIj z9$eXpjY(N2E@+Eb!J@QGH`mTXGNg)+IIksd|bMtTWfz(vh)RWnzz|Y_$%}W5v0UER0qb zNc$4>(tb((qTAAMx}T2wi@}z%4VJRYD_Phb8xpFmiE16$Ro4!J&OEP`8|98p9q#?* z%{b9;wN2o!QooJ;i!V|sY9*)3b}N6I5liWf^j^4uuYahWQz)?13yQdG3)#lMRm zm5hWtlop$Knhh%FG(L#2N~?_+)SG3qF$HR-FeP}9F=d6CvBCo?J`;iWsyJ%8spUPr zq7+9lb(?87|(!)n&=$5~%4VmwgH(i%(?8hfGcD zj@RW*aMr+GkhqrD&8SQ#ybm=zXX5*~J)x}a9yCJoUOvWa859odgc0zQd%iJZpookk z$O&OWaq=d^(eVK7QLZ%lSaG5xeD^HSAFKH7GKgD^MYuQXjAGR-8D6EkjB2=yuDOhI z`6a2Hl9dtt<~k`*QC<&_Mix#s>X|}VGYP$fDB4`70SMN#z_cyXA97bB`5^S}C+%zy zjpUyst-QDqMmz)|(J#3BF}|o(6Cgz{MBwjAWl`%jMxL?$W~K7A^rNI()%zRzfkk+f z{N<+u#Sfu#iZPYsOS6nh9#@M-g7Vug6a7|&a8+ZUD|a_!p_@dGTMu*>3@J2348jv4 z<0rts@`(5l^=Jl>E`Jm5i|AKaHr1T+QVg5`1${%M9hrH1t7Fh^A2T#hEW}DTaf#%m zq$Q4pxn0Io((r=T>ijWG(K!TTemH{G;WBI7dg26KUL9t(n*kKhH-ONWIv0E&#eB2o zoO$1V8E5l*oM*xjAozt8cc4)JSom0yGglJ-cK!&;Mp|HM8X#s z_$gGGS?84gn8N*KWOvJ9B|72}^5!A>hQ`;?GmHGpyGy$_lI+2+*;8ZY)Z{DFWzobx zzmtd$&IX|IKaPy&>oRh&t4%%SCzx|)n5*oZt@MV|I3R1^f&KJic+g~c0Gdr1-L=-~ z##|Lx6ky*LU}fiBuM`oa<}prXw+f9~B`S0o#U!L)5*Eu0S&6OI5?Eg3nD6n&vwa-B zc_T8))wIRv0*<@OHzq;SJs1?}hQoMg-h~AJkZvDL1r{(u%EEN-^bJEGz&R5j5L#8= zI<@*R^kbO#SF4fw#w`7U!**6_go^nw1N(vusbxE4E3ita1w@6Y_fZxEUO!a>(W7dB z+%Q2Ok;c@T{-r=o3^Spm&?3AyG8k9ItV47@uyo}w`Xt}O(v0R*lEguc=v z>w4!FynvbRjUwI!1g;eXE<~h{WLmbG23QU2P%EHA+|xcUW}Xg<^;LnE5(}d)GwTIz zTDtOL11vmUTl6~!nth0l432do+XkU+%h1jVgjWHV z(VcZ7Uq~o9y!n$ajotQj>^p`$Ot z3TkjG6{<1{??Pmo6lZ#0J=z0ucyIB+|&zm;H%c=E4&B?$2}@ittI zoZOPy&3bQ}=NGg`a*0GXP|NssFx*LEIgM0X>=936o~N7Jvi>Gi<;bd3(EdzqFA)95 z-Wy5YFlJ2xoB{8lIl*{B-B|eUp$)r2XVl|sh2EjBxtu?@#(leQz_dELn}7KaK0s%| z;q$57V$pAPY4*KU2L(V3Zr7%MUWCgyTVO@qy$yiiRh^KJe&{AFluS7mgZxz^@l~p& zWBWZ%A23qtUkqd8y!|b3VFgWFD`-NG!-A^|LS^(73P;jZG>u zoBsQDvlTe@2oA0mUu?1HS}B+^>C8%>YtveNfrC-^;>tz^+^`n<(+CKbrksfvF)e@` z7FAq5YWCp)NC6EiBQAM9>B-d5^)%T~b27En%i>?J=2VIY6LGn0on}VDUk~^NJz9~< zSxv%-^Qv@aeRO7Xqyi0QV?T3`5O^e+ac-VNaFR;}U72=-MXoN5pH z24eaaVqJ5NLlkH%b=$0}ZYU%d8(zHC)^3cMsYNjew$P%64@#(m3gOM%RiXoz(PEcT zFv3pF5z;cVvXzgdnIaOKL=u~EWDY=B2OOs^qk+P#cK8Hd@DvaQH?Ym`QcYPNw{TF? zNKl9!dg^m&g91x2CP5rL7fIo}0QY{pqhrznwol_0hz%2w%NENu667(SybO?d?{ai| zaHK43O!zLv2=VQ#Y3eq~2=j?wWe2Ge$j3+9sanWtTFAAOqCw*kg#St~6Ef zh;?m6I)R}!@_YlK3y1b_BH1k1d{~fDl+LxP1h*}b3SI%$5Mid5J6ew)fjXlC*o2zN zJGOr2%U_Ma1sd-}pu&lF20Vu(D2mK%-?W5B6weIU59ZF@OF(nf4`iUim9srKgc$|3 zp#AC3zrBULdpV6iDCDaaB4An1%G+LD;VM`^T!HJI6RxGCZD4T81FjeiP{eOQEo57= zS-(Hk1sgDaXOwgRQ`wGt!U?kSJ%bolKFPrwvTFGp6CR)RqODe9-P0tZ$t>7L7MpJ$ zokY?G&MI(%qo)->yVD|x2(pg;?`c9_#vx)8W~lMQiT?>^-SHVD{Li_q61^}MPSFuS z261q(KRriRV{y>;c=gktCHk!z-YX%bW#Te&Y)rj21*XjaDa|5eBntc$@tTf!;YCW> z{RqIjt92R00K{os#%cWwqQHt*t)=<@aP1S&?HkbRVWA?;YMWtRSvulYejHefkWG`& zHf)#yKoWNRnJfQm4*JoDVi7V+p1?`)GZFPXcdCrhekgR3(wdPEgUJv&@vl6B23hR= zWizp^g-GWwsBIG5%MqzauNfCFx6zNfPk6ax>M!ck>-#XIl1Jmqds1EvSA@_jw&$st9z`Qo2-{zs;#%;yzs0V-i+=edn z+dA}HD5PJxI$_{lcQtLlbRx1lm)i^4ESz-STwwT>BZ%Ywp-regYHH?eY(H+cw3L+e zxL&mX5%IWvvAGST=Y^CAv@HRSgf40k}`CSX99H@G%S7viv zi4xIddqp5YmOoI&(B^DJ(cm6b*rbVjcJE12{sGf#5uyhx%FAw&tp0KT;Dk`&`ZC|= zY#DFLDGcF!z*;lCt8XfS2SNivkIL?tVCTmK1aYODqM|T?puz4OcNQILfhdMbRIx8! z#}^XrVCV6Y(S%=&WJFNd@qLsFO1i@gzw+rHa&zu98@}9l;COz~o|hMFKa!BRg-Jmh z6rQ=t(A`*hs_*6uyZy{%x9CORHu2%Wy)QjkUD8)GX&Xqyf{Im`C%y9$Fe@N<9gMfGg%? zpJ9N<4V5cAkpxGUQf|#*jI2WxU&1Q=GtOKd=s5K7K!SSebjujjyP*U(elJfzlI!_i zAm8I^_c}}tS`E4MO9V9*Gxz=7GFRh|=k?IGyt%cty|%Wwy|gvI*;25q@YnY5Sw(X* zn`;w!F66N*Ru4txm@U@B634^y@`&0a+!La<7r*hs)N5($pTo<<*l>heoC|_WUm~{< zvEd;jSmQ!l$C>lQ;Co%KRl~#m+ifO3f{e zX^D$o&G`l%w5Um3n-KTo?Wo+0%w-1t4qu~nhCDyw2+m((s$br6y_1)dHum5poP!5f zG%ZtB%kk7R+%}opsw8e$+Ip4q1^{4mjJKTZ0H%3u@G%2C9Q&ikU3qtO(j{?}jOSa4ViX?8-V}5}v5V zlQI#myI|nFYXgc3VG;&-IF$kavDqfAIHi@Gh;ZK(0qf0RRFu(ze_WqmQ9BYcK7mq=+?~p#D5HsZzbe19VkC5A5~b{@dQ>#vRl6^^Gl6+lRr43&emCy_=$urT z6o;Vr^8Tl*F)WHeR*Jf@KL&KLM_*^Gv3LLVc)m(so4};^;xAnu8c})hQ*`fUsxz{A zH*rMW*ca1&(X^@_c=3ZJINNCly{U8wqcC*q{K?@?jk#XygkK9;;Bz|;(erkd8SF3& z=b62wf5LmUQ#8ZqjP!NlLgZmQb%T5XzILVOk2E{%WWFSI`!pJwPRG+sLG%S|vM{xJ z&eWu*gA?RELm*DgTzfM=O&+Y(-5Ar!1)^uys#Wmvu-&f;^4E{>ZVRnXgx)IW3#$vUY{USyqqg+mPl?ZUf*(_@~^ZlIy)qPkHk*it1StC z-dco-JP%N1d=UKkVmZ7;$>gwvJe!r=U5S%3carL0=dh2!r2g_lEd5x{^Kj5`7vHM1IuTe|e+I@(w! z`Mv|1mDUXps7J7NB6#W~?!fWP!Wbyk?~q7AekMxqQQ8kv`zJTSe793FcN^_Qlv!`b zbC*}0iC!?>WIK#yhJ3q#|tW^b_0IVmb7VW##;q9A9n0uDFS?3XYY8S9O z>JE95On}%B_O^G-tBvqBsbfKqZDoFxeK)vC*Q{8_>-bQvBp&Y<(_N7_h^LpOuKvwe zaGrOQ-;*3R;2q@|IQmKGaLsJBwJg!T*h`e#yG3z6xhDqn(>H+LC>nrn>xL{aeeqDh zyJ5_BvwAXYHa%qm$2~zaA72az+N7=KcCl>)9a4+JOQcIf9W>DvVcK(Q@0^Bp&XCK& zD6Vna;@3S~f00eZya|5yIAA;NUe-9tK*yLZ`5|V_gRLs{`BowEGjtC-LPJ@C`Fk&=sV*P_!SU@Vt z_{U!y?&U>jfPmEU#$QtUV*oAOXQ!3NbBm^l%!-+XgQe&7*wfb$A#(zPX_)=H9Uz6N zKderk{J>`L)<22m!#&aLvGlWg;Xrq~c&MVfT5GxXuXhnwefMKM1h42$CuVVQ-EtyI zP0=8X4tjI5csqy3z0t$DjrdHnL(I=um;->E^E47peG*Y_hTC8cK6{+H3cx&C$5A}4 zsr*|q$B^+nWUi{0O0KrR@7jc`_|QeJ^-!`9{7D$b?ht%_ma^8msI*2LTn~Sejn|8d zgX-YclOt2UDe(%y(MFEDX#|=VZD`G?{ps>0XBQz864GklKH18r$I&+3txYVyX)4%sMN3Qythy8 z%_jVwRL>c@fIN#-+hHk+$t&uP!~@pBpz~sc2`BB)r!y7h=V^_Y!-xyor?lp4mque5paZ$kACPA|$VLAp+8%L9`J-{+JpSVOiTW(p`*9FnE8=Ilg9u%qW>qFGhd7K)u@Qa_-1b$-KGzC>t8|qF^im zUq^^m$$@IZl4R}_ptIOXOE!Hz22sR&>c>fl-)}ve_fW!Xw;(tATYv8wJ?8gh6Kx&& zY*&VYG`lR{wcHHd+ytjI&zbd_?=m{0vqQV0J2<>ygp6lwxIj`RiVT;bdvpP5->{UF z38cHgOjS_ptWRhUE8UpO2tq~B8xFi#sB-Y66Z_GHUqk3;f2jNou1=)4ltdFaq+d^( zQ73?jy85gIN1#9PvNfnkvYK1Uui$$n7#QhBD1lNM;efIpk`EvavVh>1%%Di9vOrFu z3SM2s=7^fq7?8zqY5iY-L%F(Z!9zM*)l1Hy5DTk$ItDbD{KltSa7F9jpg2Isp#xZw z2jO8pc%a^2`^I=62O?Mrg2_S{_v&y2-@bMgtyvnhfZ@qtr!Y*6n*QZBDayD7bs=Gn)1HIWBSJt*>YS~FNpqZfe8-UT7u;lr^_ZHJ@Cm0T^ z^ikEOu=0u>79Sa6QWuN+ch@JC)cABBG)^(*Lct#`;?iK$NlP$_3yxzpJY`Y*cxpd8 zMRsM;Z9*beiDgqy4pf3dp$23EqKcp>1*Xpqu@0IG4@q*}dYnm7pq9?U4-GH+QC>Ya z;kM9^Qe!!cWoq*4nN(hVPSz(0Mt?~!?ag*zZ(>D3;Psi+O(9prZsG*Hts%r6vF(Yx z{QWyKsNlhCQg{L7H(e6?=miYS}yZv0x=Z_&e%Lu(SGv zS*aw7VWR;+QUR4!;DdXby3>_hv zQz>xCL=5KFAJNBAiWhEf+!~xp+u#9lJp>W;rKOKI{(d2tqbRd9Bi-LnAz`sMTqtB7 zX!^vSSZ|h32e^me?gi4wyxM4g%3lv_dLr}#lSf>)!jNoa3ow4)?v>W=N}HZ^ioN2$ zMBdmXN(yF(6IiR&&kDaGfWg;Ch~BZM3T%d8TKHCc*X+h*+@^+m-BFW8yk$r(dXvI* z9rdF{D2Ft-=Id$AwZVd?uph<@WS(w?ViL1P@qzZ7yE3@tVTwXeYG%}+$dAb<@Xa;c zV&lgj;aw{^wfnf8kxNU(MT1szZ!S_6?h^kc?YJzj(hX`vYdXUJ7k=KMF<8x1zfYY+0oC~h*(#xn6^R8fu<*u)!ksOwtwc3kvr z>{&kK_f}Ob*2Vu5r2tz0=A|%VQke3NLMd+fo&=@Cnwfix(RE~bH=yuY>3nq{bErBX z0vDc4r`jKHDZ%vA`zcp3NndAvJFo`N%ldP@I~0q;w{73tX$XxaUDYx@uA5=3$dU-)GAo0vsVM~18Uo>=MmQ56ZQFG@~-nj8}U?7UZ^9Dzp) c(8}$UNyaw+NgBmqMwA}UoS5YP2LJ&7|EVq<=Kufz literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.sld_design_entry.sci b/cpld_maxv/db/RAM2E.sld_design_entry.sci new file mode 100644 index 0000000000000000000000000000000000000000..1d6d60ff385eac213bc3fcb4244fa82d1a8f7a3a GIT binary patch literal 216 zcmWe+U|?9w%?KomfzSy^hou%3XXfWA7#iyt=ouR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JR+5rs#fldg;5Cf%eK qN!xihAG0P~rUIMhC;o!3#ozdgdinVZO23tSE-B;r_{BW~VjKWu4?;r# literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.sld_design_entry_dsc.sci b/cpld_maxv/db/RAM2E.sld_design_entry_dsc.sci new file mode 100644 index 0000000000000000000000000000000000000000..1d6d60ff385eac213bc3fcb4244fa82d1a8f7a3a GIT binary patch literal 216 zcmWe+U|?9w%?KomfzSy^hou%3XXfWA7#iyt=ouR+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JR+5rs#fldg;5Cf%eK qN!xihAG0P~rUIMhC;o!3#ozdgdinVZO23tSE-B;r_{BW~VjKWu4?;r# literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.smart_action.txt b/cpld_maxv/db/RAM2E.smart_action.txt new file mode 100644 index 0000000..c8e8a13 --- /dev/null +++ b/cpld_maxv/db/RAM2E.smart_action.txt @@ -0,0 +1 @@ +DONE diff --git a/cpld_maxv/db/RAM2E.sta.qmsg b/cpld_maxv/db/RAM2E.sta.qmsg new file mode 100644 index 0000000..21770fe --- /dev/null +++ b/cpld_maxv/db/RAM2E.sta.qmsg @@ -0,0 +1,22 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1615428156850 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "TimeQuest Timing Analyzer Quartus II 64-Bit " "Running Quartus II 64-Bit TimeQuest Timing Analyzer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1615428156851 ""} { "Info" "IQEXE_START_BANNER_TIME" "Wed Mar 10 21:02:36 2021 " "Processing started: Wed Mar 10 21:02:36 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1615428156851 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1615428156851 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_sta RAM2E -c RAM2E " "Command: quartus_sta RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1615428156852 ""} +{ "Info" "0" "" "qsta_default_script.tcl version: #1" { } { } 0 0 "qsta_default_script.tcl version: #1" 0 0 "Quartus II" 0 0 1615428157066 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1615428157327 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1615428157381 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1615428157382 ""} +{ "Info" "IDAT_DAT_STARTED" "" "Started post-fitting delay annotation" { } { } 0 306004 "Started post-fitting delay annotation" 0 0 "Quartus II" 0 -1 1615428157449 ""} +{ "Info" "IDAT_DAT_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 306005 "Delay annotation completed successfully" 0 0 "Quartus II" 0 -1 1615428157898 ""} +{ "Info" "ISTA_SDC_FOUND" "constraints.sdc " "Reading SDC File: 'constraints.sdc'" { } { } 0 332104 "Reading SDC File: '%1!s!'" 0 0 "Quartus II" 0 -1 1615428157998 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "DRCLK " "Node: DRCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1615428158012 "|RAM2E|DRCLK"} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "ARCLK " "Node: ARCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1615428158012 "|RAM2E|ARCLK"} +{ "Info" "0" "" "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" { } { } 0 0 "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" 0 0 "Quartus II" 0 0 1615428158015 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 21.072 " "Worst-case setup slack is 21.072" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158063 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158063 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 21.072 0.000 C14M " " 21.072 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158063 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1615428158063 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 3.158 " "Worst-case hold slack is 3.158" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158076 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158076 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 3.158 0.000 C14M " " 3.158 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158076 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1615428158076 ""} +{ "Info" "ISTA_NO_PATHS_TO_REPORT" "Recovery " "No Recovery paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1615428158092 ""} +{ "Info" "ISTA_NO_PATHS_TO_REPORT" "Removal " "No Removal paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1615428158102 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 34.581 " "Worst-case minimum pulse width slack is 34.581" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158114 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158114 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 34.581 0.000 C14M " " 34.581 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1615428158114 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1615428158114 ""} +{ "Info" "ISTA_METASTABILITY_REPORT_DISABLED" "" "The selected device family is not supported by the report_metastability command." { } { } 0 332001 "The selected device family is not supported by the report_metastability command." 0 0 "Quartus II" 0 -1 1615428158213 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "setup " "Design is not fully constrained for setup requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1615428158250 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "hold " "Design is not fully constrained for hold requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1615428158251 ""} +{ "Info" "IQEXE_ERROR_COUNT" "TimeQuest Timing Analyzer 0 s 3 s Quartus II 64-Bit " "Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 3 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4514 " "Peak virtual memory: 4514 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1615428158380 ""} { "Info" "IQEXE_END_BANNER_TIME" "Wed Mar 10 21:02:38 2021 " "Processing ended: Wed Mar 10 21:02:38 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1615428158380 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:02 " "Elapsed time: 00:00:02" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1615428158380 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:02 " "Total CPU time (on all processors): 00:00:02" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1615428158380 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1615428158380 ""} diff --git a/cpld_maxv/db/RAM2E.sta.rdb b/cpld_maxv/db/RAM2E.sta.rdb new file mode 100644 index 0000000000000000000000000000000000000000..76dfef9afe82e6c2d15242b80e9019784fefc125 GIT binary patch literal 10721 zcmXw91yCJLkj8=pceen+Jp>O9!5tp%?)GqZcjw{m?he7--Q8US9Qp6AwyJyQo1U+` zx@T&(Y8w>{46Fhk{8Ku7K7yZG#mL^l%*L98nU#Twftf_m$;{G_goTxbgy|i^X) z;AdLT(d5I*7uP+^I9FeAm}0b9R|wr(8!t}O$7<`=XEX0*F7JSoL`!t%X(wkFwQXf9 zPG^?xJS?IRq3L{JzA;a}vunCY1`hs~z9q<#f<$?jaDGkX&c^1kF9KK#*NKdH0hN6!h`#&H@~X5zwK&w zv7Ozunsha=pTOh^;M_gvcXm3UoCWz$c(LO=xCQ&e_vqPl%_2RBuK#>mma`xZ2 zA~}Qc-`KbkEhC0@3=f|*GU0$_u(q^@9;|q;4);qNRO{RGdl4yfN4pd4+nr`wIwc75 z*R9&*?qzRo!v-T+I=%0EBN~1?(*jw)+SW@hwr$792-~h*oB&1|LB#?o75dN7r$;o-8@iL{98UqJ>m1e$A?!KA)AC@nVG7Sn8c z)e}1nU5;P#lGHaUc6a+^+MM2)5U#oeP1Q0*1+o3=*tz;3L$LltakW-pPX#S7al}qs z@~`Pi=@Z>`U%5abPD|J=U{+jk(ccQ#&YeU(sGn~aBdcli#RBDu{KH$Fl8gju1BvQI zi^aQcRpLBNn9iIlqk}r$vr(YZgZ1Ej-fWTadRcy*{+RwDt?Xzsr^?lYkE8+W6WA_i z34GNhtLmN?7D8+k6BDa=52YFZXh-;HdL_NnGl7NlhR1!H=uUbS^zerM*>LC0B>Xa( z1m>WOTKXz!*RXujgoNBDgmXM?Cw9t&`DFdr*7(NIJna_=gwBU)!-g1&cVpu)<;8`r z_SHK~X|3C|5Q-!{&b}vy5)Fj!DX3H+N+}R^Y{`Y0Dj@?TIb%c6$XV^(YHH>u1i!eTd_MYsCyrqIk!)#d+RAk0|zhh;&U6Gr(=bUwxeDRlOa6 zGmKGoEAs^$;$PIyC->agmEjXzIBJOL>5kIwVdqqb^PJwNmgCU#cHHsIiL29m>|!;f z1O?saEhx$(>WCRs5_Y#MOHLQf{S~P0w7a%5`n?^m_dzbV<8!Ns#LxW~o~mv0F7XhZY<;|L3mvA&ALsthPIqAQ zmk6f9xy0u^xkp@U>w~{VZT*4p(0KJo?#yLl=w!bOsZy4b78@{|ZvZII*9Yy78IqNj%01J3IjIOSWw z<3YEpot)R|d9ONoq!VVm+hlil{z4p+DO`-wDW*j?;6t|c4i&Ft>oLs^{a>k77Bic< zu!;V4!|0Hm0gZsZX*;Ec&}+}9x(R%=CQLj8XR|R4qT?uXMVo>(nA(*r*rKPJWB!A1km7|t*0BJc+K2ohq`ELX4mjZ6IQERIQefLi;t$;AGo`WNl=|KaK z7LKu0N2OHN;`B9Q7d|>*Q@bkeDx>GTjQ>|qjz@F51SCW@*HtE6*DNL%6pAr?vYIqTrpvbn!$lV zD`5CXFV@ZBOc_C~=aL#0$&F5VC}w@`Fy}H|yeA0E12e*Y1C-59nRVUc`oe#pLN8+a z*i?4rTr6G%dYOrf2Htwoqi5z)07rOTNR~V12pUMt0}}u(qq}Iw@hQLWk!A*nL*>$W z56tEjkd`{V%sfgR%CNuYxuaW7>8wdkc97c_XPvj)ZuaycbI=A%WRv$7b%Mex!twVd z1AD5KT}G#MKc1WYbNcXiF5oUS>6O_p5_G0N_yYKn2o5MQl$J;b8{SH7eBL(4D$s`C+np=Kcw0)d}#<6>>}X z8Tbx!&G{w*j{?FT5s9%7u!e16oRXB<0XSrp1Vwl(4T(+gxD4$Utq~qv$i4b{2oH$` z43j~q#F*hqWX1}A466P(PYTpXMcr+D{tH(5t%%RB_=h%s&jnE#1u2Pe7y0M0)d?!B4#sU+#o>PHEGLDpx*Xa7|=2z(R61XEf=doSe(iFEnX?N6O`0sBZaT@;F zjdq{Rr+xdOeG<`x)j%Ls3xPdni1gG)%dfqcnA1L&>cmwMYwQ*+kA*V`MUqEe97~O& z!IFA2tu8eojrAiJEu2!UFqU}q05=R7o*d$KuO*ODjI=>g-^Hwl*-x$Iuzqb^Ip2VVOQ7P_O0N|o^&YQn&31Ix zR558deF!>99$kzjl{DIouZpEd7J=B)7qpflhY-F|F#JY_VMqt%JW}qArYR;dzk#?X zB&grX@Kq6s)o{hZo{@SDwEA001bJ*Gea~CSd7UqxG}kk58XH#&PiOWUHwE5I_*qK= zsc`Dk@P{^bGg_fVh;>>5we#`3L4L^E0aT#@dnc(ngm@>F#VnJDd5A|0;a*#Tt<6$v z%`9XdVQZHVZnQu5M1^)ots;+e@WgUcM1K7c^#F(AFGmBD>Qy9dq5aDa^rl8Z4Jqbn z-9qw$0AWE12~n#HTmlJCcR0407TH)k6?-A9uU}@!O3CH{CZR79)D>1yGy`jkx;tKK zmPG|WKlRRB481?yX0_WYR-^L5HA$>Xz!TZzi#v zMh0^4w`iq;wFI1#eByMIvl|WV9lzX(regl}+O!!DW?AcwqX+-<%Uon(tMA`5NW;`w z(?1T6aoXj%=|Otgy!(wKqprB)a?2IeZ#X7x1XJwXzt2j$;OfbgQZ0+@%nEjT>1i_i zRE{r>Ob^{)mOE*Ge>un>>%cA1u}wCYxL$kKP!AlovG)@!o?C?ExRGfX<}Y+eo6b$F zt)$<#r)b(%hcQ!p^nZ1iu#ZLV>nx+HK*HZEOn-6N_tcFqE+UQ z|MHciz<(IqjW^!Pn~RXMq_>gpSOl_>f{j2_i4C+=#Kg%1nnV6>=mn}9tIAm@u^NhX z^>C`_FR5F$9+w(3Ru1HyzV%i?CYSWYq*`1s@InXldB^J<=MBM=vUjNdT!LSB^Ycjd ztmvD)#Nk-Qz&mNCmSGW*Fz0;6w=XOE{aSv*;jTi`M_$mNDuia_rZTT?JsXmpD=W?` zy?I{dvG^MU?oxa?KXw-PxSHDJ_7S}QaD14=-^fYRkBFUlLEc{Mr!#`>iw4n}V`><~ z?t0k_?_k$v4@f)z))!T*+Dx(2Y%@FvjI@mp+`uG>A!15FJ zHM?fGp<^xyf0cX%(bH!1=@rL~8JOCA-TKgI)QRU2MzP zvhT*E+Ar?Y)|;dBWj%^+0GPj%qLiN9c(LT5HL*binwIEa$csO9h&^@U+HMeBYQqX0 zI*%nfQ16E=h10fj#dFaIDXPYIWn5Z=f5BW32yxXINF9M%x0-wnevCxPK)Wc1L7SbM z%$Z(5tv&g2-3fFkFa%4Ju83mY4fbS#6cZ}inLF9Jc=miXh)W$<3k7(RyWLR4wwu$q z1k%)fpyx~p2rCK^i%rbi(FMggqbCde%%m5C{2Djyqkd%Drv6T1{ZbWc1JcHUx0-i^ z)+$pgGmBs~YH2A@je_-8r5!me4xdla=owLhI;m4dU6JCS&HxE@_e~2{EagR>cg2R6 za=&}X2QRhpa-o>=BU24{)9VE%;m}JQFX!CrV=#(9NTQLP2n9#N4*p(q%k(z1p`1JG z9QG(wWds!B+NK&Ol_qg837xm|zx@s=^a5Zk6%gW9?fJ>+W|aHl8#C;Sm!Unb9yc)0 zcbjR{%y-xP_F|J`vSQn7nk^Fuk0Os$W*h9C#?{M03c$(w@*s9lCgDK0pt%_Rh79rRt|OFvSP!UkG|9&`MbA3U@*+?o^wh>BP`n)^QR2 zy%SENrjb9K-)3#(eN3myd$PFrzEUnRseZU-5wKxDXjqiw9*HCSQGSDm{Hj8wEyQRz zY3_6DfEWEV?*tk+E=A~kYKQVhj;=1`!Gl8PLE$Nt{h_2ozaIVZBq~>m5f-Rm`%&!g ze>{?CFIT>)MYCCfgtCG3deXcu&Ba)aVcEstLf1|-#cD_pRjfAcze`UrA~{F_jl4}= z-6>u5y%aLWvV_gk@zU+I*uh0#a(X&pkMBB%(pGcCK6g5=QN9vO#~X1tP372-+5eA)*1{r(XJZ^wcmrwvS)N78qW`|R)#~N**O#cs+I|{@M{EDJE z;V(|zzyvLg!hFV(=~@APP)mUg`pr+I7ec#4YS$estM8_WPT)IMQKxuFUzZfKyIdIF z+g`Fe3+1nvd3M%J?_)7(sgf_KlP*ijq4xDtx5aI_{#JL~daSht!Mvrx%o{2aqLiAs zLDg>*2?5)zF6>{x#nrJ%!h|cSApm(~%&Nz~r97hn*MKa!J*#T^S5iV&T;RLk7zsuhev6)Gg=AtJ1IZ#0x$6O}3eR9N9@MZdU0iQ%@5`K@5B<#E@)bL}fCat-9|X3VqNz5XHp(sR8pW20go zSUam5C$N_kBG(6+{@B(zF(~kPL5e-$tokngE1Ah|DPPQ_ry;oU-YN@sxK5J>1K;S4 z{@S)51P)PCj3L3+czOm7pfIN`7e<9T;ax$4Cj_?B6(Z#stQ(>Y8S#WKU|0pXfKkfL zGT%xxo(T`J)gW;t*Hc0`ATM*0bAQX&tkyhc_jqPA=yJ`L9PG523GI49BCgG_SJZM_ zyo(qKuH$n;CiEa0Ni4-2? z;o@C(hb6gtA||2FHOK3tSqLak9tv@rk8S_SG$8DywI}nU$sH9 zIm)8#3KQbJ?=HL)LEIL*v-&HE8vXuMxU0Cpd|Zo4pI?QlHa9}23ONY6BklM=Dllah z^!5PDl7LrTEXS!-Fvirzjwo=()g|sOn(0ZzFRz1+lD?_+eI1wD{=ADdD|+v`aAUX; zsyB(UBoApVl`Va5@xEkyoX*YO%(jf^ zKhSIXeJ8(<4SZeQP6K}?gFJgok}dG1#a59x69KRyuJJ-&Ab&F9K|Z>N`?M`~cQ~Wk zKH@fSszI&2L0>c-LaT~u4#A|U#-Q#^@=vxPR2h6r;Wq-@22eI+}9|u1( z!1@hrB3xM)7UEG4Qf#{E{R!+B8<}S0d5n%c)CByO^SM4+bxKA28gAd$5HpZEfn1E2 zy9bTY>GvMbx$fz9k$-7SL#&+MYj)6JO7iLhdj{S~do4N34R?k`3>inB>%U|qH6QXkhc_z0_yZ22r=_kk0GDt%5BdK zj$B*c*C??SRi6u&3GYGZXUfdPHufBM$%WFgMzE@tOzvo+4eC_$t}|>uY?qg{D&%7S zL{Mckw4EtYfKQZ40D;($i(9U~p2hBQYMbB_S~(({Y$I#VjO?C|Cu3XP+J%H`&d?WC z2y0s5KCk$YO+2z3YAB7gA~xe_GT$Vy4kTh>NLHOMC(&fESfONkt4mQ2vW(zV9sOY} zH4|VTVG!4{(rGuTUon)O(Ug=J1bpsx-@2IAk^ zbh7?#aYN%nSfJYGC4H8}sgyW?GXabM8NsWDR_S*>yEDRNUX#3FzIcYyZIyj&ta%MJkLzVGl@ zf^#tOHPBcaGg4pS8(!NUM0BP;R?641fq`BCZTT25uR^|1SVP=jIi4!BMmPv-+ds9T z>|nH-^mXp+r*GFN!suD`)VaEvUaZ#uiD41`I9l`#UKw@gIj?BQab~#8C8J9t3oR$+ z090$wcD$DPWU1D?V9TCfqEXhigH#(!KU&T)aDJrxR#=p;^ZrE%4|lbH z$Di$a@hcJ9LgYIT|cOY1h-h|0c_ho66J-l%Hk%6G7HL(xX`B zs=E>mTrPgXUd5s2ZlYzSZ7?t;e_^7DcoqmHGyj%HoYf{<&_gqt)C!xlzGQ{^$-)M& z5@_^B>##35UNkdQ{S8U3x;Yj2(=uD;_|VMw@-)bC zlgBY{X8^xGsHYWN@c{NmA25-3y*MGI-p1cBgd$4oQB`CovZa1Bl6}ha=I``CFfr52 z9ouBl%#ofl@Z$uiynnp;T7EQ^IJsV=pf}7<2jKBq<~@c!nd8#AAFL{U>RZGcHVUDD z{&ODZng5E_tNE;OTcX60AR;h;=54yG4e8{D`|@5*f#27Cxu>5bVZPh_XRYSeb<|hp8PVZCh6NU9N%x#l*_8x`SVGMW*x##})C3UQ`+*-)tWZ-+!FGh$GrOtV;4 z+P3R064aVwSC6a-1c*#oLSXf1Khs~AD4oX*X8QeEwYBs}p-8G5@&OK`^{+}Z8Z~$U z7!wS|Sehg~=G-IbSE&Y*(_{-`^@i`|eUhBOXj>3!*4SWlhYbwLdJ7P0(#jFkg9^BU zxw10-5n|D#*#!(fKPYaoM%`$;f<0)Yy_Nfy&CA0q(Q3G|NLA)>yG~pT{D&cD^=v-N zs&y(z=WF(Av1n@`g&W8R-05UiFI^7o*h-EcMh@wdxuJ>8PCur#Dg~ zl|9Bw43DW8*+!myg`gpnQLRm|qzIh_F{9x5tHG+){-56FXW?#I-X2z;_e1OSl|g!t z)Y}Dy4+Zz>?SE0W9_EdmiUZNzfCl?vKLTh}1}6Xy9q+}7kqD}5CU-~+l+xbM#R)ac zNSu)flzM8L={X2*z*NL)pwuwRXtb4zq1r271VY`dJgvT*I(u4eWVo1xqcresK0(BO z0FBtF(zi%$8O6A@x)y`)0u z3Vp@$v8eclm;o;aT^auJ@n3SfvRk$1K2bfiB*L!Wo3+!C;sBMyy1FW=Bp$cAYmXq7 zgkg^3pt|J5pK3am$YMh%e*q@WL!%H094_!B9o(LV;J}Oc3@cGv{r$c20>rs6VYKHr z6sTW&B#zKlA~bk5x9NWe?%tkO-!PXaKE8Q)w$yo}Sgy>Pu#s){p%|e@uO3>Cd3D+X z>lOvKIyZ&c;eG2a%t&o7=hnl$u_2lo0eb42H8BhHI1?}Lf%O;u;pg1h*CRWE>W@v~ zY*6^Pbooy33uDfVjhChzGg*PK4n1j{b*Wt_EG>R@Y6=Jk4{I@(X$_~wf^|7JRu7s{ zg+%MCUZWJ^L_UIh`aS)1;q!6JxhAhkQ&wr+mbMSPLxJ7&E?dLfLth8Zbbl(VRWn(! zfHYYNi60`4+P;)YAU%$;-8vtY?rsLAJP(v#pIHJQXZ|!=_mqhctCurjueA~|2vx$u%#CTLOls;8F)oaqUlYN@{k0$WI50QfaK?QAdEV=i0!`{# z=%K6~YI^!ku}@j~x)Am10eTEiC40N!R$4YSL08Wesacy9b@+_fJGt0&V`bqD-09br zq`mdS#8?o6RX&3G@V>97f4G=mllrY1tqWmBDeHb(f3Not0(?_Nh`cYGB^F4MV z=_+4tW>fh1+I(qqCiBn-fNh`_zjOr+${@rcRb*z6Hq`t>8bATIB@{u(g1LJmJWyPd zCD9X8f}@Itla3uzPlb>gX2+IfSKpTFNVCuYSWpt*%XqwP#QC&-5gy>s5|PoG>t!;e z8Hj`$5cxP468g^ky{3X<<#$Wyn)qJ@o`W++~A_$rBq+`r%C{Wt6$-> z8E_H*MRL863jnD+@0^R&47^_6j5s97l(Km?xjusfdxV$me4i510$WEH3*w*R*pDi) z@OiEy^&(i?$OU2`?2k$!7WGT z!KVhU;f>~Olau%m1W4_?wqPeQ?%o-S!;3&)%*>&^-Vn$yyve|g zVwSn(oDr!tp8d;?hCzMOe>wC|P?vlkp#p_DwM(16T#=#jT zM>HKg6Uw0DmEpwm+?l1wlJaC2LKS|3;^}D@DgW!m6sVG3st|M?aiot{eeuwv&nh_{@%Y6T?vx zpg;qva(Ga`>-0AF^4~XX%CTJWrIbTeau}n8!XT-zjS@?+iR;@Vs-jP?w}yQg4HJ86 zs>JP|+bf4=X*fiwdK;<)ip)_V@VKoZn4JNAG1LQ;qj~LA7!xl%=JCALbN!MO?$X@N z`n$ACl5#%TQJ+?xGK~Ycsuv-`EJVp%C;_#_LkR*qGz7&=gaM7yxMYC~b6PBnXcK}( z+dRu^=qAo8doyMnpK!mKaam9XCAY=SnW#PksPOX_O2f_%|L4#JY2ZRp;()}N0m1Ya zIJjI#JhLB^4nRv8JKz!d1jb-2Vp3eBZIT53!mtWQ_=bFVYZ-RaHSsUu$hHHur&53$ zTkJWVjF7VP`3Z&cYRXB{b#eL0FI;=m7pu6zOKXa7y@MBP3c7dh5vR71#sz%D_#OD_ zB=V15byKuI`Q2G8I$y$^YrnN2Zw*ZZ$_#R=#m9Tx-nmgmP{o82Jdm=Wa%puGMNqeg z6}imf^f_{Ez~zmUyt24z#>y+7&^xxeQAX3nIjmeAh%0by3>$>c&0fin+SnIH%div5 z!~a>4PcNBQX)j8V5th!!J$9i?kGg6ljHQZKy_aDkWU({xDwFzUrAo5_SGYUm{L_^( z1!?|O=_WJ&m@1V#1!*`SD+n)@Lv|K@J$nb#alGeX`h-MCA^nxSxXcuoX_;Rqs`N~t zZgn7(0IF8A3+thLAmE^EyHInJIffcX_&&)gcc|7Yxy|#(in6)OZ05J^O0k1N#?MHH z+R)M) za#&7KdzPAmsT*E5}dykk_)#|C!;XBtRrC#f0Y;kZT zu&p7EO&gu+I+gRmQ_UTdo{a8~dP+fzX1l_kv`tcMM_3YSl0NyE!ta;X2+#Z46ieLY zGE-bV>b|da7;&8g4s*2`J*NMMIbax5lY2(0tDJ~vZW;U^7?1u5Vl$44m;XN-*grNr zMD`+n4bcZ0by2`bOb=b)-cD12@Q?T_=M*R6L>P|#D$N1X#J_SIDr4FrqjHI@z*p== zIcRw0R=@GlSq?6v9nMzusENuEz0gME2Z@}2fSbg{md39Knw2P*sLCi4#les;lPPoA zK321avaNk7j@B1XiKzSwt=j+vr(KC0I_^G8nAI}V)EcXhUu_bo8cT&7c1;m81Z~eT zzYpmNzC`8ijJDTXmKjy${$qbo=z+$K+NCFUFZj>D+e4fD;#`rKBIEU{=&}PlHUF-|L?QBn z7!2&=!v%cDK-U0P*HE|F?Wy-WDKs>+JPDG$T^O?6LnyMH(E2eeB#U4lBq6?1{G?dW z@Y!!bX5TdaFafkuDvr6uMP@3rKZp?ox&?wk7GwMpBH0pJo*+#vO--$A2BSS=Ij|8+ zuj=yw>}(deVww;Wo;Lzdtz9ioO;4>i5}7TSmlT+Cp>acPE*QB6oU|yE6gN?s>eeMf zWF6&el8mp+oE+psvy+6C3D}l)i zhQ={qBiEc-O&1f-Ryq)eDn2zdPK1HY`NNieIa h9Bv=&>=6A*whgwxN>d$gsiq7@IAlVdyR~Z_8v7cJZ5BQbo7|1?>&Fx zmhawUdtL4Kx_RH+d*=4NN8p>qH>AN~)~)-K|6jANf5ZQ@A3pz28@B#0QBHK3DwIUN zd3A96x&0Tbune%ZM~F3rw$?SK#df&PEGB5Zlv}6ns|LUN(-Lu|R zGJ#r?G>H0rK}4c6SH(D*J0T=uZlz|qe7<~nps7Csx72p0tp8!AWB%~^IMaKVpF5T{ zWgYiNHy*1!{s4WwOmJA=%gZFyJ>mRnZ`}^G%A~!Xp~mYppt9pi61vOBWW63)?9yLY zmDFkosC(&kzoOLire1TA=+28J%3^IYnPrHe!xDV_1?6e2a~@e3|H%3hsgz@b3;C^Tja4+1ek_;i2BsJeyIyrePiB-vy?{Z}ct2P&@F1<=( z%Tik{#!U<_8RRaO@iuqeBKJOQuRI^QAh^P=nWY7b{{;AV?6kEqyo8(iJ*A#LhCeV(@dF zU`_Wy6yVVz&vWf87lqCxc8q)bV)s3md@=Vg;)swgP?$?y2^y4=;)nv-?^c5_XVSm0{s@48W^bO#o7N!J7y7@OF$<^?C>%a0xS}cCUAao;mGc1VQt;3ji)X#tTQ#2mQ^ z+FLire6mb3M#t@1v#$X23?qm7(#4_#p_;t~tv`W1+!r09L5oP=#e7H{eD3@HCB1Me zZj7rg1L$?yzH@(`JJ$KP2M6;k%XjLCb`jHm^IzS|ZS#wsudOdn6uBjI-7&o>xy4wL z_Icf(F(a(6yptO*TcJV4N8y}C!Y(g5NRthx9ZtyB+~(bBy;GLem@X3;sjm3-zGJ*J zPGc;+*}!oiu^qzZ_PN7%@XKs~P~L+m3F|FZhkr?TG$6mJ4^YWuC4DaNnxzC>myafW zW>HYDC~`vs<@fzeYE{q}1~Nvm%<)LRp%kHGNZ{|mudDB3vd0JslCrlDw<(H*AdOS! zuitWg707Y%YKO@Q-gNs!@c-76ugOBhk*i5Dq^E-h3XC!-V8FliDMwMda`}$EQ6?#H zkp1QB`iJ7Cg?F%l85{CpGTFySIY;tO$R%p1t>uyF*3y{5(ag>R&WN9@zJ<;T0+nuT z6xHpaAmlDyMr>$9SfDn}Amqf?h2xes*eZ2c#0T82Dqho)njFRM9tu#@lF23~xrphOECO~Ad+MM8f?1gFE zRsq2)!m?g=1H7qxHFiiY{YkpQali_fUuD~txvlCK%~bHjv_eJ z7N4c-PvektdQnK!kA%uw!(sCq$QFx~y^@U&=B(q;2AW$m&qSQ*84Q+h&dka%h>yHZ zFxJ>rwH)M2J2GJ?Ckmfx@oB156s^OP6GY8XtSVo@ISx?@X6C1QKHrr3B#J!MGOEE@ zlCG4zk{IM`g7Z*X!xdMNN&<5ZDvI@{eXKfNEw5CPD#^BhWX+N$`;WHJa!uf z#ejClje04Ij`4M)gnURGF1rV|9;VxXi^XLyVi+1qqI>)WImuzs9~rDB=20|x9ZYX5 z?~SxqDW-?VInPhFVG{z%UCI?iYJ>Ayp2!A&E1EWrg>5M-R#21|P%;Ui^3MOY%qK9p zwBpV?igJSLe7tAtrx@uV79Yh#rY%t5rc@?D|lbY5EgW2hIwkR+}&6cqyS>q#}HIZ}`FUWoEFw1eVDi zH4Wrqb|l)TqM#~cL2V**Gm7HV80y$Nn0_|5bz{C+S-pl1>}Gh}TlxTa5k*s|I~-oH z;<`AfC1N&II&oIi_S6<$b7iwLGAOFkz8fMp2%7k4{uMdg6VC1^;avG9xb-_=E9o2~ zZ8&JrgMTLq@Ds}W>ALpCQdT$#2jE}Kd$iPn0T=9JH#x!TqwIk^RvsdAP;y!JP%#Tz zqwQfnjSXEmjIX=Mm{M$ib*H)ShG_Z?0%}h_dU*>f61vTe$VztaE`?UURuI2MVV|b? zNcof&kE9(=mmi|lZiZ_&c%Rp6aJWE_)T=bFvaBaN>fN-$%=zul^d$~*i)0X*L8}3?qVzKo*hXBZ!&YM11bb#Kk+lF^qR9qZu(vxw7bfT?>k4$`a1DRA zm~0IgT^D;eG^$^9ZsIL@OT+GNA5}cLVFq$i7}A6AMitI}Sk3V6hx-Jj(B+%X*b++FcN8YidRD5i7C!lVCNx;3cp*J>TRRk<4gmW&ox;L@&-+FyxQ_Pl3 zrqs&99?-2d(BEN06vapt{S21~qnH@U#)`59haW>qd_6pDz2p*OGFxIL5^4*`2Lw?z zh5=6YIX|{+8fvAhjlia~&=rq8uv>%0pBFfGJ&-xU(t)x5ecLJb_;(Q(x7=P@KtIMX zVo6F4{TN8tFK+7zl&{(y&Ue*ylm({%YAhvmz5>V(GRya z?-S*Dsn!d>2VG>}MHi0f|2WX0kq*C=HKNHi-FLOgIFp(!IjHJ$`CH{iajHT0=(M7I zQ0{ffr6Ap>rn2JeOL4I1e1{&E`?+E`fAaQ&ErP+Juv#TdBm*PzRA8quv^Xg;zzbC6 z7T*3g+F<;Xf*2^pVcKEmzsy93&}vMNS>66=N+sqWKwXj#P<68A96Su-#h-zlr_&FP z)hS?tqF0_Gb|GgY*FE5kC^d(}dk_ymUcIIx4x%eYul1t;ooGGhG6vI`UdmpKa5vLm zj-o5VjHk4Q4#Z|*pT{FNh{Lb-AedulnaK1X_)AE=z_ylCA%|CP^x$@LuTCWeh(~h{ zK-{-H4z=f`kH&4pC|T@8-rJj*7zMj0(aJ_LLc~MVa+d6Il;-EOh}sbA1PTAs2-%lr zJe?$uq8Bq6t*4=1d^gp3MJqmmWHOo<{>o@G(N`Jl28>-ac{9vxO3UiQTAlC-?77u7} zYi*%eRp2(ab^|d9ySeV(#0NgUG3y}zc-VM`GJp?^2YwuqB{;MyaG0wQ zJ<B_Ar2p|>K^}}|-FqUS= zIm4MfrX#_P?j+AUm1I}~_eB9a!LY|q-``Vx#mJH*_7c(G(GN~XieU8xr=g3U8)>|} z6*oBTecDa<$vT-E3#QM<5U^=j-~#Z}W%UP`8vz<(lnr|vkcOKqUdS#O%~Q6bxr39~ z8%P8On4DI(pa-c;9Ro>D4`mZNa`95S!{iUb7Ln9?r^6oj;n zdW&@HV<{-)o!ER?x9zrxkN2QK`TLL~@&b|YNU!S#v0@OBYa1OL@C8 z_vI;NEY?Ls)#rpNlfVUNHsoF&@UvHFwem`C&QM&T1x0Ah4sV9SiqnIA8_0GX|IsBS zv?U*Z3=au;;sFa_jM2m;<~D4c5a;=pK5|AF)FZ_BJ_ZV_;9~)sfTIoS4S1cfTl{Y_ z0aCc#$boWIFk^g^fgDez4BM5xNZV#K`Dd%i1Bxxu_GazhM2e*id$3$bRCJmsTZ6(P zc{g)%wsBRwh{AUeh;W++vT7v!V)pGN;ZOHspxn@-_FGYl46)^Fd4bAqqP!N)XsSsR z#-~QXu0sQf$P-4K2itNEGRLW`(4)rt;(UWBR^(oT&?-;CQ_6&jaSCxCplW6_vZ*hI32((0Lg5SbX zm|`&{`!*8iQ0RrYKzsd;7~zq9*We$z&NRK$Y&7*J`wl8z8M9q5=)@lLe35^@Cp1uy zI~|}Pz~@NT(k@|$*Ls>*_lp2Y)+R)_)0*pIna=}RKvN-HuyjNK47|lQ_eC5L_}+ww z2r-B>#!5pu?m!!{_O3WwTJ)lxc_Dov=Wgc~sT6o8-)Y)V9z_W~3)q~*$_pHn1cRfh z8|H;YilXRxTp(}x2~M>tH_pQ`&KI5hiVT`cmzo^0xjSN;jBERFS+I@5@U(DGq!cfj3?Xr zO^k$}#D=xYinq&&JEj$#rfus756<@0me=Z_&%O`H;ixGDs8!JoZZVE1NkE5n%Ngbp zY&|V|%oG4k+s>~w z)VuDuGIB7Gu1IAhNb6)l0;ukHUojw!>e~FnVKFkmE;y_K7DL;b?X-KK!)I&N zuxUXm(>K?WwpqX)mKZ_ASE3A&B7OerC|KsoXs&vKEK_iSz4sa{G}eDRcOd^a#s8<` zt){(QMEwUMb&;u};GQ$qTA&|8DjTQ2ryrh%RH8EJ&m@a)S6WB&rVBO_XTPDyaRGa( za=X-l^>D4g(p8CPo78gkc+CK$lt(e}#%@^^ripI>4NRCia%?6XEM4VV9zSZB55il+!$G3M2sb=iH2q9ve12jkt^R@mgYI3QZ!@t@rcG?Vm#N7mRVzx zo52t^(j7VC(SU>e^_&tp%w7>sCSU_3jZrjuK$_lJUa;nFBxd1jFG&rx zI3X?e(G;^o1ymiw4Ptfloo^DgSkfs53Ngsv&QX zlPL+O2J(8Xr-RX@3;l{+{UwULAuvM$)e8l=J<5%h+z6w|V0U2dcRpV_XJ)3#ydZNc zX!cK!`801Nq1k+0B)-0H=eYE!hV%+e zg=NJ8c44e~@v_E-fHY3HGzrT{@UjAJRT?)lV5vz$H2O%PaWXg=x_$%wDLa{wI$Ep6 z-w{TY!EFvmVSt9HjJBw|5RKgwkijTpC@6_;g^6Ww(u8ydax_>;WE?gp1MDF=MPudY z77eQPzS{hgVF@w_8A2{2ezZ>sEr+JctQA4gz&e5wa@le?tFIPXV^aO2MZGo7w`W8w2Fj`{aUOfTuKkiBiW|Ah^X`O59>h|1r$w~YmUH-+rYB7GSml)eigXQ*n{ zUx!hV_Z|y7M1P!`HJvSh0CK3%FsRrXj+5b@_gDc!%C6^w0QNWdHo@Xq zd6B^k4Bw5j1eWX=HgN_y#L}b2an*|87%vxoMNoD5HaV2PtY4?1FC7TI@ zJYf~nVn*n0_nu%b{XG@o(PZ0_ZN@g-h9Ak)*v^G^pIQhvUv2#gbCLfpZ{32Tk2v$UJd1p`x`Tf!ia8h$ z$Zim^8-V0k;2z)V6$b_e^yttSdOCwy&z7@-CUGzv-kQF02C}`(Ta@3W1a5*xxfj4-7coQCN zI<$O%sQ!A%2X^ueQG1$)dEFPGBS1HC%& zK*{~TP)S2v!yxGB)SE`*w77(N#d93DQCS_nFDFI`eZ0;)Iw`8sj??-Fj*p$o3+?l> zOgu%mn&!c?7Ic2%c5%Ijg6>%fKnTRJD+2@C@@Zl~!^)PS6^bQiSXmG{+NHE+z>L); zv%wW>esPpgn9XhqJ;z6{qnkJQ)Pp5XCPzbAbb!BA4ysOyjK)e4vKY9=N(W9j$6r|_ z9|mFq>j-L9Y$gb6$cgud@njHN2(K9qj4W+_D97n$x1=C6+Yjigt*Q=EDz5z^6X|6- zVvij1&`6AskS2}Lda^`-^y^_*UKPBh$&m9xjs!-?sqgMFs3YAgUfE0L-P6`b4gU?Adq6%FgCPN%#;J>7`PTm?`75E74ORgdLpWFc|4Z19)0B`eVgP)GoVkq}JfwuH~^26Q;&sqQGEeH)*Oi3&a?{4ki{YsAYayxy1hvMgKeNFAdqw zpS)r?8P^aeJ1_jta#!czjl|u2w?YE_%wS)0xS`+O9x{8ZH=xTOR|UTxNBQ@yn+I~v z8!9b!mJ^pu;}XVguvVV**1f{?h5q%>Lm*zDU5}usaQ(h~Zw9s>V?{hzoS7V>g^uOg z@jF8Y^&v1}4#{IV3{3fR@r%w-5 zM%H2)+CcJj%0(n7UbeP@b*!$`GmHPkg>}cQIC11h1)4ij$bV_7O#u$mhEensMtVbl zJx8BmdXRrPFp}WNn`%809w}P{W_>Us!%c@vYa%#u)JFxFVT8z`s&aj$cx4j}hsqDU z*TWil))M=xXgZ<=${FFvOH*3i8`%Z*{zI4;17_3mn*=f`eN(%i&4`G78vCFTco4QC z!f)LoiSL!G7}PjGJ-U~Qo+a<9VR&&~Y`xO=sBW4+~uV*1ii z=(b`u)t+4`bmb^3p^w%@M#H3G1`Rxqi>(Lw+rnyPXrY-&j+`5u3OVQ=%+=_m$CY5k zvveq|puSqBV}){+zg|wV5e>uwS)52^w2~(o$dhn+BnA3`cepL|BMtcatd_diTaPUz ze&5e_`rEc3^(*eBz6ILm45^%ZdxYBtxA2{#gl21S7)M; z=rQMyy_;+u+!IFpVf&_ud` zuxc~aM&E=x`O0PFn7$W018tBwmiXul(PNI(%*Nc&>-kkO* zmgckaP;*c6(tFaPcv-&gW;Efkn;nNf3PJ}EPN^JeH{7DZ_$AXZIz5K4g}GquMNWIl z3N=;%EQ`GaPPs6tmAPw*#dPVEk)_QX6*>5Ji9@tow4n><3nwp1xRS{AIM*RXTXJLp zdK`!nG^?KMz;PONP(ma5rl5+!6-Z`*#zmlOVK+PLg9+PtzYmt`^<;cmAAZT>7XOY|He$o@LlCF zN}}iW;#I+I{tUkfe5xcCqh|(WUL$v0}mzSFi=rqEbxRg zA{XhxFN!iP#oWPw`D;Dwkr=Hjnu-P1f~&->krz>TRpO0?|6df24IVQz1UyD;uVPcO zM$@(VMVwqY+?u7#Q!I(2svC* zhXGA1cAPfOuo4=Cy`o*7n4aU@@HAW6Kz+z1uIqsZ|auN{bil#)-95`zRB2lXg ziNn{v9O(_6UlZEo_OtW3!oqVI4^pfzEt0FoHpy8Db@84}CIESX}S zBVdglug^OsR-7pKk34|>utpj!rb*LK`G6eh2G|*6zG@%kYfS~V(Dw%3a|Gm9U;IaI zM!-Ol9F2ZbU!FUIjY(JZ+)V|XF~l{}t+8VR$P};_VG>y6Be={lTH~T`!a)|C7MG?C zzKQ#p?jr?GW4M8`ccgx@e~4#s%!ITuF}_-GE@YP zfFvRcggd}_XmP-9P#6R|N%|UT`WV==MxMrmGpW$dVAX9GIIQHH4l z${6f_D>#LDu*OC3C~j>xS;;u%H7=Gp{cF<-CSd<@AHYc`)@JGO{1ovgli^s?^Bc7gr7RO zn@@JwU!zqK;yqB|kRYembrNz{kwKq-cr)S?JgqtCKJgWNNbmz2>UJ&C}E$iX}OEV6Ai%4=Sq}!L=hAw`sYd?(m zfk365E4Yp7`)ou^&%5mz{Kb(@<$4ZWvigxSmjV|XB>87_(rGj78BtD>zbfG6yZR?& zVdaseyH#KgctNeWtDbXTS|->fvjKIV9kH^peo##LDeu>XUT;{MW&A|PT-M0r6d>_+ zJFn9Qt)oq#8E?*0dlgZqPPI z_0h<<+V#}ii!H3u!i9WxLP{44cFTRd==0t-?yRYXZ2oD%)Lm}QNr!yEg_l)PUdIhp ze$|PfD_$bcu<;rbRo{LG5H8$7mHN(AO6O1>ac3*Vneb5P?$p^z(~KWe<3A(+;SH{j zK3G5#`1^f?$#h}M=*RE$surniX&bu$`$9i!q%l{;u4L*OTlbeQ4<>ipVp~s&Lv~Tm zGe49RVbr@%n?RCUJ_?G8_O{KIW7K!fB-wz2KcD{gKsNK=PFphe^o5XZsleRza<|kJ z;6dHDmdkgbH}#ZVji46OD(NW;S0?%>lw&!wRcJpn)IM{jZD%2^TfXqk3i#=SIOP4_ zHgq99_v6r#^Wl#I{~Z=Z1rN2BenQV&xI#7#d_DdGk(x51V@zBd*3;4ZrhQAf*X7?@ zw!nn#*FsE0?2IQq{kLGwxxF*auL0#MUfzu24Q4vpPu&uSz$SAY(q~PZZ?RBfdh-XP zdue{d_#2BBhTz+C?pI)3@0y{RNZ62F=IXyk{wRjPtG=&V#lVF#{f?DpxN-L@WZtd) zSxK(rSH&SE|1H1v$S+pFaGs#6B@5H~PaFF9$ff-8PfR_xOf68G$7}fsj=7M-b~V`# zDF_8YmhO`1-|RO&`;+0f&YY>VASNO#Du(NOsWXZ`?%r;(!JP)Z%>tGBy1bw4DnpfhFW1lIg6Tbo@yc4>BAbh+59S$HfH z&fGLtK+Nn8L21Y$Zm*uq7iPnmQaL(Y)4w(5;tPih3T2i1>wuWU1%J2Nr1TYFBBEwQ zc36!!Q%WiGw~dH(rZ=kPsMQk*9z@pzkU4$5+PHIV+yS>sA-DTta1)RkeqBznSM=qd@Vd4^a!f z%<0^_CU`%oRB*HB_zG00V=ld|k@j`86K_VGw|wPe@v;<_(aE%4RA3N}&W(n-z7FtN z-Igzza00e>)NBmT{ai-vI7QoQYupu#Dx#&H`629^oD2h+tFu2#g^w>@ao5r=4JWo_ zwZl~oX2ONT_U&8m2%3Vtu!XIQs*c`mS(1>~SfA>h)cg2!@-p>_V_sVpTtY7Kj5(LK z8-|7wuI3-| zNNfW(cAYs~fC~k4k@eRFBZqyh>YCR4YD_nPVYHVm%zS$hx=MB8ove{jC-S|%C;-T))pZQ~TJ0V38 zJ5p0tU;T?e6xu~p>#6EK^1>DCvE-qO2d}7-k^Grpg?uxfscG6vkL=}8vjlRIwhBJ6 z;n$-(7mbLC4Lc?=mL=Lf{QVhYgWsVCnlg9D7#KO)+@CY!+Wr#p-6+1lHuJ|6uSWY)wm|)@eSRg#a`bN6 zs;&wio%hq+rHyO-!}Zl=tm(SlK(=@DXL1~i98qz^F=&9UdV)Aoa3x#d@!r1Wh_g`m zz6EBJ`U1Hh`s=Rep-c>9QE%``8}fggBW~NbRrcA&?{gx4E(^P`U_*bo;fVgd5l^*W zwaFOI9=7I;M`5zh$aAiKG$!2+aco)~dg3zM(1slPkyhez@8$%75;i8ZAhslR=jB}w zupkz*gAK~b(uIOoAsc3v(j|8aQiA+#y;cV3K_?_f-khWn^B15u|4fYewME}MPUBzL zJvX+47Iam#7f)BrUmDlTr)5i=UI$|iH$D1FWm8JKle%sYEW}|M-H7q);71RCH&Is$ zo=EL|;(k{Ac8Qi@2PnVkU3Fmf*NoV1$@0uuWglvsD8k%LV4P9K*IhO-`VtzD0s5V+ zw8G+Z6DLNvE7?gKchk_3a_1Ip>9&K`>NCL)cEX^)0uI@sEPiESC6$Ih zr^}K=yh;Qj5H$xZ(gLD$rbVGo?};j-tY^4_zaJI|^y3Gz0tm%PDoK*3g%>j>E5==3 z%|yJ-^@WxAQpkao4?0WQ!n50JrU=yuOk1z)F_YX{3nKKxJ*$rC8+cl{?RfPL>Ws4? zB*8~ZJfHSD?Kmy0`$(+!WUy0l&@b~%PK1TRpkJ_AS#i+=b)9Q;?i&y2)Srpjxy1V8 zg2M%vyNXqV&7UKV>QPswZ$Z-BjUZj=8-XQv&JdJ2GAg?K0EaYu$rWT5^jiL6A&dFV z$#B{>`^qyYODK-TUE=icdsn`*9|;DIrYSsWiy!kGP|7zF7v0brmv6(K?MF@%*6k+9 z4JMWvuQN3R2-hugVe4u;XUcOEnf9jU#HvJQwUmTfngW%d-hBz{;MP{v@_Zi8YidGz z#q>vRp_JzqsU!U!YSIoI?YeU`A+=z=Ta8(I{WtP-=(-1w1Wwm$FjYz+)l{q^m8mNp z9>~gp;}puV!LeSm+>Yx5}{) zi3L6v=c|j)xVHAuPkAYxfeQTMo#xqG=o#n^AP?&t7-U~tAyNAa4kWh_krv zuc83lJJ+mUnDimo@0mXBwBYFEuGUrg4m~RU@RiMFof~gIvVKdxB?A31xwMdVL!2=D z;fFeH)vk5$)^)=a(_%_@4Q7{&S>uf9O?R52#&tt;q9_hG%8#E}-@ zF7pGbJd#)W)WZT4!`$FblixGEaKxY+w&M?Q_FZ?$ZeXq_wTmX)-Z4N&oFVMEQ!V+) zn{7xYosgO{1bsVYusvyWJ^%IXuWe%D*tv-W@UTR`P~YVq?Kdo7O|%j<*}b5JaMs3Vftcc}GD&4w@|4B=cFadbpPdy40nueRozq zqAga>i_*tWefU~Dn;zmXUV67CSBThY;%T=n?+f-#BlICyOz@HsSBmq}j_rZ(LWXK=H;b&irdpHby5yfY*HK2kkC7T!5W=@3y%N4fHKw4+QF_nQ z>VEjRz5Z-cdt@@cEpCj=bt(T}Udz7!H>lK~{Qp?J-$)7-=pN-!PX1|erf!(G_+`JkK4Qjq_X& z+;gAN{Y@#?_uDhRyy~V(`=v&HEB*5Q-vqwj^w^&6(l3W8SP;kz zhDE<0qJJLwF*E5SUj9IhFUyDzx`n5S<#~hWW$2cX9+sWX!V%%2?<^=s`_slkD@HtflwVGdj}8+Ymu-i%%>ym|$8sp*uQ zyTNDrqnxr`itEQslUFN+7ra#Qxg`a3uCNkUW#(IdsX`Ad%)ei{qW_}oz{26v1ab#4 zW{HL=(L#xju#>WZ=hHmDQ&@V0EgljJrwGN4a?^bQOV}9Xo-H>|$~Wk4{p=Ld4*+Xd3g9_ zq~qz4(l>~0+#_Du$QuK%UCz$~8_#)VKvQ#04@&}GXUkI~w?&#nbd|FVz#!cJ_d1in za!m7jJOVhqB3`#X#EQv%kIr^$n9naf^B(eu{#}x5p5i&{qHTxlXzBC$Qh9me!>y$D zv)gO093@VLz~ifz4NE?F)_$xU@02fweCLIG3O*blS_hz@zXrvfw{qZv_BbDhjND*> z1InaVzDA5|LciPVD7RPWERt9XSIkeNDH1^dL}tA z!>)Mhml!H1(K9YC;p~zZWU+I7tyq#ou|^n`g(NJ~Pt3w1FFjaUSC>>ZEN#|T&hoDd zCg&gcdqI_%`&Ic6mF~r!uc!txQ;i)&-E1ngM$H2X9QU}TKscw> zjo=kHe*V51ACLgAbNh(cYgc3Oi?&6;Iv{R5vDlfGOgh_BaFwS!Gs4(EWxa6TsCdCM zXXc8P6-^wkh_oLI;$1mY5aCgKVWgu^sNv|H`T;{l%BIZ(H0Zk%QS)z&#F6}wZba+# zG%wlOp4CC|uY&hxlWxXgGUZcz-kFznWOz?Or@(#XAaH$kr`4;MzP0JzH8P-#=@a81 zMxaT8e+wRU(k1`t(?4bHo1^3(>h%&twPN7U{S0QpOWK`VZarS23GMV)@~jCF@9?qs zmGBGM!bbZK*yD?CwO3q2?tcXK6cLeM{@L*~WnQQI#*OohcujAO{W!y)n49`#B<~ZI zb?74m^L>*7zBz4#a=oUzZga>>Uv>y6U)4T+FhyIG;5Gv9x)GBDaC=(|?1D=)CWA`1 z@d$Q8s}&Ye5%rtPe$r*s=ediYDIXtYP~)+CM3?iu^IG_(*CkstK`@7S=a@!Z9MfTY zZ@X@F<@{`)vA0Gg;%PaOw|ttgqPF!(!b8;DhYFzLA&OXbT}U9ftyqJJ@OFHzYGvY> zC>iCCT>(!{KA0pXq77tkrusjpgsJK*4l#Fx|7DK#?z)i4m%*o3w!c~qLIv$a3eF{u zKwaikW`ezPjK^R_giGo6ywyn09ps91Xq-vwDGMq~GiUzXb6qu>HFnseUuW^>s`oB$ zWllJy`LoaF8a#blMM3 zXN8(G+0qZ$9uhYxei&s zB1oq=GiP&xy@(#lE(h926rN6fm@~`ytah#Fz9*zTWGg)PKo>TI<5{7nEX>}pw7M?8 zG=d+XuIh3tqrLn2Y#&Om>^Ag`i@ZcWn;e$9w|GX>jNd43v?H*c5A{9c*2Ec*4*gCL6*ulju{WM9>FXiqdR9pFZQOaxDzqeZeZa4Hiy0O@v zl8OiF83Uej052O(>-#-L&w@Lw{!cEhW**5qR6z?1CzI+Vji7&{H>Fe75rYy!3Nr z{SIot*RJdlwjteuNJp3?aeq_jr%^kR3x~8>IK(Mfz_U2!Zwjm=g;~S4+5;(XL((Z8 zwPC&ao)O!zGh=cE%=rfYaqh3#oG*l*n0ao^%I_C%O%rDOFlI08U%xGyLvtSt+e~*f zK#@?C+clbs{*B;l%u$pzt0sQkltrX0w}#degZaYbqFhd`?0z+6CLZLdW^mn4>)JgG zf0u==j)_QEU7~9H)#uT9UPd=n`y>RQ+?CNnjqo>P?TE8|7N${yanI}yl8)61f5pid6n`U)N-8Dno0-$;hj z&0TkE&O~e!HzZ4z!N^dMEP4MHX7p=CPVg=n`~b(Tq}+Gw9J}M86X=dvRVYoWl$8}d z0aK^^7P>r?dt^E+urA(q&@I+A(h;tCgkdWWyKgVshQ5ChW+zJuuCgU>5`` zZ*N=YTU@XUaMjAn4Mu(k%#`I-s+ZN(3E`@Zs>@aDP>BU~rd$$V z$lWy{%#rwxS*4&>Kov7yc{fcz9r1d}{juZ_x3+0M7>aThNeM!)GtDC1#{A+)C;n>U zv9V!K-$LYAquhY{#IyA6A?Z|BSR=XfpIv2W82t%cG|+RQU4JH06h<8OmHiu+&itJBq4b64&tnZoOK!6>Wk}8%H(By`**`&iG@xMQEX#H1N?#15*5OA+`@WzPu5S1;6DjarUWc1dnQ#va&~z%?}n- z$7X%IIYI;W>gG?Q_pV?hShGSPeZ}7&taH8E_MIq<~)3fp8@fi*RdSCSu^R@0;zi1Lb<#k~2Y=1gF(o58%{ zpK`{Ya9p82dI{~CA^5nPguJ{0Z|ind9D8@$leX_tjr>!O3K4uBO#NVPWi0%{SV}ef?@H+A8DxLWkz=M`x#lK-Y zwc-*jiz^_T3_WLp5V9>g<}WntzLm^;$; zgf@*JQAGL&-^8*TwH9KV>0tjs#bpu|Aziym9OPJQ7HRmJ*WGXIxEU-sel6Jg4?{p7 z88=F(AVsxqVFH^49ow9q%uR?C&k*JYWlX3uysb$U>>Ym+ov{Z|*0uLHFY#viZ~afm z6Pa-zXchM#V=9(t!NXe9txXl7lA2=Ih?SVgF>b99rguc{YmGB3t-W_7@;c6fI1+R* z0`}CO$!*<6k)CEXp|f4y!j#1o)ziRVit{wDc*JTJ*uO}tML`JXN;%qBBz%QUxzveN@_nIW5>b&MlfN|mqUE=#u@6C zSfcc2wj#@7!4{v6RTSF}{Fr%iyy83d1(&%&{4|*q(Bqo}o_lI*YCz78j#eiQT0p)LsjZdYu z>%BEJl9J=&tKqEo#pN6_V!lvy!iwgja?jq9INNKCLwrJ>FqL*B_}J?e>?*H}4ZD;d zRCF5^IYM2^Z+JyuiuCJuU@hCRp%QY#rTnF$mCUw^i~X2n>?u9HBsfl5&jL$~$X~g* zb30(z4OsoAMd${Vcr@f5Pl!ZWfXk*@RgYJgL;=i_hfYE zTc$gb6)xr%++`mIb!BlgIzwuJ#YV+*&DgYpQQW@Y!We~Q_>XMD+qj#g)>mH;{6H1= zy#7pem6HPKMX+?c#z%nnvy_cR ziyPkW5&|#~EYC1XXkzvI8gNu(PyZPbAN*>Qh^YV0NG8|18-k-r0{OH%rHX1-;0?RD zoxd_qc3R2*42TW96upT`w-=d%ZkB}TTwVm{tqSg!e;brsOL33QLFr+r#f6D>xAkaI zPopwiFkp;$E1*6#XC2QQBC$#9(RPl&nU!;jq>d2DYGzSsJ9UtZ`c5mUqdkQxyYL%p z8KAmjhTP>!NuIaP7d(|y6|>C=hOt!s_Lffc@yYz(Bm?v37mBFwUiXp$f_~V)v1*T05kw-zq zdj>ceiN~n<)lsMmPDXSk6{@bcxccNj9YnrS25R54_{kD`x6Bxpq0oMSS|NMF)yqj@al%YqxZ*SuPd2FcI_&QOV^W{D*NA zD9yDgQXZfAbFEzonO2gk*aRk5wtaPN78cC!2s7_26Zfy)e^~=i zMwGT8(!XjRB{{lxvR<3&qojHiH(L_8y26s`8YOCbV)ybW0w+GRMh;=GWEpJqrhg@n$%ytx*tz zQkYbw)oG^#v8TiSU2xa>jyjcQ+I=3s;z{KJ_nG>j1qu9DV^!IU3>Bl8M3OFKc6Yoxcv2An-GgPi$!I*%mimvK;3 ztXfbO?XD6k&x4>EAbqFnWUCO1YfGk-hP|^zApN;R!2KXUYBW>Pw)2rdUeqw{_S7U~ zbGTD_V6Dk}P4)27u`J*iv}t4fO-D=4wLdN2h6zsw25*(c30VDrJxy)5s(w$*dD{1F z+d?F-;27&q1tMsaNe=!wwDBtB`;{NxjTDG+fD;2N`^Fy}jL-(>Li_MEmrL|z0LkO;C6$!FW4mRtNZx^TB->=&k6HYM_yIWa5z(>g< zhSyy1enyM-$eQ269favQx(YQs_BS3w2TFT3jUz6PqXYS?8plD`$Nd*ck`#x?6J`2w z|4j|Tq)9g^N7J=M&q%6fBPb*Hp-SJeO=pqYW5xoBjk68lq{icc#yfI&~6}t)4!SjvMfOhk#EYE7&sNL_(WK*~5iyk5$w^t@UuiHHdQly54 zwX6oW{6@ELwxYRDc_9ZiK$M#ON6x3#4aO~dGZRV)^>$38W(^wD+*@zmfD@awaBxpm zrEm|q6MZinYnMP%vBij~A>G8-@?mqNIaY$dQ3E3xm19p;A2BKlO&uSg@yt$qeutm8 z+Z|DO|CA+p`?N_7%uJ)?V93sm*R>aOG4BUP+=lolpL4!=OljkJ2{w-*)(h;>Xl2g? z0KNzN5-~pkrDPof903am-lK$L;+m?6TwAcTlQ-`H?ecgg%Uy~qZ^JGab-}TZsFswXq`UQ7;z37IzzhYERrud0A1~?;EogL&blr9}^1>+BGI1>Le=trl z+Wu;!*Bb3#`d0Fx>*|351$L)R-l69)LW%&^#PBb!0{*tZtE8E~BHdUYL*(Il!^bgc zLkZ}W;JrgbWQYdx*NcwJN~k|tcdw2sz5wg^D&c49hqgj-qbE2XXf7rxlEIG(X2uMI zvA+}*D8rJRt9m~#Kc@HrK@#hO!-mNBeqil#%y>L^j55H9SZN*!*gDacp8#Ijy?Rcc zZ+G`Q{h}ETo~e&v-wI}U|8A)vB4F+D?qgNAXFltX^NCMb%91WD{K-L|r;;}xC2v6y zc_Zz#LQ#XFYy+{8cjqz-rr z;OSsITJ-%Gf1tW<0V2Ge?&&JudHj`IaM*r{h&|`0{QG)9`#5*JeNTtCqe?E->@#^w za=O|OOjio!xY0hb26!j%|2Z+pUJmOm?SR{tQo7TZ;CiA=)Rp6^!jmc;vT zN`RDhY?lE?rQ1t5M-KFcJ|*DN<~6|3U2oxVc+s2uJ2cf74S$Ura*Qf6K*I(L=W zh8}x=dKtiku)u)cM3LT-H6=-NC4j~U-QXr~S^n1sDS>EZg3QHzx5s--2K^iEbyFcK zO60_2FNho3StUQg#O?V;0YZGzYb49@OnHg;I%}BE%dt!WHCs~eXp%E)FWj)yvgk)# zNLGO5x-|_2cNqFm6|ohYzj_gROTR;2QAS1Jpnt2|r~XOA#OF_4zoo4Q4z2c*i-sQ+wN zZBY)b+V9K!)poIcTnKG)6c2zhzt~%%-_K`VHGG!D zmGyH)3za<*O*hb^MWrji&{M_wI+M{ z_9|BLc$>hWSLb?9ou6934fa-C)EfU!!1Rm0u;SabKrk zuA`vZL&xj|G?5~SMWR1o0AlV?gv${0rxBd_cZ0z@%*VJ6KOL52w3Z4TrIawB1Yo-@ zT9_*oZ(t~-yhOAjnFNG28Eq7Slc-i@xMM3DVPLc|_Mwg}STlnAi{{H@hFqE~K~@#^ zl$Lg|6KQ`MqCw_9H?V% zld}T{7T1A7{NM?KeF1;*u=)UZ!Pq^O%0M7byl|~iE?OeEi*})^28hzBh{GsuGM913*w=}L zojfKf7=C98#u{DSlh6XPM&bN($(Zw-e5){@7}zCGtuowUiJ%z+0PZzGZquBm4GobL zyFKq~+5d>M_)4?pi<)wHY?}Z%@rm{nEtt;Bw?87#he}SUfBXs`2>dk_BLw;fKbY|j zr>d0URQ?Qwq2c4$aIvf8z+AMP{thy#F!Zc#7Y2M2ENQYG!cQ?CXy3Bl13$B7Dk)a zuMraq-}_Zp>;xHT;b%`a&Q3X8b@_5JmJ&wr_Z$EkIO^~3JbmT=3nZE80z*vdG2qzb z+H@@gCm+kFvL!5>1z3T_nXl*!=zg)fv3Kv^Sx+sqSlOmYz!$b$+DE^4{KT@cA4NI# zsvv10)L-HP$3#f)#~LTht-zhNBlh4~DCU$+LV zg^UP$^uR9IwiD6l;YaEYxw+{38SD4Pxu)=IZcL!~nV)A`KB~i-1b=;nrx~9_p@0@0 zi-;qVZ&W2A#sd6E=!+AmGBbw@b||k{v(@Gv2e-!*BS}=5--FF_fWl$us_qDABdR_X zRrH&xWe5Z1ff3O8qQ~4AG^YCKnxQ&!X|Ckx8W-@!?drq$|L`NlH(5^04ZPf(Ee)H_ zM+?4r@n&`DnlPyqR-za!x-HR?Hp}uGozqAfHS6aWyN6U5)ZokLK-(<4( zuCz$7{Z?{i4sEZtARU!N^B<*d>!u! z81TU$_~(mDQ@!B1WtP%BlXk-*5b0h+VDV0JkFP#kA?8ol0Ue!=tp6RF-O_@P7L9N` zllgudh^BF!)7Ek^hQ6elWGW+ZP%0UKz z1vbZ@;Y;y`0o0=rTASr`xSYyAA{lbkPDDAH`k)NAqjyiQswe-5w60?1g*^BEJ(Pv) zJQDcJ`O^U{QgIUJJpG07WtpGtFUT}Q9b7y+q5XPjx<#jG(V9kFk|4^+)iO%VL=b7iy%XXVGpI!$`&DgSBZgzEo!Gy%$7T0^%r# zs`UIS`CqMFE?T%MqQ1jnM~PBb>mkH(ZLVt#5x%91=e#;Do7h!OaTWGCdWQef%+7t; zLw}~4aH>FS?L0c?dh~NRfa>p#9VWE@e5nXA`#c{TbhEi=e1q!7*KZgNSt6=9NDGGi zuQ_}i&oGx*Fa7@_UWtFF-Zn~3$oec;z#MC4Ia+FzLvyYbB7FHz)iHC7^B3MUE8B^~ zIH_EsZRJpJolPQ=0VjYK8Gvo&xpY~RhZ_t&w`uLk7vf8+Q>Yq9ymhTV3foLD3w1w7 zd3lN0CXu;6`ct?|UNE25^a1_)9Ew)Wg|88#Cs4eZg8=)0cyO(A5f;*a8fyLodFojX z9r5jB!F>CG4m^k2?kEl=<|uX{#q)8Hu5|mJC>9)K@qt7>u1=uj2y<)w)U4-MI<@;e zl`5}|!VX;`28(Czx8TD(?sC#?w)`!9cDe>49bp_d7M07MC^NFf(1_>BKQ9plSVl0$ zPhfuMDAVW37w8GV^Ntm8Q2byr0M1Op%y-;EvXN+w=cxw3nLwd@B=`v}Xat+EP|gWt zhT9{ke4O}JVf_Q9a}LsUp6q&wXmO2T#WG?gnh&;n0&f0bj|b~DS?ySrz3)0tzWx7S zlhCgHu!HktZ+Zd={ieT%Hgp$*uxBAM?;Y4;c0>^h?|`=@I=S zqIM3%m)j--8S$YZwE6Mv)4w#N^OHqep-HrwatQ_B|1Ob!tKoaozzVHz+FyBQ#)@U% zDOmQ~t%J3}KquAklcYg6DepTggYUrY6Sg`nZ~fX|I=qRU+gb|b1Hn(kKN|2MH<6At z-{0I$ygpFfhv3@BKZ2Q_H?`Uy`h3v$YN#l1CCBw$i=Ln0vVJ-Qp%cWvgIq2na_h9n z%1RV-6sx7aaeHmAee~g)&Z>rD-M8)Ni#p`b?$8%W{#jR2{jw+h>Q?^Ars^Mkwf9Q9 zp%0`!g)_Q9B@e8^x7Al>lPu*voY5S2lz&tS*0+Ej-t5YejtO(pwBw7rI;i0MY|w|~ z9bhpSHzQl6fVB2A87#bm``&h$<&op_2B-f`oIrQ{tO9YlzNf$Uq?8t+!~^1YI}3ry zafNd(it(ZhXbHs)Mf{5_xwt`s1j)A`SApRpt6g z`4=)v6`^#hSa|wM=+nGoE}a3~3b`QNhzL>O=BaMJ>i_BcnohLhE6?C4v&EQeviN-U%lrAL$5PFu-vvS;0m z3bS6Ezn~eua>O_)MjH0{42l}a<+#Xl-siI7yZvgc@S!~k z>458JVF?Q7{HW?MYPo#-G_U{Hi$^1LqWdHs-^+%m^Cc&SzHj$NzMnC;^=7BgC+2$J z-Vgipv6O?YXl%c5%SE>D7Ub{M=8M;*B0fG`vMBW^5ZY%!ioxw$yUfIprkPom6bC67rCRJvqmWo`TrYv%;XZiFF6&bStlyG?y=T%?9XyiWrT}+ch!GX^Pz*@FVyh+x<`li1Nh-Czh0~FCOh%T^&F=70*#K zQ1t$UL@WrcRG#q|qIAdTesiI3=eI|0@aA$^#KY2mB5}w@R>3h09cs+E7k_EOV^uHQ zEH(42hd}`%h+#m7|H#WJ95*s%Sys)<+>kzuHmlLPSP*(enQV(WhF1RFP=hb6o1`8S z%Ts;`+@r&b|Gm;r{&3ffUklW3QoNytHl&0OmHr*d5yov?w|i2ZOZG{s9-#^CBTH>J zB>N`IjD(lDp0!dVjStr{5}jJ1@1CqVKMwr&J>1NXEYo9@KZ~IcBA0)xd^$9G>a+gD zWzkuvW~gbbW8CitGXc>L;=){0S4>C3_X}#um6wnyD|G0lG2-HFzo+)SjQi&ypV*cz zk|#|BL-Je>)Q(>Xw~Qq%nzo1kHU>lPYKJ~G${)u@34(gB5(`u_{O(sHsLTje$A{NL z3+&5E--&E6_lKVuWAZ^GbnPymmq6L;S4m@h^2^EE2dBkrX{M;B)clFze1Tn&?JnB0 ze(p1h{+Ao1>(CpA%6Vj!bUIiRneK!f@p*}^?UT_r`89^npXg8A#EYn(Zw9>f+ z;*41`ZFIKD4(J;^AwGLJbyKeoRjB}49gj&ly?g)mtgmj=W@B>zr;`N#>;=~vyZK&M z`|v?qC5_wm6_#`=xVrvgqq|NvP7JY!lKWkzRgX-iCTCe)V@kda;>1-a?{91QaO-Ja zHd&7ma%Ol0)`y?IFzpvyR7^MNc6AMyDz)Pp7Rutym}V*zDEHE~R?%_|F6GSX3iY9g zO3d7K0=JmQ&3X@2X%@&j4>(ma8}(*teKmp1swavH6$~ClRN1Rks{gI5zLBiq|C~vv zPAsT>BgpCZc9V5f?=?7-BQhXHh1?rb=aX zQPbjztBe`_kCaO9~eymC3X*;6XH&LBGH2gs^UoQ0yd&?!=jvO=>>X zt&*rQDOAZUoG8tyLw`$L5bRYcSY7jhm#8!%N>tLj{F9q{GEYpy1~YZ9at(ToHk>^V zvB#`PyB5m7!gI`@ZTlhwGjNUu`@RrHw*!+}{*==6dBzy8asz~B!mOt?egAi_+sm=& zmF6d(4}~+6#l>$Mdo7kn#)U3CmL6=c(wRoibvf|Pjb3-K?2&Ml!?!Ctp`8M{MU zvmVGFntEEZgFW2_vnF1Q`D<~_!P75c%suA5Tl|7($ubCP^F4Sk6g%}vck{Yw)!jZ; z6Qg?!bs%4(iI-)YBkX#yVh!s&TqriC1MBpH=0~nxcRNo*j=$gpj|ODmgAXJcUurKq zW0Q$FulK?}H5z%S2ts@k-$4rXi(_=7Z%aJY)$Qxyk+s{-oZ50f*`O*M1IGxFrM;W{yAre zWU|rL*piS+wAev}zZ)MUIE$ybL_b7UD3wL;M5S30;sb<|YWy`GN!_oUqc;c;1Ds^dR{9r&BZk!HuK5@k%Fn-D+C>NTt)jJIL4@mBdfr@4XcUaog<` z?w|a9I4e&0-#nTg3rOBzGp*D2STg(L1P}I}+_(M&Z|P^2ZPNWapp`vY@#>S9VpW@7 z{~{rNPVO-D7aP&qpYiTHA)o)4)MAMoy#7bM=&Kf&%ay(oeVM<9ZC~ampj`T{lSAPj z>%Rk>3Z|^ zGRRW`@iNrq`fxJA3pgwK%w4)>orPjAo2>OV4P<_nXwgutmRgpVXdp&r8WLl* z6q?MsXCbOO-u8S5iRYHt=vkRY{fAL(FL~U1=L&+Xy#ks!@jG78_yM-itrp_WB#)|l zAD{Jn;+){9xG<*=hs8!qD#uZ`GQUt=)N9i_!NS`YUXP30IQM^tzIeLS+$prz)x5-4 zx?~|z^i>kN4*TD}iAiPCX9=OSnrXv7b3N&;htI>Q@jOYf-!=C`ZI7h-zlpxdc)rqE zY>rY<8t@dV#CNX5&uMQNw+lEiW?JW(>4Ni8(cd(EA|BKgpBQno8q8Z=pU+MIvJ|^} zqf&YAmK&4xPYIn0WE*dfX^xGo9jzPu=O@AXTAr{D(4Yk7sgXJ+*Md1xyDwFlh*RP(XF-9VPpOwBY zws=~|3skYRnNl@3!jSbzOj>5lb-^m=Lgt~8U88kM-t*L!Q)o94Q1HAd2(N|1fb z7M>Nu;V-F9hx7re~Dj zcpd&Mu3zqcMq`|*fL8h+K|N0sI9l&hPd?iClLt(Gk$%<}UU%rm3nw?Li<^N%dR=SM z`^@pmpX#5L7Lv}Y^krY9*Z)57)^w$JAv<^|zGL8aNgt~PmBfmDltOlZrFGZZ+4^5s zw?5TmZz+}8qyrb)32iZ~T4K`n{GW9w!!I{&^;pA?4@*Ro&qEUVQp#f{X!HD;I&shl zB^{l9O>6l2Zt@`Op4Yt${~?*L`bF-%8eZ*2mJe;-VEc=of-2y~x*eM-mr-5_n}CO| zt*+58T^Bg+?Ex2V>EP{C4nqV7RE|wFg@o4s#YT;M0puTMF}40%VrO8;ReUCYsIO~g zInq;Kc(iPygdOo>Ij%}ymE%r^-R%s9nEv6I{u|i-1;tLGNy2`DQFUubcUk>WkyM;n zWq5k=joiI6$nLU5rs=zWA9nC(S0?ytgDpP(^t6Iny<)qqG-KiQ`6wwJ z9bGQ#T)}o_ku)UTv(R`~p~YPDmysL{7wAkZ|T%`Jf=*#?pBDwF!L9W6?&QB&4`Y)JtgNz#-D7|HsUPTm^eL;UVef0iGcUhbF=NX{^nWEKMiG0!W>i$MGT~djvp6UL~hXf2lUn4#Fb`R}y!4N1Bpi z91Nv?-O2ahy!ElW=E+uJ$QgIc_%FQ2FC#pyg)y<`;s6)w%Mb3>F#*7sF>Oz}hQO5yT{g*+Oa zLl63X_NT8dSLWsL%Eb103qRLmy9aN{xY=`mEg|Ff*Z#oL$fuj`#s1HparWMP`bwk( zC^_nwbiRC6p<&E#{zB`4&YszWYtnA*4^72f8ZEoph7&SCn(r!ZsY_gKnu}59yj7R? z!<;GZ>4_q*lY(()jk9Z1n~_O<4S%b33zJW+)mQDSow^$_gCmNfHzWG5W+3@^Z#)9` z<%e=UtkeJ0`NM^2KpxBmHe z)hV3N21m%6ek}=W{M-Ct=!FTyPPohX9^DssLDZ+V!ljq%{P#Pb0C2)u%$MhI4fmhj zeBZFIG^^q+DaEJqKhb)iKx}_Zd#^EixG;EmqcL^_B3`NM7;)a_Qccbjt{X z|5icP|qD`7{V0yF5{hvF?-Z|oh+1*Pn7*H z*Fp1pj$wX}wjwS=u37{sN@bU5+&%B}LqgafHNF4&2)1CoxA^wfjnoJy%h0bkINq+u ze12m@uaWP2z(VrV{$rrk&2yeIs6Mj$x&)!YlkxGds@+=`CUcKlm%=`D2=iM^y;$Qi zj&G$aOVX}rX0`ZgW)rBU!fSnFBITBz=^gE`;0Ew*kwOnrrK>43Z>;Ipw8Zl>FvVHdCy%q?;xKF$(goSDA2lfWP@4?w$*E(p{T1w!Up zGtc$c;X*~i{JL8v<_b5jS&eWf4a(^-JC+zN-{NF1u!wzGlOmI=k*G!UJH5jS*(te|EbrLrlutQ z!ikOR!WRl8znEKGz13e=@hrs{H*`;Y0sdHoUxaeywk15N7oePUmq&uBQ|4iO&Y$F) zS5Wb~W=YkaLh!-@aB7&sIZ{$V(!=upbn}ZcI;gw^hcJ8Lgcu7RBw^n0sK_zvJ6zxy z@s+U9^sIjBYqZI1<4?JQFV_0_bw(}A5dQQd8Lkn3OCBA_Xt|n>psv|`MgQO4JL&Vv z)jke!SJI7t(q~o}7?%jg^Sq5Fwq;aIFgcoE3Aoh#vhJ!^+B3+CJr4e};0Xr7dRx2G z-hDEBn%Cac-RP5_U&%Ec#e6l>(ZAA_I*MJXeuAlSzcsQiTcr85@vnUjGsuvCGW4LF zDfm3t+)75hpoY)4>KfL0G%@vIDM{GiW>azQ!)r+iW`*M7)2t8l?Ps2u-fs^x_#*4? zlG+*c=Kfuc$G=nGNnU!|?`pfzTil!X^OBHm{BfJEj__k%vFl?I5^vXgAM}eydZ%c+ zbF!xtU$W3pTV8v6_0)XUtsEkED^rg-Ww@|EP(t-=wabSIAP3lTtiiu3>#O(XI zq!!l;3QfD|R>4Q!?S9XIR$AJihVIM=7KvEM&uxE_sqD@bDT%G+gBN69@@(EJP~8=A zsF7%Um=S#5%O)###(XEMH$gG+-a5 zGx|F*>H^+fKIakR6peB52^`b^_u z>0Z~@dq2C-*mFKgzIvr;&VGTS@$;5W#RJ8rsl0EWuZ!x6OnrMbSDCT+PFAg<$RM6R zZp;t$o%+`0c1ovDPDX^l^9oXbzIp5#li{SZAgnD+QL6lP?&9Nc^IH)fkKF%FdO8X| zL_HBapDX{C72Zg;Kqu*^=?8^N-@JU?yI3P)poHmsisbjtw{MASY)yXu$#P5FImqQ6 zi-vn!o^8%O_%nX(9G#88Ad-e~sW1PNzOhG0<@T*YRNK$LrO(^gt0IHay$N ztEZ=TSD9=#K7LGMR!}do30vh=kFq!Zg|xbiU*4p*lby?;$t=G((8e5c^rTs9f-c|P zDiUG&uqoJWs<-~mQFztofxDY2DHSR<8mWuyC}(@%2T}Q^BG_J{6{LuJ2-*c{1ZSk% zkCS!Rnh1HTEUZCnx&wHKZa7;3sO*Ku+DC>c&d^Iu-u$~Oll4^P$Yt;V=N z<#C=V5AF0cz49;OZ{tu{j=%i_<6Gg$Fn07#wWFNeq^B$G?*p1C{ z?p%+1DKbnM+YtZj{@dNIUW)CW^r80dvUKXQQI_8g(G^(aC$Uebj}%$6o+Qn+PQ@F) zcwo6Ae=GeAuFolvF;2{#qQ6z+pLj9gpLy%><_M-3(tpBL792BNRr|-5=pLd6wHG{| zY<695fmIIp^h86nZ9+TjkhG~|Ch0M$gdSE)$ANlphrvy3<=CVoU)8(Oc*)?sf$r|t z&m+YKR9V{ToMEzqS1N7I8hXgQKo$GbVYSo2 z2pYN@#;Us5iItl^q7u5hFSSh*W{wQoUe>IH#lu%=KS811GFgdvXPoU;X*o+0`V^#q zY9NoQ7;y>5fiQ|Lv#}UdzD5JZC3;A<*!(wGuHV2N(GuO#TU?1}X(`?XedfKyg(61E zx?3Kn(NNKOdiuh_fslc+mZ(QW+Mha_)Mm>F%ZuKsz|e1SvNc6DfsS-YqqO^EpISOQ z!xpC1BvesU@Xj%m1(nnFEzlNRKhU4w_wexbp)V*0O2L^Q# zBu5@L?#3{%1Gk}Vo`StGbyXoNZdA&L6Py|rRQ(4Uum8&P`%4$+#bNq`Wj^3lRKnI# zt~4xoqhm4mq=XT=)p4wpvj^11*q`E*sOa8frH=uKYf56oO{FPopx$EeDhNq|{-e6B zU{5XuHhYK>XT9BLy~gD^IHGH}91B(vQ*SUkcVIxuaO?EFE;TH=`3-1?>T0=y!GESb zbfY$mRDwNDF-<#0Fn*{TFBJ0-D(1Pfk;VQTX87}XUt}>JhylcOQ|4Yf-{s&&%yolv zPX{jjJ&mD0lAv__nzW{6agIx(8H$ptdng|x=c)a70=Rbm&iq^%lxA%XI2GIa&5fAP z5Xf%C3NkQ)IDNB7Rg;tzvT4(mod5N@p?aB|?~C?9U`f}#l z>P=hG;M#n?Xm}@Cna0)qT`}wwH~$;+g3z_9+nLcM!FgDzLOTmTS#wz_D}p0LiR-l6 zK1~-6!O0ZX;KkLpK}Ibmd>Iq|zlVVY1m7$Cd?PZlS_KM~Lx;l7cxD41P%uhc|IN+Z zxa!WBD*c!$Yw(_I5_K+`s+2?ZD8Qk)1O5WBtw-L+I5qFHG2dE`@uo-ZdECTC z8~z2`Cg%=mN}%Q3yx#I0BBFto_ejztOv0*f`$5j|uc;&?bIeZtqt{03R+g%KP%xad zVb+-vnMXS+rii;y?`VTsMhhHvp#cL~!^e8gu8AZN~8fXlo zN1eDyZt!iOfphc08`rNa+mltu1q}3*Ymuf(0ODU+oBdC5 zbI^I}q7D%cCSc6QU}Bydx>^k;Nk)JNBtwo*Egw9&-pN6Qzfew;s8M`(+sHh`g z0znrJ-WeT6gWX`$YTnSp?r7iG_(y|`2a=%YgubJ0M#zbaMmN^&4oJ*%Yj5%1p+;~4 zO@nAdIB~m)mF<29n}nZ=(5sw!7tm}OXyUsz1QKGcY1E}XDH}%@j za*ux}9XA5=RzuwJ07%j4taii$jD+MB;i)l@aR&sz^gN9)*0GemvKj7{+UmKUgPp_9 zqoGcmTxS-rN`}8+sB+qsb?<_s(1r8ehsRoc8{@3o)!9{x*&g7b#|9%)`=*X; zM@XJO3%PfIoZRVn|F;^%>JXY8zqiQT4eY9u)4Q|FFOOS3;(s+K8A$+9iO`Lwp=gcJ z7lcIatVd8kx3fEa$Bu;u)HHc$j{2F=$&H<4|Ax_cY}y^ru*2C%h$d_E(cw(Q9z<~Q zG%8_-HF)db9*LSl!Mjh>nri3woMGL`+X>u!>>yF%Y#Azf$DTHmbJ!XW{O138`Osfb z3^h=kg8i@ipxH9ItpnCA=YO=|)2e6~cRqytAJf}v;5))yI7#hVR@SPmoj+9gaA^Jc zFev-5ZWo4vG#5j*iy?AF5TJ!s-EJV)DW>Q%OsuK}a##XkEr84yLqyNO-iWPN2%A@k zYIkmW)Zt7v1m)F=!NmG!Mv|JbZyK>zhyGOo5m4YlGjCOW|mG`5*V{RTZ=ZIE(t(AB-OH#f21 zq(#+PH6%r|4l}_?OX|b`0~wD$RG_1RI=l;3!AMHLLv-dM^>5HNBS45-W;+KNM(&89 z-JLsU0CQKJWdm*`*8-&1+0K?Xs^=iOzDR&lvq^13wcvGsgV0@P={KH>^(xZTT z!Z32bK5+#z|JWg9G52zI1@1T)n%FJo(1%ROr^+A?bCtz{_X|ur&_MzJh z-w}ThKEDArkQMOK{vX>dMJdA<(^FIw3ytd|%%}sHpv8^q-x$OY`Osmi1!!-13&i*f z=FCo0lBU}Hx7&}5tnuFc0YpkZ%)GVeWjHgdouzmz$&ekom!bV688i~qCg?NA3&6Fi0`q8!au806#=oivNp~Re z`SOOM&O5B4*u%$SyDmM4+mP*0Oi>O?w3jGR5KJ#LF4FJ zzUa&p&2pHa+)yWW^b4tMcRp>tZV>6eED!D0XT`6ry@ zo^j|#dIdn$(O!|_D%$G^*40XQQ?lM8GU^doy|v8Ai6Z;r2h_(xj7sxS3VWP23I-J} zEj3T}>4c!%MdOWZ==9gw@csceY%sE8%>kP^7W}9yJx5Q7e!lk#*&L;*_`4ZOXZ|=M*x|=Gh zJ+_b9p{L%PGg+4+;1V+txs8Lzr<|O&5Z!f+I865xVT(w!?xDtKdZtX%3V~l|Q; zRl5!aTUqJP_A^_`qv$E`!PPvj64Zl&DkhL%cbU}Sy&@5LuXJwFUfFhIu1I(ZxXfYE zk{3<{Cr2w@T(>~TA#5OBhIoI9FE*zO3j)V>jdR?ramlD=1@iiFYp6^4~K&%jO zjH40OF8o-vn4D&aAG?Jp4z(8*5r`)s0w*45SgI;)GjxNSU0xg!Y*w@)kjpWgvV#>`BB9lQU)}sI zfX1pgM8^mFS*w6T8GxD#eJr)&6sh+IYdB-Hzc|m}pGLtSyvYIzMZV1Uaw?G3hvtPj zVRKYD_ww(8Yl!|lEcq3yyt%=y{|yGNE3^h9y={DUN`tJw zgmjW3v;9WcPNQ*32>dpyb?uJlpNeuxE-$`7v?IBYcw2hydY=aVw4j7gQ$!jIvI&8k zuR|@w?&$;fMD(Exv=$2nPIMxfRpV2WV|K*h4upWQjl^htuoDa4PVwQZA*K7nqPsz_N1D_BLrttkGgj6Bl}&2f#v!Hd7?aS|wE zVrjcRQ7WZGNs2t=K2D7U(HTQlL-E$h=mK5$gT^alH&*yT&ZpCwz}5AoU$&HLUl|vQ z+G6eYGBlsw6jD$~%r)*H-eR3hf1JV*3xx#>jCh8drE}_<04*I5p$jaHwt0O9@pH#K z(+UXCaxy*^vnJ+ou0hGEDv&SwObD3ob0JNIHW-Km>=9b2S1Z6;phZpls!pNzW(r1^ zf%hhi#bV|7GdTOScRm05aJL)(px_t<=KN-Z3D#0{rYx}abo~5R?(=vo->!p{+n7sY zfuKaJY<`DEUSlreCo5emp;A!!s@7(|2H&u`atc})f`Q>+GjOnHoPcDRG(h%JyJWmG6Y6W?I( z-U95_S~vxR0{ni;Fkm)=8Lr(c%|$NArZpkQIAf6MGVkNnO;8U~pSQhDZU*6vKu4R{ z^}e1+Qr{1pV}`-uFxqLvI2M%6F#blYG!GQGDfCE%i zHKtPLEGd!Zrl()=Xul;cl!KDsN453@QX%m?)Mf|C1}sErd*=hv^mah26j%M80X$!qPYi}Ni%mbuH zZfQ&^r3F<0Tg);{y(^Z^ z0lywVF09g}hpJx)NqNBYoimsb<_yG<0`A%=1|#CeOcYSe<7%gB5K)^oRQhkeot+Tu zxFqXL=G8&!b`Ifu9d*w{{K%Laq;=hP#OYCTp?`-QRNWY2j1y9LmW+PrSZH=hgrPFv zHZkLpN`xgz)9$tdB8LHHx$qxCk*)qIE?I=5OJH?QlZ|D&R)H%K2xMugp3ocrflWW| zropAj&Vhk*LvNCuJOyB1fe}=f3OU({(OIHE5KvkZ*LS&x0UpacI3dU7suQ%-6HpNnpkI@V{Z3$zcaE6>j8|u3_;1E)&nlE#gj~u}_*}Cp|Mf z&DEY#xPbgMlEj6L_aF>KG_->ha0{Cc1uaYMEBJOxs{7*uBs(8t?B9|q+8I?iDOItj zvVmhKWifP@6xl>78h`=&PK45netRaO!~ceRWPq+Fj4hv0yDi+oZd=fEXC^wKs^y^k z%@Xo{G^|&~$=3zyJprqDzKeP8FjkRVZ5KpSOm>!@8P2CrgoJcUAQ~>nE)g+;P>l>0 z1$`lsTd*=63e>>eypBY1z%4N}3bfN~?3Ioxjp7#aCA(LAbzB%+IWo(^0mXQX`QmB| z-BP=>^Zzc%+Mn^@n3ejwbYqM0r2c|N4h_*X&t(0TN12=sL{~_=g}cFiA%pepV1X>E zoB|UQ;vCE^f*u&53t=(XT}Yw1V+D8qDK4EF=#rK?5UbfKnYy$A{Ia_l*#K6ah*xJ2 zjT-L4VQ+GonRMwOQw{c}Apwgle0B#5BXy9n8>6`9zmY&O4GK~^uBi{-zQYffZ`b_X zm;pT61ky=-AZ*O?>~Jga9FVw-5!4`Ij3S$P*n;r_t#NXiBNF3f*a-K$2%kY$!4oD* zb3dP}&QJ*F$r@pJF={P4cN7!7!(kE#rb-$55kl2Nz$q4oArcgrrxe;4l+RQs2kG0L zXy+Sbdmj1CJkZNT8Jo?QZ7_$k$2mSkTajrOwCf>pxE0;V`IesziL{_GskBFw%T1%2 zkHh2OHW6%2JpQi0LAnx)9g6 zg*je;oDiaW5IkQ1Km>&00U}Cp8?U>Et)&1_2N?jV z!>7KD(R-@#=kTWe)A3z71c5w%hIkad15k+*TxSS`bhIoOMC$^Vkk5@R$oj!L-)LPE z{ZgmlX>^xQ!J5Ik!DwCOAQ@}tEN}Snxt(yx)d-^)-tn-KwXZ6+ZpJKE#j2g5A=V%% z40m(&iq+`F1*C|Ka3_t-Uy|>z)Z=K(|u38!{li{ zUX&R^8YQT4S{R>O%As@787XjcLK`Y1t+4O>PtY|dz(;WtJeDgL8Q`SVfapXA;W__; zQrYQsdJV8$aZoLu6gypW?agqPp-*|N^0qGw`1vk5xJ+e`^EjFg!6mqaQ{6PC@GlBq z0!!8($%(6ytExV=S_9&&XylBFY+s124U7}A6x0IH2|WoIZFhC;Xiw9p$iRI(cpV=+ ztcT)G>VIP=6|0nFDe~V#OMvw9*=`ds#$kmHL-oUnzg@{iBWXV(G@!2x9@MC?sSt{} zhoF5k#7oK~?B!y{of%hERPkXSGDJ&`0N#->C={op1oofq1zitBkXi=#R&D8yjntwh zs8t&BC%qDv>%>^=OEzLNhGr+ zUt!6tv&NinBU@p*#lcJV3=UX|$=)#2G&HAG;xs|gvwo3&iI6|wKgY*s5f4@2LGw!+ z4-M&A28ceY1Fd}Yp9$F&6K&=g!4v=8B1G61aLK&Aa1L*14%S&k>+)fph^;8J{q+d@ z1UmNvZ6-mokS%+QcpnBiF#gtUl6I<2vajv9ZZJ z%^$u5Q}2Ki)MbCBXtnJu&#?=yndXLr%)M4ToB-smz~Ca3CEeVXSeIRzHxa;=ZkYS@ zs>d^0_yG-VH@6Z=iJ-&Yl=OV)yf8cvfw43uFq5`uX5)LG8Wl7W5$|Q7x|>k{%eWr? zYELvCIGaC+*F&m-^z1usXNqtS5OTAfL9m42f)_r<(q?zdIkk5Va$LUIcC0?b1qCVJ z`HA||DK9Xzt&Ps=*>0llg7K9(ch#ezbLKVmRmRlG+&CmK-EcD_CVhfOf(}p;A@DvW*eAG&K($J6z z$0`;!EH}fXHe!S_z`ih0T^?r(sNrNwcki2O(s;)UtXX5Zjma!1oXt0xvp2$psnG&O z!J1lGd&+c^g&m?h<@X2oTPuR0hQ#C*qS|Jt>-)K>1yz8HI~G8H7{;ctX;XF8ji|8% zuJ3TmicJ+I=%E>MqG}Ct(GJ4dXrC(RFQ)rgPhr`Nx^-i^7;WVYcBAH;$MgU+=+aCfWB$MS4sDLP*`@F`*g(hB z&|D5+s;~|PtT=(_MYIM@pXxN+irAzkBlj@=|IVdJmYq$M-jx;-vf*>0V0VrXRGJ|T zkAnG9|8zw{xFQ@T0rFI$aTsH~h5}Nk`$KFfF9Z>AOD!IwqTN+N&? z>{2r+sR9(a0r&P9%9}TetdgaFpE)#+Ca~PVP55IKgr$#Psm3~3UkSO5Ex-{fQigP+ z$#Qr#iQI8ur%D*Q2!mHXLKp)Nc}P$dJS|}S!YzN9v=R`B1rI0Nr~T_>_l!kq^#>nOSx6Dg*$ z7(e*IkO&yHGIXPaZaFi=oER{oDsptk1Me8k4Cb-Qp1?7MwKb+!piLm;qWYWpY~6Yq zJU3S!%p0REo^f7iuUNxIO1G2}4nx7$3gkPnBLm1Rh!>84Ga(I&CP|xP;m9I}qPK}I z!1;fpv%iwwO0hsD$4IflTxx-)EH##lY#c-dJ@g5)ow`(*gHSZ97+#TX@Lwd<6oOfU z{-i3n9wbq?)cY+(P^X+pnwhQjoC32*fUW?_LEP%4WystM0uq3UJ>gyJ0xU zuZqrvu&is@fu=5#mR6fDv59%z*hTyL97DNrgmsfJN+f+MFP(daK&v*o?CQmh4dOD6 zT8A99!%o6vS-jdRq<%iogn4^D_>>3o^MGw03WXhvn4-RIy2BFGqaMJ-9;Q> zI{L*Q1W1u^!^x`#0%FXJZ>5wBJGO=T6q1Bu0hRGNnyb09lsH^M@>LQh#^^b=5SG28 zk{w{13o}I1-F2DC_je*!e#%^3y*Pw$;q+4}UG-Ttbh12pK21TV9=Gl2&nI~?SscV9 zw^Y?y=C6s*h=TTH!QZvTfY(uO@Z}3q%nr`T!L?29?n_i)W+ycKw5DweI?CmC9E1D zr{oOh>*avn(GGMkpU;T4bC_u}5hZ*@!N!16X0jA|WuZwTP6aKCB_VZ zMv!5pa?uv9H0^1t0~M1dmWJ3sN3ru8$@`}ti#2)wotN@MdY z9B#{aOV$7C?TO z8w*W2uGvHx&j`o-V$r!0tCu9{7*u5~2svXk!ylzPIlqBHRz z%#k8%^+HNy6%nkY5dx_RnF&iwqA=Pi5_`J+m8r(A#uhs3+_y(!R-zc%20r~B#=Zdd z|F4Br@>p6!)mLXIPbL_pc;P`^XfN)-m7Su4r*NTXJyi(TdLTYH19%bLF?6+5R5g(ak9P&dPYNbdY(~e&?%9$`*NbiFZc&9qX)5 z@9S+otWa!yy5?T%zLl9m<1r+Qp6ArGX+g|o_i@KyO7vD@xBJg%529kPluaf@ZC`Bj-9LGK9@ck_v)nT9h@E+8W4=yoX5lGZOOSk#EI<47TlCpDhoK9GHN_XjGq@-1jD(^;;c-Bce+HLCT zm*2np@a4b*?*o}ymtq}Oxa*W}xSumC5E&I z<_CZ9`>Cw;u_x#G`QAC>I==h2b>8bsJ^lW~a_=OyD<95#uhPnouw8xUmDZ^;=NoFL zCZ0UI_|e-#C12;W@h95(@S3=-*7c%rYmC`xHrY|>V<#W8%V*W8!=7riC#?nsjSp*{ zXMO3Y`*!r#t79g0+b%s#vLC3AjQ_Y_T6tm$z-q(>dJQu{P^!NYUkyN+!HZ<=p|R?kW~+^R2R9TbreR24#}7%2YbjE-5Uy{~o?O z^74P4dY1C~UjIe5K7DuD@38g{gIAYa4T8rw`mXNopA#M@cvo^)c`w=Cq%O_XZoS^L zhq*rDQ&L)eL!ov=s@9H(gP_3S(y8Wp<-{kdl*QZK-UpzcDw#UUJs0lVo7iY4SCUb% zw^kRqh9<~=ba&qz>i){_r*T;RvyvZ6^F^~9@{&~RGH-9X6ydNnSl<5fe~}06j$mcM z$nPl4JxDEQ;4ha1ke(HO{U%MtEe52ON8u~|Je=327+PmN`@XK0am@Qky;gzdhaJ`( za*HhOe`g&Z0|%@1tF1){KDpekxqh0sVVApISjnS_akaQNOTiI+@MIy; zd_~FSIgXpkpB}UK-<&Wv{`a29`d=GDx3a>lFR}i(Js%XO&OM#paMq+&wx#w(4A=CU zcG6DMl$v7A6M3GGr_Vk9>RfJU(69FVQGKF#tZ$Pbu`(xSWofVV<(u|?mK)p)Hu1l0 z%J;DdL@chKeO#;J=WCku=DwzTNW;Er<3$xeBNNK3w+RHs)8NYimcm(uhUE|UaVyTz5B6I3 zo&2K{_0_AwP-leLPo(L;>_6G;aGbi@H2p0z{CZYtzQ#02{GHZ+-9xS%>@wOT-e@E* zR%~AsGHYy!tsG0|96j+T_xaDgo1WazaOYSU&Yd>o7{4X%d~0I#wkR=2kd_=NOD_DE z*z9XFg1=~%e|yDp_}2Y1T2hmC!?&%+UmCBSH{SDy@}l|IAw1>{(|SbNc4XPTs|%-- zE&R7?CAZmneoNmi_a;a|Gc@Szmxac?m1xu*%B>r>Xq)?QC;S<ZMpy$$F+l2qODP_Sln#{ggoE&cQedqN8F8hepuRaMD6z zCwC-xnWpS32Jurgd&!D(q9MuLYxwTiy8D_&j>lRwe9Uy24i(@=C-;Ej!`QFSk|)!@ zKUt!0@pZyu%vhCWcQ;zYLDeeGe{taLe`j`_K0Hkh|3|pLqv@(VOJ_nbk0eLFE958m zIe#J?p$9vdZ+JpbnWnv&MmM-Ep7P*LGV+R-{NG5T9n*L`*voW@DBwcmo@^$Nw)svTed^P z-j*EAug-7xiBw1SF7|vp#M8J=)@>Xy>CRo%yhSl7<3vIAhpugX@k+jHZ38tfUa{yn z@7XbQj`MC(@8@Z|zm%iBJ)YAG&ao;4XZtEV)!!VeR+9C|r~c9^$~`VLn$CEev+`#r ze)aB)F*F886S(F!iXT;mrVOk_h+3~kErO#o0 zvcxjjvP`J)GDYa0*TbCnb+S)-e=0g`w>95r4wkMom3%;_X6+JhvL$!qckt<(!Y^VXN4o7Nb0fv+V6Ws) z4>6A1VPD_1FcmQ}bu8ccpP=jYIl8MjTPwFS-|yX3-<$J$v(if59_sw=An$*m%~#R- z^qzIPF9+3bW`xS;3`_wJHg z8h7}&-M$BYw`?+5T@rqqd~5sXhQQ~g1^VJuVlZ#ktXTjA%#Kbt=ApQMRW+&e9qC;@ z>vZz-vnzflmpFN?C@6}*IDSd<>Xs~?{wtNTqz9RRr%SzYx>icSSh$%jFvCYWP5hS3yb}*H&>SXHfh~0_=H7R z-t&*J{dy$w<<|>x$94%OevL;Rk4{j!-RPOrnu#GqlablG5_hQlyJ2)GM#&u7%sPV2vJIlZH2d5m9B?YT7a z;4c5&wWl8(`uS`9fGTs@8^3#GrJJXZ*pcmB@4UYG*e#EW|6Ad)J+6C>`pzX;^i{pH z)h|?7?AduIVr$EVAuR_c;#@|4yR@)fxo|X(ywybKdT0Dr%h#O?XUK5XQKkK|BYfG|%M4kuNWvj5737vh=_XY38ox}KMz`!H=P?4J3Ro{L z|E1s7e-J%uNy`$yXBSL0>NKSDecv96Q)LL)dmQ8cc#wB`c1HA%x3UWN91ARX$a3H2 z#_JQM=bJ8LNUv3@_Ip&@Kjp<#zwZas5MJg}T}OMx(iq)cO?=UhJrg}wTK~A-YPeqP z@1Tb6^?zreXaB)GzAq_hn|jsT1N(Dxick1Ay!l&KtpBy;!@eP(`8MA5nJ4R+VDHxdP8ye{w85kNX z1g932WhSR81SBSBD;O#SdntscCMme4WR?JRasUkhfhGvWU=5}BL+J{}U;qFAuV+&L z@&Es?U`$F$NSTn3knkg`;v9pA;R)u#j`V^(-NAd-FP^`6cXmKcLw3N1^n#An@g94Y Q&!27YA<8T)zzo(50BJBclmGw# literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/RAM2E.tmw_info b/cpld_maxv/db/RAM2E.tmw_info new file mode 100644 index 0000000..2075e1b --- /dev/null +++ b/cpld_maxv/db/RAM2E.tmw_info @@ -0,0 +1,6 @@ +start_full_compilation:s:00:00:21 +start_analysis_synthesis:s:00:00:10-start_full_compilation +start_analysis_elaboration:s-start_full_compilation +start_fitter:s:00:00:05-start_full_compilation +start_assembler:s:00:00:02-start_full_compilation +start_timing_analyzer:s:00:00:04-start_full_compilation diff --git a/cpld_maxv/db/RAM2E.vpr.ammdb b/cpld_maxv/db/RAM2E.vpr.ammdb new file mode 100644 index 0000000000000000000000000000000000000000..148b61d36427e23a15025ba1655d5473fb404f17 GIT binary patch literal 612 zcmV-q0-OC2000233jqKC0CNCy073u&09Ivkb7^mGATcv8FfK75LUn0uWFRs#G9WNE zFEKJNGB7bSAX8;>c4=c}AW&grYalToQ%WFLWnv&jWNCD1Z*Hs#00000001@u00000 z001li00000003kH00000004Lav{t=J13?hpL=g-KK7+Md*a?c2HiAf!%2%+J*!cn$ zrqPE`BwDMDSoi>1`vi6pBWTv$Z#OgWdB=L(=HS9jzHk0^W@p!0YcGv4TkbWc<=#bn zy}19a{kEnVoG?a}r;Q zpF7{&{yvaTL-M(U>=(7Tp6tJFeNy$Sif^MItn}X*^7#>Y+V-mY&&^NOC$~Rd&#Lx$ zUa-B~xa;)r#QD;LAc~34axpJWUo{l?+tKYm4NeplKRH{rGEdE z`>?O;bA;%}cgCyQV}9yBp!=)%{H=@gda}HP_1l;FyrCZkQvcNY^ZCQ~r)lTU@%eOq0RRC1 y|9AmnWME_nU|?WS@a)k7QVaq>?C9$o?-=6m8}IAy67S*!5@uimVgLXD0RR7O?lWQl literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/logic_util_heursitic.dat b/cpld_maxv/db/logic_util_heursitic.dat new file mode 100644 index 0000000000000000000000000000000000000000..67c7583341645fb716e3b78da2bc3229c5981015 GIT binary patch literal 11396 zcmb8#Q;rw_00hu&yX|&s+qP}nwr$(CZQD$$)V6Ii=|@xR2Ky#6fA0tr5D*X$>fb_= z|1P99G}tg;1Hpy`8xCv`*zjP3!A1ZZ5o{!|k-o*EU>Y`#sM1_ zY&@{>!6pEk5Nsl_iNPiTn-pv^u*t!u0GkqQDzK@+rU9E4Y&x*%!DaxP5o{)~nZafO zn-y#}u-U=p0GktRF0i@5<^h`*Y(B90!4?2p5Nsi^g~1j9TNG?Du*Jca09z7lDX^u% zmH}H9Y&o#y!BzlU5o{%}mBCg4TNP|Iu+_oV09zAmEwHu0)&W}=Y(22`!8QQf5Nso` zjlnhn+Z1dwu+71?0NWC5E3mD>wgKA~Y&)>+!FB-K5o{;0oxyei+ZAj#u-(D-0NWF6 zFR;DA_5s@$Y(KF5!43dB5bPkZgTW2~I~43Nu*1QQ06P-wD6pf!jsZIs>^QLF!A<}> z5$q(elfg~_I~D9Su+zcL06P=xEU>e|&H+0Y>^!jZ!7c#15bPqbi@`1dyA^iXP!EOM%5$q^`vj z!5#p65bPnahru2Jdlc+3u*bok0DBVbDX^!(o&kFn>^ZRK!CnA+5$q+fm%&~Edll?8 zu-C!f0DBYcEwH!2-T`|T>^-pe!9D={5bPtckHJ0x`xNXmu+PE10Q(Z`E3mJ@z5)9d z>^rdU!F~Yy5$q?hpTT|s`xWdru;0P{0Q(c{FR;JC{sH^{MEb8GN+__Q!G-}F2sSL( SaA1SLh6fuAHUij)VE+PPTzKvP literal 0 HcmV?d00001 diff --git a/cpld_maxv/db/prev_cmp_RAM2E.qmsg b/cpld_maxv/db/prev_cmp_RAM2E.qmsg new file mode 100644 index 0000000..4f424cb --- /dev/null +++ b/cpld_maxv/db/prev_cmp_RAM2E.qmsg @@ -0,0 +1,94 @@ +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1611862593702 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus II 64-Bit " "Running Quartus II 64-Bit Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1611862593703 ""} { "Info" "IQEXE_START_BANNER_TIME" "Thu Jan 28 14:36:33 2021 " "Processing started: Thu Jan 28 14:36:33 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1611862593703 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1611862593703 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E " "Command: quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1611862593703 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1611862594200 ""} +{ "Warning" "WVRFX_L3_VERI_XZ_EXTEND_SIGNIFICANT" "RAM2E.v(38) " "Verilog HDL warning at RAM2E.v(38): extended using \"x\" or \"z\"" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 38 0 0 } } } 0 10273 "Verilog HDL warning at %1!s!: extended using \"x\" or \"z\"" 1 0 "Quartus II" 0 -1 1611862594267 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "ram2e.v 1 1 " "Found 1 design units, including 1 entities, in source file ram2e.v" { { "Info" "ISGN_ENTITY_NAME" "1 RAM2E " "Found entity 1: RAM2E" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 1 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1611862594271 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1611862594271 ""} +{ "Warning" "WVRFX_L2_VERI_ID_IS_SV_KEYWORD" "program UFM.v(72) " "Verilog HDL Declaration warning at UFM.v(72): \"program\" is SystemVerilog-2005 keyword" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/UFM.v" 72 0 0 } } } 0 10463 "Verilog HDL Declaration warning at %2!s!: \"%1!s!\" is SystemVerilog-2005 keyword" 1 0 "Quartus II" 0 -1 1611862594340 ""} +{ "Warning" "WVRFX_L2_VERI_ID_IS_SV_KEYWORD" "program UFM.v(188) " "Verilog HDL Declaration warning at UFM.v(188): \"program\" is SystemVerilog-2005 keyword" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/UFM.v" 188 0 0 } } } 0 10463 "Verilog HDL Declaration warning at %2!s!: \"%1!s!\" is SystemVerilog-2005 keyword" 1 0 "Quartus II" 0 -1 1611862594340 ""} +{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "ufm.v 2 2 " "Found 2 design units, including 2 entities, in source file ufm.v" { { "Info" "ISGN_ENTITY_NAME" "1 UFM_altufm_none_a7r " "Found entity 1: UFM_altufm_none_a7r" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/UFM.v" 46 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1611862594341 ""} { "Info" "ISGN_ENTITY_NAME" "2 UFM " "Found entity 2: UFM" { } { { "UFM.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/UFM.v" 165 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Quartus II" 0 -1 1611862594341 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Quartus II" 0 -1 1611862594341 ""} +{ "Info" "ISGN_START_ELABORATION_TOP" "RAM2E " "Elaborating entity \"RAM2E\" for the top level hierarchy" { } { } 0 12127 "Elaborating entity \"%1!s!\" for the top level hierarchy" 0 0 "Quartus II" 0 -1 1611862594391 ""} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 16 RAM2E.v(100) " "Verilog HDL assignment warning at RAM2E.v(100): truncated value with size 32 to match size of target (16)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 100 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1611862594395 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 4 RAM2E.v(103) " "Verilog HDL assignment warning at RAM2E.v(103): truncated value with size 32 to match size of target (4)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 103 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1611862594395 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 3 RAM2E.v(544) " "Verilog HDL assignment warning at RAM2E.v(544): truncated value with size 32 to match size of target (3)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 544 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1611862594395 "|RAM2E"} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 3 RAM2E.v(561) " "Verilog HDL assignment warning at RAM2E.v(561): truncated value with size 32 to match size of target (3)" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 561 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 0 0 "Quartus II" 0 -1 1611862594395 "|RAM2E"} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "UFM UFM:UFM_inst " "Elaborating entity \"UFM\" for hierarchy \"UFM:UFM_inst\"" { } { { "RAM2E.v" "UFM_inst" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 79 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1611862594399 ""} +{ "Info" "ISGN_START_ELABORATION_HIERARCHY" "UFM_altufm_none_a7r UFM:UFM_inst\|UFM_altufm_none_a7r:UFM_altufm_none_a7r_component " "Elaborating entity \"UFM_altufm_none_a7r\" for hierarchy \"UFM:UFM_inst\|UFM_altufm_none_a7r:UFM_altufm_none_a7r_component\"" { } { { "UFM.v" "UFM_altufm_none_a7r_component" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/UFM.v" 216 0 0 } } } 0 12128 "Elaborating entity \"%1!s!\" for hierarchy \"%2!s!\"" 0 0 "Quartus II" 0 -1 1611862594425 ""} +{ "Info" "ICUT_CUT_TM_SUMMARY" "268 " "Implemented 268 device resources after synthesis - the final resource count might be different" { { "Info" "ICUT_CUT_TM_IPINS" "22 " "Implemented 22 input pins" { } { } 0 21058 "Implemented %1!d! input pins" 0 0 "Quartus II" 0 -1 1611862595360 ""} { "Info" "ICUT_CUT_TM_OPINS" "39 " "Implemented 39 output pins" { } { } 0 21059 "Implemented %1!d! output pins" 0 0 "Quartus II" 0 -1 1611862595360 ""} { "Info" "ICUT_CUT_TM_BIDIRS" "8 " "Implemented 8 bidirectional pins" { } { } 0 21060 "Implemented %1!d! bidirectional pins" 0 0 "Quartus II" 0 -1 1611862595360 ""} { "Info" "ICUT_CUT_TM_LCELLS" "198 " "Implemented 198 logic cells" { } { } 0 21061 "Implemented %1!d! logic cells" 0 0 "Quartus II" 0 -1 1611862595360 ""} { "Info" "ICUT_CUT_TM_UFMS" "1 " "Implemented 1 User Flash Memory blocks" { } { } 0 21070 "Implemented %1!d! User Flash Memory blocks" 0 0 "Quartus II" 0 -1 1611862595360 ""} } { } 0 21057 "Implemented %1!d! device resources after synthesis - the final resource count might be different" 0 0 "Quartus II" 0 -1 1611862595360 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/output_files/RAM2E.map.smsg " "Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/output_files/RAM2E.map.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Quartus II" 0 -1 1611862595434 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Analysis & Synthesis 0 s 5 s Quartus II 64-Bit " "Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 5 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4566 " "Peak virtual memory: 4566 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1611862595516 ""} { "Info" "IQEXE_END_BANNER_TIME" "Thu Jan 28 14:36:35 2021 " "Processing ended: Thu Jan 28 14:36:35 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1611862595516 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:02 " "Elapsed time: 00:00:02" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1611862595516 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:02 " "Total CPU time (on all processors): 00:00:02" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1611862595516 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1611862595516 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Quartus II" 0 -1 1611862596827 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Fitter Quartus II 64-Bit " "Running Quartus II 64-Bit Fitter" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1611862596828 ""} { "Info" "IQEXE_START_BANNER_TIME" "Thu Jan 28 14:36:36 2021 " "Processing started: Thu Jan 28 14:36:36 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1611862596828 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Fitter" 0 -1 1611862596828 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_fit --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E " "Command: quartus_fit --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Fitter" 0 -1 1611862596829 ""} +{ "Info" "0" "" "qfit2_default_script.tcl version: #1" { } { } 0 0 "qfit2_default_script.tcl version: #1" 0 0 "Fitter" 0 0 1611862596970 ""} +{ "Info" "0" "" "Project = RAM2E" { } { } 0 0 "Project = RAM2E" 0 0 "Fitter" 0 0 1611862596971 ""} +{ "Info" "0" "" "Revision = RAM2E" { } { } 0 0 "Revision = RAM2E" 0 0 "Fitter" 0 0 1611862596971 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Fitter" 0 -1 1611862597039 ""} +{ "Info" "IMPP_MPP_USER_DEVICE" "RAM2E EPM240T100C5 " "Selected device EPM240T100C5 for design \"RAM2E\"" { } { } 0 119006 "Selected device %2!s! for design \"%1!s!\"" 0 0 "Fitter" 0 -1 1611862597043 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1611862597090 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Fitter" 0 -1 1611862597090 ""} +{ "Info" "IFITCC_FITCC_INFO_STANDARD_FIT_COMPILATION_ON" "" "Fitter is performing a Standard Fit compilation using maximum Fitter effort to optimize design performance" { } { } 0 171004 "Fitter is performing a Standard Fit compilation using maximum Fitter effort to optimize design performance" 0 0 "Fitter" 0 -1 1611862597149 ""} +{ "Warning" "WCPT_FEATURE_DISABLED_POST" "LogicLock " "Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." { } { } 0 292013 "Feature %1!s! is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature." 0 0 "Fitter" 0 -1 1611862597162 ""} +{ "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED" "" "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" { { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EPM240T100I5 " "Device EPM240T100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1611862597357 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EPM240T100A5 " "Device EPM240T100A5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1611862597357 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EPM570T100C5 " "Device EPM570T100C5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1611862597357 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EPM570T100I5 " "Device EPM570T100I5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1611862597357 ""} { "Info" "IFSAC_FSAC_MIGRATION_NOT_SELECTED_SUB" "EPM570T100A5 " "Device EPM570T100A5 is compatible" { } { } 2 176445 "Device %1!s! is compatible" 0 0 "Quartus II" 0 -1 1611862597357 ""} } { } 2 176444 "Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices" 0 0 "Fitter" 0 -1 1611862597357 ""} +{ "Info" "ISTA_SDC_FOUND" "constraints.sdc " "Reading SDC File: 'constraints.sdc'" { } { } 0 332104 "Reading SDC File: '%1!s!'" 0 0 "Fitter" 0 -1 1611862597463 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "DRCLK " "Node: DRCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1611862597467 "|RAM2E|DRCLK"} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "ARCLK " "Node: ARCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Fitter" 0 -1 1611862597467 "|RAM2E|ARCLK"} +{ "Info" "ISTA_USER_TDC_OPTIMIZATION_GOALS" "" "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" { } { } 0 332129 "Detected timing requirements -- optimizing circuit to achieve only the specified requirements" 0 0 "Fitter" 0 -1 1611862597470 ""} +{ "Info" "ISTA_REPORT_CLOCKS_INFO" "Found 1 clocks " "Found 1 clocks" { { "Info" "ISTA_REPORT_CLOCKS_INFO" " Period Clock Name " " Period Clock Name" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1611862597470 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" "======== ============ " "======== ============" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1611862597470 ""} { "Info" "ISTA_REPORT_CLOCKS_INFO" " 69.841 C14M " " 69.841 C14M" { } { } 0 332111 "%1!s!" 0 0 "Quartus II" 0 -1 1611862597470 ""} } { } 0 332111 "%1!s!" 0 0 "Fitter" 0 -1 1611862597470 ""} +{ "Extra Info" "IFSAC_FSAC_START_REG_LOCATION_PROCESSING" "" "Performing register packing on registers with non-logic cell location assignments" { } { } 1 176273 "Performing register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1611862597474 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_REG_LOCATION_PROCESSING" "" "Completed register packing on registers with non-logic cell location assignments" { } { } 1 176274 "Completed register packing on registers with non-logic cell location assignments" 1 0 "Fitter" 0 -1 1611862597474 ""} +{ "Info" "IFYGR_FYGR_OPINFO_COMPLETED_OP" "User Assigned Global Signals Promotion Operation " "Completed User Assigned Global Signals Promotion Operation" { } { } 0 186079 "Completed %1!s!" 0 0 "Fitter" 0 -1 1611862597479 ""} +{ "Info" "IFYGR_FYGR_AUTO_GLOBAL_ASSIGNED_ALL_TO_GLOBAL" "C14M Global clock in PIN 12 " "Automatically promoted signal \"C14M\" to use Global clock in PIN 12" { } { { "RAM2E.v" "" { Text "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/RAM2E.v" 8 -1 0 } } } 0 186215 "Automatically promoted signal \"%1!s!\" to use %2!s!" 0 0 "Fitter" 0 -1 1611862597487 ""} +{ "Info" "IFYGR_FYGR_OPINFO_COMPLETED_OP" "Auto Global Promotion Operation " "Completed Auto Global Promotion Operation" { } { } 0 186079 "Completed %1!s!" 0 0 "Fitter" 0 -1 1611862597488 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_START_FYGR_REGPACKING_INFO" "" "Starting register packing" { } { } 0 176234 "Starting register packing" 0 0 "Fitter" 0 -1 1611862597490 ""} +{ "Info" "IFYGR_FYGR_INFO_AUTO_MODE_REGISTER_PACKING" "Auto Normal " "Fitter is using Normal packing mode for logic elements with Auto setting for Auto Packed Registers logic option" { } { } 0 186391 "Fitter is using %2!s! packing mode for logic elements with %1!s! setting for Auto Packed Registers logic option" 0 0 "Fitter" 0 -1 1611862597511 ""} +{ "Extra Info" "IFSAC_FSAC_START_LUT_PACKING" "" "Moving registers into LUTs to improve timing and density" { } { } 1 176244 "Moving registers into LUTs to improve timing and density" 1 0 "Fitter" 0 -1 1611862597511 ""} +{ "Info" "IFYGR_FYGR_NO_REGS_IN_IOS_HEADER" "" "Started processing fast register assignments" { } { } 0 186468 "Started processing fast register assignments" 0 0 "Fitter" 0 -1 1611862597552 ""} +{ "Info" "IFYGR_FYGR_NO_REGS_IN_IOS_FOOTER" "" "Finished processing fast register assignments" { } { } 0 186469 "Finished processing fast register assignments" 0 0 "Fitter" 0 -1 1611862597554 ""} +{ "Extra Info" "IFSAC_FSAC_FINISH_LUT_PACKING" "00:00:00 " "Finished moving registers into LUTs: elapsed time is 00:00:00" { } { } 1 176245 "Finished moving registers into LUTs: elapsed time is %1!s!" 1 0 "Fitter" 0 -1 1611862597555 ""} +{ "Info" "IFSAC_FSAC_REGISTER_PACKING_FINISH_REGPACKING_INFO" "" "Finished register packing" { } { } 0 176235 "Finished register packing" 0 0 "Fitter" 0 -1 1611862597555 ""} +{ "Info" "IFITCC_FITTER_PREPARATION_END" "00:00:00 " "Fitter preparation operations ending: elapsed time is 00:00:00" { } { } 0 171121 "Fitter preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1611862597600 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_START" "" "Fitter placement preparation operations beginning" { } { } 0 170189 "Fitter placement preparation operations beginning" 0 0 "Fitter" 0 -1 1611862597720 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_PREP_END" "00:00:00 " "Fitter placement preparation operations ending: elapsed time is 00:00:00" { } { } 0 170190 "Fitter placement preparation operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1611862597937 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_START" "" "Fitter placement operations beginning" { } { } 0 170191 "Fitter placement operations beginning" 0 0 "Fitter" 0 -1 1611862597949 ""} +{ "Info" "IFITAPI_FITAPI_INFO_VPR_PLACEMENT_FINISH" "" "Fitter placement was successful" { } { } 0 170137 "Fitter placement was successful" 0 0 "Fitter" 0 -1 1611862598355 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_PLACEMENT_END" "00:00:00 " "Fitter placement operations ending: elapsed time is 00:00:00" { } { } 0 170192 "Fitter placement operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1611862598355 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_START" "" "Fitter routing operations beginning" { } { } 0 170193 "Fitter routing operations beginning" 0 0 "Fitter" 0 -1 1611862598402 ""} +{ "Info" "IFITAPI_FITAPI_VPR_STATUS_DELAY_ADDED_FOR_HOLD" "4e+01 ns 2.6% " "4e+01 ns of routing delay (approximately 2.6% of available device routing delay) has been added to meet hold timing. For more information, refer to the Estimated Delay Added for Hold Timing section in the Fitter report." { } { } 0 170089 "%1!s! of routing delay (approximately %2!s! of available device routing delay) has been added to meet hold timing. For more information, refer to the Estimated Delay Added for Hold Timing section in the Fitter report." 0 0 "Fitter" 0 -1 1611862598625 ""} +{ "Info" "IFITAPI_FITAPI_VPR_PERCENT_ROUTING_RESOURCE_USAGE" "18 " "Router estimated average interconnect usage is 18% of the available device resources" { { "Info" "IFITAPI_FITAPI_VPR_PEAK_ROUTING_REGION" "18 X0_Y0 X8_Y5 " "Router estimated peak interconnect usage is 18% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5" { } { { "loc" "" { Generic "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/" { { 1 { 0 "Router estimated peak interconnect usage is 18% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5"} { { 11 { 0 "Router estimated peak interconnect usage is 18% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5"} 0 0 9 6 } } } } } } } 0 170196 "Router estimated peak interconnect usage is %1!d!%% of the available device resources in the region that extends from location %2!s! to location %3!s!" 0 0 "Quartus II" 0 -1 1611862598662 ""} } { } 0 170195 "Router estimated average interconnect usage is %1!d!%% of the available device resources" 0 0 "Fitter" 0 -1 1611862598662 ""} +{ "Info" "IFITAPI_FITAPI_VPR_FITTER_ROUTING_END" "00:00:00 " "Fitter routing operations ending: elapsed time is 00:00:00" { } { } 0 170194 "Fitter routing operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1611862598820 ""} +{ "Info" "IVPR20K_VPR_TIMING_ANALYSIS_TIME" "0.27 " "Total time spent on timing analysis during the Fitter is 0.27 seconds." { } { } 0 11888 "Total time spent on timing analysis during the Fitter is %1!s! seconds." 0 0 "Fitter" 0 -1 1611862598830 ""} +{ "Info" "IFITCC_FITTER_POST_OPERATION_END" "00:00:00 " "Fitter post-fit operations ending: elapsed time is 00:00:00" { } { } 0 11218 "Fitter post-fit operations ending: elapsed time is %1!s!" 0 0 "Fitter" 0 -1 1611862598835 ""} +{ "Warning" "WFIOMGR_RESERVE_ASSIGNMENT_FOR_UNUSED_PINS_IS_DEFAULT" "As output driving ground " "The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'." { } { } 0 169174 "The Reserve All Unused Pins setting has not been specified, and will default to '%1!s!'." 0 0 "Fitter" 0 -1 1611862598876 ""} +{ "Info" "IRDB_WROTE_SUPPRESSED_MSGS" "C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/output_files/RAM2E.fit.smsg " "Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld/output_files/RAM2E.fit.smsg" { } { } 0 144001 "Generated suppressed messages file %1!s!" 0 0 "Fitter" 0 -1 1611862598978 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Fitter 0 s 5 s Quartus II 64-Bit " "Quartus II 64-Bit Fitter was successful. 0 errors, 5 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4758 " "Peak virtual memory: 4758 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1611862599258 ""} { "Info" "IQEXE_END_BANNER_TIME" "Thu Jan 28 14:36:39 2021 " "Processing ended: Thu Jan 28 14:36:39 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1611862599258 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:03 " "Elapsed time: 00:00:03" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1611862599258 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:03 " "Total CPU time (on all processors): 00:00:03" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1611862599258 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Fitter" 0 -1 1611862599258 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Fitter" 0 -1 1611862600288 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "Assembler Quartus II 64-Bit " "Running Quartus II 64-Bit Assembler" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1611862600289 ""} { "Info" "IQEXE_START_BANNER_TIME" "Thu Jan 28 14:36:40 2021 " "Processing started: Thu Jan 28 14:36:40 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1611862600289 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Assembler" 0 -1 1611862600289 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_asm --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E " "Command: quartus_asm --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Assembler" 0 -1 1611862600289 ""} +{ "Info" "IASM_ASM_GENERATING_POWER_DATA" "" "Writing out detailed assembly data for power analysis" { } { } 0 115031 "Writing out detailed assembly data for power analysis" 0 0 "Assembler" 0 -1 1611862600645 ""} +{ "Info" "IASM_ASM_GENERATING_PROGRAMMING_FILES" "" "Assembler is generating device programming files" { } { } 0 115030 "Assembler is generating device programming files" 0 0 "Assembler" 0 -1 1611862600652 ""} +{ "Info" "IQEXE_ERROR_COUNT" "Assembler 0 s 0 s Quartus II 64-Bit " "Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4515 " "Peak virtual memory: 4515 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1611862600967 ""} { "Info" "IQEXE_END_BANNER_TIME" "Thu Jan 28 14:36:40 2021 " "Processing ended: Thu Jan 28 14:36:40 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1611862600967 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:00 " "Elapsed time: 00:00:00" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1611862600967 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:01 " "Total CPU time (on all processors): 00:00:01" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1611862600967 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Assembler" 0 -1 1611862600967 ""} +{ "Info" "IFLOW_DISABLED_MODULE" "PowerPlay Power Analyzer FLOW_ENABLE_POWER_ANALYZER " "Skipped module PowerPlay Power Analyzer due to the assignment FLOW_ENABLE_POWER_ANALYZER" { } { } 0 293026 "Skipped module %1!s! due to the assignment %2!s!" 0 0 "Assembler" 0 -1 1611862601573 ""} +{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Assembler" 0 -1 1611862602252 ""} +{ "Info" "IQEXE_START_BANNER_PRODUCT" "TimeQuest Timing Analyzer Quartus II 64-Bit " "Running Quartus II 64-Bit TimeQuest Timing Analyzer" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition " "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition" { } { } 0 0 "%1!s!" 0 0 "Quartus II" 0 -1 1611862602253 ""} { "Info" "IQEXE_START_BANNER_TIME" "Thu Jan 28 14:36:41 2021 " "Processing started: Thu Jan 28 14:36:41 2021" { } { } 0 0 "Processing started: %1!s!" 0 0 "Quartus II" 0 -1 1611862602253 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Quartus II" 0 -1 1611862602253 ""} +{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_sta RAM2E -c RAM2E " "Command: quartus_sta RAM2E -c RAM2E" { } { } 0 0 "Command: %1!s!" 0 0 "Quartus II" 0 -1 1611862602254 ""} +{ "Info" "0" "" "qsta_default_script.tcl version: #1" { } { } 0 0 "qsta_default_script.tcl version: #1" 0 0 "Quartus II" 0 0 1611862602417 ""} +{ "Warning" "WQCU_PARALLEL_NO_LICENSE" "" "Parallel compilation is not licensed and has been disabled" { } { } 0 20028 "Parallel compilation is not licensed and has been disabled" 0 0 "Quartus II" 0 -1 1611862602652 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "Low junction temperature 0 degrees C " "Low junction temperature is 0 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1611862602701 ""} +{ "Info" "ICUT_CUT_USING_OPERATING_CONDITION" "High junction temperature 85 degrees C " "High junction temperature is 85 degrees C" { } { } 0 21077 "%1!s! is %2!s!" 0 0 "Quartus II" 0 -1 1611862602701 ""} +{ "Info" "IDAT_DAT_STARTED" "" "Started post-fitting delay annotation" { } { } 0 306004 "Started post-fitting delay annotation" 0 0 "Quartus II" 0 -1 1611862602760 ""} +{ "Info" "IDAT_DAT_COMPLETED" "" "Delay annotation completed successfully" { } { } 0 306005 "Delay annotation completed successfully" 0 0 "Quartus II" 0 -1 1611862603084 ""} +{ "Info" "ISTA_SDC_FOUND" "constraints.sdc " "Reading SDC File: 'constraints.sdc'" { } { } 0 332104 "Reading SDC File: '%1!s!'" 0 0 "Quartus II" 0 -1 1611862603191 ""} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "DRCLK " "Node: DRCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1611862603205 "|RAM2E|DRCLK"} +{ "Warning" "WSTA_NODE_FOUND_WITHOUT_CLOCK_ASSIGNMENT" "ARCLK " "Node: ARCLK was determined to be a clock but was found without an associated clock assignment." { } { } 0 332060 "Node: %1!s! was determined to be a clock but was found without an associated clock assignment." 0 0 "Quartus II" 0 -1 1611862603205 "|RAM2E|ARCLK"} +{ "Info" "0" "" "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" { } { } 0 0 "Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON" 0 0 "Quartus II" 0 0 1611862603208 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "setup 29.169 " "Worst-case setup slack is 29.169" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603267 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603267 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 29.169 0.000 C14M " " 29.169 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603267 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1611862603267 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "hold 1.646 " "Worst-case hold slack is 1.646" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603277 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603277 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 1.646 0.000 C14M " " 1.646 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603277 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1611862603277 ""} +{ "Info" "ISTA_NO_PATHS_TO_REPORT" "Recovery " "No Recovery paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1611862603289 ""} +{ "Info" "ISTA_NO_PATHS_TO_REPORT" "Removal " "No Removal paths to report" { } { } 0 332140 "No %1!s! paths to report" 0 0 "Quartus II" 0 -1 1611862603298 ""} +{ "Info" "ISTA_WORST_CASE_SLACK" "minimum pulse width 34.654 " "Worst-case minimum pulse width slack is 34.654" { { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " Slack End Point TNS Clock " " Slack End Point TNS Clock " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603307 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" "========= ============= ===================== " "========= ============= =====================" { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603307 ""} { "Info" "ISTA_CREATE_TIMING_SUMMARY_INFO" " 34.654 0.000 C14M " " 34.654 0.000 C14M " { } { } 0 332119 "%1!s!" 0 0 "Quartus II" 0 -1 1611862603307 ""} } { } 0 332146 "Worst-case %1!s! slack is %2!s!" 0 0 "Quartus II" 0 -1 1611862603307 ""} +{ "Info" "ISTA_METASTABILITY_REPORT_DISABLED" "" "The selected device family is not supported by the report_metastability command." { } { } 0 332001 "The selected device family is not supported by the report_metastability command." 0 0 "Quartus II" 0 -1 1611862603380 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "setup " "Design is not fully constrained for setup requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1611862603420 ""} +{ "Info" "ISTA_UCP_NOT_CONSTRAINED" "hold " "Design is not fully constrained for hold requirements" { } { } 0 332102 "Design is not fully constrained for %1!s! requirements" 0 0 "Quartus II" 0 -1 1611862603420 ""} +{ "Info" "IQEXE_ERROR_COUNT" "TimeQuest Timing Analyzer 0 s 3 s Quartus II 64-Bit " "Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 3 warnings" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "4513 " "Peak virtual memory: 4513 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Quartus II" 0 -1 1611862603567 ""} { "Info" "IQEXE_END_BANNER_TIME" "Thu Jan 28 14:36:43 2021 " "Processing ended: Thu Jan 28 14:36:43 2021" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Quartus II" 0 -1 1611862603567 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:02 " "Elapsed time: 00:00:02" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Quartus II" 0 -1 1611862603567 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:02 " "Total CPU time (on all processors): 00:00:02" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Quartus II" 0 -1 1611862603567 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1611862603567 ""} +{ "Info" "IFLOW_ERROR_COUNT" "Full Compilation 0 s 13 s " "Quartus II Full Compilation was successful. 0 errors, 13 warnings" { } { } 0 293000 "Quartus II %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Quartus II" 0 -1 1611862604230 ""} diff --git a/cpld_maxv/greybox_tmp/cbx_args.txt b/cpld_maxv/greybox_tmp/cbx_args.txt new file mode 100644 index 0000000..c8d6a96 --- /dev/null +++ b/cpld_maxv/greybox_tmp/cbx_args.txt @@ -0,0 +1,25 @@ +ERASE_TIME=500000000 +INTENDED_DEVICE_FAMILY="MAX V" +LPM_FILE=RAM2E.mif +LPM_HINT=UNUSED +LPM_TYPE=altufm_none +OSC_FREQUENCY=180000 +PORT_ARCLKENA=PORT_UNUSED +PORT_DRCLKENA=PORT_UNUSED +PROGRAM_TIME=1600000 +WIDTH_UFM_ADDRESS=9 +DEVICE_FAMILY="MAX V" +CBX_AUTO_BLACKBOX=ALL +arclk +ardin +arshft +busy +drclk +drdin +drdout +drshft +erase +osc +oscena +program +rtpbusy diff --git a/cpld_maxv/incremental_db/README b/cpld_maxv/incremental_db/README new file mode 100644 index 0000000..9f62dcd --- /dev/null +++ b/cpld_maxv/incremental_db/README @@ -0,0 +1,11 @@ +This folder contains data for incremental compilation. + +The compiled_partitions sub-folder contains previous compilation results for each partition. +As long as this folder is preserved, incremental compilation results from earlier compiles +can be re-used. To perform a clean compilation from source files for all partitions, both +the db and incremental_db folder should be removed. + +The imported_partitions sub-folder contains the last imported QXP for each imported partition. +As long as this folder is preserved, imported partitions will be automatically re-imported +when the db or incremental_db/compiled_partitions folders are removed. + diff --git a/cpld_maxv/incremental_db/compiled_partitions/RAM2E.db_info b/cpld_maxv/incremental_db/compiled_partitions/RAM2E.db_info new file mode 100644 index 0000000..13cf0a5 --- /dev/null +++ b/cpld_maxv/incremental_db/compiled_partitions/RAM2E.db_info @@ -0,0 +1,3 @@ +Quartus_Version = Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +Version_Index = 302049280 +Creation_Time = Wed Sep 16 19:59:34 2020 diff --git a/cpld_maxv/incremental_db/compiled_partitions/RAM2E.root_partition.map.kpt b/cpld_maxv/incremental_db/compiled_partitions/RAM2E.root_partition.map.kpt new file mode 100644 index 0000000000000000000000000000000000000000..b06a357e3417d07324f95be3c71d6899c3323de5 GIT binary patch literal 2893 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/output_files/RAM2E.asm.rpt b/cpld_maxv/output_files/RAM2E.asm.rpt new file mode 100644 index 0000000..839fec4 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.asm.rpt @@ -0,0 +1,114 @@ +Assembler report for RAM2E +Wed Mar 10 21:02:34 2021 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Assembler Summary + 3. Assembler Settings + 4. Assembler Generated Files + 5. Assembler Device Options: C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.pof + 6. Assembler Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++---------------------------------------------------------------+ +; Assembler Summary ; ++-----------------------+---------------------------------------+ +; Assembler Status ; Successful - Wed Mar 10 21:02:34 2021 ; +; Revision Name ; RAM2E ; +; Top-level Entity Name ; RAM2E ; +; Family ; MAX V ; +; Device ; 5M240ZT100C5 ; ++-----------------------+---------------------------------------+ + + ++---------------------------------------------------------------------------------------------------------+ +; Assembler Settings ; ++-----------------------------------------------------------------------------+-----------+---------------+ +; Option ; Setting ; Default Value ; ++-----------------------------------------------------------------------------+-----------+---------------+ +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Compression mode ; Off ; Off ; +; Clock source for configuration device ; Internal ; Internal ; +; Clock frequency of the configuration device ; 10 MHZ ; 10 MHz ; +; Divide clock frequency by ; 1 ; 1 ; +; Auto user code ; On ; On ; +; Security bit ; Off ; Off ; +; Use configuration device ; On ; On ; +; Configuration device ; Auto ; Auto ; +; Configuration device auto user code ; Off ; Off ; +; Generate Tabular Text File (.ttf) For Target Device ; Off ; Off ; +; Generate Raw Binary File (.rbf) For Target Device ; Off ; Off ; +; Generate Hexadecimal (Intel-Format) Output File (.hexout) for Target Device ; Off ; Off ; +; Hexadecimal Output File start address ; 0 ; 0 ; +; Hexadecimal Output File count direction ; Up ; Up ; +; Generate Serial Vector Format File (.svf) for Target Device ; Off ; Off ; +; Generate a JEDEC STAPL Format File (.jam) for Target Device ; Off ; Off ; +; Generate a compressed Jam STAPL Byte Code 2.0 File (.jbc) for Target Device ; Off ; Off ; +; Generate a compressed Jam STAPL Byte Code 2.0 File (.jbc) for Target Device ; On ; On ; +; In-System Programming Default Clamp State ; Tri-state ; Tri-state ; ++-----------------------------------------------------------------------------+-----------+---------------+ + + ++-----------------------------------------------------------------------------------------+ +; Assembler Generated Files ; ++-----------------------------------------------------------------------------------------+ +; File Name ; ++-----------------------------------------------------------------------------------------+ +; C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.pof ; ++-----------------------------------------------------------------------------------------+ + + ++-------------------------------------------------------------------------------------------------------------------+ +; Assembler Device Options: C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.pof ; ++----------------+--------------------------------------------------------------------------------------------------+ +; Option ; Setting ; ++----------------+--------------------------------------------------------------------------------------------------+ +; Device ; 5M240ZT100C5 ; +; JTAG usercode ; 0x0016E201 ; +; Checksum ; 0x0016E6F9 ; ++----------------+--------------------------------------------------------------------------------------------------+ + + ++--------------------+ +; Assembler Messages ; ++--------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit Assembler + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Wed Mar 10 21:02:33 2021 +Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E +Info (115031): Writing out detailed assembly data for power analysis +Info (115030): Assembler is generating device programming files +Info: Quartus II 64-Bit Assembler was successful. 0 errors, 0 warnings + Info: Peak virtual memory: 4516 megabytes + Info: Processing ended: Wed Mar 10 21:02:35 2021 + Info: Elapsed time: 00:00:02 + Info: Total CPU time (on all processors): 00:00:01 + + diff --git a/cpld_maxv/output_files/RAM2E.done b/cpld_maxv/output_files/RAM2E.done new file mode 100644 index 0000000..e633e3f --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.done @@ -0,0 +1 @@ +Wed Mar 10 21:02:39 2021 diff --git a/cpld_maxv/output_files/RAM2E.fit.rpt b/cpld_maxv/output_files/RAM2E.fit.rpt new file mode 100644 index 0000000..cecc9b0 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.fit.rpt @@ -0,0 +1,987 @@ +Fitter report for RAM2E +Wed Mar 10 21:02:32 2021 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Fitter Summary + 3. Fitter Settings + 4. Parallel Compilation + 5. Pin-Out File + 6. Fitter Resource Usage Summary + 7. Input Pins + 8. Output Pins + 9. Bidir Pins + 10. I/O Bank Usage + 11. All Package Pins + 12. Output Pin Default Load For Reported TCO + 13. Fitter Resource Utilization by Entity + 14. Delay Chain Summary + 15. Control Signals + 16. Global & Other Fast Signals + 17. Non-Global High Fan-Out Signals + 18. Other Routing Usage Summary + 19. LAB Logic Elements + 20. LAB-wide Signals + 21. LAB Signals Sourced + 22. LAB Signals Sourced Out + 23. LAB Distinct Inputs + 24. Fitter Device Options + 25. Fitter Messages + 26. Fitter Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++-----------------------------------------------------------------------------+ +; Fitter Summary ; ++---------------------------+-------------------------------------------------+ +; Fitter Status ; Successful - Wed Mar 10 21:02:32 2021 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; RAM2E ; +; Top-level Entity Name ; RAM2E ; +; Family ; MAX V ; +; Device ; 5M240ZT100C5 ; +; Timing Models ; Final ; +; Total logic elements ; 189 / 240 ( 79 % ) ; +; Total pins ; 69 / 79 ( 87 % ) ; +; Total virtual pins ; 0 ; +; UFM blocks ; 1 / 1 ( 100 % ) ; ++---------------------------+-------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Settings ; ++----------------------------------------------------------------------------+--------------------------------+--------------------------------+ +; Option ; Setting ; Default Value ; ++----------------------------------------------------------------------------+--------------------------------+--------------------------------+ +; Device ; 5M240ZT100C5 ; ; +; Minimum Core Junction Temperature ; 0 ; ; +; Maximum Core Junction Temperature ; 85 ; ; +; Fit Attempts to Skip ; 0 ; 0.0 ; +; Device I/O Standard ; 3.3-V LVCMOS ; ; +; Optimize Multi-Corner Timing ; On ; Off ; +; Fitter Effort ; Standard Fit ; Auto Fit ; +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Router Timing Optimization Level ; Normal ; Normal ; +; Placement Effort Multiplier ; 1.0 ; 1.0 ; +; Router Effort Multiplier ; 1.0 ; 1.0 ; +; Always Enable Input Buffers ; Off ; Off ; +; Optimize Hold Timing ; IO Paths and Minimum TPD Paths ; IO Paths and Minimum TPD Paths ; +; Guarantee I/O Paths Have Zero Hold Time at Fast Corner ; On ; On ; +; PowerPlay Power Optimization ; Normal compilation ; Normal compilation ; +; Optimize Timing ; Normal compilation ; Normal compilation ; +; Optimize Timing for ECOs ; Off ; Off ; +; Regenerate full fit report during ECO compiles ; Off ; Off ; +; Optimize IOC Register Placement for Timing ; Normal ; Normal ; +; Limit to One Fitting Attempt ; Off ; Off ; +; Final Placement Optimizations ; Automatically ; Automatically ; +; Fitter Aggressive Routability Optimizations ; Automatically ; Automatically ; +; Fitter Initial Placement Seed ; 1 ; 1 ; +; Slow Slew Rate ; Off ; Off ; +; PCI I/O ; Off ; Off ; +; Weak Pull-Up Resistor ; Off ; Off ; +; Enable Bus-Hold Circuitry ; Off ; Off ; +; Auto Delay Chains ; On ; On ; +; Auto Delay Chains for High Fanout Input Pins ; Off ; Off ; +; Perform Physical Synthesis for Combinational Logic for Performance ; Off ; Off ; +; Perform Register Duplication for Performance ; Off ; Off ; +; Perform Register Retiming for Performance ; Off ; Off ; +; Perform Asynchronous Signal Pipelining ; Off ; Off ; +; Physical Synthesis Effort Level ; Normal ; Normal ; +; Logic Cell Insertion - Logic Duplication ; Auto ; Auto ; +; Auto Register Duplication ; Auto ; Auto ; +; Auto Global Clock ; On ; On ; +; Auto Global Register Control Signals ; On ; On ; +; Force Fitter to Avoid Periphery Placement Warnings ; Off ; Off ; ++----------------------------------------------------------------------------+--------------------------------+--------------------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 8 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++--------------+ +; Pin-Out File ; ++--------------+ +The pin-out file can be found in C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.pin. + + ++------------------------------------------------------------------+ +; Fitter Resource Usage Summary ; ++---------------------------------------------+--------------------+ +; Resource ; Usage ; ++---------------------------------------------+--------------------+ +; Total logic elements ; 189 / 240 ( 79 % ) ; +; -- Combinational with no register ; 82 ; +; -- Register only ; 17 ; +; -- Combinational with a register ; 90 ; +; ; ; +; Logic element usage by number of LUT inputs ; ; +; -- 4 input functions ; 90 ; +; -- 3 input functions ; 43 ; +; -- 2 input functions ; 35 ; +; -- 1 input functions ; 3 ; +; -- 0 input functions ; 1 ; +; ; ; +; Logic elements by mode ; ; +; -- normal mode ; 175 ; +; -- arithmetic mode ; 14 ; +; -- qfbk mode ; 9 ; +; -- register cascade mode ; 0 ; +; -- synchronous clear/load mode ; 14 ; +; -- asynchronous clear/load mode ; 0 ; +; ; ; +; Total registers ; 107 / 240 ( 45 % ) ; +; Total LABs ; 23 / 24 ( 96 % ) ; +; Logic elements in carry chains ; 15 ; +; Virtual pins ; 0 ; +; I/O pins ; 69 / 79 ( 87 % ) ; +; -- Clock pins ; 3 / 4 ( 75 % ) ; +; ; ; +; Global signals ; 1 ; +; UFM blocks ; 1 / 1 ( 100 % ) ; +; Global clocks ; 1 / 4 ( 25 % ) ; +; JTAGs ; 0 / 1 ( 0 % ) ; +; Average interconnect usage (total/H/V) ; 24% / 25% / 23% ; +; Peak interconnect usage (total/H/V) ; 24% / 25% / 23% ; +; Maximum fan-out ; 107 ; +; Highest non-global fan-out ; 35 ; +; Total fan-out ; 811 ; +; Average fan-out ; 3.13 ; ++---------------------------------------------+--------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Input Pins ; ++--------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------+--------------+--------------+----------------------+ +; Name ; Pin # ; I/O Bank ; X coordinate ; Y coordinate ; Cell number ; Combinational Fan-Out ; Registered Fan-Out ; Global ; PCI I/O Enabled ; Bus Hold ; Weak Pull Up ; I/O Standard ; Location assigned by ; ++--------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------+--------------+--------------+----------------------+ +; Ain[0] ; 56 ; 2 ; 8 ; 1 ; 0 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[1] ; 54 ; 2 ; 8 ; 1 ; 2 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[2] ; 43 ; 1 ; 6 ; 0 ; 3 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[3] ; 47 ; 1 ; 6 ; 0 ; 1 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[4] ; 44 ; 1 ; 6 ; 0 ; 2 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[5] ; 34 ; 1 ; 3 ; 0 ; 1 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[6] ; 39 ; 1 ; 5 ; 0 ; 3 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Ain[7] ; 53 ; 2 ; 8 ; 1 ; 3 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; C14M ; 12 ; 1 ; 1 ; 3 ; 3 ; 107 ; 0 ; yes ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[0] ; 38 ; 1 ; 4 ; 0 ; 0 ; 10 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[1] ; 40 ; 1 ; 5 ; 0 ; 2 ; 11 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[2] ; 42 ; 1 ; 5 ; 0 ; 0 ; 10 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[3] ; 41 ; 1 ; 5 ; 0 ; 1 ; 8 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[4] ; 48 ; 1 ; 6 ; 0 ; 0 ; 7 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[5] ; 49 ; 1 ; 7 ; 0 ; 2 ; 7 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[6] ; 36 ; 1 ; 4 ; 0 ; 2 ; 8 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; Din[7] ; 35 ; 1 ; 3 ; 0 ; 0 ; 8 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; PHI1 ; 37 ; 1 ; 4 ; 0 ; 1 ; 3 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; nC07X ; 52 ; 2 ; 8 ; 1 ; 4 ; 1 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; nEN80 ; 28 ; 1 ; 2 ; 0 ; 1 ; 4 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; nWE ; 51 ; 1 ; 7 ; 0 ; 0 ; 2 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; +; nWE80 ; 33 ; 1 ; 3 ; 0 ; 2 ; 2 ; 0 ; no ; no ; no ; Off ; 3.3-V LVCMOS ; User ; ++--------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------+--------------+--------------+----------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Output Pins ; ++---------+-------+----------+--------------+--------------+-------------+-----------------+----------------+-----------------+------------+---------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ +; Name ; Pin # ; I/O Bank ; X coordinate ; Y coordinate ; Cell number ; Output Register ; Slow Slew Rate ; PCI I/O Enabled ; Open Drain ; TRI Primitive ; Bus Hold ; Weak Pull Up ; I/O Standard ; Current Strength ; Fast Output Connection ; Location assigned by ; Load ; Output Enable Source ; Output Enable Group ; ++---------+-------+----------+--------------+--------------+-------------+-----------------+----------------+-----------------+------------+---------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ +; BA[0] ; 6 ; 1 ; 1 ; 3 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; BA[1] ; 14 ; 1 ; 1 ; 2 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; CKE ; 4 ; 1 ; 1 ; 4 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; DQMH ; 100 ; 2 ; 2 ; 5 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; DQML ; 98 ; 2 ; 2 ; 5 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Dout[0] ; 77 ; 2 ; 7 ; 5 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Dout[1] ; 76 ; 2 ; 7 ; 5 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Dout[2] ; 74 ; 2 ; 8 ; 4 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Dout[3] ; 75 ; 2 ; 7 ; 5 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Dout[4] ; 73 ; 2 ; 8 ; 4 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Dout[5] ; 72 ; 2 ; 8 ; 4 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Dout[6] ; 84 ; 2 ; 6 ; 5 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Dout[7] ; 85 ; 2 ; 5 ; 5 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[0] ; 18 ; 1 ; 1 ; 1 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[10] ; 16 ; 1 ; 1 ; 2 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[11] ; 7 ; 1 ; 1 ; 3 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[1] ; 20 ; 1 ; 1 ; 1 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[2] ; 30 ; 1 ; 3 ; 0 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[3] ; 27 ; 1 ; 2 ; 0 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[4] ; 26 ; 1 ; 2 ; 0 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[5] ; 29 ; 1 ; 2 ; 0 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[6] ; 21 ; 1 ; 1 ; 1 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[7] ; 19 ; 1 ; 1 ; 1 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[8] ; 17 ; 1 ; 1 ; 2 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; RA[9] ; 15 ; 1 ; 1 ; 2 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Vout[0] ; 70 ; 2 ; 8 ; 4 ; 4 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Vout[1] ; 67 ; 2 ; 8 ; 3 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Vout[2] ; 69 ; 2 ; 8 ; 3 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Vout[3] ; 62 ; 2 ; 8 ; 2 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Vout[4] ; 71 ; 2 ; 8 ; 4 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Vout[5] ; 68 ; 2 ; 8 ; 3 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; Vout[6] ; 58 ; 2 ; 8 ; 2 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; Vout[7] ; 57 ; 2 ; 8 ; 2 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; nCAS ; 3 ; 1 ; 1 ; 4 ; 1 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; nCS ; 8 ; 1 ; 1 ; 3 ; 2 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; nDOE ; 55 ; 2 ; 8 ; 1 ; 1 ; no ; yes ; no ; no ; no ; no ; On ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; nRAS ; 5 ; 1 ; 1 ; 4 ; 3 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; yes ; User ; 10 pF ; - ; - ; +; nRWE ; 2 ; 1 ; 1 ; 4 ; 0 ; no ; yes ; no ; no ; no ; no ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; +; nVOE ; 50 ; 1 ; 7 ; 0 ; 1 ; no ; yes ; no ; no ; no ; no ; On ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; - ; - ; ++---------+-------+----------+--------------+--------------+-------------+-----------------+----------------+-----------------+------------+---------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ + + ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Bidir Pins ; ++-------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------------+-----------------+------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ +; Name ; Pin # ; I/O Bank ; X coordinate ; Y coordinate ; Cell number ; Combinational Fan-Out ; Registered Fan-Out ; Global ; Output Register ; Slow Slew Rate ; PCI I/O Enabled ; Open Drain ; Bus Hold ; Weak Pull Up ; I/O Standard ; Current Strength ; Fast Output Connection ; Location assigned by ; Load ; Output Enable Source ; Output Enable Group ; ++-------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------------+-----------------+------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ +; RD[0] ; 97 ; 2 ; 3 ; 5 ; 3 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[1] ; 90 ; 2 ; 4 ; 5 ; 1 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[2] ; 99 ; 2 ; 2 ; 5 ; 1 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[3] ; 89 ; 2 ; 4 ; 5 ; 0 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[4] ; 91 ; 2 ; 4 ; 5 ; 2 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[5] ; 92 ; 2 ; 3 ; 5 ; 0 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[6] ; 95 ; 2 ; 3 ; 5 ; 1 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; +; RD[7] ; 96 ; 2 ; 3 ; 5 ; 2 ; 2 ; 0 ; no ; no ; yes ; no ; no ; yes ; Off ; 3.3-V LVCMOS ; 4mA ; no ; User ; 10 pF ; RDOE ; - ; ++-------+-------+----------+--------------+--------------+-------------+-----------------------+--------------------+--------+-----------------+----------------+-----------------+------------+----------+--------------+--------------+------------------+------------------------+----------------------+-------+----------------------+---------------------+ + + ++-------------------------------------------------------------+ +; I/O Bank Usage ; ++----------+-------------------+---------------+--------------+ +; I/O Bank ; Usage ; VCCIO Voltage ; VREF Voltage ; ++----------+-------------------+---------------+--------------+ +; 1 ; 38 / 38 ( 100 % ) ; 3.3V ; -- ; +; 2 ; 31 / 41 ( 76 % ) ; 3.3V ; -- ; ++----------+-------------------+---------------+--------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------+ +; All Package Pins ; ++----------+------------+----------+----------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +; Location ; Pad Number ; I/O Bank ; Pin Name/Usage ; Dir. ; I/O Standard ; Voltage ; I/O Type ; User Assignment ; Bus Hold ; Weak Pull Up ; ++----------+------------+----------+----------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +; 1 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 2 ; 0 ; 1 ; nRWE ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 3 ; 1 ; 1 ; nCAS ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 4 ; 2 ; 1 ; CKE ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 5 ; 3 ; 1 ; nRAS ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 6 ; 4 ; 1 ; BA[0] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 7 ; 5 ; 1 ; RA[11] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 8 ; 6 ; 1 ; nCS ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 9 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 10 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 11 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 12 ; 7 ; 1 ; C14M ; input ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 13 ; ; ; VCCINT ; power ; ; 1.8V ; -- ; ; -- ; -- ; +; 14 ; 8 ; 1 ; BA[1] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 15 ; 9 ; 1 ; RA[9] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 16 ; 10 ; 1 ; RA[10] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 17 ; 11 ; 1 ; RA[8] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 18 ; 12 ; 1 ; RA[0] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 19 ; 13 ; 1 ; RA[7] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 20 ; 14 ; 1 ; RA[1] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 21 ; 15 ; 1 ; RA[6] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 22 ; 16 ; 1 ; #TMS ; input ; ; ; -- ; ; -- ; -- ; +; 23 ; 17 ; 1 ; #TDI ; input ; ; ; -- ; ; -- ; -- ; +; 24 ; 18 ; 1 ; #TCK ; input ; ; ; -- ; ; -- ; -- ; +; 25 ; 19 ; 1 ; #TDO ; output ; ; ; -- ; ; -- ; -- ; +; 26 ; 20 ; 1 ; RA[4] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 27 ; 21 ; 1 ; RA[3] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 28 ; 22 ; 1 ; nEN80 ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 29 ; 23 ; 1 ; RA[5] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 30 ; 24 ; 1 ; RA[2] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 31 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 32 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 33 ; 25 ; 1 ; nWE80 ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 34 ; 26 ; 1 ; Ain[5] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 35 ; 27 ; 1 ; Din[7] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 36 ; 28 ; 1 ; Din[6] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 37 ; 29 ; 1 ; PHI1 ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 38 ; 30 ; 1 ; Din[0] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 39 ; 31 ; 1 ; Ain[6] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 40 ; 32 ; 1 ; Din[1] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 41 ; 33 ; 1 ; Din[3] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 42 ; 34 ; 1 ; Din[2] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 43 ; 35 ; 1 ; Ain[2] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 44 ; 36 ; 1 ; Ain[4] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 45 ; ; 1 ; VCCIO1 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 46 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 47 ; 37 ; 1 ; Ain[3] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 48 ; 38 ; 1 ; Din[4] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 49 ; 39 ; 1 ; Din[5] ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 50 ; 40 ; 1 ; nVOE ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; On ; +; 51 ; 41 ; 1 ; nWE ; input ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 52 ; 42 ; 2 ; nC07X ; input ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 53 ; 43 ; 2 ; Ain[7] ; input ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 54 ; 44 ; 2 ; Ain[1] ; input ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 55 ; 45 ; 2 ; nDOE ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; On ; +; 56 ; 46 ; 2 ; Ain[0] ; input ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 57 ; 47 ; 2 ; Vout[7] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 58 ; 48 ; 2 ; Vout[6] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 59 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 60 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 61 ; 49 ; 2 ; GND* ; ; ; ; Row I/O ; ; no ; Off ; +; 62 ; 50 ; 2 ; Vout[3] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 63 ; ; ; VCCINT ; power ; ; 1.8V ; -- ; ; -- ; -- ; +; 64 ; 51 ; 2 ; GND* ; ; ; ; Row I/O ; ; no ; Off ; +; 65 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 66 ; 52 ; 2 ; GND* ; ; ; ; Row I/O ; ; no ; Off ; +; 67 ; 53 ; 2 ; Vout[1] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 68 ; 54 ; 2 ; Vout[5] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 69 ; 55 ; 2 ; Vout[2] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 70 ; 56 ; 2 ; Vout[0] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 71 ; 57 ; 2 ; Vout[4] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 72 ; 58 ; 2 ; Dout[5] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 73 ; 59 ; 2 ; Dout[4] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 74 ; 60 ; 2 ; Dout[2] ; output ; 3.3-V LVCMOS ; ; Row I/O ; Y ; no ; Off ; +; 75 ; 61 ; 2 ; Dout[3] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 76 ; 62 ; 2 ; Dout[1] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 77 ; 63 ; 2 ; Dout[0] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 78 ; 64 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 79 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 80 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 81 ; 65 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 82 ; 66 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 83 ; 67 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 84 ; 68 ; 2 ; Dout[6] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 85 ; 69 ; 2 ; Dout[7] ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 86 ; 70 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 87 ; 71 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 88 ; 72 ; 2 ; GND* ; ; ; ; Column I/O ; ; no ; Off ; +; 89 ; 73 ; 2 ; RD[3] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 90 ; 74 ; 2 ; RD[1] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 91 ; 75 ; 2 ; RD[4] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 92 ; 76 ; 2 ; RD[5] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 93 ; ; ; GND ; gnd ; ; ; -- ; ; -- ; -- ; +; 94 ; ; 2 ; VCCIO2 ; power ; ; 3.3V ; -- ; ; -- ; -- ; +; 95 ; 77 ; 2 ; RD[6] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 96 ; 78 ; 2 ; RD[7] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 97 ; 79 ; 2 ; RD[0] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 98 ; 80 ; 2 ; DQML ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; +; 99 ; 81 ; 2 ; RD[2] ; bidir ; 3.3-V LVCMOS ; ; Column I/O ; Y ; yes ; Off ; +; 100 ; 82 ; 2 ; DQMH ; output ; 3.3-V LVCMOS ; ; Column I/O ; Y ; no ; Off ; ++----------+------------+----------+----------------+--------+--------------+---------+------------+-----------------+----------+--------------+ +Note: Pin directions (input, output or bidir) are based on device operating in user mode. + + ++-------------------------------------------------------------+ +; Output Pin Default Load For Reported TCO ; ++----------------------------+-------+------------------------+ +; I/O Standard ; Load ; Termination Resistance ; ++----------------------------+-------+------------------------+ +; 3.3-V LVTTL ; 10 pF ; Not Available ; +; 3.3-V LVCMOS ; 10 pF ; Not Available ; +; 2.5 V ; 10 pF ; Not Available ; +; 1.8 V ; 10 pF ; Not Available ; +; 1.5 V ; 10 pF ; Not Available ; +; 3.3V Schmitt Trigger Input ; 10 pF ; Not Available ; +; 2.5V Schmitt Trigger Input ; 10 pF ; Not Available ; +; 1.2 V ; 10 pF ; Not Available ; +; LVDS_E_3R ; 10 pF ; Not Available ; +; RSDS_E_3R ; 10 pF ; Not Available ; ++----------------------------+-------+------------------------+ +Note: User assignments will override these defaults. The user specified values are listed in the Output Pins and Bidir Pins tables. + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Fitter Resource Utilization by Entity ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +; Compilation Hierarchy Node ; Logic Cells ; LC Registers ; UFM Blocks ; Pins ; Virtual Pins ; LUT-Only LCs ; Register-Only LCs ; LUT/Register LCs ; Carry Chain LCs ; Packed LCs ; Full Hierarchy Name ; Library Name ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +; |RAM2E ; 189 (189) ; 107 ; 1 ; 69 ; 0 ; 82 (82) ; 17 (17) ; 90 (90) ; 15 (15) ; 9 (9) ; |RAM2E ; work ; +; |UFM:UFM_inst| ; 0 (0) ; 0 ; 1 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; |RAM2E|UFM:UFM_inst ; work ; +; |UFM_altufm_none_e4r:UFM_altufm_none_e4r_component| ; 0 (0) ; 0 ; 1 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; |RAM2E|UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component ; work ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +Note: For table entries with two numbers listed, the numbers in parentheses indicate the number of resources of the given type used by the specific entity alone. The numbers listed outside of parentheses indicate the total resources of the given type used by the specific entity and all of its sub-entities in the hierarchy. + + ++------------------------------------+ +; Delay Chain Summary ; ++---------+----------+---------------+ +; Name ; Pin Type ; Pad to Core 0 ; ++---------+----------+---------------+ +; nWE ; Input ; (0) ; +; nEN80 ; Input ; (0) ; +; PHI1 ; Input ; (1) ; +; C14M ; Input ; (0) ; +; nWE80 ; Input ; (0) ; +; Ain[0] ; Input ; (0) ; +; Ain[1] ; Input ; (0) ; +; Ain[2] ; Input ; (0) ; +; Ain[3] ; Input ; (0) ; +; Ain[4] ; Input ; (0) ; +; Ain[5] ; Input ; (0) ; +; Ain[6] ; Input ; (0) ; +; Ain[7] ; Input ; (0) ; +; Din[6] ; Input ; (0) ; +; Din[4] ; Input ; (0) ; +; Din[5] ; Input ; (0) ; +; Din[7] ; Input ; (0) ; +; Din[0] ; Input ; (0) ; +; Din[1] ; Input ; (0) ; +; Din[2] ; Input ; (0) ; +; Din[3] ; Input ; (0) ; +; nC07X ; Input ; (0) ; +; Dout[0] ; Output ; -- ; +; Dout[1] ; Output ; -- ; +; Dout[2] ; Output ; -- ; +; Dout[3] ; Output ; -- ; +; Dout[4] ; Output ; -- ; +; Dout[5] ; Output ; -- ; +; Dout[6] ; Output ; -- ; +; Dout[7] ; Output ; -- ; +; nDOE ; Output ; -- ; +; Vout[0] ; Output ; -- ; +; Vout[1] ; Output ; -- ; +; Vout[2] ; Output ; -- ; +; Vout[3] ; Output ; -- ; +; Vout[4] ; Output ; -- ; +; Vout[5] ; Output ; -- ; +; Vout[6] ; Output ; -- ; +; Vout[7] ; Output ; -- ; +; nVOE ; Output ; -- ; +; CKE ; Output ; -- ; +; nCS ; Output ; -- ; +; nRAS ; Output ; -- ; +; nCAS ; Output ; -- ; +; nRWE ; Output ; -- ; +; BA[0] ; Output ; -- ; +; BA[1] ; Output ; -- ; +; RA[0] ; Output ; -- ; +; RA[1] ; Output ; -- ; +; RA[2] ; Output ; -- ; +; RA[3] ; Output ; -- ; +; RA[4] ; Output ; -- ; +; RA[5] ; Output ; -- ; +; RA[6] ; Output ; -- ; +; RA[7] ; Output ; -- ; +; RA[8] ; Output ; -- ; +; RA[9] ; Output ; -- ; +; RA[10] ; Output ; -- ; +; RA[11] ; Output ; -- ; +; DQML ; Output ; -- ; +; DQMH ; Output ; -- ; +; RD[0] ; Bidir ; (0) ; +; RD[1] ; Bidir ; (0) ; +; RD[2] ; Bidir ; (0) ; +; RD[3] ; Bidir ; (0) ; +; RD[4] ; Bidir ; (0) ; +; RD[5] ; Bidir ; (0) ; +; RD[6] ; Bidir ; (0) ; +; RD[7] ; Bidir ; (0) ; ++---------+----------+---------------+ + + ++--------------------------------------------------------------------------------------------------------+ +; Control Signals ; ++-------------+-------------+---------+---------------+--------+----------------------+------------------+ +; Name ; Location ; Fan-Out ; Usage ; Global ; Global Resource Used ; Global Line Name ; ++-------------+-------------+---------+---------------+--------+----------------------+------------------+ +; C14M ; PIN_12 ; 107 ; Clock ; yes ; Global Clock ; GCLK0 ; +; CS[0]~2 ; LC_X6_Y2_N4 ; 3 ; Clock enable ; no ; -- ; -- ; +; Equal9~0 ; LC_X6_Y2_N2 ; 14 ; Clock enable ; no ; -- ; -- ; +; Equal9~1 ; LC_X7_Y2_N5 ; 8 ; Clock enable ; no ; -- ; -- ; +; RA[4]~1 ; LC_X2_Y2_N1 ; 8 ; Clock enable ; no ; -- ; -- ; +; RDOE ; LC_X2_Y3_N8 ; 8 ; Output enable ; no ; -- ; -- ; +; RWBank[4]~1 ; LC_X4_Y2_N1 ; 13 ; Clock enable ; no ; -- ; -- ; +; RWMask[4]~2 ; LC_X5_Y2_N6 ; 8 ; Clock enable ; no ; -- ; -- ; +; S[2] ; LC_X7_Y2_N1 ; 20 ; Sync. clear ; no ; -- ; -- ; +; UFMD[8]~5 ; LC_X5_Y1_N6 ; 7 ; Clock enable ; no ; -- ; -- ; ++-------------+-------------+---------+---------------+--------+----------------------+------------------+ + + ++---------------------------------------------------------------------+ +; Global & Other Fast Signals ; ++------+----------+---------+----------------------+------------------+ +; Name ; Location ; Fan-Out ; Global Resource Used ; Global Line Name ; ++------+----------+---------+----------------------+------------------+ +; C14M ; PIN_12 ; 107 ; Global Clock ; GCLK0 ; ++------+----------+---------+----------------------+------------------+ + + ++--------------------------------------------------------------------------------------------------------+ +; Non-Global High Fan-Out Signals ; ++----------------------------------------------------------------------------------------------+---------+ +; Name ; Fan-Out ; ++----------------------------------------------------------------------------------------------+---------+ +; S[0] ; 35 ; +; S[1] ; 30 ; +; Equal9~4 ; 23 ; +; S[3] ; 22 ; +; S[2] ; 20 ; +; Equal9~0 ; 14 ; +; RWBank[4]~1 ; 13 ; +; Din[1] ; 11 ; +; Din[2] ; 10 ; +; Din[0] ; 10 ; +; CS[1] ; 9 ; +; FS[4] ; 9 ; +; Din[3] ; 8 ; +; Din[7] ; 8 ; +; Din[6] ; 8 ; +; RWMask[4]~2 ; 8 ; +; RDOE ; 8 ; +; SetRWBankFF ; 8 ; +; CS[0] ; 8 ; +; RWSel ; 8 ; +; RA[4]~1 ; 8 ; +; Equal9~1 ; 8 ; +; Din[5] ; 7 ; +; Din[4] ; 7 ; +; UFMD[8]~5 ; 7 ; +; always1~9 ; 7 ; +; CS[2] ; 7 ; +; FS[5] ; 7 ; +; UFMReqErase ; 6 ; +; UFMInitDone ; 6 ; +; FS[0] ; 6 ; +; always1~1 ; 5 ; +; FS[3] ; 5 ; +; FS[2]~27 ; 5 ; +; FS[7]~23 ; 5 ; +; FS[15] ; 5 ; +; FS[14] ; 5 ; +; FS[13] ; 5 ; +; PHI1 ; 4 ; +; nEN80 ; 4 ; +; UFMD[13] ; 4 ; +; CmdTout[0] ; 4 ; +; UFMEraseEN ; 4 ; +; UFMPrgmEN ; 4 ; +; Equal4~0 ; 4 ; +; Equal9~3 ; 4 ; +; DRCLK~0 ; 4 ; +; Equal9~2 ; 4 ; +; UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component|wire_maxii_ufm_block1_drdout ; 4 ; +; S[3]~9 ; 3 ; +; UFMD[11] ; 3 ; +; UFMD[9] ; 3 ; +; UFMD[10] ; 3 ; +; always1~6 ; 3 ; +; UFMD[12] ; 3 ; +; UFMD[8] ; 3 ; +; CS[0]~2 ; 3 ; +; CmdTout[1] ; 3 ; +; CS~0 ; 3 ; +; always2~7 ; 3 ; +; RWMaskSet~0 ; 3 ; +; S~4 ; 3 ; +; Ready ; 3 ; +; S[3]~2 ; 3 ; +; always1~2 ; 3 ; +; always1~0 ; 3 ; +; Equal10~4 ; 3 ; +; FS[2] ; 3 ; +; FS[1] ; 3 ; +; always2~0 ; 3 ; +; Ready~0 ; 3 ; +; Equal10~1 ; 3 ; +; FS[12]~1 ; 3 ; +; RD[7]~7 ; 2 ; +; RD[6]~6 ; 2 ; +; RD[5]~5 ; 2 ; +; RD[4]~4 ; 2 ; +; RD[3]~3 ; 2 ; +; RD[2]~2 ; 2 ; +; RD[1]~1 ; 2 ; +; RD[0]~0 ; 2 ; +; nWE80 ; 2 ; +; nWE ; 2 ; +; UFMD[14] ; 2 ; +; UFMEraseEN~0 ; 2 ; +; RWMask[4]~0 ; 2 ; +; UFMInitDone~0 ; 2 ; +; CmdTout[2] ; 2 ; +; Equal39~0 ; 2 ; +; RWMaskSet~1 ; 2 ; +; Equal27~1 ; 2 ; +; UFMBitbang~0 ; 2 ; +; S~3 ; 2 ; +; UFMBusyReg ; 2 ; +; always1~3 ; 2 ; +; UFMD[8]~4 ; 2 ; +; RWBank[6] ; 2 ; +; nCS~4 ; 2 ; +; nCS~3 ; 2 ; +; Equal12~0 ; 2 ; +; FS[7] ; 2 ; +; FS[6] ; 2 ; +; Equal10~2 ; 2 ; +; FS[11] ; 2 ; +; FS[10] ; 2 ; +; FS[9] ; 2 ; +; FS[8] ; 2 ; +; FS[12] ; 2 ; +; CKE~0 ; 2 ; +; UFMErase ; 2 ; +; UFMProgram ; 2 ; +; DRDIn ; 2 ; +; RA[3]~reg0 ; 2 ; +; RA[0]~reg0 ; 2 ; +; UFMProgram~_wirecell ; 1 ; +; UFMErase~_wirecell ; 1 ; +; nC07X ; 1 ; +; Ain[7] ; 1 ; +; Ain[6] ; 1 ; +; Ain[5] ; 1 ; +; Ain[4] ; 1 ; +; Ain[3] ; 1 ; +; Ain[2] ; 1 ; +; Ain[1] ; 1 ; +; Ain[0] ; 1 ; +; ~GND ; 1 ; +; RWMaskSet ; 1 ; +; always1~8 ; 1 ; +; always1~7 ; 1 ; +; Ready~1 ; 1 ; +; UFMReqErase~3 ; 1 ; +; UFMReqErase~2 ; 1 ; +; UFMReqErase~1 ; 1 ; +; UFMReqErase~0 ; 1 ; +; always1~5 ; 1 ; +; always1~4 ; 1 ; +; Add3~0 ; 1 ; +; always2~13 ; 1 ; +; Equal39~1 ; 1 ; +; always2~12 ; 1 ; +; always2~11 ; 1 ; +; always2~10 ; 1 ; +; always2~9 ; 1 ; +; always2~8 ; 1 ; +; always2~6 ; 1 ; +; always2~5 ; 1 ; +; always2~4 ; 1 ; +; always2~3 ; 1 ; +; always2~2 ; 1 ; +; always2~1 ; 1 ; +; RWSel~0 ; 1 ; +; RWMask[6] ; 1 ; +; RWMask[3] ; 1 ; +; RWMask[2] ; 1 ; +; RWMask[1] ; 1 ; +; RWMask[0] ; 1 ; +; RWMask[7] ; 1 ; +; RWMask[5] ; 1 ; +; RWMask[4] ; 1 ; +; Add1~0 ; 1 ; +; PHI1reg ; 1 ; +; UFMErase~0 ; 1 ; +; RTPBusyReg ; 1 ; +; UFMProgram~0 ; 1 ; +; DRCLKPulse ; 1 ; +; DRCLK~2 ; 1 ; +; DRCLK~1 ; 1 ; +; Equal27~0 ; 1 ; +; UFMBitbang ; 1 ; +; DQML~0 ; 1 ; +; RWBank[3] ; 1 ; +; RA~11 ; 1 ; +; RWBank[2] ; 1 ; +; RWBank[1] ; 1 ; +; RWBank[0] ; 1 ; +; RWBank[7] ; 1 ; +; RWBank[5] ; 1 ; +; RWBank[4] ; 1 ; +; nRWE~1 ; 1 ; +; nRWE~0 ; 1 ; +; nCAS~2 ; 1 ; +; nCAS~1 ; 1 ; +; nCAS~0 ; 1 ; +; FS[3]~29COUT1_46 ; 1 ; +; FS[3]~29 ; 1 ; +; FS[1]~25COUT1_44 ; 1 ; +; FS[1]~25 ; 1 ; +; FS[6]~21COUT1_52 ; 1 ; +; FS[6]~21 ; 1 ; +; Equal10~3 ; 1 ; +; nCS~2 ; 1 ; +; FS[5]~19COUT1_50 ; 1 ; +; FS[5]~19 ; 1 ; +; FS[4]~17COUT1_48 ; 1 ; +; FS[4]~17 ; 1 ; +; nCS~1 ; 1 ; +; nCS~0 ; 1 ; +; CKE~2 ; 1 ; +; FS[14]~13COUT1_64 ; 1 ; +; FS[14]~13 ; 1 ; +; FS[13]~11COUT1_62 ; 1 ; +; FS[13]~11 ; 1 ; +; FS[11]~9COUT1_60 ; 1 ; +; FS[11]~9 ; 1 ; +; FS[10]~7COUT1_58 ; 1 ; +; FS[10]~7 ; 1 ; +; Equal10~0 ; 1 ; +; FS[9]~5COUT1_56 ; 1 ; +; FS[9]~5 ; 1 ; +; FS[8]~3COUT1_54 ; 1 ; +; FS[8]~3 ; 1 ; +; CKE~1 ; 1 ; +; ARShift ; 1 ; +; ARCLK ; 1 ; +; DRShift ; 1 ; +; DRCLK ; 1 ; +; DQMH~reg0 ; 1 ; +; DQML~reg0 ; 1 ; +; RA[11]~reg0 ; 1 ; +; RA[10]~reg0 ; 1 ; +; RA[9]~reg0 ; 1 ; +; RA[8]~reg0 ; 1 ; +; RA[7]~reg0 ; 1 ; +; RA[6]~reg0 ; 1 ; +; RA[5]~reg0 ; 1 ; +; RA[4]~reg0 ; 1 ; +; RA[2]~reg0 ; 1 ; +; RA[1]~reg0 ; 1 ; +; BA[1]~reg0 ; 1 ; +; BA[0]~reg0 ; 1 ; +; nRWE~reg0 ; 1 ; +; nCAS~reg0 ; 1 ; +; nRAS~reg0 ; 1 ; +; nCS~reg0 ; 1 ; +; CKE~reg0 ; 1 ; +; Vout[7]~reg0 ; 1 ; +; Vout[6]~reg0 ; 1 ; +; Vout[5]~reg0 ; 1 ; +; Vout[4]~reg0 ; 1 ; +; Vout[3]~reg0 ; 1 ; +; Vout[2]~reg0 ; 1 ; +; Vout[1]~reg0 ; 1 ; +; Vout[0]~reg0 ; 1 ; +; comb~0 ; 1 ; +; DOEEN ; 1 ; +; Dout[7]~reg0 ; 1 ; +; Dout[6]~reg0 ; 1 ; +; Dout[5]~reg0 ; 1 ; +; Dout[4]~reg0 ; 1 ; +; Dout[3]~reg0 ; 1 ; +; Dout[2]~reg0 ; 1 ; +; Dout[1]~reg0 ; 1 ; +; Dout[0]~reg0 ; 1 ; +; UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component|wire_maxii_ufm_block1_bgpbusy ; 1 ; +; UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component|wire_maxii_ufm_block1_busy ; 1 ; ++----------------------------------------------------------------------------------------------+---------+ + + ++--------------------------------------------------+ +; Other Routing Usage Summary ; ++-----------------------------+--------------------+ +; Other Routing Resource Type ; Usage ; ++-----------------------------+--------------------+ +; C4s ; 150 / 784 ( 19 % ) ; +; Direct links ; 53 / 888 ( 6 % ) ; +; Global clocks ; 1 / 4 ( 25 % ) ; +; LAB clocks ; 6 / 32 ( 19 % ) ; +; LUT chains ; 17 / 216 ( 8 % ) ; +; Local interconnects ; 305 / 888 ( 34 % ) ; +; R4s ; 142 / 704 ( 20 % ) ; ++-----------------------------+--------------------+ + + ++---------------------------------------------------------------------------+ +; LAB Logic Elements ; ++--------------------------------------------+------------------------------+ +; Number of Logic Elements (Average = 8.22) ; Number of LABs (Total = 23) ; ++--------------------------------------------+------------------------------+ +; 1 ; 1 ; +; 2 ; 1 ; +; 3 ; 0 ; +; 4 ; 1 ; +; 5 ; 0 ; +; 6 ; 1 ; +; 7 ; 2 ; +; 8 ; 3 ; +; 9 ; 2 ; +; 10 ; 12 ; ++--------------------------------------------+------------------------------+ + + ++-------------------------------------------------------------------+ +; LAB-wide Signals ; ++------------------------------------+------------------------------+ +; LAB-wide Signals (Average = 1.57) ; Number of LABs (Total = 23) ; ++------------------------------------+------------------------------+ +; 1 Clock ; 23 ; +; 1 Clock enable ; 11 ; +; 2 Clock enables ; 2 ; ++------------------------------------+------------------------------+ + + ++----------------------------------------------------------------------------+ +; LAB Signals Sourced ; ++---------------------------------------------+------------------------------+ +; Number of Signals Sourced (Average = 8.61) ; Number of LABs (Total = 23) ; ++---------------------------------------------+------------------------------+ +; 0 ; 0 ; +; 1 ; 1 ; +; 2 ; 1 ; +; 3 ; 0 ; +; 4 ; 0 ; +; 5 ; 1 ; +; 6 ; 1 ; +; 7 ; 2 ; +; 8 ; 3 ; +; 9 ; 1 ; +; 10 ; 11 ; +; 11 ; 0 ; +; 12 ; 1 ; +; 13 ; 0 ; +; 14 ; 0 ; +; 15 ; 1 ; ++---------------------------------------------+------------------------------+ + + ++--------------------------------------------------------------------------------+ +; LAB Signals Sourced Out ; ++-------------------------------------------------+------------------------------+ +; Number of Signals Sourced Out (Average = 6.17) ; Number of LABs (Total = 23) ; ++-------------------------------------------------+------------------------------+ +; 0 ; 0 ; +; 1 ; 1 ; +; 2 ; 1 ; +; 3 ; 1 ; +; 4 ; 1 ; +; 5 ; 4 ; +; 6 ; 5 ; +; 7 ; 2 ; +; 8 ; 6 ; +; 9 ; 0 ; +; 10 ; 2 ; ++-------------------------------------------------+------------------------------+ + + ++-----------------------------------------------------------------------------+ +; LAB Distinct Inputs ; ++----------------------------------------------+------------------------------+ +; Number of Distinct Inputs (Average = 11.57) ; Number of LABs (Total = 23) ; ++----------------------------------------------+------------------------------+ +; 0 ; 0 ; +; 1 ; 0 ; +; 2 ; 2 ; +; 3 ; 1 ; +; 4 ; 0 ; +; 5 ; 0 ; +; 6 ; 0 ; +; 7 ; 3 ; +; 8 ; 0 ; +; 9 ; 3 ; +; 10 ; 0 ; +; 11 ; 1 ; +; 12 ; 1 ; +; 13 ; 2 ; +; 14 ; 4 ; +; 15 ; 2 ; +; 16 ; 0 ; +; 17 ; 1 ; +; 18 ; 0 ; +; 19 ; 2 ; +; 20 ; 0 ; +; 21 ; 1 ; ++----------------------------------------------+------------------------------+ + + ++-------------------------------------------------------------------------+ +; Fitter Device Options ; ++----------------------------------------------+--------------------------+ +; Option ; Setting ; ++----------------------------------------------+--------------------------+ +; Enable user-supplied start-up clock (CLKUSR) ; Off ; +; Enable device-wide reset (DEV_CLRn) ; Off ; +; Enable device-wide output enable (DEV_OE) ; Off ; +; Enable INIT_DONE output ; Off ; +; Configuration scheme ; Passive Serial ; +; Reserve all unused pins ; As output driving ground ; +; Base pin-out file on sameframe device ; Off ; ++----------------------------------------------+--------------------------+ + + ++-----------------+ +; Fitter Messages ; ++-----------------+ +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (119006): Selected device 5M240ZT100C5 for design "RAM2E" +Info (21077): Low junction temperature is 0 degrees C +Info (21077): High junction temperature is 85 degrees C +Info (171004): Fitter is performing a Standard Fit compilation using maximum Fitter effort to optimize design performance +Warning (292013): Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature. +Info (176444): Device migration not selected. If you intend to use device migration later, you may need to change the pin assignments as they may be incompatible with other devices + Info (176445): Device 5M80ZT100C5 is compatible + Info (176445): Device 5M80ZT100I5 is compatible + Info (176445): Device 5M160ZT100C5 is compatible + Info (176445): Device 5M160ZT100I5 is compatible + Info (176445): Device 5M240ZT100I5 is compatible + Info (176445): Device 5M570ZT100C5 is compatible + Info (176445): Device 5M570ZT100I5 is compatible +Info (332104): Reading SDC File: 'constraints.sdc' +Warning (332060): Node: DRCLK was determined to be a clock but was found without an associated clock assignment. +Warning (332060): Node: ARCLK was determined to be a clock but was found without an associated clock assignment. +Info (332129): Detected timing requirements -- optimizing circuit to achieve only the specified requirements +Info (332111): Found 1 clocks + Info (332111): Period Clock Name + Info (332111): ======== ============ + Info (332111): 69.841 C14M +Info (186079): Completed User Assigned Global Signals Promotion Operation +Info (186215): Automatically promoted signal "C14M" to use Global clock in PIN 12 +Info (186079): Completed Auto Global Promotion Operation +Info (176234): Starting register packing +Info (186391): Fitter is using Normal packing mode for logic elements with Auto setting for Auto Packed Registers logic option +Info (186468): Started processing fast register assignments +Info (186469): Finished processing fast register assignments +Info (176235): Finished register packing +Info (171121): Fitter preparation operations ending: elapsed time is 00:00:00 +Info (170189): Fitter placement preparation operations beginning +Info (170190): Fitter placement preparation operations ending: elapsed time is 00:00:00 +Info (170191): Fitter placement operations beginning +Info (170137): Fitter placement was successful +Info (170192): Fitter placement operations ending: elapsed time is 00:00:00 +Info (170193): Fitter routing operations beginning +Info (170089): 2e+01 ns of routing delay (approximately 1.0% of available device routing delay) has been added to meet hold timing. For more information, refer to the Estimated Delay Added for Hold Timing section in the Fitter report. +Info (170195): Router estimated average interconnect usage is 21% of the available device resources + Info (170196): Router estimated peak interconnect usage is 21% of the available device resources in the region that extends from location X0_Y0 to location X8_Y5 +Info (170194): Fitter routing operations ending: elapsed time is 00:00:00 +Info (11888): Total time spent on timing analysis during the Fitter is 0.22 seconds. +Info (11218): Fitter post-fit operations ending: elapsed time is 00:00:00 +Warning (169174): The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'. +Info (144001): Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.fit.smsg +Info: Quartus II 64-Bit Fitter was successful. 0 errors, 5 warnings + Info: Peak virtual memory: 4766 megabytes + Info: Processing ended: Wed Mar 10 21:02:32 2021 + Info: Elapsed time: 00:00:04 + Info: Total CPU time (on all processors): 00:00:03 + + ++----------------------------+ +; Fitter Suppressed Messages ; ++----------------------------+ +The suppressed messages can be found in C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.fit.smsg. + + diff --git a/cpld_maxv/output_files/RAM2E.fit.smsg b/cpld_maxv/output_files/RAM2E.fit.smsg new file mode 100644 index 0000000..6df10d8 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.fit.smsg @@ -0,0 +1,4 @@ +Extra Info (176273): Performing register packing on registers with non-logic cell location assignments +Extra Info (176274): Completed register packing on registers with non-logic cell location assignments +Extra Info (176244): Moving registers into LUTs to improve timing and density +Extra Info (176245): Finished moving registers into LUTs: elapsed time is 00:00:00 diff --git a/cpld_maxv/output_files/RAM2E.fit.summary b/cpld_maxv/output_files/RAM2E.fit.summary new file mode 100644 index 0000000..2e6c39d --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.fit.summary @@ -0,0 +1,11 @@ +Fitter Status : Successful - Wed Mar 10 21:02:32 2021 +Quartus II 64-Bit Version : 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +Revision Name : RAM2E +Top-level Entity Name : RAM2E +Family : MAX V +Device : 5M240ZT100C5 +Timing Models : Final +Total logic elements : 189 / 240 ( 79 % ) +Total pins : 69 / 79 ( 87 % ) +Total virtual pins : 0 +UFM blocks : 1 / 1 ( 100 % ) diff --git a/cpld_maxv/output_files/RAM2E.flow.rpt b/cpld_maxv/output_files/RAM2E.flow.rpt new file mode 100644 index 0000000..3c3bd25 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.flow.rpt @@ -0,0 +1,125 @@ +Flow report for RAM2E +Wed Mar 10 21:02:38 2021 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Flow Summary + 3. Flow Settings + 4. Flow Non-Default Global Settings + 5. Flow Elapsed Time + 6. Flow OS Summary + 7. Flow Log + 8. Flow Messages + 9. Flow Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++-----------------------------------------------------------------------------+ +; Flow Summary ; ++---------------------------+-------------------------------------------------+ +; Flow Status ; Successful - Wed Mar 10 21:02:34 2021 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; RAM2E ; +; Top-level Entity Name ; RAM2E ; +; Family ; MAX V ; +; Device ; 5M240ZT100C5 ; +; Timing Models ; Final ; +; Total logic elements ; 189 / 240 ( 79 % ) ; +; Total pins ; 69 / 79 ( 87 % ) ; +; Total virtual pins ; 0 ; +; UFM blocks ; 1 / 1 ( 100 % ) ; ++---------------------------+-------------------------------------------------+ + + ++-----------------------------------------+ +; Flow Settings ; ++-------------------+---------------------+ +; Option ; Setting ; ++-------------------+---------------------+ +; Start date & time ; 03/10/2021 21:02:25 ; +; Main task ; Compilation ; +; Revision Name ; RAM2E ; ++-------------------+---------------------+ + + ++----------------------------------------------------------------------------------------------------------------+ +; Flow Non-Default Global Settings ; ++------------------------------------+--------------------------------+---------------+-------------+------------+ +; Assignment Name ; Value ; Default Value ; Entity Name ; Section Id ; ++------------------------------------+--------------------------------+---------------+-------------+------------+ +; ALLOW_POWER_UP_DONT_CARE ; Off ; On ; -- ; -- ; +; COMPILER_SIGNATURE_ID ; 10995770589204.161542814406368 ; -- ; -- ; -- ; +; FITTER_EFFORT ; Standard Fit ; Auto Fit ; -- ; -- ; +; IP_TOOL_NAME ; ALTUFM_NONE ; -- ; -- ; -- ; +; IP_TOOL_VERSION ; 13.0 ; -- ; -- ; -- ; +; MAX_CORE_JUNCTION_TEMP ; 85 ; -- ; -- ; -- ; +; MIN_CORE_JUNCTION_TEMP ; 0 ; -- ; -- ; -- ; +; OPTIMIZE_MULTI_CORNER_TIMING ; On ; Off ; -- ; -- ; +; PARALLEL_SYNTHESIS ; Off ; On ; -- ; -- ; +; POWER_DEFAULT_INPUT_IO_TOGGLE_RATE ; 12.5 % ; 12.5% ; -- ; -- ; +; POWER_PRESET_COOLING_SOLUTION ; No Heat Sink With Still Air ; -- ; -- ; -- ; +; PROJECT_OUTPUT_DIRECTORY ; output_files ; -- ; -- ; -- ; +; SAFE_STATE_MACHINE ; On ; Off ; -- ; -- ; +; SYNTH_MESSAGE_LEVEL ; High ; Medium ; -- ; -- ; +; SYNTH_TIMING_DRIVEN_SYNTHESIS ; Off ; -- ; -- ; -- ; ++------------------------------------+--------------------------------+---------------+-------------+------------+ + + ++-------------------------------------------------------------------------------------------------------------------------------+ +; Flow Elapsed Time ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ +; Module Name ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ +; Analysis & Synthesis ; 00:00:05 ; 1.0 ; 4567 MB ; 00:00:02 ; +; Fitter ; 00:00:04 ; 1.0 ; 4766 MB ; 00:00:03 ; +; Assembler ; 00:00:01 ; 1.0 ; 4516 MB ; 00:00:01 ; +; TimeQuest Timing Analyzer ; 00:00:02 ; 1.0 ; 4514 MB ; 00:00:02 ; +; Total ; 00:00:12 ; -- ; -- ; 00:00:08 ; ++---------------------------+--------------+-------------------------+---------------------+------------------------------------+ + + ++----------------------------------------------------------------------------------------+ +; Flow OS Summary ; ++---------------------------+------------------+-----------+------------+----------------+ +; Module Name ; Machine Hostname ; OS Name ; OS Version ; Processor type ; ++---------------------------+------------------+-----------+------------+----------------+ +; Analysis & Synthesis ; DESKTOP-DG54GN4 ; Windows 7 ; 6.2 ; x86_64 ; +; Fitter ; DESKTOP-DG54GN4 ; Windows 7 ; 6.2 ; x86_64 ; +; Assembler ; DESKTOP-DG54GN4 ; Windows 7 ; 6.2 ; x86_64 ; +; TimeQuest Timing Analyzer ; DESKTOP-DG54GN4 ; Windows 7 ; 6.2 ; x86_64 ; ++---------------------------+------------------+-----------+------------+----------------+ + + +------------ +; Flow Log ; +------------ +quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E +quartus_fit --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E +quartus_asm --read_settings_files=off --write_settings_files=off RAM2E -c RAM2E +quartus_sta RAM2E -c RAM2E + + + diff --git a/cpld_maxv/output_files/RAM2E.jdi b/cpld_maxv/output_files/RAM2E.jdi new file mode 100644 index 0000000..3856185 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.jdi @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/cpld_maxv/output_files/RAM2E.map.rpt b/cpld_maxv/output_files/RAM2E.map.rpt new file mode 100644 index 0000000..5543894 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.map.rpt @@ -0,0 +1,305 @@ +Analysis & Synthesis report for RAM2E +Wed Mar 10 21:02:27 2021 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. Analysis & Synthesis Summary + 3. Analysis & Synthesis Settings + 4. Parallel Compilation + 5. Analysis & Synthesis Source Files Read + 6. Analysis & Synthesis Resource Usage Summary + 7. Analysis & Synthesis Resource Utilization by Entity + 8. Analysis & Synthesis IP Cores Summary + 9. General Register Statistics + 10. Inverted Register Statistics + 11. Multiplexer Restructuring Statistics (Restructuring Performed) + 12. Port Connectivity Checks: "UFM:UFM_inst" + 13. Analysis & Synthesis Messages + 14. Analysis & Synthesis Suppressed Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++-------------------------------------------------------------------------------+ +; Analysis & Synthesis Summary ; ++-----------------------------+-------------------------------------------------+ +; Analysis & Synthesis Status ; Successful - Wed Mar 10 21:02:27 2021 ; +; Quartus II 64-Bit Version ; 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition ; +; Revision Name ; RAM2E ; +; Top-level Entity Name ; RAM2E ; +; Family ; MAX V ; +; Total logic elements ; 198 ; +; Total pins ; 69 ; +; Total virtual pins ; 0 ; +; UFM blocks ; 1 / 1 ( 100 % ) ; ++-----------------------------+-------------------------------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Settings ; ++----------------------------------------------------------------------------+--------------------+--------------------+ +; Option ; Setting ; Default Value ; ++----------------------------------------------------------------------------+--------------------+--------------------+ +; Device ; 5M240ZT100C5 ; ; +; Top-level entity name ; RAM2E ; RAM2E ; +; Family name ; MAX V ; Cyclone IV GX ; +; Safe State Machine ; On ; Off ; +; Parallel Synthesis ; Off ; On ; +; Power-Up Don't Care ; Off ; On ; +; Analysis & Synthesis Message Level ; High ; Medium ; +; Use smart compilation ; Off ; Off ; +; Enable parallel Assembler and TimeQuest Timing Analyzer during compilation ; On ; On ; +; Enable compact report table ; Off ; Off ; +; Restructure Multiplexers ; Auto ; Auto ; +; Create Debugging Nodes for IP Cores ; Off ; Off ; +; Preserve fewer node names ; On ; On ; +; Disable OpenCore Plus hardware evaluation ; Off ; Off ; +; Verilog Version ; Verilog_2001 ; Verilog_2001 ; +; VHDL Version ; VHDL_1993 ; VHDL_1993 ; +; State Machine Processing ; Auto ; Auto ; +; Extract Verilog State Machines ; On ; On ; +; Extract VHDL State Machines ; On ; On ; +; Ignore Verilog initial constructs ; Off ; Off ; +; Iteration limit for constant Verilog loops ; 5000 ; 5000 ; +; Iteration limit for non-constant Verilog loops ; 250 ; 250 ; +; Add Pass-Through Logic to Inferred RAMs ; On ; On ; +; Infer RAMs from Raw Logic ; On ; On ; +; NOT Gate Push-Back ; On ; On ; +; Remove Redundant Logic Cells ; Off ; Off ; +; Remove Duplicate Registers ; On ; On ; +; Ignore CARRY Buffers ; Off ; Off ; +; Ignore CASCADE Buffers ; Off ; Off ; +; Ignore GLOBAL Buffers ; Off ; Off ; +; Ignore ROW GLOBAL Buffers ; Off ; Off ; +; Ignore LCELL Buffers ; Off ; Off ; +; Ignore SOFT Buffers ; On ; On ; +; Limit AHDL Integers to 32 Bits ; Off ; Off ; +; Optimization Technique ; Balanced ; Balanced ; +; Carry Chain Length ; 70 ; 70 ; +; Auto Carry Chains ; On ; On ; +; Auto Open-Drain Pins ; On ; On ; +; Perform WYSIWYG Primitive Resynthesis ; Off ; Off ; +; Auto Shift Register Replacement ; Auto ; Auto ; +; Allow Shift Register Merging across Hierarchies ; Auto ; Auto ; +; Auto Clock Enable Replacement ; On ; On ; +; Allow Synchronous Control Signals ; On ; On ; +; Force Use of Synchronous Clear Signals ; Off ; Off ; +; Auto Resource Sharing ; Off ; Off ; +; Use LogicLock Constraints during Resource Balancing ; On ; On ; +; Ignore translate_off and synthesis_off directives ; Off ; Off ; +; Report Parameter Settings ; On ; On ; +; Report Source Assignments ; On ; On ; +; Report Connectivity Checks ; On ; On ; +; Ignore Maximum Fan-Out Assignments ; Off ; Off ; +; Synchronization Register Chain Length ; 2 ; 2 ; +; PowerPlay Power Optimization ; Normal compilation ; Normal compilation ; +; HDL message level ; Level2 ; Level2 ; +; Suppress Register Optimization Related Messages ; Off ; Off ; +; Number of Removed Registers Reported in Synthesis Report ; 5000 ; 5000 ; +; Number of Swept Nodes Reported in Synthesis Report ; 5000 ; 5000 ; +; Number of Inverted Registers Reported in Synthesis Report ; 100 ; 100 ; +; Clock MUX Protection ; On ; On ; +; Block Design Naming ; Auto ; Auto ; +; Synthesis Effort ; Auto ; Auto ; +; Shift Register Replacement - Allow Asynchronous Clear Signal ; On ; On ; +; Pre-Mapping Resynthesis Optimization ; Off ; Off ; +; Disable Register Merging Across Hierarchies ; Auto ; Auto ; +; Synthesis Seed ; 1 ; 1 ; ++----------------------------------------------------------------------------+--------------------+--------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 8 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Source Files Read ; ++----------------------------------+-----------------+----------------------------------+----------------------------------------------------------------------------+---------+ +; File Name with User-Entered Path ; Used in Netlist ; File Type ; File Name with Absolute Path ; Library ; ++----------------------------------+-----------------+----------------------------------+----------------------------------------------------------------------------+---------+ +; RAM2E.v ; yes ; User Verilog HDL File ; C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.v ; ; +; RAM2E.mif ; yes ; User Memory Initialization File ; C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/RAM2E.mif ; ; +; UFM.v ; yes ; User Wizard-Generated File ; C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v ; ; ++----------------------------------+-----------------+----------------------------------+----------------------------------------------------------------------------+---------+ + + ++-----------------------------------------------------+ +; Analysis & Synthesis Resource Usage Summary ; ++---------------------------------------------+-------+ +; Resource ; Usage ; ++---------------------------------------------+-------+ +; Total logic elements ; 198 ; +; -- Combinational with no register ; 91 ; +; -- Register only ; 26 ; +; -- Combinational with a register ; 81 ; +; ; ; +; Logic element usage by number of LUT inputs ; ; +; -- 4 input functions ; 90 ; +; -- 3 input functions ; 43 ; +; -- 2 input functions ; 35 ; +; -- 1 input functions ; 3 ; +; -- 0 input functions ; 1 ; +; ; ; +; Logic elements by mode ; ; +; -- normal mode ; 184 ; +; -- arithmetic mode ; 14 ; +; -- qfbk mode ; 0 ; +; -- register cascade mode ; 0 ; +; -- synchronous clear/load mode ; 1 ; +; -- asynchronous clear/load mode ; 0 ; +; ; ; +; Total registers ; 107 ; +; Total logic cells in carry chains ; 15 ; +; I/O pins ; 69 ; +; UFM blocks ; 1 ; +; Maximum fan-out node ; C14M ; +; Maximum fan-out ; 107 ; +; Total fan-out ; 815 ; +; Average fan-out ; 3.04 ; ++---------------------------------------------+-------+ + + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis Resource Utilization by Entity ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +; Compilation Hierarchy Node ; Logic Cells ; LC Registers ; UFM Blocks ; Pins ; Virtual Pins ; LUT-Only LCs ; Register-Only LCs ; LUT/Register LCs ; Carry Chain LCs ; Packed LCs ; Full Hierarchy Name ; Library Name ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +; |RAM2E ; 198 (198) ; 107 ; 1 ; 69 ; 0 ; 91 (91) ; 26 (26) ; 81 (81) ; 15 (15) ; 0 (0) ; |RAM2E ; work ; +; |UFM:UFM_inst| ; 0 (0) ; 0 ; 1 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; |RAM2E|UFM:UFM_inst ; work ; +; |UFM_altufm_none_e4r:UFM_altufm_none_e4r_component| ; 0 (0) ; 0 ; 1 ; 0 ; 0 ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; 0 (0) ; |RAM2E|UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component ; work ; ++-----------------------------------------------------------+-------------+--------------+------------+------+--------------+--------------+-------------------+------------------+-----------------+------------+-----------------------------------------------------------------------+--------------+ +Note: For table entries with two numbers listed, the numbers in parentheses indicate the number of resources of the given type used by the specific entity alone. The numbers listed outside of parentheses indicate the total resources of the given type used by the specific entity and all of its sub-entities in the hierarchy. + + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Analysis & Synthesis IP Cores Summary ; ++--------+--------------+---------+--------------+--------------+---------------------+------------------------------------------------------------------------+ +; Vendor ; IP Core Name ; Version ; Release Date ; License Type ; Entity Instance ; IP Include File ; ++--------+--------------+---------+--------------+--------------+---------------------+------------------------------------------------------------------------+ +; Altera ; ALTUFM_NONE ; 13.0 ; N/A ; N/A ; |RAM2E|UFM:UFM_inst ; C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/UFM.v ; ++--------+--------------+---------+--------------+--------------+---------------------+------------------------------------------------------------------------+ + + ++------------------------------------------------------+ +; General Register Statistics ; ++----------------------------------------------+-------+ +; Statistic ; Value ; ++----------------------------------------------+-------+ +; Total registers ; 107 ; +; Number of registers using Synchronous Clear ; 1 ; +; Number of registers using Synchronous Load ; 0 ; +; Number of registers using Asynchronous Clear ; 0 ; +; Number of registers using Asynchronous Load ; 0 ; +; Number of registers using Clock Enable ; 56 ; +; Number of registers using Preset ; 0 ; ++----------------------------------------------+-------+ + + ++--------------------------------------------------+ +; Inverted Register Statistics ; ++----------------------------------------+---------+ +; Inverted Register ; Fan out ; ++----------------------------------------+---------+ +; nCS~reg0 ; 1 ; +; nRAS~reg0 ; 1 ; +; nCAS~reg0 ; 1 ; +; nRWE~reg0 ; 1 ; +; DQML~reg0 ; 1 ; +; DQMH~reg0 ; 1 ; +; Total number of inverted registers = 6 ; ; ++----------------------------------------+---------+ + + ++------------------------------------------------------------------------------------------------------------------------------------------+ +; Multiplexer Restructuring Statistics (Restructuring Performed) ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+----------------------------+ +; Multiplexer Inputs ; Bus Width ; Baseline Area ; Area if Restructured ; Saving if Restructured ; Registered ; Example Multiplexer Output ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+----------------------------+ +; 4:1 ; 4 bits ; 8 LEs ; 8 LEs ; 0 LEs ; Yes ; |RAM2E|S[3] ; +; 4:1 ; 3 bits ; 6 LEs ; 3 LEs ; 3 LEs ; Yes ; |RAM2E|CS[2] ; +; 16:1 ; 8 bits ; 80 LEs ; 8 LEs ; 72 LEs ; Yes ; |RAM2E|RA[4]~reg0 ; +; 9:1 ; 8 bits ; 48 LEs ; 16 LEs ; 32 LEs ; Yes ; |RAM2E|RWMask[4] ; ++--------------------+-----------+---------------+----------------------+------------------------+------------+----------------------------+ + + ++------------------------------------------------------------------------------------------------------------------+ +; Port Connectivity Checks: "UFM:UFM_inst" ; ++--------+--------+----------+-------------------------------------------------------------------------------------+ +; Port ; Type ; Severity ; Details ; ++--------+--------+----------+-------------------------------------------------------------------------------------+ +; ardin ; Input ; Info ; Stuck at GND ; +; oscena ; Input ; Info ; Stuck at VCC ; +; osc ; Output ; Info ; Connected to dangling logic. Logic that only feeds a dangling port will be removed. ; ++--------+--------+----------+-------------------------------------------------------------------------------------+ + + ++-------------------------------+ +; Analysis & Synthesis Messages ; ++-------------------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit Analysis & Synthesis + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Wed Mar 10 21:02:22 2021 +Info: Command: quartus_map --read_settings_files=on --write_settings_files=off RAM2E -c RAM2E +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (12021): Found 1 design units, including 1 entities, in source file ram2e.v + Info (12023): Found entity 1: RAM2E +Info (12021): Found 2 design units, including 2 entities, in source file ufm.v + Info (12023): Found entity 1: UFM_altufm_none_e4r + Info (12023): Found entity 2: UFM +Info (12127): Elaborating entity "RAM2E" for the top level hierarchy +Warning (10230): Verilog HDL assignment warning at RAM2E.v(100): truncated value with size 32 to match size of target (16) +Warning (10230): Verilog HDL assignment warning at RAM2E.v(103): truncated value with size 32 to match size of target (4) +Warning (10230): Verilog HDL assignment warning at RAM2E.v(544): truncated value with size 32 to match size of target (3) +Warning (10230): Verilog HDL assignment warning at RAM2E.v(561): truncated value with size 32 to match size of target (3) +Info (12128): Elaborating entity "UFM" for hierarchy "UFM:UFM_inst" +Info (12128): Elaborating entity "UFM_altufm_none_e4r" for hierarchy "UFM:UFM_inst|UFM_altufm_none_e4r:UFM_altufm_none_e4r_component" +Info (21057): Implemented 268 device resources after synthesis - the final resource count might be different + Info (21058): Implemented 22 input pins + Info (21059): Implemented 39 output pins + Info (21060): Implemented 8 bidirectional pins + Info (21061): Implemented 198 logic cells + Info (21070): Implemented 1 User Flash Memory blocks +Info (144001): Generated suppressed messages file C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.map.smsg +Info: Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 5 warnings + Info: Peak virtual memory: 4567 megabytes + Info: Processing ended: Wed Mar 10 21:02:27 2021 + Info: Elapsed time: 00:00:05 + Info: Total CPU time (on all processors): 00:00:02 + + ++------------------------------------------+ +; Analysis & Synthesis Suppressed Messages ; ++------------------------------------------+ +The suppressed messages can be found in C:/Users/wgfel_69wkrf3/OneDrive/Documents/GitHub/RAM2E/cpld_maxv/output_files/RAM2E.map.smsg. + + diff --git a/cpld_maxv/output_files/RAM2E.map.smsg b/cpld_maxv/output_files/RAM2E.map.smsg new file mode 100644 index 0000000..11cd769 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.map.smsg @@ -0,0 +1,3 @@ +Warning (10273): Verilog HDL warning at RAM2E.v(38): extended using "x" or "z" +Warning (10463): Verilog HDL Declaration warning at UFM.v(72): "program" is SystemVerilog-2005 keyword +Warning (10463): Verilog HDL Declaration warning at UFM.v(188): "program" is SystemVerilog-2005 keyword diff --git a/cpld_maxv/output_files/RAM2E.map.summary b/cpld_maxv/output_files/RAM2E.map.summary new file mode 100644 index 0000000..d1aea18 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.map.summary @@ -0,0 +1,9 @@ +Analysis & Synthesis Status : Successful - Wed Mar 10 21:02:27 2021 +Quartus II 64-Bit Version : 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition +Revision Name : RAM2E +Top-level Entity Name : RAM2E +Family : MAX V +Total logic elements : 198 +Total pins : 69 +Total virtual pins : 0 +UFM blocks : 1 / 1 ( 100 % ) diff --git a/cpld_maxv/output_files/RAM2E.pin b/cpld_maxv/output_files/RAM2E.pin new file mode 100644 index 0000000..ca74001 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.pin @@ -0,0 +1,164 @@ + -- Copyright (C) 1991-2013 Altera Corporation + -- Your use of Altera Corporation's design tools, logic functions + -- and other software and tools, and its AMPP partner logic + -- functions, and any output files from any of the foregoing + -- (including device programming or simulation files), and any + -- associated documentation or information are expressly subject + -- to the terms and conditions of the Altera Program License + -- Subscription Agreement, Altera MegaCore Function License + -- Agreement, or other applicable license agreement, including, + -- without limitation, that your use is for the sole purpose of + -- programming logic devices manufactured by Altera and sold by + -- Altera or its authorized distributors. Please refer to the + -- applicable agreement for further details. + -- + -- This is a Quartus II output file. It is for reporting purposes only, and is + -- not intended for use as a Quartus II input file. This file cannot be used + -- to make Quartus II pin assignments - for instructions on how to make pin + -- assignments, please see Quartus II help. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- NC : No Connect. This pin has no internal connection to the device. + -- DNU : Do Not Use. This pin MUST NOT be connected. + -- VCCINT : Dedicated power pin, which MUST be connected to VCC (1.8V). + -- VCCIO : Dedicated power pin, which MUST be connected to VCC + -- of its bank. + -- Bank 1: 3.3V + -- Bank 2: 3.3V + -- GND : Dedicated ground pin. Dedicated GND pins MUST be connected to GND. + -- It can also be used to report unused dedicated pins. The connection + -- on the board for unused dedicated pins depends on whether this will + -- be used in a future design. One example is device migration. When + -- using device migration, refer to the device pin-tables. If it is a + -- GND pin in the pin table or if it will not be used in a future design + -- for another purpose the it MUST be connected to GND. If it is an unused + -- dedicated pin, then it can be connected to a valid signal on the board + -- (low, high, or toggling) if that signal is required for a different + -- revision of the design. + -- GND+ : Unused input pin. It can also be used to report unused dual-purpose pins. + -- This pin should be connected to GND. It may also be connected to a + -- valid signal on the board (low, high, or toggling) if that signal + -- is required for a different revision of the design. + -- GND* : Unused I/O pin. Connect each pin marked GND* directly to GND + -- or leave it unconnected. + -- RESERVED : Unused I/O pin, which MUST be left unconnected. + -- RESERVED_INPUT : Pin is tri-stated and should be connected to the board. + -- RESERVED_INPUT_WITH_WEAK_PULLUP : Pin is tri-stated with internal weak pull-up resistor. + -- RESERVED_INPUT_WITH_BUS_HOLD : Pin is tri-stated with bus-hold circuitry. + -- RESERVED_OUTPUT_DRIVEN_HIGH : Pin is output driven high. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- Pin directions (input, output or bidir) are based on device operating in user mode. + --------------------------------------------------------------------------------- + +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition +CHIP "RAM2E" ASSIGNED TO AN: 5M240ZT100C5 + +Pin Name/Usage : Location : Dir. : I/O Standard : Voltage : I/O Bank : User Assignment +------------------------------------------------------------------------------------------------------------- +GND : 1 : gnd : : : : +nRWE : 2 : output : 3.3-V LVCMOS : : 1 : Y +nCAS : 3 : output : 3.3-V LVCMOS : : 1 : Y +CKE : 4 : output : 3.3-V LVCMOS : : 1 : Y +nRAS : 5 : output : 3.3-V LVCMOS : : 1 : Y +BA[0] : 6 : output : 3.3-V LVCMOS : : 1 : Y +RA[11] : 7 : output : 3.3-V LVCMOS : : 1 : Y +nCS : 8 : output : 3.3-V LVCMOS : : 1 : Y +VCCIO1 : 9 : power : : 3.3V : 1 : +GND : 10 : gnd : : : : +GND : 11 : gnd : : : : +C14M : 12 : input : 3.3-V LVCMOS : : 1 : Y +VCCINT : 13 : power : : 1.8V : : +BA[1] : 14 : output : 3.3-V LVCMOS : : 1 : Y +RA[9] : 15 : output : 3.3-V LVCMOS : : 1 : Y +RA[10] : 16 : output : 3.3-V LVCMOS : : 1 : Y +RA[8] : 17 : output : 3.3-V LVCMOS : : 1 : Y +RA[0] : 18 : output : 3.3-V LVCMOS : : 1 : Y +RA[7] : 19 : output : 3.3-V LVCMOS : : 1 : Y +RA[1] : 20 : output : 3.3-V LVCMOS : : 1 : Y +RA[6] : 21 : output : 3.3-V LVCMOS : : 1 : Y +TMS : 22 : input : : : 1 : +TDI : 23 : input : : : 1 : +TCK : 24 : input : : : 1 : +TDO : 25 : output : : : 1 : +RA[4] : 26 : output : 3.3-V LVCMOS : : 1 : Y +RA[3] : 27 : output : 3.3-V LVCMOS : : 1 : Y +nEN80 : 28 : input : 3.3-V LVCMOS : : 1 : Y +RA[5] : 29 : output : 3.3-V LVCMOS : : 1 : Y +RA[2] : 30 : output : 3.3-V LVCMOS : : 1 : Y +VCCIO1 : 31 : power : : 3.3V : 1 : +GND : 32 : gnd : : : : +nWE80 : 33 : input : 3.3-V LVCMOS : : 1 : Y +Ain[5] : 34 : input : 3.3-V LVCMOS : : 1 : Y +Din[7] : 35 : input : 3.3-V LVCMOS : : 1 : Y +Din[6] : 36 : input : 3.3-V LVCMOS : : 1 : Y +PHI1 : 37 : input : 3.3-V LVCMOS : : 1 : Y +Din[0] : 38 : input : 3.3-V LVCMOS : : 1 : Y +Ain[6] : 39 : input : 3.3-V LVCMOS : : 1 : Y +Din[1] : 40 : input : 3.3-V LVCMOS : : 1 : Y +Din[3] : 41 : input : 3.3-V LVCMOS : : 1 : Y +Din[2] : 42 : input : 3.3-V LVCMOS : : 1 : Y +Ain[2] : 43 : input : 3.3-V LVCMOS : : 1 : Y +Ain[4] : 44 : input : 3.3-V LVCMOS : : 1 : Y +VCCIO1 : 45 : power : : 3.3V : 1 : +GND : 46 : gnd : : : : +Ain[3] : 47 : input : 3.3-V LVCMOS : : 1 : Y +Din[4] : 48 : input : 3.3-V LVCMOS : : 1 : Y +Din[5] : 49 : input : 3.3-V LVCMOS : : 1 : Y +nVOE : 50 : output : 3.3-V LVCMOS : : 1 : Y +nWE : 51 : input : 3.3-V LVCMOS : : 1 : Y +nC07X : 52 : input : 3.3-V LVCMOS : : 2 : Y +Ain[7] : 53 : input : 3.3-V LVCMOS : : 2 : Y +Ain[1] : 54 : input : 3.3-V LVCMOS : : 2 : Y +nDOE : 55 : output : 3.3-V LVCMOS : : 2 : Y +Ain[0] : 56 : input : 3.3-V LVCMOS : : 2 : Y +Vout[7] : 57 : output : 3.3-V LVCMOS : : 2 : Y +Vout[6] : 58 : output : 3.3-V LVCMOS : : 2 : Y +VCCIO2 : 59 : power : : 3.3V : 2 : +GND : 60 : gnd : : : : +GND* : 61 : : : : 2 : +Vout[3] : 62 : output : 3.3-V LVCMOS : : 2 : Y +VCCINT : 63 : power : : 1.8V : : +GND* : 64 : : : : 2 : +GND : 65 : gnd : : : : +GND* : 66 : : : : 2 : +Vout[1] : 67 : output : 3.3-V LVCMOS : : 2 : Y +Vout[5] : 68 : output : 3.3-V LVCMOS : : 2 : Y +Vout[2] : 69 : output : 3.3-V LVCMOS : : 2 : Y +Vout[0] : 70 : output : 3.3-V LVCMOS : : 2 : Y +Vout[4] : 71 : output : 3.3-V LVCMOS : : 2 : Y +Dout[5] : 72 : output : 3.3-V LVCMOS : : 2 : Y +Dout[4] : 73 : output : 3.3-V LVCMOS : : 2 : Y +Dout[2] : 74 : output : 3.3-V LVCMOS : : 2 : Y +Dout[3] : 75 : output : 3.3-V LVCMOS : : 2 : Y +Dout[1] : 76 : output : 3.3-V LVCMOS : : 2 : Y +Dout[0] : 77 : output : 3.3-V LVCMOS : : 2 : Y +GND* : 78 : : : : 2 : +GND : 79 : gnd : : : : +VCCIO2 : 80 : power : : 3.3V : 2 : +GND* : 81 : : : : 2 : +GND* : 82 : : : : 2 : +GND* : 83 : : : : 2 : +Dout[6] : 84 : output : 3.3-V LVCMOS : : 2 : Y +Dout[7] : 85 : output : 3.3-V LVCMOS : : 2 : Y +GND* : 86 : : : : 2 : +GND* : 87 : : : : 2 : +GND* : 88 : : : : 2 : +RD[3] : 89 : bidir : 3.3-V LVCMOS : : 2 : Y +RD[1] : 90 : bidir : 3.3-V LVCMOS : : 2 : Y +RD[4] : 91 : bidir : 3.3-V LVCMOS : : 2 : Y +RD[5] : 92 : bidir : 3.3-V LVCMOS : : 2 : Y +GND : 93 : gnd : : : : +VCCIO2 : 94 : power : : 3.3V : 2 : +RD[6] : 95 : bidir : 3.3-V LVCMOS : : 2 : Y +RD[7] : 96 : bidir : 3.3-V LVCMOS : : 2 : Y +RD[0] : 97 : bidir : 3.3-V LVCMOS : : 2 : Y +DQML : 98 : output : 3.3-V LVCMOS : : 2 : Y +RD[2] : 99 : bidir : 3.3-V LVCMOS : : 2 : Y +DQMH : 100 : output : 3.3-V LVCMOS : : 2 : Y diff --git a/cpld_maxv/output_files/RAM2E.pof b/cpld_maxv/output_files/RAM2E.pof new file mode 100644 index 0000000000000000000000000000000000000000..db992197e1178dd86a70ad98cd9ddd7b4a4507f8 GIT binary patch literal 7879 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 literal 0 HcmV?d00001 diff --git a/cpld_maxv/output_files/RAM2E.sta.rpt b/cpld_maxv/output_files/RAM2E.sta.rpt new file mode 100644 index 0000000..10c2009 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.sta.rpt @@ -0,0 +1,809 @@ +TimeQuest Timing Analyzer report for RAM2E +Wed Mar 10 21:02:38 2021 +Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + + +--------------------- +; Table of Contents ; +--------------------- + 1. Legal Notice + 2. TimeQuest Timing Analyzer Summary + 3. Parallel Compilation + 4. SDC File List + 5. Clocks + 6. Fmax Summary + 7. Setup Summary + 8. Hold Summary + 9. Recovery Summary + 10. Removal Summary + 11. Minimum Pulse Width Summary + 12. Setup: 'C14M' + 13. Hold: 'C14M' + 14. Minimum Pulse Width: 'C14M' + 15. Setup Times + 16. Hold Times + 17. Clock to Output Times + 18. Minimum Clock to Output Times + 19. Propagation Delay + 20. Minimum Propagation Delay + 21. Setup Transfers + 22. Hold Transfers + 23. Report TCCS + 24. Report RSKM + 25. Unconstrained Paths + 26. TimeQuest Timing Analyzer Messages + + + +---------------- +; Legal Notice ; +---------------- +Copyright (C) 1991-2013 Altera Corporation +Your use of Altera Corporation's design tools, logic functions +and other software and tools, and its AMPP partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Altera Program License +Subscription Agreement, Altera MegaCore Function License +Agreement, or other applicable license agreement, including, +without limitation, that your use is for the sole purpose of +programming logic devices manufactured by Altera and sold by +Altera or its authorized distributors. Please refer to the +applicable agreement for further details. + + + ++----------------------------------------------------------------------------------------+ +; TimeQuest Timing Analyzer Summary ; ++--------------------+-------------------------------------------------------------------+ +; Quartus II Version ; Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition ; +; Revision Name ; RAM2E ; +; Device Family ; MAX V ; +; Device Name ; 5M240ZT100C5 ; +; Timing Models ; Final ; +; Delay Model ; Slow Model ; +; Rise/Fall Delays ; Unavailable ; ++--------------------+-------------------------------------------------------------------+ + + +Parallel compilation was disabled, but you have multiple processors available. Enable parallel compilation to reduce compilation time. ++-------------------------------------+ +; Parallel Compilation ; ++----------------------------+--------+ +; Processors ; Number ; ++----------------------------+--------+ +; Number detected on machine ; 8 ; +; Maximum allowed ; 1 ; ++----------------------------+--------+ + + ++-----------------------------------------------------+ +; SDC File List ; ++-----------------+--------+--------------------------+ +; SDC File Path ; Status ; Read at ; ++-----------------+--------+--------------------------+ +; constraints.sdc ; OK ; Wed Mar 10 21:02:38 2021 ; ++-----------------+--------+--------------------------+ + + ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +; Clocks ; ++------------+------+--------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+----------+ +; Clock Name ; Type ; Period ; Frequency ; Rise ; Fall ; Duty Cycle ; Divide by ; Multiply by ; Phase ; Offset ; Edge List ; Edge Shift ; Inverted ; Master ; Source ; Targets ; ++------------+------+--------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+----------+ +; C14M ; Base ; 69.841 ; 14.32 MHz ; 0.000 ; 34.920 ; ; ; ; ; ; ; ; ; ; ; { C14M } ; ++------------+------+--------+-----------+-------+--------+------------+-----------+-------------+-------+--------+-----------+------------+----------+--------+--------+----------+ + + ++-------------------------------------------------+ +; Fmax Summary ; ++-----------+-----------------+------------+------+ +; Fmax ; Restricted Fmax ; Clock Name ; Note ; ++-----------+-----------------+------------+------+ +; 35.22 MHz ; 35.22 MHz ; C14M ; ; ++-----------+-----------------+------------+------+ +This panel reports FMAX for every clock in the design, regardless of the user-specified clock periods. FMAX is only computed for paths where the source and destination registers or ports are driven by the same clock. Paths of different clocks, including generated clocks, are ignored. For paths between a clock and its inversion, FMAX is computed as if the rising and falling edges are scaled along with FMAX, such that the duty cycle (in terms of a percentage) is maintained. Altera recommends that you always use clock constraints and other slack reports for sign-off analysis. + + ++--------------------------------+ +; Setup Summary ; ++-------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++-------+--------+---------------+ +; C14M ; 21.072 ; 0.000 ; ++-------+--------+---------------+ + + ++-------------------------------+ +; Hold Summary ; ++-------+-------+---------------+ +; Clock ; Slack ; End Point TNS ; ++-------+-------+---------------+ +; C14M ; 3.158 ; 0.000 ; ++-------+-------+---------------+ + + +-------------------- +; Recovery Summary ; +-------------------- +No paths to report. + + +------------------- +; Removal Summary ; +------------------- +No paths to report. + + ++--------------------------------+ +; Minimum Pulse Width Summary ; ++-------+--------+---------------+ +; Clock ; Slack ; End Point TNS ; ++-------+--------+---------------+ +; C14M ; 34.581 ; 0.000 ; ++-------+--------+---------------+ + + ++---------------------------------------------------------------------------------------------------------+ +; Setup: 'C14M' ; ++--------+-----------+--------------+--------------+-------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++--------+-----------+--------------+--------------+-------------+--------------+------------+------------+ +; 21.072 ; S[0] ; Dout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.527 ; +; 21.073 ; S[0] ; Dout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.526 ; +; 21.320 ; S[3] ; Dout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.279 ; +; 21.321 ; S[3] ; Dout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.278 ; +; 21.538 ; S[0] ; Dout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.538 ; S[0] ; Dout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.538 ; S[0] ; Dout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.538 ; S[0] ; Dout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.538 ; S[0] ; Dout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.538 ; S[0] ; Dout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 13.061 ; +; 21.786 ; S[3] ; Dout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 21.786 ; S[3] ; Dout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 21.786 ; S[3] ; Dout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 21.786 ; S[3] ; Dout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 21.786 ; S[3] ; Dout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 21.786 ; S[3] ; Dout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.813 ; +; 22.152 ; S[1] ; Dout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.447 ; +; 22.153 ; S[1] ; Dout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 12.446 ; +; 22.618 ; S[1] ; Dout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.618 ; S[1] ; Dout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.618 ; S[1] ; Dout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.618 ; S[1] ; Dout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.618 ; S[1] ; Dout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.618 ; S[1] ; Dout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.981 ; +; 22.638 ; S[0] ; Vout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.961 ; +; 22.638 ; S[0] ; Vout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.961 ; +; 22.656 ; S[0] ; Vout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.943 ; +; 22.656 ; S[0] ; Vout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.943 ; +; 22.656 ; S[0] ; Vout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.943 ; +; 22.791 ; S[2] ; Dout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.808 ; +; 22.792 ; S[2] ; Dout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.807 ; +; 22.881 ; S[2] ; Vout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.718 ; +; 22.881 ; S[2] ; Vout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.718 ; +; 22.899 ; S[2] ; Vout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.700 ; +; 22.899 ; S[2] ; Vout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.700 ; +; 22.899 ; S[2] ; Vout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.700 ; +; 23.257 ; S[2] ; Dout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.257 ; S[2] ; Dout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.257 ; S[2] ; Dout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.257 ; S[2] ; Dout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.257 ; S[2] ; Dout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.257 ; S[2] ; Dout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 11.342 ; +; 23.696 ; S[3] ; Vout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.903 ; +; 23.696 ; S[3] ; Vout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.903 ; +; 23.714 ; S[3] ; Vout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.885 ; +; 23.714 ; S[3] ; Vout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.885 ; +; 23.714 ; S[3] ; Vout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.885 ; +; 24.379 ; S[1] ; Vout[0]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.220 ; +; 24.379 ; S[1] ; Vout[4]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.220 ; +; 24.397 ; S[1] ; Vout[1]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.202 ; +; 24.397 ; S[1] ; Vout[2]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.202 ; +; 24.397 ; S[1] ; Vout[5]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 10.202 ; +; 25.570 ; S[0] ; Vout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 9.029 ; +; 25.570 ; S[0] ; Vout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 9.029 ; +; 25.570 ; S[0] ; Vout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 9.029 ; +; 25.813 ; S[2] ; Vout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 8.786 ; +; 25.813 ; S[2] ; Vout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 8.786 ; +; 25.813 ; S[2] ; Vout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 8.786 ; +; 26.628 ; S[3] ; Vout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.971 ; +; 26.628 ; S[3] ; Vout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.971 ; +; 26.628 ; S[3] ; Vout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.971 ; +; 27.311 ; S[1] ; Vout[3]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.288 ; +; 27.311 ; S[1] ; Vout[6]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.288 ; +; 27.311 ; S[1] ; Vout[7]~reg0 ; C14M ; C14M ; 34.920 ; 0.000 ; 7.288 ; +; 41.451 ; UFMD[14] ; RWMask[5] ; C14M ; C14M ; 69.841 ; 0.000 ; 28.069 ; +; 41.451 ; UFMD[14] ; RWMask[1] ; C14M ; C14M ; 69.841 ; 0.000 ; 28.069 ; +; 41.451 ; UFMD[14] ; RWMask[6] ; C14M ; C14M ; 69.841 ; 0.000 ; 28.069 ; +; 42.716 ; UFMD[14] ; RWMask[4] ; C14M ; C14M ; 69.841 ; 0.000 ; 26.804 ; +; 42.716 ; UFMD[14] ; RWMask[7] ; C14M ; C14M ; 69.841 ; 0.000 ; 26.804 ; +; 42.716 ; UFMD[14] ; RWMask[0] ; C14M ; C14M ; 69.841 ; 0.000 ; 26.804 ; +; 42.716 ; UFMD[14] ; RWMask[2] ; C14M ; C14M ; 69.841 ; 0.000 ; 26.804 ; +; 42.716 ; UFMD[14] ; RWMask[3] ; C14M ; C14M ; 69.841 ; 0.000 ; 26.804 ; +; 42.718 ; UFMD[14] ; UFMReqErase ; C14M ; C14M ; 69.841 ; 0.000 ; 26.802 ; +; 43.290 ; FS[15] ; nCS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 26.230 ; +; 44.163 ; UFMD[13] ; RWMask[5] ; C14M ; C14M ; 69.841 ; 0.000 ; 25.357 ; +; 44.163 ; UFMD[13] ; RWMask[1] ; C14M ; C14M ; 69.841 ; 0.000 ; 25.357 ; +; 44.163 ; UFMD[13] ; RWMask[6] ; C14M ; C14M ; 69.841 ; 0.000 ; 25.357 ; +; 44.177 ; FS[14] ; nCS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 25.343 ; +; 44.723 ; S[0] ; RWBank[4] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.797 ; +; 44.723 ; S[0] ; RWBank[1] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.797 ; +; 44.723 ; S[0] ; RWBank[6] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.797 ; +; 44.792 ; FS[13] ; nCS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 24.728 ; +; 44.806 ; S[0] ; UFMPrgmEN ; C14M ; C14M ; 69.841 ; 0.000 ; 24.714 ; +; 44.811 ; S[0] ; UFMEraseEN ; C14M ; C14M ; 69.841 ; 0.000 ; 24.709 ; +; 44.971 ; S[3] ; RWBank[4] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.549 ; +; 44.971 ; S[3] ; RWBank[1] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.549 ; +; 44.971 ; S[3] ; RWBank[6] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.549 ; +; 45.054 ; S[3] ; UFMPrgmEN ; C14M ; C14M ; 69.841 ; 0.000 ; 24.466 ; +; 45.059 ; S[3] ; UFMEraseEN ; C14M ; C14M ; 69.841 ; 0.000 ; 24.461 ; +; 45.281 ; FS[15] ; nRAS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 24.239 ; +; 45.313 ; FS[7] ; nCS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 24.207 ; +; 45.428 ; UFMD[13] ; RWMask[4] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.092 ; +; 45.428 ; UFMD[13] ; RWMask[7] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.092 ; +; 45.428 ; UFMD[13] ; RWMask[0] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.092 ; +; 45.428 ; UFMD[13] ; RWMask[2] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.092 ; +; 45.428 ; UFMD[13] ; RWMask[3] ; C14M ; C14M ; 69.841 ; 0.000 ; 24.092 ; +; 45.430 ; UFMD[13] ; UFMReqErase ; C14M ; C14M ; 69.841 ; 0.000 ; 24.090 ; +; 45.486 ; FS[8] ; nCS~reg0 ; C14M ; C14M ; 69.841 ; 0.000 ; 24.034 ; +; 45.738 ; S[0] ; RWMask[5] ; C14M ; C14M ; 69.841 ; 0.000 ; 23.782 ; +; 45.738 ; S[0] ; RWMask[1] ; C14M ; C14M ; 69.841 ; 0.000 ; 23.782 ; ++--------+-----------+--------------+--------------+-------------+--------------+------------+------------+ + + ++---------------------------------------------------------------------------------------------------------+ +; Hold: 'C14M' ; ++-------+-------------+-------------+--------------+-------------+--------------+------------+------------+ +; Slack ; From Node ; To Node ; Launch Clock ; Latch Clock ; Relationship ; Clock Skew ; Data Delay ; ++-------+-------------+-------------+--------------+-------------+--------------+------------+------------+ +; 3.158 ; UFMD[10] ; UFMD[11] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.197 ; +; 3.395 ; UFMD[12] ; UFMD[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.434 ; +; 3.411 ; CmdTout[1] ; CmdTout[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.450 ; +; 3.484 ; CmdTout[0] ; CmdTout[0] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.523 ; +; 3.495 ; CmdTout[0] ; CmdTout[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.534 ; +; 3.753 ; RWMask[0] ; RWBank[0] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.792 ; +; 3.880 ; CS[1] ; CS[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 3.919 ; +; 3.986 ; RTPBusyReg ; UFMProgram ; C14M ; C14M ; 0.000 ; 0.000 ; 4.025 ; +; 4.176 ; UFMD[8] ; UFMD[9] ; C14M ; C14M ; 0.000 ; 0.000 ; 4.215 ; +; 4.247 ; UFMD[11] ; UFMD[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 4.286 ; +; 4.524 ; FS[0] ; FS[0] ; C14M ; C14M ; 0.000 ; 0.000 ; 4.563 ; +; 4.810 ; UFMErase ; UFMErase ; C14M ; C14M ; 0.000 ; 0.000 ; 4.849 ; +; 4.810 ; UFMEraseEN ; UFMEraseEN ; C14M ; C14M ; 0.000 ; 0.000 ; 4.849 ; +; 4.910 ; UFMReqErase ; UFMProgram ; C14M ; C14M ; 0.000 ; 0.000 ; 4.949 ; +; 4.955 ; CS[0] ; CS[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 4.994 ; +; 5.151 ; UFMD[10] ; UFMInitDone ; C14M ; C14M ; 0.000 ; 0.000 ; 5.190 ; +; 5.217 ; DRDIn ; DRDIn ; C14M ; C14M ; 0.000 ; 0.000 ; 5.256 ; +; 5.217 ; FS[5] ; FS[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.256 ; +; 5.231 ; RWMask[7] ; RWBank[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.270 ; +; 5.231 ; RWMask[3] ; RWBank[3] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.270 ; +; 5.232 ; RWMask[2] ; RWBank[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.271 ; +; 5.241 ; FS[15] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.280 ; +; 5.243 ; FS[7] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.282 ; +; 5.252 ; FS[8] ; FS[8] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.291 ; +; 5.271 ; Ready ; Ready ; C14M ; C14M ; 0.000 ; 0.000 ; 5.310 ; +; 5.272 ; CS[0] ; CS[0] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.311 ; +; 5.280 ; FS[10] ; FS[10] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.319 ; +; 5.283 ; FS[9] ; FS[9] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.322 ; +; 5.312 ; CS[2] ; CS[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.351 ; +; 5.347 ; CS[1] ; CS[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.386 ; +; 5.369 ; CmdTout[0] ; CmdTout[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.408 ; +; 5.416 ; UFMPrgmEN ; UFMPrgmEN ; C14M ; C14M ; 0.000 ; 0.000 ; 5.455 ; +; 5.417 ; RWSel ; RWSel ; C14M ; C14M ; 0.000 ; 0.000 ; 5.456 ; +; 5.441 ; CmdTout[2] ; CmdTout[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.480 ; +; 5.442 ; FS[11] ; FS[11] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.481 ; +; 5.452 ; FS[13] ; FS[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.491 ; +; 5.453 ; FS[14] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.492 ; +; 5.453 ; UFMInitDone ; UFMInitDone ; C14M ; C14M ; 0.000 ; 0.000 ; 5.492 ; +; 5.458 ; UFMInitDone ; DRShift ; C14M ; C14M ; 0.000 ; 0.000 ; 5.497 ; +; 5.466 ; FS[12] ; FS[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.505 ; +; 5.473 ; S[1] ; S[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.512 ; +; 5.482 ; UFMProgram ; UFMProgram ; C14M ; C14M ; 0.000 ; 0.000 ; 5.521 ; +; 5.484 ; CmdTout[1] ; CmdTout[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.523 ; +; 5.486 ; FS[6] ; FS[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.525 ; +; 5.489 ; S[3] ; S[3] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.528 ; +; 5.496 ; FS[3] ; FS[3] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.535 ; +; 5.508 ; FS[2] ; FS[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.547 ; +; 5.510 ; S[0] ; S[0] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.549 ; +; 5.514 ; FS[1] ; FS[1] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.553 ; +; 5.516 ; FS[4] ; FS[4] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.555 ; +; 5.952 ; FS[5] ; FS[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 5.991 ; +; 5.977 ; UFMD[8] ; UFMInitDone ; C14M ; C14M ; 0.000 ; 0.000 ; 6.016 ; +; 5.987 ; FS[8] ; FS[9] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.026 ; +; 6.015 ; FS[10] ; FS[11] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.054 ; +; 6.018 ; FS[9] ; FS[10] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.057 ; +; 6.090 ; UFMBusyReg ; UFMErase ; C14M ; C14M ; 0.000 ; 0.000 ; 6.129 ; +; 6.096 ; FS[5] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.135 ; +; 6.131 ; FS[8] ; FS[10] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.170 ; +; 6.159 ; FS[10] ; FS[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.198 ; +; 6.162 ; FS[9] ; FS[11] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.201 ; +; 6.275 ; FS[8] ; FS[11] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.314 ; +; 6.306 ; FS[9] ; FS[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.345 ; +; 6.375 ; SetRWBankFF ; RWBank[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.414 ; +; 6.419 ; FS[8] ; FS[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.458 ; +; 6.444 ; FS[11] ; FS[12] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.483 ; +; 6.454 ; FS[13] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.493 ; +; 6.455 ; FS[14] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.494 ; +; 6.488 ; FS[6] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.527 ; +; 6.498 ; FS[3] ; FS[4] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.537 ; +; 6.516 ; FS[1] ; FS[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.555 ; +; 6.518 ; FS[4] ; FS[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.557 ; +; 6.598 ; FS[13] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.637 ; +; 6.616 ; RWMask[5] ; RWBank[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.655 ; +; 6.624 ; CS[0] ; CS[2] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.663 ; +; 6.642 ; FS[3] ; FS[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.681 ; +; 6.662 ; FS[4] ; FS[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.701 ; +; 6.690 ; RWBank[5] ; BA[1]~reg0 ; C14M ; C14M ; 0.000 ; 0.000 ; 6.729 ; +; 6.725 ; UFMD[14] ; RWMask[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.764 ; +; 6.786 ; FS[3] ; FS[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.825 ; +; 6.795 ; FS[10] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.834 ; +; 6.795 ; FS[10] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.834 ; +; 6.795 ; FS[10] ; FS[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.834 ; +; 6.806 ; FS[4] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.845 ; +; 6.851 ; RWMask[6] ; RWBank[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.890 ; +; 6.930 ; FS[3] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.969 ; +; 6.942 ; FS[9] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.981 ; +; 6.942 ; FS[9] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.981 ; +; 6.942 ; FS[9] ; FS[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 6.981 ; +; 7.023 ; FS[12] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.062 ; +; 7.023 ; FS[12] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.062 ; +; 7.023 ; FS[12] ; FS[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.062 ; +; 7.055 ; FS[8] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.094 ; +; 7.055 ; FS[8] ; FS[14] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.094 ; +; 7.055 ; FS[8] ; FS[13] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.094 ; +; 7.065 ; FS[2] ; FS[4] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.104 ; +; 7.065 ; FS[2] ; FS[5] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.104 ; +; 7.065 ; FS[2] ; FS[6] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.104 ; +; 7.065 ; FS[2] ; FS[7] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.104 ; +; 7.065 ; FS[2] ; FS[3] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.104 ; +; 7.080 ; FS[11] ; FS[15] ; C14M ; C14M ; 0.000 ; 0.000 ; 7.119 ; ++-------+-------------+-------------+--------------+-------------+--------------+------------+------------+ + + ++-----------------------------------------------------------------------------------------------+ +; Minimum Pulse Width: 'C14M' ; ++--------+--------------+----------------+------------------+-------+------------+--------------+ +; Slack ; Actual Width ; Required Width ; Type ; Clock ; Clock Edge ; Target ; ++--------+--------------+----------------+------------------+-------+------------+--------------+ +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; ARCLK ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; ARShift ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; BA[0]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; BA[1]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CKE~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CS[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CS[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CS[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CmdTout[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CmdTout[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; CmdTout[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DOEEN ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DQMH~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DQML~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DRCLK ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DRCLKPulse ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DRDIn ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; DRShift ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[0]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[1]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[2]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[3]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[4]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[5]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[6]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Dout[7]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[10] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[11] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[12] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[13] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[14] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[15] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[3] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[4] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[5] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[6] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[7] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[8] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; FS[9] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; PHI1reg ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[0]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[10]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[11]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[1]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[2]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[3]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[4]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[5]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[6]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[7]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[8]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RA[9]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RTPBusyReg ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[3] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[4] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[5] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[6] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWBank[7] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMaskSet ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[3] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[4] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[5] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[6] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWMask[7] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; RWSel ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; Ready ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; S[0] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; S[1] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; S[2] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; S[3] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; SetRWBankFF ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMBitbang ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMBusyReg ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[10] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[11] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[12] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[13] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[14] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[8] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMD[9] ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMErase ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMEraseEN ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMInitDone ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMPrgmEN ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMProgram ; +; 34.581 ; 34.920 ; 0.339 ; High Pulse Width ; C14M ; Rise ; UFMReqErase ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Vout[0]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Vout[1]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Vout[2]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Vout[3]~reg0 ; +; 34.581 ; 34.920 ; 0.339 ; Low Pulse Width ; C14M ; Fall ; Vout[4]~reg0 ; ++--------+--------------+----------------+------------------+-------+------------+--------------+ + + ++-------------------------------------------------------------------------+ +; Setup Times ; ++-----------+------------+--------+--------+------------+-----------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++-----------+------------+--------+--------+------------+-----------------+ +; Ain[*] ; C14M ; 10.392 ; 10.392 ; Rise ; C14M ; +; Ain[0] ; C14M ; 6.603 ; 6.603 ; Rise ; C14M ; +; Ain[1] ; C14M ; 4.691 ; 4.691 ; Rise ; C14M ; +; Ain[2] ; C14M ; 6.626 ; 6.626 ; Rise ; C14M ; +; Ain[3] ; C14M ; 6.930 ; 6.930 ; Rise ; C14M ; +; Ain[4] ; C14M ; 10.392 ; 10.392 ; Rise ; C14M ; +; Ain[5] ; C14M ; 5.028 ; 5.028 ; Rise ; C14M ; +; Ain[6] ; C14M ; 6.885 ; 6.885 ; Rise ; C14M ; +; Ain[7] ; C14M ; 6.064 ; 6.064 ; Rise ; C14M ; +; Din[*] ; C14M ; 29.469 ; 29.469 ; Rise ; C14M ; +; Din[0] ; C14M ; 27.528 ; 27.528 ; Rise ; C14M ; +; Din[1] ; C14M ; 22.600 ; 22.600 ; Rise ; C14M ; +; Din[2] ; C14M ; 27.577 ; 27.577 ; Rise ; C14M ; +; Din[3] ; C14M ; 25.336 ; 25.336 ; Rise ; C14M ; +; Din[4] ; C14M ; 24.782 ; 24.782 ; Rise ; C14M ; +; Din[5] ; C14M ; 27.644 ; 27.644 ; Rise ; C14M ; +; Din[6] ; C14M ; 29.469 ; 29.469 ; Rise ; C14M ; +; Din[7] ; C14M ; 26.581 ; 26.581 ; Rise ; C14M ; +; PHI1 ; C14M ; 19.681 ; 19.681 ; Rise ; C14M ; +; nC07X ; C14M ; 12.752 ; 12.752 ; Rise ; C14M ; +; nEN80 ; C14M ; 11.289 ; 11.289 ; Rise ; C14M ; +; nWE ; C14M ; 17.804 ; 17.804 ; Rise ; C14M ; +; nWE80 ; C14M ; 14.258 ; 14.258 ; Rise ; C14M ; +; RD[*] ; C14M ; 7.204 ; 7.204 ; Fall ; C14M ; +; RD[0] ; C14M ; 6.761 ; 6.761 ; Fall ; C14M ; +; RD[1] ; C14M ; 7.123 ; 7.123 ; Fall ; C14M ; +; RD[2] ; C14M ; 6.930 ; 6.930 ; Fall ; C14M ; +; RD[3] ; C14M ; 6.958 ; 6.958 ; Fall ; C14M ; +; RD[4] ; C14M ; 5.017 ; 5.017 ; Fall ; C14M ; +; RD[5] ; C14M ; 7.204 ; 7.204 ; Fall ; C14M ; +; RD[6] ; C14M ; 6.905 ; 6.905 ; Fall ; C14M ; +; RD[7] ; C14M ; 5.074 ; 5.074 ; Fall ; C14M ; ++-----------+------------+--------+--------+------------+-----------------+ + + ++---------------------------------------------------------------------------+ +; Hold Times ; ++-----------+------------+---------+---------+------------+-----------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++-----------+------------+---------+---------+------------+-----------------+ +; Ain[*] ; C14M ; -4.331 ; -4.331 ; Rise ; C14M ; +; Ain[0] ; C14M ; -6.243 ; -6.243 ; Rise ; C14M ; +; Ain[1] ; C14M ; -4.331 ; -4.331 ; Rise ; C14M ; +; Ain[2] ; C14M ; -6.266 ; -6.266 ; Rise ; C14M ; +; Ain[3] ; C14M ; -6.570 ; -6.570 ; Rise ; C14M ; +; Ain[4] ; C14M ; -10.032 ; -10.032 ; Rise ; C14M ; +; Ain[5] ; C14M ; -4.668 ; -4.668 ; Rise ; C14M ; +; Ain[6] ; C14M ; -6.525 ; -6.525 ; Rise ; C14M ; +; Ain[7] ; C14M ; -5.704 ; -5.704 ; Rise ; C14M ; +; Din[*] ; C14M ; -3.164 ; -3.164 ; Rise ; C14M ; +; Din[0] ; C14M ; -4.999 ; -4.999 ; Rise ; C14M ; +; Din[1] ; C14M ; -4.844 ; -4.844 ; Rise ; C14M ; +; Din[2] ; C14M ; -3.164 ; -3.164 ; Rise ; C14M ; +; Din[3] ; C14M ; -5.058 ; -5.058 ; Rise ; C14M ; +; Din[4] ; C14M ; -5.163 ; -5.163 ; Rise ; C14M ; +; Din[5] ; C14M ; -6.645 ; -6.645 ; Rise ; C14M ; +; Din[6] ; C14M ; -4.862 ; -4.862 ; Rise ; C14M ; +; Din[7] ; C14M ; -4.617 ; -4.617 ; Rise ; C14M ; +; PHI1 ; C14M ; -6.275 ; -6.275 ; Rise ; C14M ; +; nC07X ; C14M ; -12.392 ; -12.392 ; Rise ; C14M ; +; nEN80 ; C14M ; -7.086 ; -7.086 ; Rise ; C14M ; +; nWE ; C14M ; -17.444 ; -17.444 ; Rise ; C14M ; +; nWE80 ; C14M ; -13.898 ; -13.898 ; Rise ; C14M ; +; RD[*] ; C14M ; -4.655 ; -4.655 ; Fall ; C14M ; +; RD[0] ; C14M ; -6.398 ; -6.398 ; Fall ; C14M ; +; RD[1] ; C14M ; -4.676 ; -4.676 ; Fall ; C14M ; +; RD[2] ; C14M ; -6.117 ; -6.117 ; Fall ; C14M ; +; RD[3] ; C14M ; -4.767 ; -4.767 ; Fall ; C14M ; +; RD[4] ; C14M ; -4.655 ; -4.655 ; Fall ; C14M ; +; RD[5] ; C14M ; -6.305 ; -6.305 ; Fall ; C14M ; +; RD[6] ; C14M ; -6.507 ; -6.507 ; Fall ; C14M ; +; RD[7] ; C14M ; -4.689 ; -4.689 ; Fall ; C14M ; ++-----------+------------+---------+---------+------------+-----------------+ + + ++-------------------------------------------------------------------------+ +; Clock to Output Times ; ++-----------+------------+--------+--------+------------+-----------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++-----------+------------+--------+--------+------------+-----------------+ +; BA[*] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; BA[0] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; BA[1] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; CKE ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; DQMH ; C14M ; 17.375 ; 17.375 ; Rise ; C14M ; +; DQML ; C14M ; 20.694 ; 20.694 ; Rise ; C14M ; +; RA[*] ; C14M ; 19.354 ; 19.354 ; Rise ; C14M ; +; RA[0] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[1] ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; RA[2] ; C14M ; 17.332 ; 17.332 ; Rise ; C14M ; +; RA[3] ; C14M ; 17.368 ; 17.368 ; Rise ; C14M ; +; RA[4] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[5] ; C14M ; 17.375 ; 17.375 ; Rise ; C14M ; +; RA[6] ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; RA[7] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[8] ; C14M ; 17.376 ; 17.376 ; Rise ; C14M ; +; RA[9] ; C14M ; 19.354 ; 19.354 ; Rise ; C14M ; +; RA[10] ; C14M ; 17.376 ; 17.376 ; Rise ; C14M ; +; RA[11] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; nCAS ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; nCS ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; nDOE ; C14M ; 27.546 ; 27.546 ; Rise ; C14M ; +; nRAS ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; nRWE ; C14M ; 19.354 ; 19.354 ; Rise ; C14M ; +; Dout[*] ; C14M ; 19.315 ; 19.315 ; Fall ; C14M ; +; Dout[0] ; C14M ; 17.336 ; 17.336 ; Fall ; C14M ; +; Dout[1] ; C14M ; 17.368 ; 17.368 ; Fall ; C14M ; +; Dout[2] ; C14M ; 19.308 ; 19.308 ; Fall ; C14M ; +; Dout[3] ; C14M ; 17.362 ; 17.362 ; Fall ; C14M ; +; Dout[4] ; C14M ; 19.315 ; 19.315 ; Fall ; C14M ; +; Dout[5] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Dout[6] ; C14M ; 17.337 ; 17.337 ; Fall ; C14M ; +; Dout[7] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[*] ; C14M ; 19.308 ; 19.308 ; Fall ; C14M ; +; Vout[0] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[1] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[2] ; C14M ; 17.337 ; 17.337 ; Fall ; C14M ; +; Vout[3] ; C14M ; 19.308 ; 19.308 ; Fall ; C14M ; +; Vout[4] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[5] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[6] ; C14M ; 19.301 ; 19.301 ; Fall ; C14M ; +; Vout[7] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; ++-----------+------------+--------+--------+------------+-----------------+ + + ++-------------------------------------------------------------------------+ +; Minimum Clock to Output Times ; ++-----------+------------+--------+--------+------------+-----------------+ +; Data Port ; Clock Port ; Rise ; Fall ; Clock Edge ; Clock Reference ; ++-----------+------------+--------+--------+------------+-----------------+ +; BA[*] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; BA[0] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; BA[1] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; CKE ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; DQMH ; C14M ; 17.375 ; 17.375 ; Rise ; C14M ; +; DQML ; C14M ; 20.694 ; 20.694 ; Rise ; C14M ; +; RA[*] ; C14M ; 17.332 ; 17.332 ; Rise ; C14M ; +; RA[0] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[1] ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; RA[2] ; C14M ; 17.332 ; 17.332 ; Rise ; C14M ; +; RA[3] ; C14M ; 17.368 ; 17.368 ; Rise ; C14M ; +; RA[4] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[5] ; C14M ; 17.375 ; 17.375 ; Rise ; C14M ; +; RA[6] ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; RA[7] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; RA[8] ; C14M ; 17.376 ; 17.376 ; Rise ; C14M ; +; RA[9] ; C14M ; 19.354 ; 19.354 ; Rise ; C14M ; +; RA[10] ; C14M ; 17.376 ; 17.376 ; Rise ; C14M ; +; RA[11] ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; nCAS ; C14M ; 17.383 ; 17.383 ; Rise ; C14M ; +; nCS ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; nDOE ; C14M ; 27.546 ; 27.546 ; Rise ; C14M ; +; nRAS ; C14M ; 17.378 ; 17.378 ; Rise ; C14M ; +; nRWE ; C14M ; 19.354 ; 19.354 ; Rise ; C14M ; +; Dout[*] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Dout[0] ; C14M ; 17.336 ; 17.336 ; Fall ; C14M ; +; Dout[1] ; C14M ; 17.368 ; 17.368 ; Fall ; C14M ; +; Dout[2] ; C14M ; 19.308 ; 19.308 ; Fall ; C14M ; +; Dout[3] ; C14M ; 17.362 ; 17.362 ; Fall ; C14M ; +; Dout[4] ; C14M ; 19.315 ; 19.315 ; Fall ; C14M ; +; Dout[5] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Dout[6] ; C14M ; 17.337 ; 17.337 ; Fall ; C14M ; +; Dout[7] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[*] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[0] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[1] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[2] ; C14M ; 17.337 ; 17.337 ; Fall ; C14M ; +; Vout[3] ; C14M ; 19.308 ; 19.308 ; Fall ; C14M ; +; Vout[4] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[5] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; +; Vout[6] ; C14M ; 19.301 ; 19.301 ; Fall ; C14M ; +; Vout[7] ; C14M ; 17.332 ; 17.332 ; Fall ; C14M ; ++-----------+------------+--------+--------+------------+-----------------+ + + ++------------------------------------------------------+ +; Propagation Delay ; ++------------+-------------+--------+----+----+--------+ +; Input Port ; Output Port ; RR ; RF ; FR ; FF ; ++------------+-------------+--------+----+----+--------+ +; Din[0] ; RD[0] ; 19.413 ; ; ; 19.413 ; +; Din[1] ; RD[1] ; 19.309 ; ; ; 19.309 ; +; Din[2] ; RD[2] ; 21.236 ; ; ; 21.236 ; +; Din[3] ; RD[3] ; 19.293 ; ; ; 19.293 ; +; Din[4] ; RD[4] ; 21.360 ; ; ; 21.360 ; +; Din[5] ; RD[5] ; 21.270 ; ; ; 21.270 ; +; Din[6] ; RD[6] ; 19.514 ; ; ; 19.514 ; +; Din[7] ; RD[7] ; 19.413 ; ; ; 19.413 ; +; PHI1 ; nVOE ; 22.485 ; ; ; 22.485 ; +; nEN80 ; RD[0] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[1] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[2] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[3] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[4] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[5] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[6] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[7] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; nDOE ; 28.267 ; ; ; 28.267 ; +; nWE ; nDOE ; 30.113 ; ; ; 30.113 ; +; nWE80 ; RD[0] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[1] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[2] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[3] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[4] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[5] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[6] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[7] ; 25.521 ; ; ; 25.521 ; ++------------+-------------+--------+----+----+--------+ + + ++------------------------------------------------------+ +; Minimum Propagation Delay ; ++------------+-------------+--------+----+----+--------+ +; Input Port ; Output Port ; RR ; RF ; FR ; FF ; ++------------+-------------+--------+----+----+--------+ +; Din[0] ; RD[0] ; 19.413 ; ; ; 19.413 ; +; Din[1] ; RD[1] ; 19.309 ; ; ; 19.309 ; +; Din[2] ; RD[2] ; 21.236 ; ; ; 21.236 ; +; Din[3] ; RD[3] ; 19.293 ; ; ; 19.293 ; +; Din[4] ; RD[4] ; 21.360 ; ; ; 21.360 ; +; Din[5] ; RD[5] ; 21.270 ; ; ; 21.270 ; +; Din[6] ; RD[6] ; 19.514 ; ; ; 19.514 ; +; Din[7] ; RD[7] ; 19.413 ; ; ; 19.413 ; +; PHI1 ; nVOE ; 22.485 ; ; ; 22.485 ; +; nEN80 ; RD[0] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[1] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[2] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[3] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[4] ; 21.416 ; ; ; 21.416 ; +; nEN80 ; RD[5] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[6] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; RD[7] ; 23.245 ; ; ; 23.245 ; +; nEN80 ; nDOE ; 28.267 ; ; ; 28.267 ; +; nWE ; nDOE ; 30.113 ; ; ; 30.113 ; +; nWE80 ; RD[0] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[1] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[2] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[3] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[4] ; 23.692 ; ; ; 23.692 ; +; nWE80 ; RD[5] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[6] ; 25.521 ; ; ; 25.521 ; +; nWE80 ; RD[7] ; 25.521 ; ; ; 25.521 ; ++------------+-------------+--------+----+----+--------+ + + ++-------------------------------------------------------------------+ +; Setup Transfers ; ++------------+----------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++------------+----------+----------+----------+----------+----------+ +; C14M ; C14M ; 1352 ; 0 ; 64 ; 0 ; ++------------+----------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + ++-------------------------------------------------------------------+ +; Hold Transfers ; ++------------+----------+----------+----------+----------+----------+ +; From Clock ; To Clock ; RR Paths ; FR Paths ; RF Paths ; FF Paths ; ++------------+----------+----------+----------+----------+----------+ +; C14M ; C14M ; 1352 ; 0 ; 64 ; 0 ; ++------------+----------+----------+----------+----------+----------+ +Entries labeled "false path" only account for clock-to-clock false paths and not path-based false paths. As a result, actual path counts may be lower than reported. + + +--------------- +; Report TCCS ; +--------------- +No dedicated SERDES Transmitter circuitry present in device or used in design + + +--------------- +; Report RSKM ; +--------------- +No dedicated SERDES Receiver circuitry present in device or used in design + + ++------------------------------------------------+ +; Unconstrained Paths ; ++---------------------------------+-------+------+ +; Property ; Setup ; Hold ; ++---------------------------------+-------+------+ +; Illegal Clocks ; 0 ; 0 ; +; Unconstrained Clocks ; 2 ; 2 ; +; Unconstrained Input Ports ; 29 ; 29 ; +; Unconstrained Input Port Paths ; 143 ; 143 ; +; Unconstrained Output Ports ; 47 ; 47 ; +; Unconstrained Output Port Paths ; 65 ; 65 ; ++---------------------------------+-------+------+ + + ++------------------------------------+ +; TimeQuest Timing Analyzer Messages ; ++------------------------------------+ +Info: ******************************************************************* +Info: Running Quartus II 64-Bit TimeQuest Timing Analyzer + Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition + Info: Processing started: Wed Mar 10 21:02:36 2021 +Info: Command: quartus_sta RAM2E -c RAM2E +Info: qsta_default_script.tcl version: #1 +Warning (20028): Parallel compilation is not licensed and has been disabled +Info (21077): Low junction temperature is 0 degrees C +Info (21077): High junction temperature is 85 degrees C +Info (306004): Started post-fitting delay annotation +Info (306005): Delay annotation completed successfully +Info (332104): Reading SDC File: 'constraints.sdc' +Warning (332060): Node: DRCLK was determined to be a clock but was found without an associated clock assignment. +Warning (332060): Node: ARCLK was determined to be a clock but was found without an associated clock assignment. +Info: Found TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS = ON +Info (332146): Worst-case setup slack is 21.072 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 21.072 0.000 C14M +Info (332146): Worst-case hold slack is 3.158 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 3.158 0.000 C14M +Info (332140): No Recovery paths to report +Info (332140): No Removal paths to report +Info (332146): Worst-case minimum pulse width slack is 34.581 + Info (332119): Slack End Point TNS Clock + Info (332119): ========= ============= ===================== + Info (332119): 34.581 0.000 C14M +Info (332001): The selected device family is not supported by the report_metastability command. +Info (332102): Design is not fully constrained for setup requirements +Info (332102): Design is not fully constrained for hold requirements +Info: Quartus II 64-Bit TimeQuest Timing Analyzer was successful. 0 errors, 3 warnings + Info: Peak virtual memory: 4514 megabytes + Info: Processing ended: Wed Mar 10 21:02:38 2021 + Info: Elapsed time: 00:00:02 + Info: Total CPU time (on all processors): 00:00:02 + + diff --git a/cpld_maxv/output_files/RAM2E.sta.summary b/cpld_maxv/output_files/RAM2E.sta.summary new file mode 100644 index 0000000..7a28d92 --- /dev/null +++ b/cpld_maxv/output_files/RAM2E.sta.summary @@ -0,0 +1,17 @@ +------------------------------------------------------------ +TimeQuest Timing Analyzer Summary +------------------------------------------------------------ + +Type : Setup 'C14M' +Slack : 21.072 +TNS : 0.000 + +Type : Hold 'C14M' +Slack : 3.158 +TNS : 0.000 + +Type : Minimum Pulse Width 'C14M' +Slack : 34.581 +TNS : 0.000 + +------------------------------------------------------------