diff options
author | Friedrich Beckmann <friedrich.beckmann@hs-augsburg.de> | 2024-03-06 22:45:14 +0100 |
---|---|---|
committer | Friedrich Beckmann <friedrich.beckmann@hs-augsburg.de> | 2024-03-06 22:45:14 +0100 |
commit | 8cc31c74129ee8599480ff9fe8462a96ffbfe6bc (patch) | |
tree | d5092ef066f7c42201bd86503446464e5e533304 /scripts |
first commit with top_simple synthesis
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/create_quartus_project_settings.tcl | 84 | ||||
-rw-r--r-- | scripts/de1_pin_assignments_minimumio.csv | 283 | ||||
-rw-r--r-- | scripts/de1_pin_assignments_minimumio.tcl | 282 | ||||
-rw-r--r-- | scripts/quartus_project_flow.tcl | 84 | ||||
-rw-r--r-- | scripts/quartus_project_settings.tcl | 86 |
5 files changed, 819 insertions, 0 deletions
diff --git a/scripts/create_quartus_project_settings.tcl b/scripts/create_quartus_project_settings.tcl new file mode 100644 index 0000000..ab55593 --- /dev/null +++ b/scripts/create_quartus_project_settings.tcl @@ -0,0 +1,84 @@ +## ---------------------------------------------------------------------------- +## Script : create_quartus_project_settings.tcl +## ---------------------------------------------------------------------------- +## Author : Johann Faerber, F. Beckmann +## Company : University of Applied Sciences Augsburg +## ---------------------------------------------------------------------------- +## Description: create a quartus project with default settings for device, +## unused pins, ... +## expects project name as command line parameter +## e.g. +## quartus_sh -t create_quartus_project_settings.tcl -projectname de1_mux2to1 +## -family "Cyclone II" -device EP2C20F484C7 +## ---------------------------------------------------------------------------- +## Revisions : see end of file +## ---------------------------------------------------------------------------- + +package require cmdline +# Load Quartus II Tcl Project package +package require ::quartus::project + +# ---------------------------------------------------------------------------- +# Declare command line parameters +# ---------------------------------------------------------------------------- +set parameters { + {projectname.arg "" "Project Name"} + {family.arg "" "FPGA Family"} + {device.arg "" "FPGA Device"} +} +array set arg [::cmdline::getoptions argv $parameters] + +# ---------------------------------------------------------------------------- +# Verify required paramters +# ---------------------------------------------------------------------------- +set requiredParameters {projectname family device} +foreach parameter $requiredParameters { + if {$arg($parameter) == ""} { + puts stderr "Missing required parameter: -$parameter" + exit 1 + } +} + + + # ---------------------------------------------------------------------------- + # Create project + # ---------------------------------------------------------------------------- + project_new $arg(projectname) -overwrite + + # ---------------------------------------------------------------------------- + # Assign family, device, and top-level file + # ---------------------------------------------------------------------------- + set_global_assignment -name FAMILY $arg(family) + set_global_assignment -name DEVICE $arg(device) + + # ---------------------------------------------------------------------------- + # Default settings + # ---------------------------------------------------------------------------- + set_global_assignment -name USE_CONFIGURATION_DEVICE ON + set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" + set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 + + # ---------------------------------------------------------------------------- + # Design files + # ---------------------------------------------------------------------------- + #set_global_assignment -name VHDL_FILE ../src/e_cntdnmodm.vhd + #set_global_assignment -name VHDL_FILE ../src/a_cntdnmodm_rtl.vhd + source quartus_vhdl_source_files.tcl + + # ---------------------------------------------------------------------------- + # Pin Assignments + # ---------------------------------------------------------------------------- + # set_location_assignment PIN_L1 -to CLOCK_50 + source $arg(projectname)_pins.tcl + + # ---------------------------------------------------------------------------- + # Close project + # ---------------------------------------------------------------------------- + project_close + + +## ---------------------------------------------------------------------------- +## Revisions: +## ---------- +## $Id:$ +## ---------------------------------------------------------------------------- diff --git a/scripts/de1_pin_assignments_minimumio.csv b/scripts/de1_pin_assignments_minimumio.csv new file mode 100644 index 0000000..04a5003 --- /dev/null +++ b/scripts/de1_pin_assignments_minimumio.csv @@ -0,0 +1,283 @@ +To,Location +CLOCK_27[0],PIN_D12 +CLOCK_27[1],PIN_E12 +CLOCK_24[0],PIN_B12 +CLOCK_24[1],PIN_A12 +CLOCK_50,PIN_L1 +EXT_CLOCK,PIN_M21 +KEY[0],PIN_R22 +KEY[1],PIN_R21 +KEY[2],PIN_T22 +KEY[3],PIN_T21 +SW[0],PIN_L22 +SW[1],PIN_L21 +SW[2],PIN_M22 +SW[3],PIN_V12 +SW[4],PIN_W12 +SW[5],PIN_U12 +SW[6],PIN_U11 +SW[7],PIN_M2 +SW[8],PIN_M1 +SW[9],PIN_L2 +LEDR[0],PIN_R20 +LEDR[1],PIN_R19 +LEDR[2],PIN_U19 +LEDR[3],PIN_Y19 +LEDR[4],PIN_T18 +LEDR[5],PIN_V19 +LEDR[6],PIN_Y18 +LEDR[7],PIN_U18 +LEDR[8],PIN_R18 +LEDR[9],PIN_R17 +LEDG[0],PIN_U22 +LEDG[1],PIN_U21 +LEDG[2],PIN_V22 +LEDG[3],PIN_V21 +LEDG[4],PIN_W22 +LEDG[5],PIN_W21 +LEDG[6],PIN_Y22 +LEDG[7],PIN_Y21 +HEX0[0],PIN_J2 +HEX0[1],PIN_J1 +HEX0[2],PIN_H2 +HEX0[3],PIN_H1 +HEX0[4],PIN_F2 +HEX0[5],PIN_F1 +HEX0[6],PIN_E2 +HEX1[0],PIN_E1 +HEX1[1],PIN_H6 +HEX1[2],PIN_H5 +HEX1[3],PIN_H4 +HEX1[4],PIN_G3 +HEX1[5],PIN_D2 +HEX1[6],PIN_D1 +HEX2[0],PIN_G5 +HEX2[1],PIN_G6 +HEX2[2],PIN_C2 +HEX2[3],PIN_C1 +HEX2[4],PIN_E3 +HEX2[5],PIN_E4 +HEX2[6],PIN_D3 +HEX3[0],PIN_F4 +HEX3[1],PIN_D5 +HEX3[2],PIN_D6 +HEX3[3],PIN_J4 +HEX3[4],PIN_L8 +HEX3[5],PIN_F3 +HEX3[6],PIN_D4 +GPI_0[0],PIN_A13 +GPI_0[1],PIN_B13 +GPI_0[2],PIN_A14 +GPI_0[3],PIN_B14 +GPI_0[4],PIN_A15 +GPI_0[5],PIN_B15 +GPI_0[6],PIN_A16 +GPI_0[7],PIN_B16 +GPI_0[8],PIN_A17 +GPI_0[9],PIN_B17 +GPI_0[10],PIN_A18 +GPI_0[11],PIN_B18 +GPI_0[12],PIN_A19 +GPI_0[13],PIN_B19 +GPI_0[14],PIN_A20 +GPI_0[15],PIN_B20 +GPI_0[16],PIN_C21 +GPI_0[17],PIN_C22 +GPI_0[18],PIN_D21 +GPI_0[19],PIN_D22 +GPI_0[20],PIN_E21 +GPI_0[21],PIN_E22 +GPI_0[22],PIN_F21 +GPI_0[23],PIN_F22 +GPI_0[24],PIN_G21 +GPI_0[25],PIN_G22 +GPI_0[26],PIN_J21 +GPI_0[27],PIN_J22 +GPI_0[28],PIN_K21 +GPI_0[29],PIN_K22 +GPI_0[30],PIN_J19 +GPI_0[31],PIN_J20 +GPI_0[32],PIN_J18 +GPI_0[33],PIN_K20 +GPI_0[34],PIN_L19 +GPI_0[35],PIN_L18 +GPI_1[0],PIN_H12 +GPI_1[1],PIN_H13 +GPI_1[2],PIN_H14 +GPI_1[3],PIN_G15 +GPI_1[4],PIN_E14 +GPI_1[5],PIN_E15 +GPI_1[6],PIN_F15 +GPI_1[7],PIN_G16 +GPI_1[8],PIN_F12 +GPI_1[9],PIN_F13 +GPI_1[10],PIN_C14 +GPI_1[11],PIN_D14 +GPI_1[12],PIN_D15 +GPI_1[13],PIN_D16 +GPI_1[14],PIN_C17 +GPI_1[15],PIN_C18 +GPI_1[16],PIN_C19 +GPI_1[17],PIN_C20 +GPI_1[18],PIN_D19 +GPI_1[19],PIN_D20 +GPI_1[20],PIN_E20 +GPI_1[21],PIN_F20 +GPI_1[22],PIN_E19 +GPI_1[23],PIN_E18 +GPI_1[24],PIN_G20 +GPI_1[25],PIN_G18 +GPI_1[26],PIN_G17 +GPI_1[27],PIN_H17 +GPI_1[28],PIN_J15 +GPI_1[29],PIN_H18 +GPI_1[30],PIN_N22 +GPI_1[31],PIN_N21 +GPI_1[32],PIN_P15 +GPI_1[33],PIN_N15 +GPI_1[34],PIN_P17 +GPI_1[35],PIN_P18 +GPO_0[0],PIN_A13 +GPO_0[1],PIN_B13 +GPO_0[2],PIN_A14 +GPO_0[3],PIN_B14 +GPO_0[4],PIN_A15 +GPO_0[5],PIN_B15 +GPO_0[6],PIN_A16 +GPO_0[7],PIN_B16 +GPO_0[8],PIN_A17 +GPO_0[9],PIN_B17 +GPO_0[10],PIN_A18 +GPO_0[11],PIN_B18 +GPO_0[12],PIN_A19 +GPO_0[13],PIN_B19 +GPO_0[14],PIN_A20 +GPO_0[15],PIN_B20 +GPO_0[16],PIN_C21 +GPO_0[17],PIN_C22 +GPO_0[18],PIN_D21 +GPO_0[19],PIN_D22 +GPO_0[20],PIN_E21 +GPO_0[21],PIN_E22 +GPO_0[22],PIN_F21 +GPO_0[23],PIN_F22 +GPO_0[24],PIN_G21 +GPO_0[25],PIN_G22 +GPO_0[26],PIN_J21 +GPO_0[27],PIN_J22 +GPO_0[28],PIN_K21 +GPO_0[29],PIN_K22 +GPO_0[30],PIN_J19 +GPO_0[31],PIN_J20 +GPO_0[32],PIN_J18 +GPO_0[33],PIN_K20 +GPO_0[34],PIN_L19 +GPO_0[35],PIN_L18 +GPO_1[0],PIN_H12 +GPO_1[1],PIN_H13 +GPO_1[2],PIN_H14 +GPO_1[3],PIN_G15 +GPO_1[4],PIN_E14 +GPO_1[5],PIN_E15 +GPO_1[6],PIN_F15 +GPO_1[7],PIN_G16 +GPO_1[8],PIN_F12 +GPO_1[9],PIN_F13 +GPO_1[10],PIN_C14 +GPO_1[11],PIN_D14 +GPO_1[12],PIN_D15 +GPO_1[13],PIN_D16 +GPO_1[14],PIN_C17 +GPO_1[15],PIN_C18 +GPO_1[16],PIN_C19 +GPO_1[17],PIN_C20 +GPO_1[18],PIN_D19 +GPO_1[19],PIN_D20 +GPO_1[20],PIN_E20 +GPO_1[21],PIN_F20 +GPO_1[22],PIN_E19 +GPO_1[23],PIN_E18 +GPO_1[24],PIN_G20 +GPO_1[25],PIN_G18 +GPO_1[26],PIN_G17 +GPO_1[27],PIN_H17 +GPO_1[28],PIN_J15 +GPO_1[29],PIN_H18 +GPO_1[30],PIN_N22 +GPO_1[31],PIN_N21 +GPO_1[32],PIN_P15 +GPO_1[33],PIN_N15 +GPO_1[34],PIN_P17 +GPO_1[35],PIN_P18 +GPIO_0[0],PIN_A13 +GPIO_0[1],PIN_B13 +GPIO_0[2],PIN_A14 +GPIO_0[3],PIN_B14 +GPIO_0[4],PIN_A15 +GPIO_0[5],PIN_B15 +GPIO_0[6],PIN_A16 +GPIO_0[7],PIN_B16 +GPIO_0[8],PIN_A17 +GPIO_0[9],PIN_B17 +GPIO_0[10],PIN_A18 +GPIO_0[11],PIN_B18 +GPIO_0[12],PIN_A19 +GPIO_0[13],PIN_B19 +GPIO_0[14],PIN_A20 +GPIO_0[15],PIN_B20 +GPIO_0[16],PIN_C21 +GPIO_0[17],PIN_C22 +GPIO_0[18],PIN_D21 +GPIO_0[19],PIN_D22 +GPIO_0[20],PIN_E21 +GPIO_0[21],PIN_E22 +GPIO_0[22],PIN_F21 +GPIO_0[23],PIN_F22 +GPIO_0[24],PIN_G21 +GPIO_0[25],PIN_G22 +GPIO_0[26],PIN_J21 +GPIO_0[27],PIN_J22 +GPIO_0[28],PIN_K21 +GPIO_0[29],PIN_K22 +GPIO_0[30],PIN_J19 +GPIO_0[31],PIN_J20 +GPIO_0[32],PIN_J18 +GPIO_0[33],PIN_K20 +GPIO_0[34],PIN_L19 +GPIO_0[35],PIN_L18 +GPIO_1[0],PIN_H12 +GPIO_1[1],PIN_H13 +GPIO_1[2],PIN_H14 +GPIO_1[3],PIN_G15 +GPIO_1[4],PIN_E14 +GPIO_1[5],PIN_E15 +GPIO_1[6],PIN_F15 +GPIO_1[7],PIN_G16 +GPIO_1[8],PIN_F12 +GPIO_1[9],PIN_F13 +GPIO_1[10],PIN_C14 +GPIO_1[11],PIN_D14 +GPIO_1[12],PIN_D15 +GPIO_1[13],PIN_D16 +GPIO_1[14],PIN_C17 +GPIO_1[15],PIN_C18 +GPIO_1[16],PIN_C19 +GPIO_1[17],PIN_C20 +GPIO_1[18],PIN_D19 +GPIO_1[19],PIN_D20 +GPIO_1[20],PIN_E20 +GPIO_1[21],PIN_F20 +GPIO_1[22],PIN_E19 +GPIO_1[23],PIN_E18 +GPIO_1[24],PIN_G20 +GPIO_1[25],PIN_G18 +GPIO_1[26],PIN_G17 +GPIO_1[27],PIN_H17 +GPIO_1[28],PIN_J15 +GPIO_1[29],PIN_H18 +GPIO_1[30],PIN_N22 +GPIO_1[31],PIN_N21 +GPIO_1[32],PIN_P15 +GPIO_1[33],PIN_N15 +GPIO_1[34],PIN_P17 +GPIO_1[35],PIN_P18 diff --git a/scripts/de1_pin_assignments_minimumio.tcl b/scripts/de1_pin_assignments_minimumio.tcl new file mode 100644 index 0000000..5a40a60 --- /dev/null +++ b/scripts/de1_pin_assignments_minimumio.tcl @@ -0,0 +1,282 @@ +set_location_assignment PIN_D12 -to CLOCK_27[0] +set_location_assignment PIN_E12 -to CLOCK_27[1] +set_location_assignment PIN_B12 -to CLOCK_24[0] +set_location_assignment PIN_A12 -to CLOCK_24[1] +set_location_assignment PIN_L1 -to CLOCK_50 +set_location_assignment PIN_M21 -to EXT_CLOCK +set_location_assignment PIN_R22 -to KEY[0] +set_location_assignment PIN_R21 -to KEY[1] +set_location_assignment PIN_T22 -to KEY[2] +set_location_assignment PIN_T21 -to KEY[3] +set_location_assignment PIN_L22 -to SW[0] +set_location_assignment PIN_L21 -to SW[1] +set_location_assignment PIN_M22 -to SW[2] +set_location_assignment PIN_V12 -to SW[3] +set_location_assignment PIN_W12 -to SW[4] +set_location_assignment PIN_U12 -to SW[5] +set_location_assignment PIN_U11 -to SW[6] +set_location_assignment PIN_M2 -to SW[7] +set_location_assignment PIN_M1 -to SW[8] +set_location_assignment PIN_L2 -to SW[9] +set_location_assignment PIN_R20 -to LEDR[0] +set_location_assignment PIN_R19 -to LEDR[1] +set_location_assignment PIN_U19 -to LEDR[2] +set_location_assignment PIN_Y19 -to LEDR[3] +set_location_assignment PIN_T18 -to LEDR[4] +set_location_assignment PIN_V19 -to LEDR[5] +set_location_assignment PIN_Y18 -to LEDR[6] +set_location_assignment PIN_U18 -to LEDR[7] +set_location_assignment PIN_R18 -to LEDR[8] +set_location_assignment PIN_R17 -to LEDR[9] +set_location_assignment PIN_U22 -to LEDG[0] +set_location_assignment PIN_U21 -to LEDG[1] +set_location_assignment PIN_V22 -to LEDG[2] +set_location_assignment PIN_V21 -to LEDG[3] +set_location_assignment PIN_W22 -to LEDG[4] +set_location_assignment PIN_W21 -to LEDG[5] +set_location_assignment PIN_Y22 -to LEDG[6] +set_location_assignment PIN_Y21 -to LEDG[7] +set_location_assignment PIN_J2 -to HEX0[0] +set_location_assignment PIN_J1 -to HEX0[1] +set_location_assignment PIN_H2 -to HEX0[2] +set_location_assignment PIN_H1 -to HEX0[3] +set_location_assignment PIN_F2 -to HEX0[4] +set_location_assignment PIN_F1 -to HEX0[5] +set_location_assignment PIN_E2 -to HEX0[6] +set_location_assignment PIN_E1 -to HEX1[0] +set_location_assignment PIN_H6 -to HEX1[1] +set_location_assignment PIN_H5 -to HEX1[2] +set_location_assignment PIN_H4 -to HEX1[3] +set_location_assignment PIN_G3 -to HEX1[4] +set_location_assignment PIN_D2 -to HEX1[5] +set_location_assignment PIN_D1 -to HEX1[6] +set_location_assignment PIN_G5 -to HEX2[0] +set_location_assignment PIN_G6 -to HEX2[1] +set_location_assignment PIN_C2 -to HEX2[2] +set_location_assignment PIN_C1 -to HEX2[3] +set_location_assignment PIN_E3 -to HEX2[4] +set_location_assignment PIN_E4 -to HEX2[5] +set_location_assignment PIN_D3 -to HEX2[6] +set_location_assignment PIN_F4 -to HEX3[0] +set_location_assignment PIN_D5 -to HEX3[1] +set_location_assignment PIN_D6 -to HEX3[2] +set_location_assignment PIN_J4 -to HEX3[3] +set_location_assignment PIN_L8 -to HEX3[4] +set_location_assignment PIN_F3 -to HEX3[5] +set_location_assignment PIN_D4 -to HEX3[6] +set_location_assignment PIN_A13 -to GPI_0[0] +set_location_assignment PIN_B13 -to GPI_0[1] +set_location_assignment PIN_A14 -to GPI_0[2] +set_location_assignment PIN_B14 -to GPI_0[3] +set_location_assignment PIN_A15 -to GPI_0[4] +set_location_assignment PIN_B15 -to GPI_0[5] +set_location_assignment PIN_A16 -to GPI_0[6] +set_location_assignment PIN_B16 -to GPI_0[7] +set_location_assignment PIN_A17 -to GPI_0[8] +set_location_assignment PIN_B17 -to GPI_0[9] +set_location_assignment PIN_A18 -to GPI_0[10] +set_location_assignment PIN_B18 -to GPI_0[11] +set_location_assignment PIN_A19 -to GPI_0[12] +set_location_assignment PIN_B19 -to GPI_0[13] +set_location_assignment PIN_A20 -to GPI_0[14] +set_location_assignment PIN_B20 -to GPI_0[15] +set_location_assignment PIN_C21 -to GPI_0[16] +set_location_assignment PIN_C22 -to GPI_0[17] +set_location_assignment PIN_D21 -to GPI_0[18] +set_location_assignment PIN_D22 -to GPI_0[19] +set_location_assignment PIN_E21 -to GPI_0[20] +set_location_assignment PIN_E22 -to GPI_0[21] +set_location_assignment PIN_F21 -to GPI_0[22] +set_location_assignment PIN_F22 -to GPI_0[23] +set_location_assignment PIN_G21 -to GPI_0[24] +set_location_assignment PIN_G22 -to GPI_0[25] +set_location_assignment PIN_J21 -to GPI_0[26] +set_location_assignment PIN_J22 -to GPI_0[27] +set_location_assignment PIN_K21 -to GPI_0[28] +set_location_assignment PIN_K22 -to GPI_0[29] +set_location_assignment PIN_J19 -to GPI_0[30] +set_location_assignment PIN_J20 -to GPI_0[31] +set_location_assignment PIN_J18 -to GPI_0[32] +set_location_assignment PIN_K20 -to GPI_0[33] +set_location_assignment PIN_L19 -to GPI_0[34] +set_location_assignment PIN_L18 -to GPI_0[35] +set_location_assignment PIN_H12 -to GPI_1[0] +set_location_assignment PIN_H13 -to GPI_1[1] +set_location_assignment PIN_H14 -to GPI_1[2] +set_location_assignment PIN_G15 -to GPI_1[3] +set_location_assignment PIN_E14 -to GPI_1[4] +set_location_assignment PIN_E15 -to GPI_1[5] +set_location_assignment PIN_F15 -to GPI_1[6] +set_location_assignment PIN_G16 -to GPI_1[7] +set_location_assignment PIN_F12 -to GPI_1[8] +set_location_assignment PIN_F13 -to GPI_1[9] +set_location_assignment PIN_C14 -to GPI_1[10] +set_location_assignment PIN_D14 -to GPI_1[11] +set_location_assignment PIN_D15 -to GPI_1[12] +set_location_assignment PIN_D16 -to GPI_1[13] +set_location_assignment PIN_C17 -to GPI_1[14] +set_location_assignment PIN_C18 -to GPI_1[15] +set_location_assignment PIN_C19 -to GPI_1[16] +set_location_assignment PIN_C20 -to GPI_1[17] +set_location_assignment PIN_D19 -to GPI_1[18] +set_location_assignment PIN_D20 -to GPI_1[19] +set_location_assignment PIN_E20 -to GPI_1[20] +set_location_assignment PIN_F20 -to GPI_1[21] +set_location_assignment PIN_E19 -to GPI_1[22] +set_location_assignment PIN_E18 -to GPI_1[23] +set_location_assignment PIN_G20 -to GPI_1[24] +set_location_assignment PIN_G18 -to GPI_1[25] +set_location_assignment PIN_G17 -to GPI_1[26] +set_location_assignment PIN_H17 -to GPI_1[27] +set_location_assignment PIN_J15 -to GPI_1[28] +set_location_assignment PIN_H18 -to GPI_1[29] +set_location_assignment PIN_N22 -to GPI_1[30] +set_location_assignment PIN_N21 -to GPI_1[31] +set_location_assignment PIN_P15 -to GPI_1[32] +set_location_assignment PIN_N15 -to GPI_1[33] +set_location_assignment PIN_P17 -to GPI_1[34] +set_location_assignment PIN_P18 -to GPI_1[35] +set_location_assignment PIN_A13 -to GPO_0[0] +set_location_assignment PIN_B13 -to GPO_0[1] +set_location_assignment PIN_A14 -to GPO_0[2] +set_location_assignment PIN_B14 -to GPO_0[3] +set_location_assignment PIN_A15 -to GPO_0[4] +set_location_assignment PIN_B15 -to GPO_0[5] +set_location_assignment PIN_A16 -to GPO_0[6] +set_location_assignment PIN_B16 -to GPO_0[7] +set_location_assignment PIN_A17 -to GPO_0[8] +set_location_assignment PIN_B17 -to GPO_0[9] +set_location_assignment PIN_A18 -to GPO_0[10] +set_location_assignment PIN_B18 -to GPO_0[11] +set_location_assignment PIN_A19 -to GPO_0[12] +set_location_assignment PIN_B19 -to GPO_0[13] +set_location_assignment PIN_A20 -to GPO_0[14] +set_location_assignment PIN_B20 -to GPO_0[15] +set_location_assignment PIN_C21 -to GPO_0[16] +set_location_assignment PIN_C22 -to GPO_0[17] +set_location_assignment PIN_D21 -to GPO_0[18] +set_location_assignment PIN_D22 -to GPO_0[19] +set_location_assignment PIN_E21 -to GPO_0[20] +set_location_assignment PIN_E22 -to GPO_0[21] +set_location_assignment PIN_F21 -to GPO_0[22] +set_location_assignment PIN_F22 -to GPO_0[23] +set_location_assignment PIN_G21 -to GPO_0[24] +set_location_assignment PIN_G22 -to GPO_0[25] +set_location_assignment PIN_J21 -to GPO_0[26] +set_location_assignment PIN_J22 -to GPO_0[27] +set_location_assignment PIN_K21 -to GPO_0[28] +set_location_assignment PIN_K22 -to GPO_0[29] +set_location_assignment PIN_J19 -to GPO_0[30] +set_location_assignment PIN_J20 -to GPO_0[31] +set_location_assignment PIN_J18 -to GPO_0[32] +set_location_assignment PIN_K20 -to GPO_0[33] +set_location_assignment PIN_L19 -to GPO_0[34] +set_location_assignment PIN_L18 -to GPO_0[35] +set_location_assignment PIN_H12 -to GPO_1[0] +set_location_assignment PIN_H13 -to GPO_1[1] +set_location_assignment PIN_H14 -to GPO_1[2] +set_location_assignment PIN_G15 -to GPO_1[3] +set_location_assignment PIN_E14 -to GPO_1[4] +set_location_assignment PIN_E15 -to GPO_1[5] +set_location_assignment PIN_F15 -to GPO_1[6] +set_location_assignment PIN_G16 -to GPO_1[7] +set_location_assignment PIN_F12 -to GPO_1[8] +set_location_assignment PIN_F13 -to GPO_1[9] +set_location_assignment PIN_C14 -to GPO_1[10] +set_location_assignment PIN_D14 -to GPO_1[11] +set_location_assignment PIN_D15 -to GPO_1[12] +set_location_assignment PIN_D16 -to GPO_1[13] +set_location_assignment PIN_C17 -to GPO_1[14] +set_location_assignment PIN_C18 -to GPO_1[15] +set_location_assignment PIN_C19 -to GPO_1[16] +set_location_assignment PIN_C20 -to GPO_1[17] +set_location_assignment PIN_D19 -to GPO_1[18] +set_location_assignment PIN_D20 -to GPO_1[19] +set_location_assignment PIN_E20 -to GPO_1[20] +set_location_assignment PIN_F20 -to GPO_1[21] +set_location_assignment PIN_E19 -to GPO_1[22] +set_location_assignment PIN_E18 -to GPO_1[23] +set_location_assignment PIN_G20 -to GPO_1[24] +set_location_assignment PIN_G18 -to GPO_1[25] +set_location_assignment PIN_G17 -to GPO_1[26] +set_location_assignment PIN_H17 -to GPO_1[27] +set_location_assignment PIN_J15 -to GPO_1[28] +set_location_assignment PIN_H18 -to GPO_1[29] +set_location_assignment PIN_N22 -to GPO_1[30] +set_location_assignment PIN_N21 -to GPO_1[31] +set_location_assignment PIN_P15 -to GPO_1[32] +set_location_assignment PIN_N15 -to GPO_1[33] +set_location_assignment PIN_P17 -to GPO_1[34] +set_location_assignment PIN_P18 -to GPO_1[35] +set_location_assignment PIN_A13 -to GPIO_0[0] +set_location_assignment PIN_B13 -to GPIO_0[1] +set_location_assignment PIN_A14 -to GPIO_0[2] +set_location_assignment PIN_B14 -to GPIO_0[3] +set_location_assignment PIN_A15 -to GPIO_0[4] +set_location_assignment PIN_B15 -to GPIO_0[5] +set_location_assignment PIN_A16 -to GPIO_0[6] +set_location_assignment PIN_B16 -to GPIO_0[7] +set_location_assignment PIN_A17 -to GPIO_0[8] +set_location_assignment PIN_B17 -to GPIO_0[9] +set_location_assignment PIN_A18 -to GPIO_0[10] +set_location_assignment PIN_B18 -to GPIO_0[11] +set_location_assignment PIN_A19 -to GPIO_0[12] +set_location_assignment PIN_B19 -to GPIO_0[13] +set_location_assignment PIN_A20 -to GPIO_0[14] +set_location_assignment PIN_B20 -to GPIO_0[15] +set_location_assignment PIN_C21 -to GPIO_0[16] +set_location_assignment PIN_C22 -to GPIO_0[17] +set_location_assignment PIN_D21 -to GPIO_0[18] +set_location_assignment PIN_D22 -to GPIO_0[19] +set_location_assignment PIN_E21 -to GPIO_0[20] +set_location_assignment PIN_E22 -to GPIO_0[21] +set_location_assignment PIN_F21 -to GPIO_0[22] +set_location_assignment PIN_F22 -to GPIO_0[23] +set_location_assignment PIN_G21 -to GPIO_0[24] +set_location_assignment PIN_G22 -to GPIO_0[25] +set_location_assignment PIN_J21 -to GPIO_0[26] +set_location_assignment PIN_J22 -to GPIO_0[27] +set_location_assignment PIN_K21 -to GPIO_0[28] +set_location_assignment PIN_K22 -to GPIO_0[29] +set_location_assignment PIN_J19 -to GPIO_0[30] +set_location_assignment PIN_J20 -to GPIO_0[31] +set_location_assignment PIN_J18 -to GPIO_0[32] +set_location_assignment PIN_K20 -to GPIO_0[33] +set_location_assignment PIN_L19 -to GPIO_0[34] +set_location_assignment PIN_L18 -to GPIO_0[35] +set_location_assignment PIN_H12 -to GPIO_1[0] +set_location_assignment PIN_H13 -to GPIO_1[1] +set_location_assignment PIN_H14 -to GPIO_1[2] +set_location_assignment PIN_G15 -to GPIO_1[3] +set_location_assignment PIN_E14 -to GPIO_1[4] +set_location_assignment PIN_E15 -to GPIO_1[5] +set_location_assignment PIN_F15 -to GPIO_1[6] +set_location_assignment PIN_G16 -to GPIO_1[7] +set_location_assignment PIN_F12 -to GPIO_1[8] +set_location_assignment PIN_F13 -to GPIO_1[9] +set_location_assignment PIN_C14 -to GPIO_1[10] +set_location_assignment PIN_D14 -to GPIO_1[11] +set_location_assignment PIN_D15 -to GPIO_1[12] +set_location_assignment PIN_D16 -to GPIO_1[13] +set_location_assignment PIN_C17 -to GPIO_1[14] +set_location_assignment PIN_C18 -to GPIO_1[15] +set_location_assignment PIN_C19 -to GPIO_1[16] +set_location_assignment PIN_C20 -to GPIO_1[17] +set_location_assignment PIN_D19 -to GPIO_1[18] +set_location_assignment PIN_D20 -to GPIO_1[19] +set_location_assignment PIN_E20 -to GPIO_1[20] +set_location_assignment PIN_F20 -to GPIO_1[21] +set_location_assignment PIN_E19 -to GPIO_1[22] +set_location_assignment PIN_E18 -to GPIO_1[23] +set_location_assignment PIN_G20 -to GPIO_1[24] +set_location_assignment PIN_G18 -to GPIO_1[25] +set_location_assignment PIN_G17 -to GPIO_1[26] +set_location_assignment PIN_H17 -to GPIO_1[27] +set_location_assignment PIN_J15 -to GPIO_1[28] +set_location_assignment PIN_H18 -to GPIO_1[29] +set_location_assignment PIN_N22 -to GPIO_1[30] +set_location_assignment PIN_N21 -to GPIO_1[31] +set_location_assignment PIN_P15 -to GPIO_1[32] +set_location_assignment PIN_N15 -to GPIO_1[33] +set_location_assignment PIN_P17 -to GPIO_1[34] +set_location_assignment PIN_P18 -to GPIO_1[35]
\ No newline at end of file diff --git a/scripts/quartus_project_flow.tcl b/scripts/quartus_project_flow.tcl new file mode 100644 index 0000000..2894685 --- /dev/null +++ b/scripts/quartus_project_flow.tcl @@ -0,0 +1,84 @@ +## ---------------------------------------------------------------------------- +## Script : quartus_project_flow.tcl +## ---------------------------------------------------------------------------- +## Author : Johann Faerber, F. Beckmann +## Company : University of Applied Sciences Augsburg +## ---------------------------------------------------------------------------- +## Description: executes process steps in a quartus project +## depending on the parameter process +## expects project name as command line parameter +## e.g. +## quartus_sh -t quartus_project_flow.tcl -projectname de1_mux2to1 +## -process compile +## ---------------------------------------------------------------------------- +## Revisions : see end of file +## ---------------------------------------------------------------------------- + +package require cmdline +# Load Quartus II Tcl Project package +package require ::quartus::project + +# ---------------------------------------------------------------------------- +# Declare command line parameters +# ---------------------------------------------------------------------------- +set parameters { + {projectname.arg "" "Project Name"} + {process.arg "" "Process Step"} +} +array set arg [::cmdline::getoptions argv $parameters] + +# ---------------------------------------------------------------------------- +# Verify required paramters +# ---------------------------------------------------------------------------- +set requiredParameters {projectname process} +foreach parameter $requiredParameters { + if {$arg($parameter) == ""} { + puts stderr "Missing required parameter: -$parameter" + exit 1 + } +} + +# ---------------------------------------------------------------------------- +# Check, if project exists +# ---------------------------------------------------------------------------- +if { ![project_exists $arg(projectname)] } { + post_message -type error "Project $arg(projectname) does not exist" + exit +} + # ---------------------------------------------------------------------------- + # Open project + # ---------------------------------------------------------------------------- + project_open $arg(projectname) + + # ---------------------------------------------------------------------------- + # Run specified design flow by parameter -process + # ---------------------------------------------------------------------------- + load_package flow + + if { $arg(process) == "compile" } { + execute_flow -compile + } elseif { $arg(process) == "analysis_and_elaboration" } { + execute_flow -analysis_and_elaboration + } else { + post_message -type error "Process step $arg(process) not allowed !" + exit + } + + # ---------------------------------------------------------------------------- + # Write Reports + # ---------------------------------------------------------------------------- + load_package report + load_report $arg(projectname) + write_report_panel -file flowsummary.log "Flow Summary" + + # ---------------------------------------------------------------------------- + # Close project + # ---------------------------------------------------------------------------- + project_close + + +## ---------------------------------------------------------------------------- +## Revisions: +## ---------- +## $Id:$ +## ---------------------------------------------------------------------------- diff --git a/scripts/quartus_project_settings.tcl b/scripts/quartus_project_settings.tcl new file mode 100644 index 0000000..94aff07 --- /dev/null +++ b/scripts/quartus_project_settings.tcl @@ -0,0 +1,86 @@ +## ---------------------------------------------------------------------------- +## Script : quartus_project_settings.tcl +## ---------------------------------------------------------------------------- +## Author : Johann Faerber, F. Beckmann +## Company : University of Applied Sciences Augsburg +## ---------------------------------------------------------------------------- +## Description: create a quartus project with default settings for device, +## unused pins, ... +## expects project name as command line parameter +## e.g. +## quartus_sh -t quartus_project_settings.tcl -projectname de1_mux2to1 +## -family +## ---------------------------------------------------------------------------- +## Revisions : see end of file +## ---------------------------------------------------------------------------- + +package require cmdline +# Load Quartus II Tcl Project package +package require ::quartus::project + +set parameters { + {projectname.arg "" "Project Name"} + {family.arg "" "FPGA Family"} + {device.arg "" "FPGA Device"} +} +array set arg [::cmdline::getoptions argv $parameters] + +# Verify required paramters +set requiredParameters {projectname family device} +foreach parameter $requiredParameters { + if {$arg($parameter) == ""} { + puts stderr "Missing required parameter: -$parameter" + exit 1 + } +} + + + + # Create project + project_new $arg(projectname) -overwrite + + # ---------------------------------------------------------------------------- + # Assign family, device, and top-level file + set_global_assignment -name FAMILY $arg(family) + set_global_assignment -name DEVICE $arg(device) + + # ---------------------------------------------------------------------------- + # Default settings + set_global_assignment -name USE_CONFIGURATION_DEVICE ON + set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" + set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 + + # ---------------------------------------------------------------------------- + # Design files + #set_global_assignment -name VHDL_FILE ../src/e_cntdnmodm.vhd + #set_global_assignment -name VHDL_FILE ../src/a_cntdnmodm_rtl.vhd + source quartus_vhdl_source_files.tcl + + # ---------------------------------------------------------------------------- + # Pin Assignments + # ---------------------------------------------------------------------------- + # set_location_assignment PIN_L1 -to CLOCK_50 + source $arg(projectname)_pins.tcl + + # ----------------------- + # Run the synthesis + # ----------------------- + load_package flow + + execute_flow -compile + + # Write Reports + load_package report + load_report $arg(projectname) + write_report_panel -file flowsummary.log "Flow Summary" + + # ---------------------------------------------------------------------------- + # Close project + project_close + + +## ---------------------------------------------------------------------------- +## Revisions: +## ---------- +## $Id:$ +## ---------------------------------------------------------------------------- |