mirror of
https://github.com/array-in-a-matrix/SAROO.git
synced 2025-04-02 10:31:43 -04:00
add FPGA code
This commit is contained in:
parent
f9e0c14740
commit
fa4c9dfe25
18 changed files with 3691 additions and 0 deletions
30
FPGA/SSMaster.qpf
Normal file
30
FPGA/SSMaster.qpf
Normal file
|
@ -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 Full Version
|
||||
# Date created = 11:32:21 July 16, 2014
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "13.0"
|
||||
DATE = "11:32:21 July 16, 2014"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "SSMaster"
|
400
FPGA/SSMaster.qsf
Normal file
400
FPGA/SSMaster.qsf
Normal file
|
@ -0,0 +1,400 @@
|
|||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# 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 Full Version
|
||||
# Date created = 11:32:21 July 16, 2014
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# SSMaster_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 "Cyclone IV E"
|
||||
set_global_assignment -name DEVICE EP4CE6F17C8
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY SSMaster
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION "13.0 SP1"
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "11:32:21 JULY 16, 2014"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION 13.1
|
||||
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 FBGA
|
||||
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 256
|
||||
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
|
||||
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
|
||||
set_location_assignment PIN_R5 -to SD_ADDR[12]
|
||||
set_location_assignment PIN_T5 -to SD_ADDR[11]
|
||||
set_location_assignment PIN_M7 -to SD_ADDR[10]
|
||||
set_location_assignment PIN_R6 -to SD_ADDR[9]
|
||||
set_location_assignment PIN_T6 -to SD_ADDR[8]
|
||||
set_location_assignment PIN_R7 -to SD_ADDR[7]
|
||||
set_location_assignment PIN_T7 -to SD_ADDR[6]
|
||||
set_location_assignment PIN_R8 -to SD_ADDR[5]
|
||||
set_location_assignment PIN_T8 -to SD_ADDR[4]
|
||||
set_location_assignment PIN_L8 -to SD_ADDR[3]
|
||||
set_location_assignment PIN_M8 -to SD_ADDR[2]
|
||||
set_location_assignment PIN_P8 -to SD_ADDR[1]
|
||||
set_location_assignment PIN_N8 -to SD_ADDR[0]
|
||||
set_location_assignment PIN_P6 -to SD_BA[1]
|
||||
set_location_assignment PIN_N6 -to SD_BA[0]
|
||||
set_location_assignment PIN_P3 -to SD_CAS
|
||||
set_location_assignment PIN_T4 -to SD_CKE
|
||||
set_location_assignment PIN_N5 -to SD_CS
|
||||
set_location_assignment PIN_L1 -to SD_DQ[15]
|
||||
set_location_assignment PIN_L2 -to SD_DQ[14]
|
||||
set_location_assignment PIN_N1 -to SD_DQ[13]
|
||||
set_location_assignment PIN_N2 -to SD_DQ[12]
|
||||
set_location_assignment PIN_P1 -to SD_DQ[11]
|
||||
set_location_assignment PIN_P2 -to SD_DQ[10]
|
||||
set_location_assignment PIN_R1 -to SD_DQ[9]
|
||||
set_location_assignment PIN_T2 -to SD_DQ[8]
|
||||
set_location_assignment PIN_K6 -to SD_DQ[7]
|
||||
set_location_assignment PIN_L4 -to SD_DQ[6]
|
||||
set_location_assignment PIN_L3 -to SD_DQ[5]
|
||||
set_location_assignment PIN_K5 -to SD_DQ[4]
|
||||
set_location_assignment PIN_K2 -to SD_DQ[3]
|
||||
set_location_assignment PIN_K1 -to SD_DQ[2]
|
||||
set_location_assignment PIN_J2 -to SD_DQ[1]
|
||||
set_location_assignment PIN_J1 -to SD_DQ[0]
|
||||
set_location_assignment PIN_T3 -to SD_DQM[1]
|
||||
set_location_assignment PIN_N3 -to SD_DQM[0]
|
||||
set_location_assignment PIN_M6 -to SD_RAS
|
||||
set_location_assignment PIN_L6 -to SD_WE
|
||||
set_location_assignment PIN_M1 -to CLK_50M
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE ON
|
||||
set_global_assignment -name GENERATE_TTF_FILE ON
|
||||
set_global_assignment -name GENERATE_RBF_FILE ON
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
|
||||
set_location_assignment PIN_R4 -to SD_CLK
|
||||
set_location_assignment PIN_R3 -to SD_ADDR[13]
|
||||
set_location_assignment PIN_J13 -to SS_DATA[2]
|
||||
set_location_assignment PIN_J12 -to SS_DATA[3]
|
||||
set_location_assignment PIN_J14 -to SS_DATA[1]
|
||||
set_location_assignment PIN_J15 -to SS_CS1
|
||||
set_location_assignment PIN_J16 -to SS_WR1
|
||||
set_location_assignment PIN_K15 -to SS_ADDR[0]
|
||||
set_location_assignment PIN_K16 -to SS_RD
|
||||
set_location_assignment PIN_J11 -to SS_FC1
|
||||
set_location_assignment PIN_L15 -to SS_ADDR[11]
|
||||
set_location_assignment PIN_L16 -to SS_ADDR[10]
|
||||
set_location_assignment PIN_L13 -to SS_AAS
|
||||
set_location_assignment PIN_L14 -to SS_TIM0
|
||||
set_location_assignment PIN_N15 -to SS_ADDR[13]
|
||||
set_location_assignment PIN_N16 -to SS_ADDR[8]
|
||||
set_location_assignment PIN_R16 -to SS_ADDR[17]
|
||||
set_location_assignment PIN_P16 -to SS_ADDR[12]
|
||||
set_location_assignment PIN_P15 -to SS_ADDR[15]
|
||||
set_location_assignment PIN_K12 -to SS_DATA[0]
|
||||
set_location_assignment PIN_N14 -to SS_CS2
|
||||
set_location_assignment PIN_L12 -to SS_FC0
|
||||
set_location_assignment PIN_M12 -to SS_WR0
|
||||
set_location_assignment PIN_N13 -to SS_CS0
|
||||
set_location_assignment PIN_C15 -to SS_DATA[4]
|
||||
set_location_assignment PIN_C16 -to SS_DATA[5]
|
||||
set_location_assignment PIN_D15 -to SS_DATA[6]
|
||||
set_location_assignment PIN_D16 -to SS_DATA[7]
|
||||
set_location_assignment PIN_G11 -to SS_DATA[8]
|
||||
set_location_assignment PIN_F14 -to SS_DATA[9]
|
||||
set_location_assignment PIN_F13 -to SS_DATA[10]
|
||||
set_location_assignment PIN_B16 -to SS_DATA[15]
|
||||
set_location_assignment PIN_F15 -to SS_DATA_DIR
|
||||
set_location_assignment PIN_F16 -to SS_TIM2
|
||||
set_location_assignment PIN_G15 -to SS_TIM1
|
||||
set_location_assignment PIN_P14 -to SS_ADDR[1]
|
||||
set_location_assignment PIN_N12 -to SS_ADDR[2]
|
||||
set_location_assignment PIN_N11 -to SS_ADDR[3]
|
||||
set_location_assignment PIN_P11 -to SS_ADDR[4]
|
||||
set_location_assignment PIN_M10 -to SS_ADDR[5]
|
||||
set_location_assignment PIN_M9 -to SS_ADDR[6]
|
||||
set_location_assignment PIN_P9 -to SS_ADDR[7]
|
||||
set_location_assignment PIN_R14 -to SS_WAIT
|
||||
set_location_assignment PIN_T15 -to SS_IRQ
|
||||
set_location_assignment PIN_T14 -to SS_LRCK
|
||||
set_location_assignment PIN_T13 -to SS_SD
|
||||
set_location_assignment PIN_R12 -to SS_SSEL
|
||||
set_location_assignment PIN_R13 -to SS_BCK
|
||||
set_location_assignment PIN_T12 -to SS_ADDR[16]
|
||||
set_location_assignment PIN_T11 -to SS_ADDR[21]
|
||||
set_location_assignment PIN_R11 -to SS_ADDR[18]
|
||||
set_location_assignment PIN_L9 -to SS_ADDR[19]
|
||||
set_location_assignment PIN_R10 -to SS_ADDR[20]
|
||||
set_location_assignment PIN_R9 -to SS_ADDR[22]
|
||||
set_location_assignment PIN_T9 -to SS_RST
|
||||
set_location_assignment PIN_D14 -to SS_DATA[11]
|
||||
set_location_assignment PIN_F11 -to SS_DATA[12]
|
||||
set_location_assignment PIN_C14 -to SS_DATA[13]
|
||||
set_location_assignment PIN_A15 -to SS_DATA[14]
|
||||
set_location_assignment PIN_D11 -to ST_AD[2]
|
||||
set_location_assignment PIN_D12 -to ST_MCLK
|
||||
set_location_assignment PIN_B12 -to ST_ADDR[1]
|
||||
set_location_assignment PIN_A13 -to ST_ADDR[2]
|
||||
set_location_assignment PIN_B13 -to ST_AD[0]
|
||||
set_location_assignment PIN_A14 -to ST_AD[1]
|
||||
set_location_assignment PIN_E11 -to ST_RD
|
||||
set_location_assignment PIN_B10 -to ST_AD[13]
|
||||
set_location_assignment PIN_A11 -to ST_AD[14]
|
||||
set_location_assignment PIN_B11 -to ST_AD[15]
|
||||
set_location_assignment PIN_A12 -to ST_ADDR[0]
|
||||
set_location_assignment PIN_C9 -to ST_WAIT
|
||||
set_location_assignment PIN_E9 -to ST_CS
|
||||
set_location_assignment PIN_A4 -to ST_AD[4]
|
||||
set_location_assignment PIN_B5 -to ST_AD[5]
|
||||
set_location_assignment PIN_A5 -to ST_AD[6]
|
||||
set_location_assignment PIN_B6 -to ST_AD[7]
|
||||
set_location_assignment PIN_A6 -to ST_AD[8]
|
||||
set_location_assignment PIN_B7 -to ST_AD[9]
|
||||
set_location_assignment PIN_A7 -to ST_AD[10]
|
||||
set_location_assignment PIN_B8 -to ST_AD[11]
|
||||
set_location_assignment PIN_A8 -to ST_AD[12]
|
||||
set_location_assignment PIN_C8 -to ST_BL1
|
||||
set_location_assignment PIN_E8 -to ST_BL0
|
||||
set_location_assignment PIN_C6 -to ST_ADDR[4]
|
||||
set_location_assignment PIN_E7 -to ST_ADDR[3]
|
||||
set_location_assignment PIN_D6 -to ST_ADDR[5]
|
||||
set_location_assignment PIN_D5 -to ST_ADDR[6]
|
||||
set_location_assignment PIN_F1 -to LED0
|
||||
set_location_assignment PIN_G1 -to LED1
|
||||
set_location_assignment PIN_M15 -to SS_ADDR[9]
|
||||
set_location_assignment PIN_E16 -to SS_MCLK
|
||||
set_location_assignment PIN_M16 -to SS_SCLK
|
||||
set_location_assignment PIN_N9 -to SS_ADDR[14]
|
||||
set_location_assignment PIN_C11 -to ST_AD[3]
|
||||
set_location_assignment PIN_B9 -to ST_BCK
|
||||
set_location_assignment PIN_A9 -to ST_LRCK
|
||||
set_location_assignment PIN_D9 -to ST_WR
|
||||
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_location_assignment PIN_G16 -to FPGA_INIT
|
||||
set_location_assignment PIN_T10 -to SS_ADDR[23]
|
||||
set_location_assignment PIN_D8 -to ST_ADDR[7]
|
||||
set_location_assignment PIN_E1 -to ST_CLK
|
||||
set_location_assignment PIN_A2 -to ST_GPIO0
|
||||
set_location_assignment PIN_B3 -to ST_GPIO1
|
||||
set_location_assignment PIN_A3 -to ST_GPIO2
|
||||
set_location_assignment PIN_B4 -to ST_GPIO3
|
||||
set_location_assignment PIN_A10 -to ST_SDO
|
||||
set_location_assignment PIN_B14 -to SS_DATA_OE
|
||||
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT ON
|
||||
set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF
|
||||
set_global_assignment -name ENABLE_NCE_PIN OFF
|
||||
set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF
|
||||
set_global_assignment -name TRI_STATE_SPI_PINS ON
|
||||
set_global_assignment -name ENABLE_SIGNALTAP ON
|
||||
set_global_assignment -name USE_SIGNALTAP_FILE cdc_fifo.stp
|
||||
set_instance_assignment -name PAD_TO_CORE_DELAY 6 -to ST_GPIO1
|
||||
set_instance_assignment -name PAD_TO_CORE_DELAY 6 -to ST_CS
|
||||
set_global_assignment -name SDC_FILE SSMaster.sdc
|
||||
set_global_assignment -name QSYS_FILE cqsys.qsys
|
||||
set_global_assignment -name VERILOG_FILE SSMaster.v
|
||||
set_global_assignment -name SIGNALTAP_FILE fsmc.stp
|
||||
set_global_assignment -name SIGNALTAP_FILE ss_abus.stp
|
||||
set_global_assignment -name SIGNALTAP_FILE cdc_fifo.stp
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
|
||||
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
set_global_assignment -name SLD_NODE_CREATOR_ID 110 -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_ENTITY_NAME sld_signaltap -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_clk -to "cqsys:u0|cdc_fifo:cdc_fifo_0|avm_clk" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[0] -to SS_AAS -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[1] -to SS_ADDR[0] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[2] -to SS_ADDR[10] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[3] -to SS_ADDR[11] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[4] -to SS_ADDR[12] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[5] -to SS_ADDR[13] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[6] -to SS_ADDR[14] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[7] -to SS_ADDR[15] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[8] -to SS_ADDR[16] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[9] -to SS_ADDR[17] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[10] -to SS_ADDR[18] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[11] -to SS_ADDR[19] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[12] -to SS_ADDR[1] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[13] -to SS_ADDR[20] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[14] -to SS_ADDR[21] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[15] -to SS_ADDR[22] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[16] -to SS_ADDR[23] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[17] -to SS_ADDR[2] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[18] -to SS_ADDR[3] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[19] -to SS_ADDR[4] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[20] -to SS_ADDR[5] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[21] -to SS_ADDR[6] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[22] -to SS_ADDR[7] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[23] -to SS_ADDR[8] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[24] -to SS_ADDR[9] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[25] -to SS_CS2 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[26] -to SS_DATA[0] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[27] -to SS_DATA[10] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[28] -to SS_DATA[11] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[29] -to SS_DATA[12] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[30] -to SS_DATA[13] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[31] -to SS_DATA[14] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[32] -to SS_DATA[15] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[33] -to SS_DATA[1] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[34] -to SS_DATA[2] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[35] -to SS_DATA[3] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[36] -to SS_DATA[4] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[37] -to SS_DATA[5] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[38] -to SS_DATA[6] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[39] -to SS_DATA[7] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[40] -to SS_DATA[8] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[41] -to SS_DATA[9] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[42] -to SS_FC0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[43] -to SS_FC1 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[44] -to SS_RD -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[45] -to SS_TIM0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[46] -to SS_TIM1 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[47] -to SS_TIM2 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[48] -to SS_WAIT -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[49] -to SS_WR0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[50] -to SS_WR1 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[0] -to SS_AAS -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[1] -to SS_ADDR[0] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[2] -to SS_ADDR[10] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[3] -to SS_ADDR[11] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[4] -to SS_ADDR[12] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[5] -to SS_ADDR[13] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[6] -to SS_ADDR[14] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[7] -to SS_ADDR[15] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[8] -to SS_ADDR[16] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[9] -to SS_ADDR[17] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[10] -to SS_ADDR[18] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[11] -to SS_ADDR[19] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[12] -to SS_ADDR[1] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[13] -to SS_ADDR[20] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[14] -to SS_ADDR[21] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[15] -to SS_ADDR[22] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[16] -to SS_ADDR[23] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[17] -to SS_ADDR[2] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[18] -to SS_ADDR[3] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[19] -to SS_ADDR[4] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[20] -to SS_ADDR[5] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[21] -to SS_ADDR[6] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[22] -to SS_ADDR[7] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[23] -to SS_ADDR[8] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[24] -to SS_ADDR[9] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[25] -to SS_CS2 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[26] -to SS_DATA[0] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[27] -to SS_DATA[10] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[28] -to SS_DATA[11] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[29] -to SS_DATA[12] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[30] -to SS_DATA[13] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[31] -to SS_DATA[14] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[32] -to SS_DATA[15] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[33] -to SS_DATA[1] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[34] -to SS_DATA[2] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[35] -to SS_DATA[3] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[36] -to SS_DATA[4] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[37] -to SS_DATA[5] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[38] -to SS_DATA[6] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[39] -to SS_DATA[7] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[40] -to SS_DATA[8] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[41] -to SS_DATA[9] -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[42] -to SS_FC0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[43] -to SS_FC1 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[44] -to SS_RD -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[45] -to SS_TIM0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[46] -to SS_TIM1 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[47] -to SS_TIM2 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[48] -to SS_WAIT -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[49] -to SS_WR0 -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[50] -to SS_WR1 -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_RAM_BLOCK_TYPE=AUTO" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_NODE_INFO=805334528" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_POWER_UP_TRIGGER=0" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STORAGE_QUALIFIER_INVERSION_MASK_LENGTH=0" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SEGMENT_SIZE=2048" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ATTRIBUTE_MEM_MODE=OFF" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_FLOW_USE_GENERATED=0" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_STATE_BITS=11" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_BUFFER_FULL_STOP=1" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_CURRENT_RESOURCE_WIDTH=1" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL=1" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_SAMPLE_DEPTH=2048" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_IN_ENABLED=0" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ADVANCED_TRIGGER_ENTITY=basic,1," -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_LEVEL_PIPELINE=1" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_ENABLE_ADVANCED_TRIGGER=0" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[51] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|avm_rd" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[52] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|avm_rdvalid" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[53] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|blk_dma_end" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[54] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[0]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[55] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[10]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[56] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[11]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[57] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[12]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[58] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[13]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[59] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[14]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[60] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[15]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[61] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[1]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[62] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[2]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[63] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[3]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[64] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[4]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[65] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[5]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[66] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[6]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[67] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[7]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[68] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[8]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[69] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[9]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[70] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|rd_start" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[71] -to ss_rd_start -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_trigger_in[72] -to ss_wr_start -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[51] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|avm_rd" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[52] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|avm_rdvalid" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[53] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|blk_dma_end" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[54] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[0]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[55] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[10]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[56] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[11]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[57] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[12]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[58] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[13]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[59] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[14]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[60] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[15]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[61] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[1]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[62] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[2]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[63] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[3]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[64] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[4]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[65] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[5]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[66] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[6]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[67] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[7]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[68] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[8]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[69] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|data_out[9]" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[70] -to "cqsys:u0|cdc_fifo:cdc_fifo_0|rd_start" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[71] -to ss_rd_start -section_id auto_signaltap_0
|
||||
set_instance_assignment -name CONNECT_TO_SLD_NODE_ENTITY_PORT acq_data_in[72] -to ss_wr_start -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_DATA_BITS=73" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_TRIGGER_BITS=73" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_INVERSION_MASK_LENGTH=244" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_NODE_CRC_LOWORD=16402" -section_id auto_signaltap_0
|
||||
set_global_assignment -name SLD_NODE_PARAMETER_ASSIGNMENT "SLD_NODE_CRC_HIWORD=33995" -section_id auto_signaltap_0
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
set_global_assignment -name SLD_FILE db/cdc_fifo_auto_stripped.stp
|
10
FPGA/SSMaster.sdc
Normal file
10
FPGA/SSMaster.sdc
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
#**************************************************************
|
||||
# Create Clock
|
||||
#**************************************************************
|
||||
|
||||
derive_pll_clocks -create_base_clocks
|
||||
|
||||
#create_clock -name {CLOCK_50M} -period 20.000 [get_ports {CLK_50M}]
|
||||
|
||||
|
592
FPGA/SSMaster.v
Normal file
592
FPGA/SSMaster.v
Normal file
|
@ -0,0 +1,592 @@
|
|||
|
||||
///////////////////////////////////////////////////////
|
||||
// Module: SEGA Saturn Master Flash Card //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// version 0.1: first step.
|
||||
|
||||
module SSMaster(
|
||||
// System
|
||||
CLK_50M,
|
||||
// SDRAM
|
||||
SD_CKE, SD_CLK, SD_CS, SD_WE, SD_CAS, SD_RAS, SD_ADDR, SD_BA, SD_DQM, SD_DQ,
|
||||
|
||||
// SS system
|
||||
SS_MCLK, SS_RST,
|
||||
// SS I2S output
|
||||
SS_SCLK, SS_SSEL, SS_BCK, SS_LRCK, SS_SD,
|
||||
// SS ABUS
|
||||
SS_FC0, SS_FC1, SS_TIM0, SS_TIM1, SS_TIM2, SS_AAS,
|
||||
SS_ADDR, SS_DATA, SS_CS0, SS_CS1, SS_CS2, SS_RD, SS_WR0, SS_WR1, SS_WAIT, SS_IRQ,
|
||||
SS_DATA_OE, SS_DATA_DIR,
|
||||
|
||||
// STM32 FSMC
|
||||
ST_CLK, ST_AD, ST_ADDR, ST_CS, ST_RD, ST_WR, ST_BL0, ST_BL1, ST_WAIT,
|
||||
// STM32 GPIO
|
||||
ST_GPIO0, ST_GPIO1, ST_GPIO2, ST_GPIO3,
|
||||
// STM32 I2S
|
||||
ST_MCLK, ST_BCK, ST_LRCK, ST_SDO,
|
||||
|
||||
// DEBUG LED
|
||||
LED0, LED1
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Pins //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// System
|
||||
input CLK_50M;
|
||||
|
||||
// SDRAM
|
||||
output SD_CKE;
|
||||
output SD_CLK;
|
||||
output SD_CS;
|
||||
output SD_WE;
|
||||
output SD_CAS;
|
||||
output SD_RAS;
|
||||
output[13:0] SD_ADDR;
|
||||
output[ 1:0] SD_BA;
|
||||
output[ 1:0] SD_DQM;
|
||||
inout[15:0] SD_DQ;
|
||||
|
||||
// SS System
|
||||
input SS_MCLK;
|
||||
input SS_RST;
|
||||
|
||||
// SS I2S
|
||||
input SS_SCLK;
|
||||
output SS_SSEL;
|
||||
output SS_BCK;
|
||||
output SS_LRCK;
|
||||
output SS_SD;
|
||||
|
||||
// SS ABUS
|
||||
input SS_FC0;
|
||||
input SS_FC1;
|
||||
input SS_TIM0;
|
||||
input SS_TIM1;
|
||||
input SS_TIM2;
|
||||
input SS_AAS;
|
||||
input[23:0] SS_ADDR;
|
||||
inout[15:0] SS_DATA;
|
||||
input SS_CS0;
|
||||
input SS_CS1;
|
||||
input SS_CS2;
|
||||
input SS_RD;
|
||||
input SS_WR0;
|
||||
input SS_WR1;
|
||||
output SS_WAIT;
|
||||
output SS_IRQ;
|
||||
output SS_DATA_OE;
|
||||
output SS_DATA_DIR;
|
||||
|
||||
// STM32 FSMC
|
||||
input ST_CLK;
|
||||
inout[15:0] ST_AD;
|
||||
input[ 7:0] ST_ADDR;
|
||||
input ST_CS;
|
||||
input ST_RD;
|
||||
input ST_WR;
|
||||
input ST_BL0;
|
||||
input ST_BL1;
|
||||
output ST_WAIT;
|
||||
|
||||
// STM32 GPIO
|
||||
input ST_GPIO0;
|
||||
input ST_GPIO1;
|
||||
output ST_GPIO2;
|
||||
input ST_GPIO3;
|
||||
|
||||
// STM32 I2S
|
||||
output ST_MCLK;
|
||||
input ST_BCK;
|
||||
input ST_LRCK;
|
||||
input ST_SDO;
|
||||
|
||||
// DEBUG LED
|
||||
output LED0;
|
||||
output LED1;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Debug LED //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
assign LED0 = SS_WAIT;
|
||||
assign LED1 = ss_reg_ctrl[8];
|
||||
|
||||
wire NRESET = ST_GPIO0;
|
||||
wire ST_ALE = ST_GPIO1;
|
||||
assign ST_GPIO2 = ST_IRQ;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// I2S //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
assign ST_MCLK = SS_SCLK;
|
||||
assign SS_BCK = ST_BCK;
|
||||
assign SS_LRCK = ST_LRCK;
|
||||
assign SS_SD = ST_SDO;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// STM32 FSMC //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// fsmc address latch
|
||||
reg[24:0] fsmc_addr;
|
||||
reg fsmc_cs;
|
||||
|
||||
always @(posedge ST_ALE)
|
||||
begin
|
||||
fsmc_addr <= {ST_ADDR, ST_AD, 1'b0};
|
||||
end
|
||||
|
||||
always @(posedge ST_CS or posedge ST_ALE)
|
||||
begin
|
||||
if(ST_CS==1)
|
||||
fsmc_cs <= 1;
|
||||
else
|
||||
fsmc_cs <= 0;
|
||||
end
|
||||
|
||||
// fsmc read sync
|
||||
reg stale_s0, stale_s1, stale_s2;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
stale_s0 <= ST_ALE;
|
||||
stale_s1 <= stale_s0;
|
||||
stale_s2 <= stale_s1;
|
||||
end
|
||||
// rising edge of ale
|
||||
wire st_rd_start = (stale_s2==0 && stale_s1==1 && ST_WR==1);
|
||||
|
||||
|
||||
// fsmc write sync
|
||||
reg stnwr_s0, stnwr_s1, stnwr_s2;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
stnwr_s0 <= ST_WR;
|
||||
stnwr_s1 <= stnwr_s0;
|
||||
stnwr_s2 <= stnwr_s1;
|
||||
end
|
||||
wire st_wr_start = (stnwr_s2==1 && stnwr_s1==0); // falling edge of wr
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// STM32 FPGA control register //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[15:0] st_reg_ctrl;
|
||||
reg[15:0] ss_resp1;
|
||||
reg[15:0] ss_resp2;
|
||||
reg[15:0] ss_resp3;
|
||||
reg[15:0] ss_resp4;
|
||||
|
||||
reg[31:0] st_reg_blk_addr;
|
||||
reg[15:0] st_reg_blk_size;
|
||||
reg[15:0] st_reg_fifo_ctrl;
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
st_reg_ctrl <= 0;
|
||||
end else if(st_wr_start==1) begin
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h04) st_reg_ctrl <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h08) st_reg_blk_addr[15:0] <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h0a) st_reg_blk_addr[31:16] <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h0c) st_reg_blk_size <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h10) st_reg_fifo_ctrl <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h20) ss_resp1 <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h22) ss_resp2 <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h24) ss_resp3 <= ST_AD;
|
||||
if(fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h26) ss_resp4 <= ST_AD;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Saturn to STM32: HIRQ register //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[15:0] ss_hirq;
|
||||
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
ss_hirq <= 0;
|
||||
end else begin
|
||||
if( st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h28)
|
||||
ss_hirq <= ss_hirq|ST_AD;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h16)
|
||||
ss_hirq <= ss_hirq&(~ST_AD);
|
||||
else if(ss_wr_start==1 && ss_cdc_cs==1 && SS_ADDR[5:2]==4'b00_10)
|
||||
ss_hirq <= ss_hirq&SS_DATA;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Saturn to STM32: CDC request //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg st_irq_cdc;
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
st_irq_cdc <= 1'b0;
|
||||
end else begin
|
||||
if(ss_wr_start==1 && ss_cdc_cs==1 && SS_ADDR[5:2]==4'b10_01)
|
||||
st_irq_cdc <= 1'b1;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h06)
|
||||
st_irq_cdc <= st_irq_cdc&(~ST_AD[0]);
|
||||
end
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Saturn to STM32: CMD request //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg st_irq_cmd;
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
st_irq_cmd <= 1'b0;
|
||||
end else begin
|
||||
if(ss_wr_start==1 && ss_reg_cs==1 && SS_ADDR[5:1]==5'b00_110)
|
||||
st_irq_cmd <= 1'b1;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h06)
|
||||
st_irq_cmd <= st_irq_cmd&(~ST_AD[1]);
|
||||
end
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// CDC FIFO dma end //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg st_irq_fifo;
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
st_irq_fifo <= 1'b0;
|
||||
end else begin
|
||||
if(fifo_blk_dma_end==1)
|
||||
st_irq_fifo <= 1'b1;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h06)
|
||||
st_irq_fifo <= st_irq_fifo&(~ST_AD[2]);
|
||||
end
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Saturn to STM32: CR4 read //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg st_irq_cr4rd;
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0) begin
|
||||
st_irq_cr4rd <= 1'b0;
|
||||
end else begin
|
||||
if(ss_rd_start==1 && ss_cdc_cs==1 && SS_ADDR[5:2]==4'b10_01)
|
||||
st_irq_cr4rd <= 1'b1;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h06)
|
||||
st_irq_cr4rd <= st_irq_cr4rd&(~ST_AD[3]);
|
||||
end
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// STM32 read data //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[15:0] st_reg_data_out;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
st_reg_data_out <=
|
||||
(fsmc_addr[7:0]==8'h00)? 16'h5253 : // ID: "SR"
|
||||
(fsmc_addr[7:0]==8'h02)? 16'h1101 : // ver: HW1.1 && SW0.1
|
||||
(fsmc_addr[7:0]==8'h04)? st_reg_ctrl :
|
||||
(fsmc_addr[7:0]==8'h06)? st_reg_stat :
|
||||
(fsmc_addr[7:0]==8'h08)? st_reg_blk_addr[15: 0] :
|
||||
(fsmc_addr[7:0]==8'h0a)? st_reg_blk_addr[31:16] :
|
||||
(fsmc_addr[7:0]==8'h0c)? st_reg_blk_size :
|
||||
(fsmc_addr[7:0]==8'h10)? st_reg_fifo_ctrl :
|
||||
(fsmc_addr[7:0]==8'h12)? st_reg_fifo_stat :
|
||||
(fsmc_addr[7:0]==8'h14)? ss_reg_ctrl :
|
||||
|
||||
(fsmc_addr[7:0]==8'h18)? ss_resp1 :
|
||||
(fsmc_addr[7:0]==8'h1a)? ss_resp2 :
|
||||
(fsmc_addr[7:0]==8'h1c)? ss_resp3 :
|
||||
(fsmc_addr[7:0]==8'h1e)? ss_resp4 :
|
||||
|
||||
(fsmc_addr[7:0]==8'h20)? ss_cr1 :
|
||||
(fsmc_addr[7:0]==8'h22)? ss_cr2 :
|
||||
(fsmc_addr[7:0]==8'h24)? ss_cr3 :
|
||||
(fsmc_addr[7:0]==8'h26)? ss_cr4 :
|
||||
(fsmc_addr[7:0]==8'h28)? ss_hirq :
|
||||
(fsmc_addr[7:0]==8'h2a)? ss_hirq_mask :
|
||||
(fsmc_addr[7:0]==8'h2c)? ss_mrgb :
|
||||
(fsmc_addr[7:0]==8'h2e)? ss_reg_cmd :
|
||||
|
||||
(fsmc_addr[7:0]==8'h30)? fifo_rd_times[15: 0] :
|
||||
(fsmc_addr[7:0]==8'h32)? fifo_rd_times[31:16] :
|
||||
16'hffff;
|
||||
end
|
||||
|
||||
assign ST_AD = (ST_RD==0 && ST_CS==0)? (
|
||||
(fsmc_addr[24]==0)? st_reg_data_out : st_ram_data_out
|
||||
) : 16'hzzzz;
|
||||
|
||||
wire st_ram_cs = !(fsmc_cs==0 && ST_ADDR[7]==1);
|
||||
|
||||
wire[15:0] st_reg_stat;
|
||||
assign st_reg_stat = {pll_locked, ST_IRQ, 10'b0, st_irq_cr4rd, st_irq_fifo, st_irq_cmd, st_irq_cdc};
|
||||
|
||||
wire st_irq_cr4en = st_reg_ctrl[3];
|
||||
wire st_irq_fifoen = st_reg_ctrl[2];
|
||||
wire st_irq_cmd_en = st_reg_ctrl[1];
|
||||
wire st_irq_cdc_en = st_reg_ctrl[0];
|
||||
|
||||
wire ST_IRQ = ( (st_irq_cdc_en==1 && st_irq_cdc==1) ||
|
||||
(st_irq_cmd_en==1 && st_irq_cmd==1) ||
|
||||
(st_irq_cr4en ==1 && st_irq_cr4rd==1) ||
|
||||
(st_irq_fifoen==1 && st_irq_fifo==1) );
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// SATURN ABUS //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg sscs_s0, sscs_s1, sscs_s2, sscs_s3, sscs_s4;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
sscs_s0 <= (SS_CS0 & SS_CS1 & SS_CS2);
|
||||
sscs_s1 <= sscs_s0;
|
||||
sscs_s2 <= sscs_s1;
|
||||
sscs_s3 <= sscs_s2;
|
||||
sscs_s4 <= sscs_s3;
|
||||
end
|
||||
|
||||
wire ss_rd_start = (sscs_s2==1 && sscs_s1==0 && SS_RD==0);
|
||||
wire ss_wr_start = (sscs_s4==1 && sscs_s3==0 && (SS_WR0==0 || SS_WR1==0));
|
||||
|
||||
assign SS_DATA =(SS_RD==0 && SS_CS0==0)? ss_ram_data_out :
|
||||
(SS_RD==0 && SS_CS1==0)? ss_cs1_data_out :
|
||||
(SS_RD==0 && ss_reg_cs==1)? ss_bcr_data_out :
|
||||
(SS_RD==0 && ss_cdc_cs==1)? ss_cdc_data_out :
|
||||
16'hzzzz;
|
||||
|
||||
assign SS_DATA_OE = (SS_CS0==1 && SS_CS1==1 && (SS_CS2==1 || (ss_cdc_cs==1 && SS_RD==0 && ss_cdc_en==0)));
|
||||
|
||||
assign SS_DATA_DIR = (SS_WR0 & SS_WR1);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// SATURN System Control //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[15:0] ss_bcr_data_out;
|
||||
reg[15:0] ss_reg_ctrl;
|
||||
reg[15:0] ss_reg_cmd;
|
||||
reg[31:0] ss_reg_timer;
|
||||
|
||||
// 00: None
|
||||
// 01: Data Cart
|
||||
// 10: RAM Cart: 1MBytes
|
||||
// 11: RAM Cart: 4MBytes
|
||||
wire[1:0] ss_cs0_type = ss_reg_ctrl[13:12];
|
||||
|
||||
wire ss_reg_cs = (SS_CS2==0 && SS_ADDR[14:12]==3'b111);
|
||||
|
||||
wire[15:0] ss_cs1_data_out = (SS_ADDR[23:16]==8'hff && ss_cs0_type[1]==1)?
|
||||
(
|
||||
(ss_cs0_type[0]==0)? 16'hff5a : 16'hff5c
|
||||
) : ss_ram_data_out;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
ss_bcr_data_out <=
|
||||
(SS_ADDR[5:1]==5'b00_000)? 16'h5253 : // ID: "SR"
|
||||
(SS_ADDR[5:1]==5'b00_001)? 16'h1101 : // ver: HW1.1 && SW0.1
|
||||
(SS_ADDR[5:1]==5'b00_010)? ss_reg_ctrl :
|
||||
(SS_ADDR[5:1]==5'b00_100)? ss_reg_timer[31:16] :
|
||||
(SS_ADDR[5:1]==5'b00_101)? ss_reg_timer[15: 0] :
|
||||
(SS_ADDR[5:1]==5'b00_110)? ss_reg_cmd :
|
||||
16'h0000;
|
||||
end
|
||||
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0)
|
||||
ss_reg_ctrl <= 16'h0100;
|
||||
else if(ss_wr_start==1 && ss_reg_cs==1 && SS_ADDR[5:1]==5'b00_010)
|
||||
ss_reg_ctrl <= SS_DATA;
|
||||
end
|
||||
|
||||
always @(negedge NRESET or posedge avm_clk)
|
||||
begin
|
||||
if(NRESET==0)
|
||||
ss_reg_cmd <= 4'b0000;
|
||||
else if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h2e)
|
||||
ss_reg_cmd <= 0;
|
||||
else if(ss_wr_start==1 && ss_reg_cs==1 && SS_ADDR[5:1]==5'b00_110)
|
||||
ss_reg_cmd <= SS_DATA;
|
||||
end
|
||||
|
||||
|
||||
reg[6:0] ss_timer_feed;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(ss_timer_feed==7'd99)
|
||||
ss_timer_feed <= 0;
|
||||
else
|
||||
ss_timer_feed <= ss_timer_feed+7'b1;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(ss_wr_start==1 && ss_reg_cs==1 && SS_ADDR[5:1]==5'b00_100)
|
||||
ss_reg_timer <= 0;
|
||||
else if(ss_timer_feed==0) begin
|
||||
ss_reg_timer <= ss_reg_timer+32'b1;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// SATURN CDC //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[15:0] ss_cdc_data_out;
|
||||
reg[15:0] ss_hirq_mask;
|
||||
reg[15:0] ss_cr1;
|
||||
reg[15:0] ss_cr2;
|
||||
reg[15:0] ss_cr3;
|
||||
reg[15:0] ss_cr4;
|
||||
reg[15:0] ss_mrgb;
|
||||
|
||||
// enable CDC read out
|
||||
wire ss_cdc_en = ss_reg_ctrl[15];
|
||||
|
||||
wire ss_cdc_cs = (SS_CS2==0 && SS_ADDR[14:12]==3'b000);
|
||||
wire ss_cdc_data = (ss_cdc_cs==1 && SS_ADDR[5:2]==0);
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(ss_wr_start==1 && ss_cdc_cs==1) begin
|
||||
if(SS_ADDR[5:2]==4'b00_11) ss_hirq_mask <= SS_DATA;
|
||||
if(SS_ADDR[5:2]==4'b01_10) ss_cr1 <= SS_DATA;
|
||||
if(SS_ADDR[5:2]==4'b01_11) ss_cr2 <= SS_DATA;
|
||||
if(SS_ADDR[5:2]==4'b10_00) ss_cr3 <= SS_DATA;
|
||||
if(SS_ADDR[5:2]==4'b10_01) ss_cr4 <= SS_DATA;
|
||||
if(SS_ADDR[5:2]==4'b10_10) ss_mrgb <= SS_DATA;
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
ss_cdc_data_out <=
|
||||
(SS_ADDR[5:2]==4'b00_00)? ss_fifo_data_out :
|
||||
(SS_ADDR[5:2]==4'b00_10)? ss_hirq :
|
||||
(SS_ADDR[5:2]==4'b00_11)? ss_hirq_mask :
|
||||
(SS_ADDR[5:2]==4'b01_10)? ss_resp1 :
|
||||
(SS_ADDR[5:2]==4'b01_11)? ss_resp2 :
|
||||
(SS_ADDR[5:2]==4'b10_00)? ss_resp3 :
|
||||
(SS_ADDR[5:2]==4'b10_01)? ss_resp4 :
|
||||
(SS_ADDR[5:2]==4'b10_10)? ss_mrgb :
|
||||
16'h0000;
|
||||
end
|
||||
|
||||
assign SS_SSEL = ~ss_cdc_en;
|
||||
|
||||
assign SS_IRQ = (ss_hirq&ss_hirq_mask)==0? 1'b0: 1'b1;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// FIFO test
|
||||
reg[31:0] fifo_rd_times;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(st_wr_start==1 && fsmc_addr[24]==0 && fsmc_addr[7:0]==8'h30)
|
||||
fifo_rd_times <= 0;
|
||||
else if(ss_rd_start==1 && ss_cdc_data==1) begin
|
||||
fifo_rd_times <= fifo_rd_times+32'b1;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// QSYS //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
wire avm_clk;
|
||||
wire pll_locked;
|
||||
wire[15:0] st_ram_data_out;
|
||||
|
||||
wire[15:0] ss_ram_din = {SS_DATA[7:0], SS_DATA[15:8]};
|
||||
wire[15:0] ss_ram_dout;
|
||||
wire[15:0] ss_ram_data_out = {ss_ram_dout[7:0], ss_ram_dout[15:8]};
|
||||
wire[15:0] ss_fifo_dout;
|
||||
wire[15:0] ss_fifo_data_out = {ss_fifo_dout[7:0], ss_fifo_dout[15:8]};
|
||||
|
||||
wire[15:0] st_reg_fifo_stat;
|
||||
wire fifo_blk_dma_end;
|
||||
|
||||
cqsys u0 (
|
||||
.clk_clk (CLK_50M),
|
||||
.reset_reset_n (NRESET),
|
||||
.avm_clk_clk (avm_clk),
|
||||
|
||||
.mem_pin_addr (SD_ADDR),
|
||||
.mem_pin_ba (SD_BA),
|
||||
.mem_pin_cas_n (SD_CAS),
|
||||
.mem_pin_cke (SD_CKE),
|
||||
.mem_pin_cs_n (SD_CS),
|
||||
.mem_pin_dq (SD_DQ),
|
||||
.mem_pin_dqm (SD_DQM),
|
||||
.mem_pin_ras_n (SD_RAS),
|
||||
.mem_pin_we_n (SD_WE),
|
||||
|
||||
.fsmc_bus_addr ({8'b0, fsmc_addr[23:0]}),
|
||||
.fsmc_bus_ncs (st_ram_cs),
|
||||
.fsmc_bus_rd_start (st_rd_start),
|
||||
.fsmc_bus_wr_start (st_wr_start),
|
||||
.fsmc_bus_byte_en ({~ST_BL1, ~ST_BL0}),
|
||||
.fsmc_bus_data_in (ST_AD),
|
||||
.fsmc_bus_data_out (st_ram_data_out),
|
||||
.fsmc_bus_wait_out (ST_WAIT),
|
||||
|
||||
.saturn_bus_addr ({7'b0, ~SS_CS1, SS_ADDR}),
|
||||
.saturn_bus_ncs (SS_CS0&SS_CS1),
|
||||
.saturn_bus_rd_start (ss_rd_start),
|
||||
.saturn_bus_wr_start (ss_wr_start),
|
||||
.saturn_bus_byte_en ({~SS_WR0, ~SS_WR1}),
|
||||
.saturn_bus_data_in (ss_ram_din),
|
||||
.saturn_bus_data_out (ss_ram_dout),
|
||||
.saturn_bus_wait_out (SS_WAIT),
|
||||
|
||||
.cdc_fifo_reg_fifo_ctrl (st_reg_fifo_ctrl),
|
||||
.cdc_fifo_reg_fifo_stat (st_reg_fifo_stat),
|
||||
.cdc_fifo_reg_blk_addr (st_reg_blk_addr),
|
||||
.cdc_fifo_reg_blk_size (st_reg_blk_size),
|
||||
.cdc_fifo_rd_start ((ss_rd_start==1 && ss_cdc_data==1)),
|
||||
.cdc_fifo_data_out (ss_fifo_dout),
|
||||
.cdc_fifo_blk_dma_end (fifo_blk_dma_end),
|
||||
|
||||
.altpll_locked_export (pll_locked)
|
||||
);
|
||||
|
||||
assign SD_CLK = avm_clk;
|
||||
|
||||
endmodule
|
805
FPGA/SSMaster_assignment_defaults.qdf
Normal file
805
FPGA/SSMaster_assignment_defaults.qdf
Normal file
|
@ -0,0 +1,805 @@
|
|||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# 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 64-Bit
|
||||
# Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Full Version
|
||||
# Date created = 09:35:03 September 25, 2014
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Note:
|
||||
#
|
||||
# 1) Do not modify this file. This file was generated
|
||||
# automatically by the Quartus II software and is used
|
||||
# to preserve global assignments across Quartus II versions.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
set_global_assignment -name PROJECT_SHOW_ENTITY_NAME On
|
||||
set_global_assignment -name PROJECT_USE_SIMPLIFIED_NAMES Off
|
||||
set_global_assignment -name ENABLE_REDUCED_MEMORY_MODE Off
|
||||
set_global_assignment -name VER_COMPATIBLE_DB_DIR export_db
|
||||
set_global_assignment -name AUTO_EXPORT_VER_COMPATIBLE_DB Off
|
||||
set_global_assignment -name SMART_RECOMPILE Off
|
||||
set_global_assignment -name FLOW_DISABLE_ASSEMBLER Off
|
||||
set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER Off
|
||||
set_global_assignment -name FLOW_ENABLE_HC_COMPARE Off
|
||||
set_global_assignment -name HC_OUTPUT_DIR hc_output
|
||||
set_global_assignment -name SAVE_MIGRATION_INFO_DURING_COMPILATION Off
|
||||
set_global_assignment -name FLOW_ENABLE_IO_ASSIGNMENT_ANALYSIS Off
|
||||
set_global_assignment -name RUN_FULL_COMPILE_ON_DEVICE_CHANGE On
|
||||
set_global_assignment -name FLOW_ENABLE_RTL_VIEWER Off
|
||||
set_global_assignment -name READ_OR_WRITE_IN_BYTE_ADDRESS "Use global settings"
|
||||
set_global_assignment -name FLOW_HARDCOPY_DESIGN_READINESS_CHECK On
|
||||
set_global_assignment -name FLOW_ENABLE_PARALLEL_MODULES On
|
||||
set_global_assignment -name ENABLE_COMPACT_REPORT_TABLE Off
|
||||
set_global_assignment -name REVISION_TYPE Base
|
||||
set_global_assignment -name DEFAULT_HOLD_MULTICYCLE "Same as Multicycle"
|
||||
set_global_assignment -name CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS On
|
||||
set_global_assignment -name CUT_OFF_READ_DURING_WRITE_PATHS On
|
||||
set_global_assignment -name CUT_OFF_IO_PIN_FEEDBACK On
|
||||
set_global_assignment -name DO_COMBINED_ANALYSIS Off
|
||||
set_global_assignment -name TDC_AGGRESSIVE_HOLD_CLOSURE_EFFORT Off
|
||||
set_global_assignment -name ANALYZE_LATCHES_AS_SYNCHRONOUS_ELEMENTS On
|
||||
set_global_assignment -name TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS On
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family MAX7000B
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Arria V"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "HardCopy II"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone IV E"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Stratix IV"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone III"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family MAX7000AE
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family "MAX V"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family Cyclone
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Stratix II GX"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Stratix V"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Arria V GZ"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family "MAX II"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Arria II GX"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Arria II GZ"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family "Stratix GX"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "HardCopy III"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family MAX7000S
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone II"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone IV GX"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "HardCopy IV"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone III LS"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Stratix III"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Arria GX"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family MAX3000A
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Stratix II"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS On -family "Cyclone V"
|
||||
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS Off -family Stratix
|
||||
set_global_assignment -name TIMEQUEST_DO_REPORT_TIMING Off
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family MAX7000B
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Arria V"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "HardCopy II"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix IV"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "Cyclone IV E"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "Cyclone III"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family MAX7000AE
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix II GX"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "MAX V"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family Cyclone
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix V"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Arria V GZ"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "MAX II"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Arria II GX"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix GX"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Arria II GZ"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "HardCopy III"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family MAX7000S
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "Cyclone II"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "Cyclone IV GX"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "HardCopy IV"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family "Cyclone III LS"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix III"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Arria GX"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS On -family MAX3000A
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Stratix II"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family Stratix
|
||||
set_global_assignment -name TIMEQUEST_REPORT_WORST_CASE_TIMING_PATHS Off -family "Cyclone V"
|
||||
set_global_assignment -name TIMEQUEST_REPORT_NUM_WORST_CASE_TIMING_PATHS 100
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family MAX7000B
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Arria V"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "HardCopy II"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Cyclone IV E"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Stratix IV"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Cyclone III"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family MAX7000AE
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "MAX V"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family Cyclone
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "Stratix II GX"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Stratix V"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Arria V GZ"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "MAX II"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Arria II GX"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "Stratix GX"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Arria II GZ"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family MAX7000S
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "HardCopy III"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "Cyclone II"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Cyclone IV GX"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "HardCopy IV"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Cyclone III LS"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Stratix III"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "Arria GX"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family MAX3000A
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family "Stratix II"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL On -family "Cyclone V"
|
||||
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL Off -family Stratix
|
||||
set_global_assignment -name MUX_RESTRUCTURE Auto
|
||||
set_global_assignment -name MLAB_ADD_TIMING_CONSTRAINTS_FOR_MIXED_PORT_FEED_THROUGH_MODE_SETTING_DONT_CARE Off
|
||||
set_global_assignment -name ENABLE_IP_DEBUG Off
|
||||
set_global_assignment -name SAVE_DISK_SPACE On
|
||||
set_global_assignment -name DISABLE_OCP_HW_EVAL Off
|
||||
set_global_assignment -name DEVICE_FILTER_PACKAGE Any
|
||||
set_global_assignment -name DEVICE_FILTER_PIN_COUNT Any
|
||||
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE Any
|
||||
set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "<None>"
|
||||
set_global_assignment -name VERILOG_INPUT_VERSION Verilog_2001
|
||||
set_global_assignment -name VHDL_INPUT_VERSION VHDL_1993
|
||||
set_global_assignment -name FAMILY "Cyclone IV GX"
|
||||
set_global_assignment -name TRUE_WYSIWYG_FLOW Off
|
||||
set_global_assignment -name SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES Off
|
||||
set_global_assignment -name STATE_MACHINE_PROCESSING Auto
|
||||
set_global_assignment -name SAFE_STATE_MACHINE Off
|
||||
set_global_assignment -name EXTRACT_VERILOG_STATE_MACHINES On
|
||||
set_global_assignment -name EXTRACT_VHDL_STATE_MACHINES On
|
||||
set_global_assignment -name IGNORE_VERILOG_INITIAL_CONSTRUCTS Off
|
||||
set_global_assignment -name VERILOG_CONSTANT_LOOP_LIMIT 5000
|
||||
set_global_assignment -name VERILOG_NON_CONSTANT_LOOP_LIMIT 250
|
||||
set_global_assignment -name INFER_RAMS_FROM_RAW_LOGIC On
|
||||
set_global_assignment -name PARALLEL_SYNTHESIS On
|
||||
set_global_assignment -name DSP_BLOCK_BALANCING Auto
|
||||
set_global_assignment -name MAX_BALANCING_DSP_BLOCKS "-1 (Unlimited)"
|
||||
set_global_assignment -name NOT_GATE_PUSH_BACK On
|
||||
set_global_assignment -name ALLOW_POWER_UP_DONT_CARE On
|
||||
set_global_assignment -name REMOVE_REDUNDANT_LOGIC_CELLS Off
|
||||
set_global_assignment -name REMOVE_DUPLICATE_REGISTERS On
|
||||
set_global_assignment -name IGNORE_CARRY_BUFFERS Off
|
||||
set_global_assignment -name IGNORE_CASCADE_BUFFERS Off
|
||||
set_global_assignment -name IGNORE_GLOBAL_BUFFERS Off
|
||||
set_global_assignment -name IGNORE_ROW_GLOBAL_BUFFERS Off
|
||||
set_global_assignment -name IGNORE_LCELL_BUFFERS Off
|
||||
set_global_assignment -name MAX7000_IGNORE_LCELL_BUFFERS AUTO
|
||||
set_global_assignment -name IGNORE_SOFT_BUFFERS On
|
||||
set_global_assignment -name MAX7000_IGNORE_SOFT_BUFFERS Off
|
||||
set_global_assignment -name LIMIT_AHDL_INTEGERS_TO_32_BITS Off
|
||||
set_global_assignment -name AUTO_GLOBAL_CLOCK_MAX On
|
||||
set_global_assignment -name AUTO_GLOBAL_OE_MAX On
|
||||
set_global_assignment -name MAX_AUTO_GLOBAL_REGISTER_CONTROLS On
|
||||
set_global_assignment -name AUTO_IMPLEMENT_IN_ROM Off
|
||||
set_global_assignment -name APEX20K_TECHNOLOGY_MAPPER Lut
|
||||
set_global_assignment -name OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name STRATIXII_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name MAXII_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name MAX7000_OPTIMIZATION_TECHNIQUE Speed
|
||||
set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE Balanced
|
||||
set_global_assignment -name MERCURY_OPTIMIZATION_TECHNIQUE Area
|
||||
set_global_assignment -name FLEX6K_OPTIMIZATION_TECHNIQUE Area
|
||||
set_global_assignment -name FLEX10K_OPTIMIZATION_TECHNIQUE Area
|
||||
set_global_assignment -name ALLOW_XOR_GATE_USAGE On
|
||||
set_global_assignment -name AUTO_LCELL_INSERTION On
|
||||
set_global_assignment -name CARRY_CHAIN_LENGTH 48
|
||||
set_global_assignment -name FLEX6K_CARRY_CHAIN_LENGTH 32
|
||||
set_global_assignment -name FLEX10K_CARRY_CHAIN_LENGTH 32
|
||||
set_global_assignment -name MERCURY_CARRY_CHAIN_LENGTH 48
|
||||
set_global_assignment -name STRATIX_CARRY_CHAIN_LENGTH 70
|
||||
set_global_assignment -name STRATIXII_CARRY_CHAIN_LENGTH 70
|
||||
set_global_assignment -name CASCADE_CHAIN_LENGTH 2
|
||||
set_global_assignment -name PARALLEL_EXPANDER_CHAIN_LENGTH 16
|
||||
set_global_assignment -name MAX7000_PARALLEL_EXPANDER_CHAIN_LENGTH 4
|
||||
set_global_assignment -name AUTO_CARRY_CHAINS On
|
||||
set_global_assignment -name AUTO_CASCADE_CHAINS On
|
||||
set_global_assignment -name AUTO_PARALLEL_EXPANDERS On
|
||||
set_global_assignment -name AUTO_OPEN_DRAIN_PINS On
|
||||
set_global_assignment -name ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP Off
|
||||
set_global_assignment -name AUTO_ROM_RECOGNITION On
|
||||
set_global_assignment -name AUTO_RAM_RECOGNITION On
|
||||
set_global_assignment -name AUTO_DSP_RECOGNITION On
|
||||
set_global_assignment -name AUTO_SHIFT_REGISTER_RECOGNITION Auto
|
||||
set_global_assignment -name ALLOW_SHIFT_REGISTER_MERGING_ACROSS_HIERARCHIES Auto
|
||||
set_global_assignment -name AUTO_CLOCK_ENABLE_RECOGNITION On
|
||||
set_global_assignment -name STRICT_RAM_RECOGNITION Off
|
||||
set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE On
|
||||
set_global_assignment -name FORCE_SYNCH_CLEAR Off
|
||||
set_global_assignment -name AUTO_RAM_BLOCK_BALANCING On
|
||||
set_global_assignment -name AUTO_RAM_TO_LCELL_CONVERSION Off
|
||||
set_global_assignment -name AUTO_RESOURCE_SHARING Off
|
||||
set_global_assignment -name ALLOW_ANY_RAM_SIZE_FOR_RECOGNITION Off
|
||||
set_global_assignment -name ALLOW_ANY_ROM_SIZE_FOR_RECOGNITION Off
|
||||
set_global_assignment -name ALLOW_ANY_SHIFT_REGISTER_SIZE_FOR_RECOGNITION Off
|
||||
set_global_assignment -name MAX7000_FANIN_PER_CELL 100
|
||||
set_global_assignment -name USE_LOGICLOCK_CONSTRAINTS_IN_BALANCING On
|
||||
set_global_assignment -name MAX_RAM_BLOCKS_M512 "-1 (Unlimited)"
|
||||
set_global_assignment -name MAX_RAM_BLOCKS_M4K "-1 (Unlimited)"
|
||||
set_global_assignment -name MAX_RAM_BLOCKS_MRAM "-1 (Unlimited)"
|
||||
set_global_assignment -name IGNORE_TRANSLATE_OFF_AND_SYNTHESIS_OFF Off
|
||||
set_global_assignment -name STRATIXGX_BYPASS_REMAPPING_OF_FORCE_SIGNAL_DETECT_SIGNAL_THRESHOLD_SELECT Off
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Arria II GZ"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "HardCopy III"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Arria V"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS Off -family "Cyclone II"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS Off -family "HardCopy II"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Cyclone IV GX"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Stratix IV"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Cyclone IV E"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "HardCopy IV"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Cyclone III"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Cyclone III LS"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Stratix III"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Arria VI"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Stratix VI"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS Off -family "Arria GX"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS Off -family "Stratix II GX"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS Off -family "Stratix II"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Stratix V"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Arria V GZ"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Cyclone V"
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS On -family "Arria II GX"
|
||||
set_global_assignment -name REPORT_PARAMETER_SETTINGS On
|
||||
set_global_assignment -name REPORT_SOURCE_ASSIGNMENTS On
|
||||
set_global_assignment -name REPORT_CONNECTIVITY_CHECKS On
|
||||
set_global_assignment -name IGNORE_MAX_FANOUT_ASSIGNMENTS Off
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Arria V"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "HardCopy II"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Cyclone IV E"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Stratix IV"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Cyclone III"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Stratix VI"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family Cyclone
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "MAX V"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Stratix II GX"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Stratix V"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "MAX II"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Arria V GZ"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Arria II GX"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Stratix GX"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Arria II GZ"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "HardCopy III"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Cyclone II"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Cyclone IV GX"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "HardCopy IV"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Cyclone III LS"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Stratix III"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Arria VI"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Arria GX"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family "Stratix II"
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2 -family Stratix
|
||||
set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 3 -family "Cyclone V"
|
||||
set_global_assignment -name OPTIMIZE_POWER_DURING_SYNTHESIS "Normal compilation"
|
||||
set_global_assignment -name HDL_MESSAGE_LEVEL Level2
|
||||
set_global_assignment -name USE_HIGH_SPEED_ADDER Auto
|
||||
set_global_assignment -name NUMBER_OF_REMOVED_REGISTERS_REPORTED 5000
|
||||
set_global_assignment -name NUMBER_OF_SWEPT_NODES_REPORTED 5000
|
||||
set_global_assignment -name NUMBER_OF_INVERTED_REGISTERS_REPORTED 100
|
||||
set_global_assignment -name SYNTH_CLOCK_MUX_PROTECTION On
|
||||
set_global_assignment -name SYNTH_GATED_CLOCK_CONVERSION Off
|
||||
set_global_assignment -name BLOCK_DESIGN_NAMING Auto
|
||||
set_global_assignment -name SYNTH_PROTECT_SDC_CONSTRAINT Off
|
||||
set_global_assignment -name SYNTHESIS_EFFORT Auto
|
||||
set_global_assignment -name SHIFT_REGISTER_RECOGNITION_ACLR_SIGNAL On
|
||||
set_global_assignment -name PRE_MAPPING_RESYNTHESIS Off
|
||||
set_global_assignment -name SYNTH_MESSAGE_LEVEL Medium
|
||||
set_global_assignment -name DISABLE_REGISTER_MERGING_ACROSS_HIERARCHIES Auto
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Arria II GZ"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "HardCopy III"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Arria V"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone II"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "HardCopy II"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone IV GX"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Stratix IV"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone IV E"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "HardCopy IV"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone III LS"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone III"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Arria VI"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Stratix III"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Stratix VI"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family Cyclone
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Stratix II"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Stratix V"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Arria V GZ"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Cyclone V"
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family Stratix
|
||||
set_global_assignment -name SYNTH_RESOURCE_AWARE_INFERENCE_FOR_BLOCK_RAM On -family "Arria II GX"
|
||||
set_global_assignment -name MAX_LABS "-1 (Unlimited)"
|
||||
set_global_assignment -name RBCGEN_CRITICAL_WARNING_TO_ERROR On
|
||||
set_global_assignment -name SYNTHESIS_SEED 1
|
||||
set_global_assignment -name MAX_NUMBER_OF_REGISTERS_FROM_UNINFERRED_RAMS "-1 (Unlimited)"
|
||||
set_global_assignment -name AUTO_PARALLEL_SYNTHESIS Off
|
||||
set_global_assignment -name FLEX10K_ENABLE_LOCK_OUTPUT Off
|
||||
set_global_assignment -name AUTO_MERGE_PLLS On
|
||||
set_global_assignment -name IGNORE_MODE_FOR_MERGE Off
|
||||
set_global_assignment -name TXPMA_SLEW_RATE Low
|
||||
set_global_assignment -name ADCE_ENABLED Auto
|
||||
set_global_assignment -name ROUTER_TIMING_OPTIMIZATION_LEVEL Normal
|
||||
set_global_assignment -name ROUTER_CLOCKING_TOPOLOGY_ANALYSIS Off
|
||||
set_global_assignment -name PLACEMENT_EFFORT_MULTIPLIER 1.0
|
||||
set_global_assignment -name ROUTER_EFFORT_MULTIPLIER 1.0
|
||||
set_global_assignment -name FIT_ATTEMPTS_TO_SKIP 0.0
|
||||
set_global_assignment -name ECO_ALLOW_ROUTING_CHANGES Off
|
||||
set_global_assignment -name DEVICE AUTO
|
||||
set_global_assignment -name BASE_PIN_OUT_FILE_ON_SAMEFRAME_DEVICE Off
|
||||
set_global_assignment -name ENABLE_JTAG_BST_SUPPORT Off
|
||||
set_global_assignment -name MAX7000_ENABLE_JTAG_BST_SUPPORT On
|
||||
set_global_assignment -name ENABLE_NCEO_OUTPUT Off
|
||||
set_global_assignment -name RESERVE_NCEO_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "Use as programming pin"
|
||||
set_global_assignment -name STRATIXIII_UPDATE_MODE Standard
|
||||
set_global_assignment -name STRATIX_UPDATE_MODE Standard
|
||||
set_global_assignment -name CVP_MODE Off
|
||||
set_global_assignment -name STRATIXV_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name STRATIXIII_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "Active Serial"
|
||||
set_global_assignment -name STRATIXII_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name CYCLONEII_CONFIGURATION_SCHEME "Active Serial"
|
||||
set_global_assignment -name APEX20K_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name STRATIX_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "Active Serial"
|
||||
set_global_assignment -name MERCURY_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name FLEX6K_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name FLEX10K_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name APEXII_CONFIGURATION_SCHEME "Passive Serial"
|
||||
set_global_assignment -name USER_START_UP_CLOCK Off
|
||||
set_global_assignment -name DEVICE_INITIALIZATION_CLOCK INIT_INTOSC
|
||||
set_global_assignment -name ENABLE_VREFA_PIN Off
|
||||
set_global_assignment -name ENABLE_VREFB_PIN Off
|
||||
set_global_assignment -name ALWAYS_ENABLE_INPUT_BUFFERS Off
|
||||
set_global_assignment -name ENABLE_ASMI_FOR_FLASH_LOADER Off
|
||||
set_global_assignment -name ENABLE_DEVICE_WIDE_RESET Off
|
||||
set_global_assignment -name ENABLE_DEVICE_WIDE_OE Off
|
||||
set_global_assignment -name RESERVE_ALL_UNUSED_PINS "As output driving ground"
|
||||
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT Off
|
||||
set_global_assignment -name INIT_DONE_OPEN_DRAIN On
|
||||
set_global_assignment -name RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_RDYNBUSY_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DATA31_THROUGH_DATA16_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DATA15_THROUGH_DATA8_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "As input tri-stated"
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family "Cyclone II"
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family Cyclone
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family "Stratix II GX"
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family "HardCopy II"
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family "Arria GX"
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "Use as regular IO" -family "Stratix II"
|
||||
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "As input tri-stated"
|
||||
set_global_assignment -name RESERVE_DATA7_THROUGH_DATA2_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DATA7_THROUGH_DATA5_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "As input tri-stated"
|
||||
set_global_assignment -name RESERVE_OTHER_AP_PINS_AFTER_CONFIGURATION "Use as regular IO"
|
||||
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "Use as programming pin"
|
||||
set_global_assignment -name CRC_ERROR_CHECKING Off
|
||||
set_global_assignment -name INTERNAL_SCRUBBING Off
|
||||
set_global_assignment -name PR_ERROR_OPEN_DRAIN On
|
||||
set_global_assignment -name PR_READY_OPEN_DRAIN On
|
||||
set_global_assignment -name ENABLE_CVP_CONFDONE Off
|
||||
set_global_assignment -name CVP_CONFDONE_OPEN_DRAIN On
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria II GZ"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "Stratix GX"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "HardCopy III"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria V"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "Cyclone II"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "HardCopy II"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Cyclone IV GX"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Stratix IV"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Cyclone IV E"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "HardCopy IV"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Cyclone III LS"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Cyclone III"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Stratix III"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria VI"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Stratix VI"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria GX"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family Cyclone
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "Stratix II GX"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "MAX V"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "Stratix II"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Stratix V"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family "MAX II"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria V GZ"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Cyclone V"
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "IO Paths and Minimum TPD Paths" -family Stratix
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING "All Paths" -family "Arria II GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family MAX7000B
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Arria V"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "HardCopy II"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone IV E"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Stratix IV"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone III"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family "Stratix VI"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family MAX7000AE
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family "MAX V"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family Cyclone
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Stratix II GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Stratix V"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Arria V GZ"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family "MAX II"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Arria II GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family "Stratix GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Arria II GZ"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family MAX7000S
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "HardCopy III"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone II"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone IV GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "HardCopy IV"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone III LS"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family "Arria VI"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Stratix III"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Arria GX"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family MAX3000A
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Stratix II"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING On -family "Cyclone V"
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING Off -family Stratix
|
||||
set_global_assignment -name BLOCK_RAM_TO_MLAB_CELL_CONVERSION On
|
||||
set_global_assignment -name BLOCK_RAM_AND_MLAB_EQUIVALENT_POWER_UP_CONDITIONS Auto
|
||||
set_global_assignment -name BLOCK_RAM_AND_MLAB_EQUIVALENT_PAUSED_READ_CAPABILITIES Care
|
||||
set_global_assignment -name PROGRAMMABLE_POWER_TECHNOLOGY_SETTING Automatic
|
||||
set_global_assignment -name PROGRAMMABLE_POWER_MAXIMUM_HIGH_SPEED_FRACTION_OF_USED_LAB_TILES 1.0
|
||||
set_global_assignment -name GUARANTEE_MIN_DELAY_CORNER_IO_ZERO_HOLD_TIME On
|
||||
set_global_assignment -name OPTIMIZE_POWER_DURING_FITTING "Normal compilation"
|
||||
set_global_assignment -name OPTIMIZE_SSN Off
|
||||
set_global_assignment -name OPTIMIZE_TIMING "Normal compilation"
|
||||
set_global_assignment -name ECO_OPTIMIZE_TIMING Off
|
||||
set_global_assignment -name ECO_REGENERATE_REPORT Off
|
||||
set_global_assignment -name OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING Normal
|
||||
set_global_assignment -name FIT_ONLY_ONE_ATTEMPT Off
|
||||
set_global_assignment -name FINAL_PLACEMENT_OPTIMIZATION Automatically
|
||||
set_global_assignment -name FITTER_AGGRESSIVE_ROUTABILITY_OPTIMIZATION Automatically
|
||||
set_global_assignment -name SEED 1
|
||||
set_global_assignment -name SLOW_SLEW_RATE Off
|
||||
set_global_assignment -name PCI_IO Off
|
||||
set_global_assignment -name TURBO_BIT On
|
||||
set_global_assignment -name WEAK_PULL_UP_RESISTOR Off
|
||||
set_global_assignment -name ENABLE_BUS_HOLD_CIRCUITRY Off
|
||||
set_global_assignment -name AUTO_GLOBAL_MEMORY_CONTROLS Off
|
||||
set_global_assignment -name MIGRATION_CONSTRAIN_CORE_RESOURCES On
|
||||
set_global_assignment -name AUTO_PACKED_REGISTERS_STRATIXII AUTO
|
||||
set_global_assignment -name AUTO_PACKED_REGISTERS_MAXII AUTO
|
||||
set_global_assignment -name AUTO_PACKED_REGISTERS_CYCLONE Auto
|
||||
set_global_assignment -name AUTO_PACKED_REGISTERS Off
|
||||
set_global_assignment -name AUTO_PACKED_REGISTERS_STRATIX AUTO
|
||||
set_global_assignment -name NORMAL_LCELL_INSERT On
|
||||
set_global_assignment -name CARRY_OUT_PINS_LCELL_INSERT On
|
||||
set_global_assignment -name AUTO_DELAY_CHAINS On
|
||||
set_global_assignment -name AUTO_DELAY_CHAINS_FOR_HIGH_FANOUT_INPUT_PINS OFF
|
||||
set_global_assignment -name XSTL_INPUT_ALLOW_SE_BUFFER Off
|
||||
set_global_assignment -name TREAT_BIDIR_AS_OUTPUT Off
|
||||
set_global_assignment -name AUTO_TURBO_BIT ON
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_LOG_FILE Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_MAP_LOGIC_TO_MEMORY_FOR_AREA Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING Off
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_ASYNCHRONOUS_SIGNAL_PIPELINING Off
|
||||
set_global_assignment -name IO_PLACEMENT_OPTIMIZATION On
|
||||
set_global_assignment -name ALLOW_LVTTL_LVCMOS_INPUT_LEVELS_TO_OVERDRIVE_INPUT_BUFFER Off
|
||||
set_global_assignment -name OVERRIDE_DEFAULT_ELECTROMIGRATION_PARAMETERS Off
|
||||
set_global_assignment -name FITTER_EFFORT "Auto Fit"
|
||||
set_global_assignment -name FITTER_AUTO_EFFORT_DESIRED_SLACK_MARGIN 0ns
|
||||
set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT Normal
|
||||
set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION AUTO
|
||||
set_global_assignment -name ROUTER_REGISTER_DUPLICATION AUTO
|
||||
set_global_assignment -name STRATIXGX_ALLOW_CLOCK_FANOUT_WITH_ANALOG_RESET Off
|
||||
set_global_assignment -name AUTO_GLOBAL_CLOCK On
|
||||
set_global_assignment -name AUTO_GLOBAL_OE On
|
||||
set_global_assignment -name AUTO_GLOBAL_REGISTER_CONTROLS On
|
||||
set_global_assignment -name FITTER_EARLY_TIMING_ESTIMATE_MODE Realistic
|
||||
set_global_assignment -name STRATIXGX_ALLOW_GIGE_UNDER_FULL_DATARATE_RANGE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_RX_CORECLK_FROM_NON_RX_CLKOUT_SOURCE_IN_DOUBLE_DATA_WIDTH_MODE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_GIGE_IN_DOUBLE_DATA_WIDTH_MODE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_PARALLEL_LOOPBACK_IN_DOUBLE_DATA_WIDTH_MODE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_XAUI_IN_SINGLE_DATA_WIDTH_MODE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_XAUI_WITH_CORECLK_SELECTED_AT_RATE_MATCHER Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_XAUI_WITH_RX_CORECLK_FROM_NON_TXPLL_SOURCE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_GIGE_WITH_CORECLK_SELECTED_AT_RATE_MATCHER Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_GIGE_WITHOUT_8B10B Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_GIGE_WITH_RX_CORECLK_FROM_NON_TXPLL_SOURCE Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_POST8B10B_LOOPBACK Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_REVERSE_PARALLEL_LOOPBACK Off
|
||||
set_global_assignment -name STRATIXGX_ALLOW_USE_OF_GXB_COUPLED_IOS Off
|
||||
set_global_assignment -name GENERATE_GXB_RECONFIG_MIF Off
|
||||
set_global_assignment -name GENERATE_GXB_RECONFIG_MIF_WITH_PLL Off
|
||||
set_global_assignment -name RESERVE_ALL_UNUSED_PINS_WEAK_PULLUP "As input tri-stated with weak pull-up"
|
||||
set_global_assignment -name ENABLE_HOLD_BACK_OFF On
|
||||
set_global_assignment -name CONFIGURATION_VCCIO_LEVEL Auto
|
||||
set_global_assignment -name FORCE_CONFIGURATION_VCCIO Off
|
||||
set_global_assignment -name SYNCHRONIZER_IDENTIFICATION Off
|
||||
set_global_assignment -name ENABLE_BENEFICIAL_SKEW_OPTIMIZATION On
|
||||
set_global_assignment -name OPTIMIZE_FOR_METASTABILITY On
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Arria V"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN Off -family "Cyclone IV E"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN Off -family "Cyclone III"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Stratix VI"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Stratix V"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Arria V GZ"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN Off -family "HardCopy III"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN Off -family "Cyclone III LS"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN Off -family "Stratix III"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Arria VI"
|
||||
set_global_assignment -name CRC_ERROR_OPEN_DRAIN On -family "Cyclone V"
|
||||
set_global_assignment -name MAX_GLOBAL_CLOCKS_ALLOWED "-1 (Unlimited)"
|
||||
set_global_assignment -name MAX_REGIONAL_CLOCKS_ALLOWED "-1 (Unlimited)"
|
||||
set_global_assignment -name MAX_PERIPHERY_CLOCKS_ALLOWED "-1 (Unlimited)"
|
||||
set_global_assignment -name MAX_CLOCKS_ALLOWED "-1 (Unlimited)"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Arria VI"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Stratix VI"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Arria V"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Stratix V"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_40MHz -family "Cyclone IV GX"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Arria V GZ"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_40MHz -family "Arria II GX"
|
||||
set_global_assignment -name ACTIVE_SERIAL_CLOCK FREQ_100MHz -family "Cyclone V"
|
||||
set_global_assignment -name M144K_BLOCK_READ_CLOCK_DUTY_CYCLE_DEPENDENCY Off
|
||||
set_global_assignment -name STRATIXIII_MRAM_COMPATIBILITY On
|
||||
set_global_assignment -name FORCE_FITTER_TO_AVOID_PERIPHERY_PLACEMENT_WARNINGS Off
|
||||
set_global_assignment -name AUTO_C3_M9K_BIT_SKIP Off
|
||||
set_global_assignment -name PR_DONE_OPEN_DRAIN On
|
||||
set_global_assignment -name NCEO_OPEN_DRAIN On
|
||||
set_global_assignment -name ENABLE_CRC_ERROR_PIN Off
|
||||
set_global_assignment -name ENABLE_PR_PINS Off
|
||||
set_global_assignment -name PR_PINS_OPEN_DRAIN Off
|
||||
set_global_assignment -name CLAMPING_DIODE Off
|
||||
set_global_assignment -name TRI_STATE_SPI_PINS Off
|
||||
set_global_assignment -name UNUSED_TSD_PINS_GND Off
|
||||
set_global_assignment -name IMPLEMENT_MLAB_IN_16_BIT_DEEP_MODE Off
|
||||
set_global_assignment -name FORM_DDR_CLUSTERING_CLIQUE Off
|
||||
set_global_assignment -name ALM_REGISTER_PACKING_EFFORT MEDIUM
|
||||
set_global_assignment -name EDA_SIMULATION_TOOL "<None>"
|
||||
set_global_assignment -name EDA_TIMING_ANALYSIS_TOOL "<None>"
|
||||
set_global_assignment -name EDA_BOARD_DESIGN_TIMING_TOOL "<None>"
|
||||
set_global_assignment -name EDA_BOARD_DESIGN_SYMBOL_TOOL "<None>"
|
||||
set_global_assignment -name EDA_BOARD_DESIGN_SIGNAL_INTEGRITY_TOOL "<None>"
|
||||
set_global_assignment -name EDA_BOARD_DESIGN_BOUNDARY_SCAN_TOOL "<None>"
|
||||
set_global_assignment -name EDA_BOARD_DESIGN_TOOL "<None>"
|
||||
set_global_assignment -name EDA_FORMAL_VERIFICATION_TOOL "<None>"
|
||||
set_global_assignment -name EDA_RESYNTHESIS_TOOL "<None>"
|
||||
set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION On
|
||||
set_global_assignment -name COMPRESSION_MODE Off
|
||||
set_global_assignment -name CLOCK_SOURCE Internal
|
||||
set_global_assignment -name CONFIGURATION_CLOCK_FREQUENCY "10 MHz"
|
||||
set_global_assignment -name CONFIGURATION_CLOCK_DIVISOR 1
|
||||
set_global_assignment -name ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE On
|
||||
set_global_assignment -name FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE Off
|
||||
set_global_assignment -name FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE On
|
||||
set_global_assignment -name MAX7000S_JTAG_USER_CODE FFFF
|
||||
set_global_assignment -name STRATIX_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name APEX20K_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name MERCURY_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name FLEX10K_JTAG_USER_CODE 7F
|
||||
set_global_assignment -name MAX7000_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name MAX7000_USE_CHECKSUM_AS_USERCODE Off
|
||||
set_global_assignment -name USE_CHECKSUM_AS_USERCODE On
|
||||
set_global_assignment -name SECURITY_BIT Off
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family MAX7000B
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "HardCopy II"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Stratix IV"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Cyclone IV E"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Cyclone III"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family MAX7000AE
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "MAX V"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family Cyclone
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "Stratix II GX"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "MAX II"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Arria II GX"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "Stratix GX"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Arria II GZ"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family MAX7000S
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "HardCopy III"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "Cyclone II"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Cyclone IV GX"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "HardCopy IV"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Cyclone III LS"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE Off -family "Stratix III"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "Arria GX"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family MAX3000A
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family "Stratix II"
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE On -family Stratix
|
||||
set_global_assignment -name CYCLONEIII_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name STRATIXII_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name APEX20K_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name MERCURY_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name FLEX6K_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name FLEX10K_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name STRATIX_CONFIGURATION_DEVICE Auto
|
||||
set_global_assignment -name APEX20K_CONFIG_DEVICE_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name STRATIX_CONFIG_DEVICE_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name MERCURY_CONFIG_DEVICE_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE FFFFFFFF
|
||||
set_global_assignment -name EPROM_USE_CHECKSUM_AS_USERCODE Off
|
||||
set_global_assignment -name AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE On
|
||||
set_global_assignment -name DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE Off
|
||||
set_global_assignment -name GENERATE_TTF_FILE Off
|
||||
set_global_assignment -name GENERATE_RBF_FILE Off
|
||||
set_global_assignment -name GENERATE_HEX_FILE Off
|
||||
set_global_assignment -name HEXOUT_FILE_START_ADDRESS 0
|
||||
set_global_assignment -name HEXOUT_FILE_COUNT_DIRECTION Up
|
||||
set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "As output driving an unspecified signal"
|
||||
set_global_assignment -name RELEASE_CLEARS_BEFORE_TRI_STATES Off
|
||||
set_global_assignment -name AUTO_RESTART_CONFIGURATION On
|
||||
set_global_assignment -name HARDCOPYII_POWER_ON_EXTRA_DELAY Off
|
||||
set_global_assignment -name STRATIXII_MRAM_COMPATIBILITY Off
|
||||
set_global_assignment -name CYCLONEII_M4K_COMPATIBILITY On
|
||||
set_global_assignment -name ENABLE_OCT_DONE Off
|
||||
set_global_assignment -name USE_CHECKERED_PATTERN_AS_UNINITIALIZED_RAM_CONTENT OFF
|
||||
set_global_assignment -name ARRIAIIGX_RX_CDR_LOCKUP_FIX_OVERRIDE Off
|
||||
set_global_assignment -name ENABLE_AUTONOMOUS_PCIE_HIP Off
|
||||
set_global_assignment -name START_TIME 0ns
|
||||
set_global_assignment -name SIMULATION_MODE TIMING
|
||||
set_global_assignment -name AUTO_USE_SIMULATION_PDB_NETLIST Off
|
||||
set_global_assignment -name ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS On
|
||||
set_global_assignment -name SETUP_HOLD_DETECTION Off
|
||||
set_global_assignment -name SETUP_HOLD_DETECTION_INPUT_REGISTERS_BIDIR_PINS_DISABLED Off
|
||||
set_global_assignment -name CHECK_OUTPUTS Off
|
||||
set_global_assignment -name SIMULATION_COVERAGE On
|
||||
set_global_assignment -name SIMULATION_COMPLETE_COVERAGE_REPORT_PANEL On
|
||||
set_global_assignment -name SIMULATION_MISSING_1_VALUE_COVERAGE_REPORT_PANEL On
|
||||
set_global_assignment -name SIMULATION_MISSING_0_VALUE_COVERAGE_REPORT_PANEL On
|
||||
set_global_assignment -name GLITCH_DETECTION Off
|
||||
set_global_assignment -name GLITCH_INTERVAL 1ns
|
||||
set_global_assignment -name SIMULATOR_GENERATE_SIGNAL_ACTIVITY_FILE Off
|
||||
set_global_assignment -name SIMULATION_WITH_GLITCH_FILTERING_WHEN_GENERATING_SAF On
|
||||
set_global_assignment -name SIMULATION_BUS_CHANNEL_GROUPING Off
|
||||
set_global_assignment -name SIMULATION_VDB_RESULT_FLUSH On
|
||||
set_global_assignment -name VECTOR_COMPARE_TRIGGER_MODE INPUT_EDGE
|
||||
set_global_assignment -name SIMULATION_NETLIST_VIEWER Off
|
||||
set_global_assignment -name SIMULATION_INTERCONNECT_DELAY_MODEL_TYPE TRANSPORT
|
||||
set_global_assignment -name SIMULATION_CELL_DELAY_MODEL_TYPE TRANSPORT
|
||||
set_global_assignment -name SIMULATOR_GENERATE_POWERPLAY_VCD_FILE Off
|
||||
set_global_assignment -name SIMULATOR_PVT_TIMING_MODEL_TYPE AUTO
|
||||
set_global_assignment -name SIMULATION_WITH_AUTO_GLITCH_FILTERING AUTO
|
||||
set_global_assignment -name DRC_TOP_FANOUT 50
|
||||
set_global_assignment -name DRC_FANOUT_EXCEEDING 30
|
||||
set_global_assignment -name DRC_GATED_CLOCK_FEED 30
|
||||
set_global_assignment -name HARDCOPY_FLOW_AUTOMATION MIGRATION_ONLY
|
||||
set_global_assignment -name ENABLE_DRC_SETTINGS Off
|
||||
set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES_THRESHOLD 25
|
||||
set_global_assignment -name DRC_DETAIL_MESSAGE_LIMIT 10
|
||||
set_global_assignment -name DRC_VIOLATION_MESSAGE_LIMIT 30
|
||||
set_global_assignment -name DRC_DEADLOCK_STATE_LIMIT 2
|
||||
set_global_assignment -name MERGE_HEX_FILE Off
|
||||
set_global_assignment -name GENERATE_SVF_FILE Off
|
||||
set_global_assignment -name GENERATE_ISC_FILE Off
|
||||
set_global_assignment -name GENERATE_JAM_FILE Off
|
||||
set_global_assignment -name GENERATE_JBC_FILE Off
|
||||
set_global_assignment -name GENERATE_JBC_FILE_COMPRESSED On
|
||||
set_global_assignment -name GENERATE_CONFIG_SVF_FILE Off
|
||||
set_global_assignment -name GENERATE_CONFIG_ISC_FILE Off
|
||||
set_global_assignment -name GENERATE_CONFIG_JAM_FILE Off
|
||||
set_global_assignment -name GENERATE_CONFIG_JBC_FILE Off
|
||||
set_global_assignment -name GENERATE_CONFIG_JBC_FILE_COMPRESSED On
|
||||
set_global_assignment -name GENERATE_CONFIG_HEXOUT_FILE Off
|
||||
set_global_assignment -name ISP_CLAMP_STATE_DEFAULT "Tri-state"
|
||||
set_global_assignment -name SIGNALPROBE_ALLOW_OVERUSE Off
|
||||
set_global_assignment -name SIGNALPROBE_DURING_NORMAL_COMPILATION Off
|
||||
set_global_assignment -name POWER_DEFAULT_TOGGLE_RATE 12.5%
|
||||
set_global_assignment -name POWER_DEFAULT_INPUT_IO_TOGGLE_RATE 12.5%
|
||||
set_global_assignment -name POWER_USE_PVA On
|
||||
set_global_assignment -name POWER_USE_INPUT_FILE "No File"
|
||||
set_global_assignment -name POWER_USE_INPUT_FILES Off
|
||||
set_global_assignment -name POWER_VCD_FILTER_GLITCHES On
|
||||
set_global_assignment -name POWER_REPORT_SIGNAL_ACTIVITY Off
|
||||
set_global_assignment -name POWER_REPORT_POWER_DISSIPATION Off
|
||||
set_global_assignment -name POWER_USE_DEVICE_CHARACTERISTICS TYPICAL
|
||||
set_global_assignment -name POWER_AUTO_COMPUTE_TJ On
|
||||
set_global_assignment -name POWER_TJ_VALUE 25
|
||||
set_global_assignment -name POWER_USE_TA_VALUE 25
|
||||
set_global_assignment -name POWER_USE_CUSTOM_COOLING_SOLUTION Off
|
||||
set_global_assignment -name POWER_BOARD_TEMPERATURE 25
|
||||
set_global_assignment -name POWER_HPS_ENABLE Off
|
||||
set_global_assignment -name POWER_HPS_PROC_FREQ 0.0
|
||||
set_global_assignment -name IGNORE_PARTITIONS Off
|
||||
set_global_assignment -name AUTO_EXPORT_INCREMENTAL_COMPILATION Off
|
||||
set_global_assignment -name OUTPUT_IO_TIMING_ENDPOINT "Near End"
|
||||
set_global_assignment -name RTLV_REMOVE_FANOUT_FREE_REGISTERS On
|
||||
set_global_assignment -name RTLV_SIMPLIFIED_LOGIC On
|
||||
set_global_assignment -name RTLV_GROUP_RELATED_NODES On
|
||||
set_global_assignment -name RTLV_GROUP_COMB_LOGIC_IN_CLOUD Off
|
||||
set_global_assignment -name RTLV_GROUP_COMB_LOGIC_IN_CLOUD_TMV Off
|
||||
set_global_assignment -name RTLV_GROUP_RELATED_NODES_TMV On
|
||||
set_global_assignment -name EQC_CONSTANT_DFF_DETECTION On
|
||||
set_global_assignment -name EQC_DUPLICATE_DFF_DETECTION On
|
||||
set_global_assignment -name EQC_BBOX_MERGE On
|
||||
set_global_assignment -name EQC_LVDS_MERGE On
|
||||
set_global_assignment -name EQC_RAM_UNMERGING On
|
||||
set_global_assignment -name EQC_DFF_SS_EMULATION On
|
||||
set_global_assignment -name EQC_RAM_REGISTER_UNPACK On
|
||||
set_global_assignment -name EQC_MAC_REGISTER_UNPACK On
|
||||
set_global_assignment -name EQC_SET_PARTITION_BB_TO_VCC_GND On
|
||||
set_global_assignment -name EQC_STRUCTURE_MATCHING On
|
||||
set_global_assignment -name EQC_AUTO_BREAK_CONE On
|
||||
set_global_assignment -name EQC_POWER_UP_COMPARE Off
|
||||
set_global_assignment -name EQC_AUTO_COMP_LOOP_CUT On
|
||||
set_global_assignment -name EQC_AUTO_INVERSION On
|
||||
set_global_assignment -name EQC_AUTO_TERMINATE On
|
||||
set_global_assignment -name EQC_SUB_CONE_REPORT Off
|
||||
set_global_assignment -name EQC_RENAMING_RULES On
|
||||
set_global_assignment -name EQC_PARAMETER_CHECK On
|
||||
set_global_assignment -name EQC_AUTO_PORTSWAP On
|
||||
set_global_assignment -name EQC_DETECT_DONT_CARES On
|
||||
set_global_assignment -name EQC_SHOW_ALL_MAPPED_POINTS Off
|
||||
set_global_assignment -name EDA_INPUT_GND_NAME GND -section_id ?
|
||||
set_global_assignment -name EDA_INPUT_VCC_NAME VCC -section_id ?
|
||||
set_global_assignment -name EDA_INPUT_DATA_FORMAT NONE -section_id ?
|
||||
set_global_assignment -name EDA_SHOW_LMF_MAPPING_MESSAGES Off -section_id ?
|
||||
set_global_assignment -name EDA_RUN_TOOL_AUTOMATICALLY Off -section_id ?
|
||||
set_global_assignment -name RESYNTHESIS_RETIMING FULL -section_id ?
|
||||
set_global_assignment -name RESYNTHESIS_OPTIMIZATION_EFFORT Normal -section_id ?
|
||||
set_global_assignment -name RESYNTHESIS_PHYSICAL_SYNTHESIS Normal -section_id ?
|
||||
set_global_assignment -name USE_GENERATED_PHYSICAL_CONSTRAINTS On -section_id ?
|
||||
set_global_assignment -name VCCPD_VOLTAGE 3.3V -section_id ?
|
||||
set_global_assignment -name EDA_USER_COMPILED_SIMULATION_LIBRARY_DIRECTORY "<None>" -section_id ?
|
||||
set_global_assignment -name EDA_LAUNCH_CMD_LINE_TOOL Off -section_id ?
|
||||
set_global_assignment -name EDA_ENABLE_IPUTF_MODE On -section_id ?
|
||||
set_global_assignment -name EDA_NATIVELINK_PORTABLE_FILE_PATHS Off -section_id ?
|
||||
set_global_assignment -name EDA_NATIVELINK_GENERATE_SCRIPT_ONLY Off -section_id ?
|
||||
set_global_assignment -name EDA_WAIT_FOR_GUI_TOOL_COMPLETION Off -section_id ?
|
||||
set_global_assignment -name EDA_TRUNCATE_LONG_HIERARCHY_PATHS Off -section_id ?
|
||||
set_global_assignment -name EDA_FLATTEN_BUSES Off -section_id ?
|
||||
set_global_assignment -name EDA_MAP_ILLEGAL_CHARACTERS Off -section_id ?
|
||||
set_global_assignment -name EDA_GENERATE_TIMING_CLOSURE_DATA Off -section_id ?
|
||||
set_global_assignment -name EDA_GENERATE_POWER_INPUT_FILE Off -section_id ?
|
||||
set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS NOT_USED -section_id ?
|
||||
set_global_assignment -name EDA_RTL_SIM_MODE NOT_USED -section_id ?
|
||||
set_global_assignment -name EDA_MAINTAIN_DESIGN_HIERARCHY OFF -section_id ?
|
||||
set_global_assignment -name EDA_GENERATE_FUNCTIONAL_NETLIST Off -section_id ?
|
||||
set_global_assignment -name EDA_WRITE_DEVICE_CONTROL_PORTS Off -section_id ?
|
||||
set_global_assignment -name EDA_SIMULATION_VCD_OUTPUT_TCL_FILE Off -section_id ?
|
||||
set_global_assignment -name EDA_SIMULATION_VCD_OUTPUT_SIGNALS_TO_TCL_FILE "All Except Combinational Logic Element Outputs" -section_id ?
|
||||
set_global_assignment -name EDA_ENABLE_GLITCH_FILTERING Off -section_id ?
|
||||
set_global_assignment -name EDA_WRITE_NODES_FOR_POWER_ESTIMATION OFF -section_id ?
|
||||
set_global_assignment -name EDA_SETUP_HOLD_DETECTION_INPUT_REGISTERS_BIDIR_PINS_DISABLED Off -section_id ?
|
||||
set_global_assignment -name EDA_WRITER_DONT_WRITE_TOP_ENTITY Off -section_id ?
|
||||
set_global_assignment -name EDA_VHDL_ARCH_NAME structure -section_id ?
|
||||
set_global_assignment -name EDA_IBIS_MODEL_SELECTOR Off -section_id ?
|
||||
set_global_assignment -name EDA_IBIS_MUTUAL_COUPLING Off -section_id ?
|
||||
set_global_assignment -name EDA_FORMAL_VERIFICATION_ALLOW_RETIMING Off -section_id ?
|
||||
set_global_assignment -name EDA_BOARD_BOUNDARY_SCAN_OPERATION PRE_CONFIG -section_id ?
|
||||
set_global_assignment -name EDA_GENERATE_RTL_SIMULATION_COMMAND_SCRIPT Off -section_id ?
|
||||
set_global_assignment -name EDA_GENERATE_GATE_LEVEL_SIMULATION_COMMAND_SCRIPT Off -section_id ?
|
||||
set_global_assignment -name EDA_IBIS_SPECIFICATION_VERSION 4p1 -section_id ?
|
||||
set_global_assignment -name SIM_VECTOR_COMPARED_CLOCK_OFFSET 0ns -section_id ?
|
||||
set_global_assignment -name SIM_VECTOR_COMPARED_CLOCK_DUTY_CYCLE 50 -section_id ?
|
||||
set_global_assignment -name APEX20K_CLIQUE_TYPE LAB -section_id ? -entity ?
|
||||
set_global_assignment -name MAX7K_CLIQUE_TYPE LAB -section_id ? -entity ?
|
||||
set_global_assignment -name MERCURY_CLIQUE_TYPE LAB -section_id ? -entity ?
|
||||
set_global_assignment -name FLEX6K_CLIQUE_TYPE LAB -section_id ? -entity ?
|
||||
set_global_assignment -name FLEX10K_CLIQUE_TYPE LAB -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_PRESERVE_HIGH_SPEED_TILES On -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_IGNORE_SOURCE_FILE_CHANGES Off -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_ALWAYS_USE_QXP_NETLIST Off -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_IMPORT_ASSIGNMENTS On -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_IMPORT_EXISTING_ASSIGNMENTS REPLACE_CONFLICTING -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_IMPORT_EXISTING_LOGICLOCK_REGIONS UPDATE_CONFLICTING -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_IMPORT_PROMOTE_ASSIGNMENTS On -section_id ? -entity ?
|
||||
set_global_assignment -name ALLOW_MULTIPLE_PERSONAS Off -section_id ? -entity ?
|
||||
set_global_assignment -name PARTITION_ASD_REGION_ID 1 -section_id ? -entity ?
|
||||
set_global_assignment -name CROSS_BOUNDARY_OPTIMIZATIONS Off -section_id ? -entity ?
|
||||
set_global_assignment -name PROPAGATE_CONSTANTS_ON_INPUTS On -section_id ? -entity ?
|
||||
set_global_assignment -name PROPAGATE_INVERSIONS_ON_INPUTS On -section_id ? -entity ?
|
||||
set_global_assignment -name REMOVE_LOGIC_ON_UNCONNECTED_OUTPUTS On -section_id ? -entity ?
|
||||
set_global_assignment -name MERGE_EQUIVALENT_INPUTS On -section_id ? -entity ?
|
||||
set_global_assignment -name MERGE_EQUIVALENT_BIDIRS On -section_id ? -entity ?
|
||||
set_global_assignment -name ABSORB_PATHS_FROM_OUTPUTS_TO_INPUTS On -section_id ? -entity ?
|
139
FPGA/cdc_fifo/cdc_fifo.v
Normal file
139
FPGA/cdc_fifo/cdc_fifo.v
Normal file
|
@ -0,0 +1,139 @@
|
|||
|
||||
///////////////////////////////////////////////////////
|
||||
// Module: SEGA Saturn CDC Data FIFO //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
|
||||
module cdc_fifo(
|
||||
reg_fifo_ctrl, reg_blk_addr, reg_blk_size, reg_fifo_stat,
|
||||
rd_start, data_out, blk_dma_end,
|
||||
avm_clk, avm_reset, avm_addr, avm_rd, avm_rdvalid, avm_rdata, avm_wait
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Pins //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
input[15:0] reg_fifo_ctrl;
|
||||
input[31:0] reg_blk_addr;
|
||||
input[15:0] reg_blk_size;
|
||||
output[15:0] reg_fifo_stat;
|
||||
|
||||
input rd_start;
|
||||
output[15:0] data_out;
|
||||
output blk_dma_end;
|
||||
|
||||
// avalon master
|
||||
input avm_clk;
|
||||
input avm_reset;
|
||||
output[31:0] avm_addr;
|
||||
output avm_rd;
|
||||
input[15:0] avm_rdata;
|
||||
input avm_rdvalid;
|
||||
input avm_wait;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// FIFO //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
wire[10:0] usedw;
|
||||
wire full;
|
||||
wire empty;
|
||||
|
||||
wire fifo_reset = reg_fifo_ctrl[2];
|
||||
|
||||
fifo4k f4k(
|
||||
.aclr (fifo_reset),
|
||||
.clock (avm_clk),
|
||||
|
||||
.rdreq (rd_start),
|
||||
.q (data_out),
|
||||
|
||||
.wrreq (avm_rdvalid),
|
||||
.data (avm_rdata),
|
||||
|
||||
.empty (empty),
|
||||
.full (full),
|
||||
.usedw (usedw)
|
||||
);
|
||||
|
||||
wire[15:0] reg_fifo_stat = {mstate, empty, full, usedw};
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// master state //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[2:0] mstate;
|
||||
reg[15:0] dma_count;
|
||||
reg[31:0] avm_addr;
|
||||
reg avm_rd;
|
||||
reg blk_dma_end;
|
||||
|
||||
wire dma_start = reg_fifo_ctrl[0];
|
||||
wire dma_abort = reg_fifo_ctrl[1];
|
||||
|
||||
localparam M_IDLE=3'd0, M_LOAD=3'd1, M_READ_START=3'd2, M_READ_WAIT=3'd3, M_READ_NEXT=3'd4, M_READ_END=3'd5;
|
||||
|
||||
always @(posedge avm_reset or posedge avm_clk)
|
||||
begin
|
||||
if(avm_reset==1) begin
|
||||
mstate <= M_IDLE;
|
||||
end else begin
|
||||
case(mstate)
|
||||
M_IDLE: begin
|
||||
if(dma_abort==0 && dma_start==1) begin
|
||||
mstate <= M_LOAD;
|
||||
end else begin
|
||||
blk_dma_end <= 1'b0;
|
||||
avm_rd <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
M_LOAD: begin
|
||||
avm_addr <= reg_blk_addr;
|
||||
dma_count <= reg_blk_size;
|
||||
if(dma_abort==1)
|
||||
mstate <= M_IDLE;
|
||||
else if(usedw[10:9]==2'b00)
|
||||
mstate = M_READ_START;
|
||||
end
|
||||
|
||||
M_READ_START: begin
|
||||
avm_rd <= 1;
|
||||
mstate <= M_READ_WAIT;
|
||||
end
|
||||
M_READ_WAIT: begin
|
||||
if(avm_wait==0) begin
|
||||
mstate <= M_READ_NEXT;
|
||||
avm_rd <= 0;
|
||||
dma_count <= dma_count-16'd2;
|
||||
end
|
||||
end
|
||||
M_READ_NEXT: begin
|
||||
avm_addr <= avm_addr+32'd2;
|
||||
if(dma_abort==1) begin
|
||||
mstate <= M_IDLE;
|
||||
end else if(dma_count==0) begin
|
||||
mstate <= M_READ_END;
|
||||
end else begin
|
||||
mstate <= M_READ_START;
|
||||
end
|
||||
end
|
||||
|
||||
M_READ_END: begin
|
||||
if(dma_start==0) begin
|
||||
blk_dma_end <= 1;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
default: begin
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
138
FPGA/cdc_fifo/cdc_fifo_hw.tcl
Normal file
138
FPGA/cdc_fifo/cdc_fifo_hw.tcl
Normal file
|
@ -0,0 +1,138 @@
|
|||
# TCL File Generated by Component Editor 13.1
|
||||
# Wed Nov 19 23:19:19 CST 2014
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# cdc_fifo "cdc_fifo" v1.0
|
||||
# tpu 2014.11.19.23:19:18
|
||||
# Saturn CDC FIFO
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 13.1
|
||||
#
|
||||
package require -exact qsys 13.1
|
||||
|
||||
|
||||
#
|
||||
# module cdc_fifo
|
||||
#
|
||||
set_module_property DESCRIPTION "Saturn CDC FIFO"
|
||||
set_module_property NAME cdc_fifo
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property GROUP "Bridges and Adapters/DMA"
|
||||
set_module_property AUTHOR tpu
|
||||
set_module_property DISPLAY_NAME cdc_fifo
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property ANALYZE_HDL AUTO
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL cdc_fifo
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
add_fileset_file cdc_fifo.v VERILOG PATH cdc_fifo.v TOP_LEVEL_FILE
|
||||
add_fileset_file fifo4k.qip OTHER PATH fifo4k.qip
|
||||
add_fileset_file fifo4k.v VERILOG PATH fifo4k.v
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point conduit_end
|
||||
#
|
||||
add_interface conduit_end conduit end
|
||||
set_interface_property conduit_end associatedClock ""
|
||||
set_interface_property conduit_end associatedReset ""
|
||||
set_interface_property conduit_end ENABLED true
|
||||
set_interface_property conduit_end EXPORT_OF ""
|
||||
set_interface_property conduit_end PORT_NAME_MAP ""
|
||||
set_interface_property conduit_end CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property conduit_end SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port conduit_end reg_fifo_ctrl export Input 16
|
||||
add_interface_port conduit_end reg_blk_addr export Input 32
|
||||
add_interface_port conduit_end reg_blk_size export Input 16
|
||||
add_interface_port conduit_end rd_start export Input 1
|
||||
add_interface_port conduit_end data_out export Output 16
|
||||
add_interface_port conduit_end blk_dma_end export Output 1
|
||||
add_interface_port conduit_end reg_fifo_stat export Output 16
|
||||
|
||||
|
||||
#
|
||||
# connection point read_master
|
||||
#
|
||||
add_interface read_master avalon start
|
||||
set_interface_property read_master addressUnits SYMBOLS
|
||||
set_interface_property read_master associatedClock avm_clk
|
||||
set_interface_property read_master associatedReset avm_reset
|
||||
set_interface_property read_master bitsPerSymbol 8
|
||||
set_interface_property read_master burstOnBurstBoundariesOnly false
|
||||
set_interface_property read_master burstcountUnits WORDS
|
||||
set_interface_property read_master doStreamReads false
|
||||
set_interface_property read_master doStreamWrites false
|
||||
set_interface_property read_master holdTime 0
|
||||
set_interface_property read_master linewrapBursts false
|
||||
set_interface_property read_master maximumPendingReadTransactions 0
|
||||
set_interface_property read_master readLatency 0
|
||||
set_interface_property read_master readWaitTime 1
|
||||
set_interface_property read_master setupTime 0
|
||||
set_interface_property read_master timingUnits Cycles
|
||||
set_interface_property read_master writeWaitTime 0
|
||||
set_interface_property read_master ENABLED true
|
||||
set_interface_property read_master EXPORT_OF ""
|
||||
set_interface_property read_master PORT_NAME_MAP ""
|
||||
set_interface_property read_master CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property read_master SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port read_master avm_addr address Output 32
|
||||
add_interface_port read_master avm_rd read Output 1
|
||||
add_interface_port read_master avm_rdvalid readdatavalid Input 1
|
||||
add_interface_port read_master avm_rdata readdata Input 16
|
||||
add_interface_port read_master avm_wait waitrequest Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_clk
|
||||
#
|
||||
add_interface avm_clk clock end
|
||||
set_interface_property avm_clk clockRate 0
|
||||
set_interface_property avm_clk ENABLED true
|
||||
set_interface_property avm_clk EXPORT_OF ""
|
||||
set_interface_property avm_clk PORT_NAME_MAP ""
|
||||
set_interface_property avm_clk CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_clk SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_clk avm_clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_reset
|
||||
#
|
||||
add_interface avm_reset reset end
|
||||
set_interface_property avm_reset associatedClock avm_clk
|
||||
set_interface_property avm_reset synchronousEdges DEASSERT
|
||||
set_interface_property avm_reset ENABLED true
|
||||
set_interface_property avm_reset EXPORT_OF ""
|
||||
set_interface_property avm_reset PORT_NAME_MAP ""
|
||||
set_interface_property avm_reset CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_reset SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_reset avm_reset reset Input 1
|
||||
|
4
FPGA/cdc_fifo/fifo4k.qip
Normal file
4
FPGA/cdc_fifo/fifo4k.qip
Normal file
|
@ -0,0 +1,4 @@
|
|||
set_global_assignment -name IP_TOOL_NAME "FIFO"
|
||||
set_global_assignment -name IP_TOOL_VERSION "13.1"
|
||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "fifo4k.v"]
|
||||
set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "fifo4k_bb.v"]
|
167
FPGA/cdc_fifo/fifo4k.v
Normal file
167
FPGA/cdc_fifo/fifo4k.v
Normal file
|
@ -0,0 +1,167 @@
|
|||
// megafunction wizard: %FIFO%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: scfifo
|
||||
|
||||
// ============================================================
|
||||
// File Name: fifo4k.v
|
||||
// Megafunction Name(s):
|
||||
// scfifo
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// altera_mf
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 13.1.0 Build 162 10/23/2013 SJ Full Version
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//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.
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module fifo4k (
|
||||
aclr,
|
||||
clock,
|
||||
data,
|
||||
rdreq,
|
||||
wrreq,
|
||||
empty,
|
||||
full,
|
||||
q,
|
||||
usedw);
|
||||
|
||||
input aclr;
|
||||
input clock;
|
||||
input [15:0] data;
|
||||
input rdreq;
|
||||
input wrreq;
|
||||
output empty;
|
||||
output full;
|
||||
output [15:0] q;
|
||||
output [10:0] usedw;
|
||||
|
||||
wire [10:0] sub_wire0;
|
||||
wire sub_wire1;
|
||||
wire sub_wire2;
|
||||
wire [15:0] sub_wire3;
|
||||
wire [10:0] usedw = sub_wire0[10:0];
|
||||
wire empty = sub_wire1;
|
||||
wire full = sub_wire2;
|
||||
wire [15:0] q = sub_wire3[15:0];
|
||||
|
||||
scfifo scfifo_component (
|
||||
.clock (clock),
|
||||
.wrreq (wrreq),
|
||||
.aclr (aclr),
|
||||
.data (data),
|
||||
.rdreq (rdreq),
|
||||
.usedw (sub_wire0),
|
||||
.empty (sub_wire1),
|
||||
.full (sub_wire2),
|
||||
.q (sub_wire3),
|
||||
.almost_empty (),
|
||||
.almost_full (),
|
||||
.sclr ());
|
||||
defparam
|
||||
scfifo_component.add_ram_output_register = "ON",
|
||||
scfifo_component.intended_device_family = "Cyclone IV E",
|
||||
scfifo_component.lpm_numwords = 2048,
|
||||
scfifo_component.lpm_showahead = "OFF",
|
||||
scfifo_component.lpm_type = "scfifo",
|
||||
scfifo_component.lpm_width = 16,
|
||||
scfifo_component.lpm_widthu = 11,
|
||||
scfifo_component.overflow_checking = "ON",
|
||||
scfifo_component.underflow_checking = "ON",
|
||||
scfifo_component.use_eab = "ON";
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1"
|
||||
// Retrieval info: PRIVATE: AlmostFull NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1"
|
||||
// Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: Depth NUMERIC "2048"
|
||||
// Retrieval info: PRIVATE: Empty NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Full NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
||||
// Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: Optimize NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
||||
// Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: UsedW NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Width NUMERIC "16"
|
||||
// Retrieval info: PRIVATE: dc_aclr NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: diff_widths NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: msb_usedw NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: output_width NUMERIC "16"
|
||||
// Retrieval info: PRIVATE: rsEmpty NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: rsFull NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: rsUsedW NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: sc_aclr NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: sc_sclr NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: wsEmpty NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: wsFull NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: wsUsedW NUMERIC "0"
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "ON"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
||||
// Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "2048"
|
||||
// Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo"
|
||||
// Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16"
|
||||
// Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "11"
|
||||
// Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON"
|
||||
// Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON"
|
||||
// Retrieval info: CONSTANT: USE_EAB STRING "ON"
|
||||
// Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL "aclr"
|
||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock"
|
||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
||||
// Retrieval info: USED_PORT: empty 0 0 0 0 OUTPUT NODEFVAL "empty"
|
||||
// Retrieval info: USED_PORT: full 0 0 0 0 OUTPUT NODEFVAL "full"
|
||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
||||
// Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL "rdreq"
|
||||
// Retrieval info: USED_PORT: usedw 0 0 11 0 OUTPUT NODEFVAL "usedw[10..0]"
|
||||
// Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL "wrreq"
|
||||
// Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0
|
||||
// Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0
|
||||
// Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0
|
||||
// Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0
|
||||
// Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0
|
||||
// Retrieval info: CONNECT: empty 0 0 0 0 @empty 0 0 0 0
|
||||
// Retrieval info: CONNECT: full 0 0 0 0 @full 0 0 0 0
|
||||
// Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0
|
||||
// Retrieval info: CONNECT: usedw 0 0 11 0 @usedw 0 0 11 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.v TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.inc FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.cmp FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.bsf FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k_inst.v FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k_bb.v TRUE
|
||||
// Retrieval info: LIB_FILE: altera_mf
|
127
FPGA/cdc_fifo/fifo4k_bb.v
Normal file
127
FPGA/cdc_fifo/fifo4k_bb.v
Normal file
|
@ -0,0 +1,127 @@
|
|||
// megafunction wizard: %FIFO%VBB%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: scfifo
|
||||
|
||||
// ============================================================
|
||||
// File Name: fifo4k.v
|
||||
// Megafunction Name(s):
|
||||
// scfifo
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// altera_mf
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 13.1.0 Build 162 10/23/2013 SJ Full Version
|
||||
// ************************************************************
|
||||
|
||||
//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.
|
||||
|
||||
module fifo4k (
|
||||
aclr,
|
||||
clock,
|
||||
data,
|
||||
rdreq,
|
||||
wrreq,
|
||||
empty,
|
||||
full,
|
||||
q,
|
||||
usedw);
|
||||
|
||||
input aclr;
|
||||
input clock;
|
||||
input [15:0] data;
|
||||
input rdreq;
|
||||
input wrreq;
|
||||
output empty;
|
||||
output full;
|
||||
output [15:0] q;
|
||||
output [10:0] usedw;
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1"
|
||||
// Retrieval info: PRIVATE: AlmostFull NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1"
|
||||
// Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: Depth NUMERIC "2048"
|
||||
// Retrieval info: PRIVATE: Empty NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Full NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
||||
// Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: Optimize NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
||||
// Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: UsedW NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: Width NUMERIC "16"
|
||||
// Retrieval info: PRIVATE: dc_aclr NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: diff_widths NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: msb_usedw NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: output_width NUMERIC "16"
|
||||
// Retrieval info: PRIVATE: rsEmpty NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: rsFull NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: rsUsedW NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: sc_aclr NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: sc_sclr NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: wsEmpty NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: wsFull NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: wsUsedW NUMERIC "0"
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "ON"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
||||
// Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "2048"
|
||||
// Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo"
|
||||
// Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16"
|
||||
// Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "11"
|
||||
// Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON"
|
||||
// Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON"
|
||||
// Retrieval info: CONSTANT: USE_EAB STRING "ON"
|
||||
// Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL "aclr"
|
||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock"
|
||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
||||
// Retrieval info: USED_PORT: empty 0 0 0 0 OUTPUT NODEFVAL "empty"
|
||||
// Retrieval info: USED_PORT: full 0 0 0 0 OUTPUT NODEFVAL "full"
|
||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
||||
// Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL "rdreq"
|
||||
// Retrieval info: USED_PORT: usedw 0 0 11 0 OUTPUT NODEFVAL "usedw[10..0]"
|
||||
// Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL "wrreq"
|
||||
// Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0
|
||||
// Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0
|
||||
// Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0
|
||||
// Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0
|
||||
// Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0
|
||||
// Retrieval info: CONNECT: empty 0 0 0 0 @empty 0 0 0 0
|
||||
// Retrieval info: CONNECT: full 0 0 0 0 @full 0 0 0 0
|
||||
// Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0
|
||||
// Retrieval info: CONNECT: usedw 0 0 11 0 @usedw 0 0 11 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.v TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.inc FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.cmp FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k.bsf FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k_inst.v FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL fifo4k_bb.v TRUE
|
||||
// Retrieval info: LIB_FILE: altera_mf
|
20
FPGA/cdc_fifo/greybox_tmp/cbx_args.txt
Normal file
20
FPGA/cdc_fifo/greybox_tmp/cbx_args.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
ADD_RAM_OUTPUT_REGISTER=ON
|
||||
INTENDED_DEVICE_FAMILY="Cyclone IV E"
|
||||
LPM_NUMWORDS=2048
|
||||
LPM_SHOWAHEAD=ON
|
||||
LPM_TYPE=scfifo
|
||||
LPM_WIDTH=16
|
||||
LPM_WIDTHU=11
|
||||
OVERFLOW_CHECKING=ON
|
||||
UNDERFLOW_CHECKING=ON
|
||||
USE_EAB=ON
|
||||
DEVICE_FAMILY="Cyclone IV E"
|
||||
aclr
|
||||
clock
|
||||
data
|
||||
rdreq
|
||||
wrreq
|
||||
empty
|
||||
full
|
||||
q
|
||||
usedw
|
399
FPGA/cqsys.qsys
Normal file
399
FPGA/cqsys.qsys
Normal file
|
@ -0,0 +1,399 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<system name="$${FILENAME}">
|
||||
<component
|
||||
name="$${FILENAME}"
|
||||
displayName="$${FILENAME}"
|
||||
version="1.0"
|
||||
description=""
|
||||
tags=""
|
||||
categories="System" />
|
||||
<parameter name="bonusData"><![CDATA[bonusData
|
||||
{
|
||||
element $${FILENAME}
|
||||
{
|
||||
}
|
||||
element FSMC_master
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "2";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element altpll_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "1";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element cdc_fifo_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "4";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element clk_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "0";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element new_sdram_controller_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "5";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element saturn_master
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "3";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></parameter>
|
||||
<parameter name="clockCrossingAdapter" value="HANDSHAKE" />
|
||||
<parameter name="device" value="EP4CE6F17C8" />
|
||||
<parameter name="deviceFamily" value="Cyclone IV E" />
|
||||
<parameter name="deviceSpeedGrade" value="8" />
|
||||
<parameter name="fabricMode" value="QSYS" />
|
||||
<parameter name="generateLegacySim" value="false" />
|
||||
<parameter name="generationId" value="0" />
|
||||
<parameter name="globalResetBus" value="false" />
|
||||
<parameter name="hdlLanguage" value="VERILOG" />
|
||||
<parameter name="maxAdditionalLatency" value="1" />
|
||||
<parameter name="projectName" value="SSMaster.qpf" />
|
||||
<parameter name="sopcBorderPoints" value="false" />
|
||||
<parameter name="systemHash" value="0" />
|
||||
<parameter name="timeStamp" value="0" />
|
||||
<parameter name="useTestBenchNamingPattern" value="false" />
|
||||
<instanceScript></instanceScript>
|
||||
<interface name="clk" internal="clk_0.clk_in" type="clock" dir="end" />
|
||||
<interface name="reset" internal="clk_0.clk_in_reset" type="reset" dir="end" />
|
||||
<interface
|
||||
name="mem_pin"
|
||||
internal="new_sdram_controller_0.wire"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="altpll_locked"
|
||||
internal="altpll_0.locked_conduit"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface name="avm_clk" internal="altpll_0.c1" type="clock" dir="start" />
|
||||
<interface
|
||||
name="saturn_bus"
|
||||
internal="saturn_master.ext_bus"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="fsmc_bus"
|
||||
internal="FSMC_master.ext_bus"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="cdc_fifo"
|
||||
internal="cdc_fifo_0.conduit_end"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<module kind="clock_source" version="13.1" enabled="1" name="clk_0">
|
||||
<parameter name="clockFrequency" value="50000000" />
|
||||
<parameter name="clockFrequencyKnown" value="true" />
|
||||
<parameter name="inputClockFrequency" value="0" />
|
||||
<parameter name="resetSynchronousEdges" value="NONE" />
|
||||
</module>
|
||||
<module
|
||||
kind="altera_avalon_new_sdram_controller"
|
||||
version="13.1"
|
||||
enabled="1"
|
||||
name="new_sdram_controller_0">
|
||||
<parameter name="TAC" value="6.0" />
|
||||
<parameter name="TRCD" value="20.0" />
|
||||
<parameter name="TRFC" value="70.0" />
|
||||
<parameter name="TRP" value="20.0" />
|
||||
<parameter name="TWR" value="20.0" />
|
||||
<parameter name="casLatency" value="2" />
|
||||
<parameter name="columnWidth" value="9" />
|
||||
<parameter name="dataWidth" value="16" />
|
||||
<parameter name="generateSimulationModel" value="false" />
|
||||
<parameter name="initRefreshCommands" value="8" />
|
||||
<parameter name="model">single_Micron_MT48LC4M32B2_7_chip</parameter>
|
||||
<parameter name="numberOfBanks" value="4" />
|
||||
<parameter name="numberOfChipSelects" value="1" />
|
||||
<parameter name="pinsSharedViaTriState" value="false" />
|
||||
<parameter name="powerUpDelay" value="200.0" />
|
||||
<parameter name="refreshPeriod" value="31.25" />
|
||||
<parameter name="rowWidth" value="13" />
|
||||
<parameter name="masteredTristateBridgeSlave" value="0" />
|
||||
<parameter name="TMRD" value="2" />
|
||||
<parameter name="initNOPDelay" value="0.0" />
|
||||
<parameter name="registerDataIn" value="true" />
|
||||
<parameter name="clockRate" value="100000000" />
|
||||
<parameter name="componentName">cqsys_new_sdram_controller_0</parameter>
|
||||
</module>
|
||||
<module kind="altpll" version="13.1" enabled="1" name="altpll_0">
|
||||
<parameter name="HIDDEN_CUSTOM_ELABORATION">altpll_avalon_elaboration</parameter>
|
||||
<parameter name="HIDDEN_CUSTOM_POST_EDIT">altpll_avalon_post_edit</parameter>
|
||||
<parameter name="INTENDED_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<parameter name="WIDTH_CLOCK" value="5" />
|
||||
<parameter name="WIDTH_PHASECOUNTERSELECT" value="" />
|
||||
<parameter name="PRIMARY_CLOCK" value="" />
|
||||
<parameter name="INCLK0_INPUT_FREQUENCY" value="20000" />
|
||||
<parameter name="INCLK1_INPUT_FREQUENCY" value="" />
|
||||
<parameter name="OPERATION_MODE" value="NORMAL" />
|
||||
<parameter name="PLL_TYPE" value="AUTO" />
|
||||
<parameter name="QUALIFY_CONF_DONE" value="" />
|
||||
<parameter name="COMPENSATE_CLOCK" value="CLK0" />
|
||||
<parameter name="SCAN_CHAIN" value="" />
|
||||
<parameter name="GATE_LOCK_SIGNAL" value="" />
|
||||
<parameter name="GATE_LOCK_COUNTER" value="" />
|
||||
<parameter name="LOCK_HIGH" value="" />
|
||||
<parameter name="LOCK_LOW" value="" />
|
||||
<parameter name="VALID_LOCK_MULTIPLIER" value="" />
|
||||
<parameter name="INVALID_LOCK_MULTIPLIER" value="" />
|
||||
<parameter name="SWITCH_OVER_ON_LOSSCLK" value="" />
|
||||
<parameter name="SWITCH_OVER_ON_GATED_LOCK" value="" />
|
||||
<parameter name="ENABLE_SWITCH_OVER_COUNTER" value="" />
|
||||
<parameter name="SKIP_VCO" value="" />
|
||||
<parameter name="SWITCH_OVER_COUNTER" value="" />
|
||||
<parameter name="SWITCH_OVER_TYPE" value="" />
|
||||
<parameter name="FEEDBACK_SOURCE" value="" />
|
||||
<parameter name="BANDWIDTH" value="" />
|
||||
<parameter name="BANDWIDTH_TYPE" value="AUTO" />
|
||||
<parameter name="SPREAD_FREQUENCY" value="" />
|
||||
<parameter name="DOWN_SPREAD" value="" />
|
||||
<parameter name="SELF_RESET_ON_GATED_LOSS_LOCK" value="" />
|
||||
<parameter name="SELF_RESET_ON_LOSS_LOCK" value="" />
|
||||
<parameter name="CLK0_MULTIPLY_BY" value="2" />
|
||||
<parameter name="CLK1_MULTIPLY_BY" value="2" />
|
||||
<parameter name="CLK2_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK3_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK4_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK5_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK6_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK7_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK8_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK9_MULTIPLY_BY" value="" />
|
||||
<parameter name="EXTCLK0_MULTIPLY_BY" value="" />
|
||||
<parameter name="EXTCLK1_MULTIPLY_BY" value="" />
|
||||
<parameter name="EXTCLK2_MULTIPLY_BY" value="" />
|
||||
<parameter name="EXTCLK3_MULTIPLY_BY" value="" />
|
||||
<parameter name="CLK0_DIVIDE_BY" value="1" />
|
||||
<parameter name="CLK1_DIVIDE_BY" value="1" />
|
||||
<parameter name="CLK2_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK3_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK4_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK5_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK6_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK7_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK8_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK9_DIVIDE_BY" value="" />
|
||||
<parameter name="EXTCLK0_DIVIDE_BY" value="" />
|
||||
<parameter name="EXTCLK1_DIVIDE_BY" value="" />
|
||||
<parameter name="EXTCLK2_DIVIDE_BY" value="" />
|
||||
<parameter name="EXTCLK3_DIVIDE_BY" value="" />
|
||||
<parameter name="CLK0_PHASE_SHIFT" value="0" />
|
||||
<parameter name="CLK1_PHASE_SHIFT" value="0" />
|
||||
<parameter name="CLK2_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK3_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK4_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK5_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK6_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK7_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK8_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK9_PHASE_SHIFT" value="" />
|
||||
<parameter name="EXTCLK0_PHASE_SHIFT" value="" />
|
||||
<parameter name="EXTCLK1_PHASE_SHIFT" value="" />
|
||||
<parameter name="EXTCLK2_PHASE_SHIFT" value="" />
|
||||
<parameter name="EXTCLK3_PHASE_SHIFT" value="" />
|
||||
<parameter name="CLK0_DUTY_CYCLE" value="50" />
|
||||
<parameter name="CLK1_DUTY_CYCLE" value="50" />
|
||||
<parameter name="CLK2_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK3_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK4_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK5_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK6_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK7_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK8_DUTY_CYCLE" value="" />
|
||||
<parameter name="CLK9_DUTY_CYCLE" value="" />
|
||||
<parameter name="EXTCLK0_DUTY_CYCLE" value="" />
|
||||
<parameter name="EXTCLK1_DUTY_CYCLE" value="" />
|
||||
<parameter name="EXTCLK2_DUTY_CYCLE" value="" />
|
||||
<parameter name="EXTCLK3_DUTY_CYCLE" value="" />
|
||||
<parameter name="PORT_clkena0" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clkena1" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clkena2" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clkena3" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clkena4" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clkena5" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_extclkena0" value="" />
|
||||
<parameter name="PORT_extclkena1" value="" />
|
||||
<parameter name="PORT_extclkena2" value="" />
|
||||
<parameter name="PORT_extclkena3" value="" />
|
||||
<parameter name="PORT_extclk0" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_extclk1" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_extclk2" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_extclk3" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_CLKBAD0" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_CLKBAD1" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clk0" value="PORT_USED" />
|
||||
<parameter name="PORT_clk1" value="PORT_USED" />
|
||||
<parameter name="PORT_clk2" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clk3" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clk4" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clk5" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_clk6" value="" />
|
||||
<parameter name="PORT_clk7" value="" />
|
||||
<parameter name="PORT_clk8" value="" />
|
||||
<parameter name="PORT_clk9" value="" />
|
||||
<parameter name="PORT_SCANDATA" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANDATAOUT" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANDONE" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCLKOUT1" value="" />
|
||||
<parameter name="PORT_SCLKOUT0" value="" />
|
||||
<parameter name="PORT_ACTIVECLOCK" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_CLKLOSS" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_INCLK1" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_INCLK0" value="PORT_USED" />
|
||||
<parameter name="PORT_FBIN" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_PLLENA" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_CLKSWITCH" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_ARESET" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_PFDENA" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANCLK" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANACLR" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANREAD" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANWRITE" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_ENABLE0" value="" />
|
||||
<parameter name="PORT_ENABLE1" value="" />
|
||||
<parameter name="PORT_LOCKED" value="PORT_USED" />
|
||||
<parameter name="PORT_CONFIGUPDATE" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_FBOUT" value="" />
|
||||
<parameter name="PORT_PHASEDONE" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_PHASESTEP" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_PHASEUPDOWN" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_SCANCLKENA" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_PHASECOUNTERSELECT" value="PORT_UNUSED" />
|
||||
<parameter name="PORT_VCOOVERRANGE" value="" />
|
||||
<parameter name="PORT_VCOUNDERRANGE" value="" />
|
||||
<parameter name="DPA_MULTIPLY_BY" value="" />
|
||||
<parameter name="DPA_DIVIDE_BY" value="" />
|
||||
<parameter name="DPA_DIVIDER" value="" />
|
||||
<parameter name="VCO_MULTIPLY_BY" value="" />
|
||||
<parameter name="VCO_DIVIDE_BY" value="" />
|
||||
<parameter name="SCLKOUT0_PHASE_SHIFT" value="" />
|
||||
<parameter name="SCLKOUT1_PHASE_SHIFT" value="" />
|
||||
<parameter name="VCO_FREQUENCY_CONTROL" value="" />
|
||||
<parameter name="VCO_PHASE_SHIFT_STEP" value="" />
|
||||
<parameter name="USING_FBMIMICBIDIR_PORT" value="" />
|
||||
<parameter name="SCAN_CHAIN_MIF_FILE" value="" />
|
||||
<parameter name="AVALON_USE_SEPARATE_SYSCLK" value="NO" />
|
||||
<parameter name="HIDDEN_CONSTANTS">CT#PORT_clk5 PORT_UNUSED CT#PORT_clk4 PORT_UNUSED CT#PORT_clk3 PORT_UNUSED CT#PORT_clk2 PORT_UNUSED CT#PORT_clk1 PORT_USED CT#PORT_clk0 PORT_USED CT#CLK0_MULTIPLY_BY 2 CT#PORT_SCANWRITE PORT_UNUSED CT#PORT_SCANACLR PORT_UNUSED CT#PORT_PFDENA PORT_UNUSED CT#PORT_PLLENA PORT_UNUSED CT#PORT_SCANDATA PORT_UNUSED CT#PORT_SCANCLKENA PORT_UNUSED CT#WIDTH_CLOCK 5 CT#PORT_SCANDATAOUT PORT_UNUSED CT#LPM_TYPE altpll CT#PLL_TYPE AUTO CT#CLK0_PHASE_SHIFT 0 CT#CLK1_DUTY_CYCLE 50 CT#PORT_PHASEDONE PORT_UNUSED CT#OPERATION_MODE NORMAL CT#PORT_CONFIGUPDATE PORT_UNUSED CT#CLK1_MULTIPLY_BY 2 CT#COMPENSATE_CLOCK CLK0 CT#PORT_CLKSWITCH PORT_UNUSED CT#INCLK0_INPUT_FREQUENCY 20000 CT#PORT_SCANDONE PORT_UNUSED CT#PORT_CLKLOSS PORT_UNUSED CT#PORT_INCLK1 PORT_UNUSED CT#AVALON_USE_SEPARATE_SYSCLK NO CT#PORT_INCLK0 PORT_USED CT#PORT_clkena5 PORT_UNUSED CT#PORT_clkena4 PORT_UNUSED CT#PORT_clkena3 PORT_UNUSED CT#PORT_clkena2 PORT_UNUSED CT#PORT_clkena1 PORT_UNUSED CT#PORT_clkena0 PORT_UNUSED CT#CLK1_PHASE_SHIFT 0 CT#PORT_ARESET PORT_UNUSED CT#BANDWIDTH_TYPE AUTO CT#INTENDED_DEVICE_FAMILY {Cyclone IV E} CT#PORT_SCANREAD PORT_UNUSED CT#PORT_PHASESTEP PORT_UNUSED CT#PORT_SCANCLK PORT_UNUSED CT#PORT_CLKBAD1 PORT_UNUSED CT#PORT_CLKBAD0 PORT_UNUSED CT#PORT_FBIN PORT_UNUSED CT#PORT_PHASEUPDOWN PORT_UNUSED CT#PORT_extclk3 PORT_UNUSED CT#PORT_extclk2 PORT_UNUSED CT#PORT_extclk1 PORT_UNUSED CT#PORT_PHASECOUNTERSELECT PORT_UNUSED CT#PORT_extclk0 PORT_UNUSED CT#PORT_ACTIVECLOCK PORT_UNUSED CT#CLK0_DUTY_CYCLE 50 CT#CLK0_DIVIDE_BY 1 CT#CLK1_DIVIDE_BY 1 CT#PORT_LOCKED PORT_USED</parameter>
|
||||
<parameter name="HIDDEN_PRIVATES">PT#GLOCKED_FEATURE_ENABLED 0 PT#SPREAD_FEATURE_ENABLED 0 PT#BANDWIDTH_FREQ_UNIT MHz PT#CUR_DEDICATED_CLK c0 PT#INCLK0_FREQ_EDIT 50.000 PT#BANDWIDTH_PRESET Low PT#PLL_LVDS_PLL_CHECK 0 PT#BANDWIDTH_USE_PRESET 0 PT#AVALON_USE_SEPARATE_SYSCLK NO PT#PLL_ENHPLL_CHECK 0 PT#OUTPUT_FREQ_UNIT1 MHz PT#OUTPUT_FREQ_UNIT0 MHz PT#PHASE_RECONFIG_FEATURE_ENABLED 1 PT#CREATE_CLKBAD_CHECK 0 PT#CLKSWITCH_CHECK 0 PT#INCLK1_FREQ_EDIT 100.000 PT#NORMAL_MODE_RADIO 1 PT#SRC_SYNCH_COMP_RADIO 0 PT#PLL_ARESET_CHECK 0 PT#LONG_SCAN_RADIO 1 PT#SCAN_FEATURE_ENABLED 1 PT#PHASE_RECONFIG_INPUTS_CHECK 0 PT#USE_CLK1 1 PT#USE_CLK0 1 PT#PRIMARY_CLK_COMBO inclk0 PT#BANDWIDTH 1.000 PT#GLOCKED_COUNTER_EDIT_CHANGED 1 PT#PLL_FASTPLL_CHECK 0 PT#SPREAD_FREQ_UNIT KHz PT#PLL_AUTOPLL_CHECK 1 PT#LVDS_PHASE_SHIFT_UNIT1 deg PT#LVDS_PHASE_SHIFT_UNIT0 deg PT#OUTPUT_FREQ_MODE1 1 PT#SWITCHOVER_FEATURE_ENABLED 0 PT#MIG_DEVICE_SPEED_GRADE Any PT#OUTPUT_FREQ_MODE0 1 PT#BANDWIDTH_FEATURE_ENABLED 1 PT#INCLK0_FREQ_UNIT_COMBO MHz PT#ZERO_DELAY_RADIO 0 PT#OUTPUT_FREQ1 100.00000000 PT#OUTPUT_FREQ0 100.00000000 PT#SHORT_SCAN_RADIO 0 PT#LVDS_MODE_DATA_RATE_DIRTY 0 PT#CUR_FBIN_CLK c0 PT#PLL_ADVANCED_PARAM_CHECK 0 PT#CLKBAD_SWITCHOVER_CHECK 0 PT#PHASE_SHIFT_STEP_ENABLED_CHECK 0 PT#DEVICE_SPEED_GRADE 8 PT#PLL_FBMIMIC_CHECK 0 PT#LVDS_MODE_DATA_RATE {Not Available} PT#LOCKED_OUTPUT_CHECK 1 PT#SPREAD_PERCENT 0.500 PT#PHASE_SHIFT1 0.00000000 PT#PHASE_SHIFT0 0.00000000 PT#DIV_FACTOR1 1 PT#DIV_FACTOR0 1 PT#CNX_NO_COMPENSATE_RADIO 0 PT#USE_CLKENA1 0 PT#USE_CLKENA0 0 PT#CREATE_INCLK1_CHECK 0 PT#GLOCK_COUNTER_EDIT 1048575 PT#INCLK1_FREQ_UNIT_COMBO MHz PT#EFF_OUTPUT_FREQ_VALUE1 100.000000 PT#EFF_OUTPUT_FREQ_VALUE0 100.000000 PT#SPREAD_FREQ 50.000 PT#USE_MIL_SPEED_GRADE 0 PT#EXPLICIT_SWITCHOVER_COUNTER 0 PT#STICKY_CLK1 1 PT#STICKY_CLK0 1 PT#EXT_FEEDBACK_RADIO 0 PT#MIRROR_CLK1 0 PT#MIRROR_CLK0 0 PT#SWITCHOVER_COUNT_EDIT 1 PT#SELF_RESET_LOCK_LOSS 0 PT#PLL_PFDENA_CHECK 0 PT#INT_FEEDBACK__MODE_RADIO 1 PT#INCLK1_FREQ_EDIT_CHANGED 1 PT#CLKLOSS_CHECK 0 PT#SYNTH_WRAPPER_GEN_POSTFIX 0 PT#PHASE_SHIFT_UNIT1 deg PT#PHASE_SHIFT_UNIT0 deg PT#BANDWIDTH_USE_AUTO 1 PT#HAS_MANUAL_SWITCHOVER 1 PT#MULT_FACTOR1 1 PT#MULT_FACTOR0 1 PT#SPREAD_USE 0 PT#GLOCKED_MODE_CHECK 0 PT#SACN_INPUTS_CHECK 0 PT#DUTY_CYCLE1 50.00000000 PT#INTENDED_DEVICE_FAMILY {Cyclone IV E} PT#DUTY_CYCLE0 50.00000000 PT#PLL_TARGET_HARCOPY_CHECK 0 PT#INCLK1_FREQ_UNIT_CHANGED 1 PT#RECONFIG_FILE ALTPLL1415009164408010.mif PT#ACTIVECLK_CHECK 0</parameter>
|
||||
<parameter name="HIDDEN_USED_PORTS">UP#locked used UP#c1 used UP#c0 used UP#areset used UP#inclk0 used</parameter>
|
||||
<parameter name="HIDDEN_IS_NUMERIC">IN#WIDTH_CLOCK 1 IN#CLK0_DUTY_CYCLE 1 IN#PLL_TARGET_HARCOPY_CHECK 1 IN#CLK1_MULTIPLY_BY 1 IN#SWITCHOVER_COUNT_EDIT 1 IN#INCLK0_INPUT_FREQUENCY 1 IN#PLL_LVDS_PLL_CHECK 1 IN#PLL_AUTOPLL_CHECK 1 IN#PLL_FASTPLL_CHECK 1 IN#CLK1_DUTY_CYCLE 1 IN#PLL_ENHPLL_CHECK 1 IN#DIV_FACTOR1 1 IN#DIV_FACTOR0 1 IN#LVDS_MODE_DATA_RATE_DIRTY 1 IN#GLOCK_COUNTER_EDIT 1 IN#CLK0_DIVIDE_BY 1 IN#MULT_FACTOR1 1 IN#MULT_FACTOR0 1 IN#CLK0_MULTIPLY_BY 1 IN#USE_MIL_SPEED_GRADE 1 IN#CLK1_DIVIDE_BY 1</parameter>
|
||||
<parameter name="HIDDEN_MF_PORTS">MF#areset 1 MF#clk 1 MF#locked 1 MF#inclk 1</parameter>
|
||||
<parameter name="HIDDEN_IF_PORTS">IF#locked {output 0} IF#reset {input 0} IF#clk {input 0} IF#readdata {output 32} IF#write {input 0} IF#phasedone {output 0} IF#address {input 2} IF#c1 {output 0} IF#c0 {output 0} IF#writedata {input 32} IF#read {input 0} IF#areset {input 0}</parameter>
|
||||
<parameter name="HIDDEN_IS_FIRST_EDIT" value="0" />
|
||||
<parameter name="AUTO_INCLK_INTERFACE_CLOCK_RATE" value="50000000" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
</module>
|
||||
<module kind="ext_master" version="1.0" enabled="1" name="FSMC_master">
|
||||
<parameter name="AUTO_AVM_CLK_CLOCK_RATE" value="100000000" />
|
||||
</module>
|
||||
<module kind="ext_master" version="1.0" enabled="1" name="saturn_master">
|
||||
<parameter name="AUTO_AVM_CLK_CLOCK_RATE" value="100000000" />
|
||||
</module>
|
||||
<module kind="cdc_fifo" version="1.0" enabled="1" name="cdc_fifo_0">
|
||||
<parameter name="AUTO_AVM_CLK_CLOCK_RATE" value="100000000" />
|
||||
</module>
|
||||
<connection
|
||||
kind="reset"
|
||||
version="13.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="new_sdram_controller_0.reset" />
|
||||
<connection
|
||||
kind="reset"
|
||||
version="13.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="altpll_0.inclk_interface_reset" />
|
||||
<connection
|
||||
kind="clock"
|
||||
version="13.1"
|
||||
start="clk_0.clk"
|
||||
end="altpll_0.inclk_interface" />
|
||||
<connection
|
||||
kind="clock"
|
||||
version="13.1"
|
||||
start="altpll_0.c0"
|
||||
end="new_sdram_controller_0.clk" />
|
||||
<connection
|
||||
kind="clock"
|
||||
version="13.1"
|
||||
start="altpll_0.c0"
|
||||
end="FSMC_master.avm_clk" />
|
||||
<connection
|
||||
kind="reset"
|
||||
version="13.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="FSMC_master.avm_reset" />
|
||||
<connection
|
||||
kind="clock"
|
||||
version="13.1"
|
||||
start="altpll_0.c0"
|
||||
end="saturn_master.avm_clk" />
|
||||
<connection
|
||||
kind="reset"
|
||||
version="13.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="saturn_master.avm_reset" />
|
||||
<connection
|
||||
kind="avalon"
|
||||
version="13.1"
|
||||
start="saturn_master.memory_master"
|
||||
end="new_sdram_controller_0.s1">
|
||||
<parameter name="arbitrationPriority" value="1" />
|
||||
<parameter name="baseAddress" value="0x0000" />
|
||||
<parameter name="defaultConnection" value="false" />
|
||||
</connection>
|
||||
<connection
|
||||
kind="avalon"
|
||||
version="13.1"
|
||||
start="FSMC_master.memory_master"
|
||||
end="new_sdram_controller_0.s1">
|
||||
<parameter name="arbitrationPriority" value="1" />
|
||||
<parameter name="baseAddress" value="0x0000" />
|
||||
<parameter name="defaultConnection" value="false" />
|
||||
</connection>
|
||||
<connection
|
||||
kind="clock"
|
||||
version="13.1"
|
||||
start="altpll_0.c0"
|
||||
end="cdc_fifo_0.avm_clk" />
|
||||
<connection
|
||||
kind="reset"
|
||||
version="13.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="cdc_fifo_0.avm_reset" />
|
||||
<connection
|
||||
kind="avalon"
|
||||
version="13.1"
|
||||
start="cdc_fifo_0.read_master"
|
||||
end="new_sdram_controller_0.s1">
|
||||
<parameter name="arbitrationPriority" value="1" />
|
||||
<parameter name="baseAddress" value="0x0000" />
|
||||
<parameter name="defaultConnection" value="false" />
|
||||
</connection>
|
||||
<interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
|
||||
<interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" />
|
||||
</system>
|
139
FPGA/ext_busmaster/FSMC_master_hw.tcl
Normal file
139
FPGA/ext_busmaster/FSMC_master_hw.tcl
Normal file
|
@ -0,0 +1,139 @@
|
|||
# TCL File Generated by Component Editor 13.1
|
||||
# Mon Nov 03 17:52:21 CST 2014
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# FSMC_master "FSMC bus master" v1.0
|
||||
# tpu 2014.11.03.17:52:21
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 13.1
|
||||
#
|
||||
package require -exact qsys 13.1
|
||||
|
||||
|
||||
#
|
||||
# module FSMC_master
|
||||
#
|
||||
set_module_property DESCRIPTION ""
|
||||
set_module_property NAME FSMC_master
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property GROUP Bridges/Memory-Mapped
|
||||
set_module_property AUTHOR tpu
|
||||
set_module_property DISPLAY_NAME "FSMC bus master"
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property ANALYZE_HDL AUTO
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL fsmc_master
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
add_fileset_file fsmc_master.v VERILOG PATH fsmc_master.v TOP_LEVEL_FILE
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_clk
|
||||
#
|
||||
add_interface avm_clk clock end
|
||||
set_interface_property avm_clk clockRate 0
|
||||
set_interface_property avm_clk ENABLED true
|
||||
set_interface_property avm_clk EXPORT_OF ""
|
||||
set_interface_property avm_clk PORT_NAME_MAP ""
|
||||
set_interface_property avm_clk CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_clk SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_clk avm_clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_reset
|
||||
#
|
||||
add_interface avm_reset reset end
|
||||
set_interface_property avm_reset associatedClock avm_clk
|
||||
set_interface_property avm_reset synchronousEdges DEASSERT
|
||||
set_interface_property avm_reset ENABLED true
|
||||
set_interface_property avm_reset EXPORT_OF ""
|
||||
set_interface_property avm_reset PORT_NAME_MAP ""
|
||||
set_interface_property avm_reset CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_reset SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_reset avm_reset reset Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point FSMC_bus
|
||||
#
|
||||
add_interface FSMC_bus conduit end
|
||||
set_interface_property FSMC_bus associatedClock ""
|
||||
set_interface_property FSMC_bus associatedReset ""
|
||||
set_interface_property FSMC_bus ENABLED true
|
||||
set_interface_property FSMC_bus EXPORT_OF ""
|
||||
set_interface_property FSMC_bus PORT_NAME_MAP ""
|
||||
set_interface_property FSMC_bus CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property FSMC_bus SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port FSMC_bus addr export Input 32
|
||||
add_interface_port FSMC_bus ale export Input 1
|
||||
add_interface_port FSMC_bus ncs export Input 1
|
||||
add_interface_port FSMC_bus nrd export Input 1
|
||||
add_interface_port FSMC_bus nwr export Input 1
|
||||
add_interface_port FSMC_bus data_in export Input 16
|
||||
add_interface_port FSMC_bus data_out export Output 16
|
||||
add_interface_port FSMC_bus wait_out export Output 1
|
||||
|
||||
|
||||
#
|
||||
# connection point memory_master
|
||||
#
|
||||
add_interface memory_master avalon start
|
||||
set_interface_property memory_master addressUnits SYMBOLS
|
||||
set_interface_property memory_master associatedClock avm_clk
|
||||
set_interface_property memory_master associatedReset avm_reset
|
||||
set_interface_property memory_master bitsPerSymbol 8
|
||||
set_interface_property memory_master burstOnBurstBoundariesOnly false
|
||||
set_interface_property memory_master burstcountUnits WORDS
|
||||
set_interface_property memory_master doStreamReads false
|
||||
set_interface_property memory_master doStreamWrites false
|
||||
set_interface_property memory_master holdTime 0
|
||||
set_interface_property memory_master linewrapBursts false
|
||||
set_interface_property memory_master maximumPendingReadTransactions 0
|
||||
set_interface_property memory_master readLatency 0
|
||||
set_interface_property memory_master readWaitTime 1
|
||||
set_interface_property memory_master setupTime 0
|
||||
set_interface_property memory_master timingUnits Cycles
|
||||
set_interface_property memory_master writeWaitTime 0
|
||||
set_interface_property memory_master ENABLED true
|
||||
set_interface_property memory_master EXPORT_OF ""
|
||||
set_interface_property memory_master PORT_NAME_MAP ""
|
||||
set_interface_property memory_master CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property memory_master SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port memory_master avm_addr address Output 32
|
||||
add_interface_port memory_master avm_rd read Output 1
|
||||
add_interface_port memory_master avm_rdvalid readdatavalid Input 1
|
||||
add_interface_port memory_master avm_rdata readdata Input 16
|
||||
add_interface_port memory_master avm_wr write Output 1
|
||||
add_interface_port memory_master avm_wdata writedata Output 16
|
||||
add_interface_port memory_master avm_wait waitrequest Input 1
|
||||
|
136
FPGA/ext_busmaster/ext_master.v
Normal file
136
FPGA/ext_busmaster/ext_master.v
Normal file
|
@ -0,0 +1,136 @@
|
|||
|
||||
///////////////////////////////////////////////////////
|
||||
// Module: external bus master for STM32 FSMC //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
module ext_master(
|
||||
addr, ncs, rd_start, wr_start, byte_en, data_in, data_out, wait_out,
|
||||
avm_clk, avm_reset, avm_addr, avm_rd, avm_rdvalid, avm_rdata, avm_wr, avm_wdata, avm_byte_en, avm_wait
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Pins //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// external signal
|
||||
input[31:0] addr;
|
||||
input ncs;
|
||||
input rd_start;
|
||||
input wr_start;
|
||||
input[1:0] byte_en;
|
||||
input[15:0] data_in;
|
||||
output[15:0] data_out;
|
||||
output wait_out;
|
||||
|
||||
// avalon master
|
||||
input avm_clk;
|
||||
input avm_reset;
|
||||
output[31:0] avm_addr;
|
||||
output avm_rd;
|
||||
input[15:0] avm_rdata;
|
||||
input avm_rdvalid;
|
||||
output avm_wr;
|
||||
output[15:0] avm_wdata;
|
||||
output[1:0] avm_byte_en;
|
||||
input avm_wait;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// master state //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[2:0] mstate;
|
||||
reg avm_rd;
|
||||
reg avm_wr;
|
||||
reg emm_wait;
|
||||
reg cs_wait;
|
||||
reg[1:0] avm_byte_en;
|
||||
reg[15:0] avm_wdata;
|
||||
reg[31:0] avm_addr;
|
||||
reg[15:0] data_out;
|
||||
|
||||
localparam M_IDLE=0, M_READ=1, M_READ_DATA=2, M_READ_END=3, M_WRITE=4, M_WRITE_END=5;
|
||||
|
||||
always @(posedge avm_reset or posedge avm_clk)
|
||||
begin
|
||||
if(avm_reset==1) begin
|
||||
mstate <= M_IDLE;
|
||||
end else begin
|
||||
case(mstate)
|
||||
M_IDLE: begin
|
||||
if(ncs==0 && rd_start==1) begin
|
||||
mstate <= M_READ;
|
||||
avm_rd <= 1;
|
||||
emm_wait <= 1;
|
||||
end else if(ncs==0 && wr_start==1) begin
|
||||
mstate <= M_WRITE;
|
||||
avm_wr <= 1;
|
||||
emm_wait <= 1;
|
||||
end else begin
|
||||
avm_rd <= 0;
|
||||
avm_wr <= 0;
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_READ: begin
|
||||
if(avm_wait==0) begin
|
||||
mstate <= M_READ_DATA;
|
||||
avm_rd <= 0;
|
||||
end
|
||||
end
|
||||
M_READ_DATA: begin
|
||||
if(avm_rdvalid==1) begin
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_WRITE: begin
|
||||
if(avm_wait==0) begin
|
||||
emm_wait <= 0;
|
||||
avm_wr <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
default: begin
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
always @(posedge emm_wait or negedge ncs)
|
||||
begin
|
||||
if(emm_wait==1)
|
||||
cs_wait <= 0;
|
||||
else
|
||||
cs_wait <= 1;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(avm_rdvalid==1)
|
||||
data_out <= avm_rdata;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(ncs==0 && wr_start==1) begin
|
||||
avm_wdata <= data_in;
|
||||
avm_byte_en <= byte_en;
|
||||
end
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(ncs==0 && (wr_start==1 || rd_start==1))
|
||||
avm_addr <= addr;
|
||||
end
|
||||
|
||||
assign wait_out = ~(cs_wait | emm_wait);
|
||||
|
||||
endmodule
|
||||
|
140
FPGA/ext_busmaster/ext_master_hw.tcl
Normal file
140
FPGA/ext_busmaster/ext_master_hw.tcl
Normal file
|
@ -0,0 +1,140 @@
|
|||
# TCL File Generated by Component Editor 13.1
|
||||
# Thu Nov 20 11:02:53 CST 2014
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# ext_master "external bus master" v1.0
|
||||
# tpu 2014.11.20.11:02:53
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 13.1
|
||||
#
|
||||
package require -exact qsys 13.1
|
||||
|
||||
|
||||
#
|
||||
# module ext_master
|
||||
#
|
||||
set_module_property DESCRIPTION ""
|
||||
set_module_property NAME ext_master
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property GROUP Bridges/Memory-Mapped
|
||||
set_module_property AUTHOR tpu
|
||||
set_module_property DISPLAY_NAME "external bus master"
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property ANALYZE_HDL AUTO
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL ext_master
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
add_fileset_file ext_master.v VERILOG PATH ext_master.v TOP_LEVEL_FILE
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_clk
|
||||
#
|
||||
add_interface avm_clk clock end
|
||||
set_interface_property avm_clk clockRate 0
|
||||
set_interface_property avm_clk ENABLED true
|
||||
set_interface_property avm_clk EXPORT_OF ""
|
||||
set_interface_property avm_clk PORT_NAME_MAP ""
|
||||
set_interface_property avm_clk CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_clk SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_clk avm_clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_reset
|
||||
#
|
||||
add_interface avm_reset reset end
|
||||
set_interface_property avm_reset associatedClock avm_clk
|
||||
set_interface_property avm_reset synchronousEdges DEASSERT
|
||||
set_interface_property avm_reset ENABLED true
|
||||
set_interface_property avm_reset EXPORT_OF ""
|
||||
set_interface_property avm_reset PORT_NAME_MAP ""
|
||||
set_interface_property avm_reset CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_reset SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_reset avm_reset reset Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point ext_bus
|
||||
#
|
||||
add_interface ext_bus conduit end
|
||||
set_interface_property ext_bus associatedClock ""
|
||||
set_interface_property ext_bus associatedReset ""
|
||||
set_interface_property ext_bus ENABLED true
|
||||
set_interface_property ext_bus EXPORT_OF ""
|
||||
set_interface_property ext_bus PORT_NAME_MAP ""
|
||||
set_interface_property ext_bus CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property ext_bus SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port ext_bus addr export Input 32
|
||||
add_interface_port ext_bus ncs export Input 1
|
||||
add_interface_port ext_bus rd_start export Input 1
|
||||
add_interface_port ext_bus wr_start export Input 1
|
||||
add_interface_port ext_bus data_in export Input 16
|
||||
add_interface_port ext_bus data_out export Output 16
|
||||
add_interface_port ext_bus wait_out export Output 1
|
||||
add_interface_port ext_bus byte_en export Input 2
|
||||
|
||||
|
||||
#
|
||||
# connection point memory_master
|
||||
#
|
||||
add_interface memory_master avalon start
|
||||
set_interface_property memory_master addressUnits SYMBOLS
|
||||
set_interface_property memory_master associatedClock avm_clk
|
||||
set_interface_property memory_master associatedReset avm_reset
|
||||
set_interface_property memory_master bitsPerSymbol 8
|
||||
set_interface_property memory_master burstOnBurstBoundariesOnly false
|
||||
set_interface_property memory_master burstcountUnits WORDS
|
||||
set_interface_property memory_master doStreamReads false
|
||||
set_interface_property memory_master doStreamWrites false
|
||||
set_interface_property memory_master holdTime 0
|
||||
set_interface_property memory_master linewrapBursts false
|
||||
set_interface_property memory_master maximumPendingReadTransactions 0
|
||||
set_interface_property memory_master readLatency 0
|
||||
set_interface_property memory_master readWaitTime 1
|
||||
set_interface_property memory_master setupTime 0
|
||||
set_interface_property memory_master timingUnits Cycles
|
||||
set_interface_property memory_master writeWaitTime 0
|
||||
set_interface_property memory_master ENABLED true
|
||||
set_interface_property memory_master EXPORT_OF ""
|
||||
set_interface_property memory_master PORT_NAME_MAP ""
|
||||
set_interface_property memory_master CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property memory_master SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port memory_master avm_addr address Output 32
|
||||
add_interface_port memory_master avm_rd read Output 1
|
||||
add_interface_port memory_master avm_rdvalid readdatavalid Input 1
|
||||
add_interface_port memory_master avm_rdata readdata Input 16
|
||||
add_interface_port memory_master avm_wr write Output 1
|
||||
add_interface_port memory_master avm_wdata writedata Output 16
|
||||
add_interface_port memory_master avm_wait waitrequest Input 1
|
||||
add_interface_port memory_master avm_byte_en byteenable Output 2
|
||||
|
156
FPGA/ext_busmaster/fsmc_master.v
Normal file
156
FPGA/ext_busmaster/fsmc_master.v
Normal file
|
@ -0,0 +1,156 @@
|
|||
|
||||
///////////////////////////////////////////////////////
|
||||
// Module: external bus master for STM32 FSMC //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
module fsmc_master(
|
||||
addr, ale, ncs, nrd, nwr, data_in, data_out, wait_out,
|
||||
avm_clk, avm_reset, avm_addr, avm_rd, avm_rdvalid, avm_rdata, avm_wr, avm_wdata, avm_wait
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Pins //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// external signal
|
||||
input[31:0] addr;
|
||||
input ale;
|
||||
input ncs;
|
||||
input nrd;
|
||||
input nwr;
|
||||
input[15:0] data_in;
|
||||
output[15:0] data_out;
|
||||
output wait_out;
|
||||
|
||||
// io master
|
||||
input avm_clk;
|
||||
input avm_reset;
|
||||
output[31:0] avm_addr;
|
||||
output avm_rd;
|
||||
input[15:0] avm_rdata;
|
||||
input avm_rdvalid;
|
||||
output avm_wr;
|
||||
output[15:0] avm_wdata;
|
||||
input avm_wait;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// input sync //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg ale_s0, ale_s1, ale_s2;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
ale_s0 <= ale;
|
||||
ale_s1 <= ale_s0;
|
||||
ale_s2 <= ale_s1;
|
||||
end
|
||||
wire rd_start = (ale_s2==0 && ale_s1==1 && ncs==0 && nrd==0);
|
||||
|
||||
reg nwr_s0, nwr_s1, nwr_s2;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
nwr_s0 <= nwr;
|
||||
nwr_s1 <= nwr_s0;
|
||||
nwr_s2 <= nwr_s1;
|
||||
end
|
||||
wire wr_start = (nwr_s2==1 && nwr_s1==0 && ncs==0);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// master read //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[2:0] mstate;
|
||||
reg avm_rd;
|
||||
reg avm_wr;
|
||||
reg emm_wait;
|
||||
reg cs_wait;
|
||||
reg[15:0] avm_wdata;
|
||||
reg[31:0] avm_addr;
|
||||
reg[15:0] data_out;
|
||||
|
||||
localparam M_IDLE=0, M_READ=1, M_READ_DATA=2, M_READ_END=3, M_WRITE=4, M_WRITE_END=5;
|
||||
|
||||
always @(posedge avm_reset or posedge avm_clk)
|
||||
begin
|
||||
if(avm_reset==1) begin
|
||||
mstate <= M_IDLE;
|
||||
end else begin
|
||||
case(mstate)
|
||||
M_IDLE: begin
|
||||
if(rd_start==1) begin
|
||||
mstate <= M_READ;
|
||||
avm_rd <= 1;
|
||||
emm_wait <= 1;
|
||||
end else if(wr_start==1) begin
|
||||
mstate <= M_WRITE;
|
||||
avm_wr <= 1;
|
||||
emm_wait <= 1;
|
||||
end else begin
|
||||
avm_rd <= 0;
|
||||
avm_wr <= 0;
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_READ: begin
|
||||
if(avm_wait==0) begin
|
||||
mstate <= M_READ_DATA;
|
||||
avm_rd <= 0;
|
||||
end
|
||||
end
|
||||
M_READ_DATA: begin
|
||||
if(avm_rdvalid==1) begin
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_WRITE: begin
|
||||
if(avm_wait==0) begin
|
||||
emm_wait <= 0;
|
||||
avm_wr <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
default: begin
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
always @(posedge emm_wait or negedge ncs)
|
||||
begin
|
||||
if(emm_wait==1)
|
||||
cs_wait <= 0;
|
||||
else
|
||||
cs_wait <= 1;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(avm_rdvalid==1)
|
||||
data_out <= avm_rdata;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(wr_start==1)
|
||||
avm_wdata <= data_in;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(wr_start==1 || rd_start==1)
|
||||
avm_addr <= addr;
|
||||
end
|
||||
|
||||
assign wait_out = ~(cs_wait | emm_wait);
|
||||
|
||||
endmodule
|
||||
|
150
FPGA/saturn_master/saturn_master.v
Normal file
150
FPGA/saturn_master/saturn_master.v
Normal file
|
@ -0,0 +1,150 @@
|
|||
|
||||
///////////////////////////////////////////////////////
|
||||
// Module: external bus master for Saturn ABUS //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
module saturn_master(
|
||||
addr, ale, ncs, nrd, nwr, data_in, data_out, wait_out,
|
||||
avm_clk, avm_reset, avm_addr, avm_rd, avm_rdvalid, avm_rdata, avm_wr, avm_wdata, avm_wait
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// Pins //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
// external signal
|
||||
input[31:0] addr;
|
||||
input ale;
|
||||
input ncs;
|
||||
input nrd;
|
||||
input nwr;
|
||||
input[15:0] data_in;
|
||||
output[15:0] data_out;
|
||||
output wait_out;
|
||||
|
||||
// io master
|
||||
input avm_clk;
|
||||
input avm_reset;
|
||||
output[31:0] avm_addr;
|
||||
output avm_rd;
|
||||
input[15:0] avm_rdata;
|
||||
input avm_rdvalid;
|
||||
output avm_wr;
|
||||
output[15:0] avm_wdata;
|
||||
input avm_wait;
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// input sync //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg ncs_s0, ncs_s1, ncs_s2, ncs_s3, ncs_s4;
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
ncs_s0 <= ncs;
|
||||
ncs_s1 <= ncs_s0;
|
||||
ncs_s2 <= ncs_s1;
|
||||
ncs_s3 <= ncs_s2;
|
||||
ncs_s4 <= ncs_s3;
|
||||
end
|
||||
|
||||
wire rd_start = (ncs_s2==1 && ncs_s1==0 && nrd==0);
|
||||
wire wr_start = (ncs_s4==1 && ncs_s3==0 && nwr==0);
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// master read //
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
reg[2:0] mstate;
|
||||
reg avm_rd;
|
||||
reg avm_wr;
|
||||
reg emm_wait;
|
||||
reg cs_wait;
|
||||
reg[15:0] avm_wdata;
|
||||
reg[31:0] avm_addr;
|
||||
reg[15:0] data_out;
|
||||
|
||||
localparam M_IDLE=0, M_READ=1, M_READ_DATA=2, M_READ_END=3, M_WRITE=4, M_WRITE_END=5;
|
||||
|
||||
always @(posedge avm_reset or posedge avm_clk)
|
||||
begin
|
||||
if(avm_reset==1) begin
|
||||
mstate <= M_IDLE;
|
||||
end else begin
|
||||
case(mstate)
|
||||
M_IDLE: begin
|
||||
if(rd_start==1) begin
|
||||
mstate <= M_READ;
|
||||
avm_rd <= 1;
|
||||
emm_wait <= 1;
|
||||
end else if(wr_start==1) begin
|
||||
mstate <= M_WRITE;
|
||||
avm_wr <= 1;
|
||||
emm_wait <= 1;
|
||||
end else begin
|
||||
avm_rd <= 0;
|
||||
avm_wr <= 0;
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_READ: begin
|
||||
if(avm_wait==0) begin
|
||||
mstate <= M_READ_DATA;
|
||||
avm_rd <= 0;
|
||||
end
|
||||
end
|
||||
M_READ_DATA: begin
|
||||
if(avm_rdvalid==1) begin
|
||||
emm_wait <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
M_WRITE: begin
|
||||
if(avm_wait==0) begin
|
||||
emm_wait <= 0;
|
||||
avm_wr <= 0;
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
end
|
||||
|
||||
default: begin
|
||||
mstate <= M_IDLE;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
always @(posedge emm_wait or negedge ncs)
|
||||
begin
|
||||
if(emm_wait==1)
|
||||
cs_wait <= 0;
|
||||
else
|
||||
cs_wait <= 1;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(avm_rdvalid==1)
|
||||
data_out <= avm_rdata;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(wr_start==1)
|
||||
avm_wdata <= data_in;
|
||||
end
|
||||
|
||||
always @(posedge avm_clk)
|
||||
begin
|
||||
if(wr_start==1 || rd_start==1)
|
||||
avm_addr <= addr;
|
||||
end
|
||||
|
||||
assign wait_out = ~(cs_wait | emm_wait);
|
||||
|
||||
endmodule
|
||||
|
139
FPGA/saturn_master/saturn_master_hw.tcl
Normal file
139
FPGA/saturn_master/saturn_master_hw.tcl
Normal file
|
@ -0,0 +1,139 @@
|
|||
# TCL File Generated by Component Editor 13.1
|
||||
# Sat Nov 08 11:20:10 CST 2014
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# saturn_master "saturn bus master" v1.0
|
||||
# tpu 2014.11.08.11:20:09
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 13.1
|
||||
#
|
||||
package require -exact qsys 13.1
|
||||
|
||||
|
||||
#
|
||||
# module saturn_master
|
||||
#
|
||||
set_module_property DESCRIPTION ""
|
||||
set_module_property NAME saturn_master
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property GROUP Bridges/Memory-Mapped
|
||||
set_module_property AUTHOR tpu
|
||||
set_module_property DISPLAY_NAME "saturn bus master"
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property ANALYZE_HDL AUTO
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL saturn_master
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
add_fileset_file saturn_master.v VERILOG PATH saturn_master.v TOP_LEVEL_FILE
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_clk
|
||||
#
|
||||
add_interface avm_clk clock end
|
||||
set_interface_property avm_clk clockRate 0
|
||||
set_interface_property avm_clk ENABLED true
|
||||
set_interface_property avm_clk EXPORT_OF ""
|
||||
set_interface_property avm_clk PORT_NAME_MAP ""
|
||||
set_interface_property avm_clk CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_clk SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_clk avm_clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avm_reset
|
||||
#
|
||||
add_interface avm_reset reset end
|
||||
set_interface_property avm_reset associatedClock avm_clk
|
||||
set_interface_property avm_reset synchronousEdges DEASSERT
|
||||
set_interface_property avm_reset ENABLED true
|
||||
set_interface_property avm_reset EXPORT_OF ""
|
||||
set_interface_property avm_reset PORT_NAME_MAP ""
|
||||
set_interface_property avm_reset CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avm_reset SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avm_reset avm_reset reset Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point saturn_bus
|
||||
#
|
||||
add_interface saturn_bus conduit end
|
||||
set_interface_property saturn_bus associatedClock ""
|
||||
set_interface_property saturn_bus associatedReset ""
|
||||
set_interface_property saturn_bus ENABLED true
|
||||
set_interface_property saturn_bus EXPORT_OF ""
|
||||
set_interface_property saturn_bus PORT_NAME_MAP ""
|
||||
set_interface_property saturn_bus CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property saturn_bus SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port saturn_bus addr export Input 32
|
||||
add_interface_port saturn_bus ale export Input 1
|
||||
add_interface_port saturn_bus ncs export Input 1
|
||||
add_interface_port saturn_bus nrd export Input 1
|
||||
add_interface_port saturn_bus nwr export Input 1
|
||||
add_interface_port saturn_bus data_in export Input 16
|
||||
add_interface_port saturn_bus data_out export Output 16
|
||||
add_interface_port saturn_bus wait_out export Output 1
|
||||
|
||||
|
||||
#
|
||||
# connection point memory_master
|
||||
#
|
||||
add_interface memory_master avalon start
|
||||
set_interface_property memory_master addressUnits SYMBOLS
|
||||
set_interface_property memory_master associatedClock avm_clk
|
||||
set_interface_property memory_master associatedReset avm_reset
|
||||
set_interface_property memory_master bitsPerSymbol 8
|
||||
set_interface_property memory_master burstOnBurstBoundariesOnly false
|
||||
set_interface_property memory_master burstcountUnits WORDS
|
||||
set_interface_property memory_master doStreamReads false
|
||||
set_interface_property memory_master doStreamWrites false
|
||||
set_interface_property memory_master holdTime 0
|
||||
set_interface_property memory_master linewrapBursts false
|
||||
set_interface_property memory_master maximumPendingReadTransactions 0
|
||||
set_interface_property memory_master readLatency 0
|
||||
set_interface_property memory_master readWaitTime 1
|
||||
set_interface_property memory_master setupTime 0
|
||||
set_interface_property memory_master timingUnits Cycles
|
||||
set_interface_property memory_master writeWaitTime 0
|
||||
set_interface_property memory_master ENABLED true
|
||||
set_interface_property memory_master EXPORT_OF ""
|
||||
set_interface_property memory_master PORT_NAME_MAP ""
|
||||
set_interface_property memory_master CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property memory_master SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port memory_master avm_addr address Output 32
|
||||
add_interface_port memory_master avm_rd read Output 1
|
||||
add_interface_port memory_master avm_rdvalid readdatavalid Input 1
|
||||
add_interface_port memory_master avm_rdata readdata Input 16
|
||||
add_interface_port memory_master avm_wr write Output 1
|
||||
add_interface_port memory_master avm_wdata writedata Output 16
|
||||
add_interface_port memory_master avm_wait waitrequest Input 1
|
||||
|
Loading…
Add table
Reference in a new issue