aboutsummaryrefslogtreecommitdiff
path: root/scripts/create_quartus_project_settings.tcl
blob: ab55593b1d7ef3a8c947daa1e5f10ce2c73fbc64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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:$
## ----------------------------------------------------------------------------