41 lines
1.4 KiB
Tcl
41 lines
1.4 KiB
Tcl
load_package flow
|
|
package require cmdline
|
|
|
|
set options { \
|
|
{ "project.arg" "" "Project name" } \
|
|
{ "family.arg" "" "Device family name" } \
|
|
{ "device.arg" "" "Device name" } \
|
|
{ "top.arg" "" "Top level module" } \
|
|
{ "sdc.arg" "" "Timing Design Constraints file" } \
|
|
{ "src.arg" "" "Verilog source file" } \
|
|
{ "inc.arg" "." "Include path" } \
|
|
}
|
|
|
|
array set opts [::cmdline::getoptions quartus(args) $options]
|
|
|
|
project_new $opts(project) -overwrite
|
|
|
|
set_global_assignment -name FAMILY $opts(family)
|
|
set_global_assignment -name DEVICE $opts(device)
|
|
set_global_assignment -name TOP_LEVEL_ENTITY $opts(top)
|
|
set_global_assignment -name VERILOG_FILE $opts(src)
|
|
set_global_assignment -name SEARCH_PATH $opts(inc)
|
|
set_global_assignment -name SDC_FILE $opts(sdc)
|
|
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY bin
|
|
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
|
|
set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2009
|
|
|
|
proc make_all_pins_virtual {} {
|
|
execute_module -tool map
|
|
set name_ids [get_names -filter * -node_type pin]
|
|
foreach_in_collection name_id $name_ids {
|
|
set pin_name [get_name_info -info full_path $name_id]
|
|
post_message "Making VIRTUAL_PIN assignment to $pin_name"
|
|
set_instance_assignment -to $pin_name -name VIRTUAL_PIN ON
|
|
}
|
|
export_assignments
|
|
}
|
|
|
|
make_all_pins_virtual
|
|
|
|
project_close |