Description
I want to run the Achronix Tool Suite, as well as Mentor Questa Sim, in the Cygwin environment. How do I setup the Cygwin environment to enable proper functionality?
Answer
Cygwin Setup
If you have not already installed Cygwin, the installation instructions can be found on the Cygwin website at https://www.cygwin.com/install.html. The following instructions guide you through setting up your Cygwin environment for the Achronix Tool Suite:
-
Ensure that the following packages are installed in Cygwin:
make
- necessary for running build scriptsperl
- necessary for the Questasim makefile simulationtcl
- necessary for the scripts that generate the simulation and build filesunzip
- necessary to unzip the packaged reference and demo designs
These packages can be included during your initial installation of Cygwin. Alternatively, the packages can be added to an existing Cygwin environment. Refer to the Cygwin website for details.
- If not already installed, install ACE and Synplify Pro into your environment. You can use the Windows portion of the ACE Installation and Licensing Guide (UG002), to install Synplify Pro and ACE tools and use their respective licenses. You may use software that is installed in your Windows environment, external from Cygwin. Optionally, Mentor Questa Sim can be installed if simulation is desired.
-
Include the correct paths for Synplify Pro, ACE, and Questa Sim in your environment variable, PATH. An example follows:
Correct Path Example
PATH=$SYN_INSTALL_DIR/bin:$ACE_INSTALL_DIR:$QUESTA_ROOT/win64:$PATH
This assignment can be included in your
.bash_profile
or.bashrc
file to set the correct paths.$SYN_INSTALL_DIR
indicates the path to the location in which Synplify Pro was installed.$ACE_INSTALL_DIR
indicates the path to the location in which ACE was installed.$QUESTA_ROOT
indicates the path to the location in which Questa Sim was installed. Additionally, on startup of Cygwin, the environment variables from the Windows environment are imported into Cygwin and then variables with the same name as those defined in the.bashrc
or.bash_profile
from the Cygwin environment are updated accordingly.Note: Cygwin uses
/cygdrive/<drive name>
to reference the drives on a system. For example, a path toC:/
in Windows becomes/cygdrive/c/
in Cygwin.
Now you can use Synplify Pro, ACE, and Questa Sim to build and simulate your designs within Cygwin. Synopsys VCS is not supported in Cygwin.
Note: When running a Makefile, add the option VERBOSE=1
to view the ACE console outputs.
Similar to Unix systems, the which
command can also be used in Cygwin to find the locations for the executables of the software tools:
Finding Executables for ACE, SynplifyPro, and Questa
$ which ace
/cygdrive/c/ACE/ACE_9.0/Achronix/ace
$ which synplify_pro
/cygdrive/c/Synopsys/fpga_S-2021.09X-2/bin/synplify_pro
$ which vsim
/cygdrive/c/mentor/questasim/10.7c/win64/vsim
Makefile Modifications
If using a demo or reference design, the following changes must be implemented in order for the Makefiles in the build and questa directories to run properly. Look for the commands that call the ace
executable. In the call, the quotation marks for the argument after the -script_args
flag must be escaped with a backward slash (\).
Build Makefile
Routing the Netlist
Default ACE Executable Call for Routing
ace -batch -script_file ../../../scripts/create_ace_project.tcl -script_args "$(TOP_LEVEL_MODULE) $(FILELIST_NAME) $(REV_DIR) $(IMPL_DIR) $(DEVICE_ACE) $(SPEED_GRADE) $(MULTIPROCESS) $(PARALLEL_JOBS) $(GENERATE_IORING)" ;\
Should be edited to become:
ACE Executable Call for Routing on Cygwin
ace -batch -script_file ../../../scripts/create_ace_project.tcl -script_args \"$(TOP_LEVEL_MODULE) $(FILELIST_NAME) $(REV_DIR) $(IMPL_DIR) $(DEVICE_ACE) $(SPEED_GRADE) $(MULTIPROCESS) $(PARALLEL_JOBS) $(GENERATE_IORING)\" ;\
Generating the IORing Only
Default ACE Executable Call for IORing
ace -batch -script_file ../../../scripts/create_ace_project.tcl -script_args "$(TOP_LEVEL_MODULE) $(FILELIST_NAME) $(REV_DIR) $(IMPL_DIR) $(DEVICE_ACE) $(SPEED_GRADE) $(MULTIPROCESS) $(PARALLEL_JOBS) only" ;\
Should be edited to become:
ACE Executable Call for IORing Generation on Cygwin
ace -batch -script_file ../../../scripts/create_ace_project.tcl -script_args \"$(TOP_LEVEL_MODULE) $(FILELIST_NAME) $(REV_DIR) $(IMPL_DIR) $(DEVICE_ACE) $(SPEED_GRADE) $(MULTIPROCESS) $(PARALLEL_JOBS) only\" ;\
Questa Simulation Makefile
Default ACE Executable call for Questasim
ace -batch -script_file $(TCL_TEST_SCRIPT) -script_args "-reg_lib_sim_generate 1";
Should be edited to become:
ACE Executable Call for Questasim on Cygwin
ace -batch -script_file $(TCL_TEST_SCRIPT) -script_args \"-reg_lib_sim_generate 1\";