aboutsummaryrefslogtreecommitdiff
path: root/scripts/quartus_project_settings.tcl
blob: 94aff075c638a6195847528bab7bd50de361d70d (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
85
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:$
## ----------------------------------------------------------------------------