Skip to content
Snippets Groups Projects
Commit 6f362fb5 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Define toolset unb2 to use Quartus v15.0. Upgrade all Arria10 IP. Use...

Define toolset unb2 to use Quartus v15.0. Upgrade all Arria10 IP. Use check_ipx_content in set_quartus. Created /15.0 with the simulation models.
parent 19eddd0c
Branches
No related tags found
No related merge requests found
...@@ -14,6 +14,7 @@ Contents: ...@@ -14,6 +14,7 @@ Contents:
i) How to start Quartus for RadioHDL i) How to start Quartus for RadioHDL
j) How to start Modelsim for UNB j) How to start Modelsim for UNB
k) How to start Quartus for UNB k) How to start Quartus for UNB
l) UniBoard2 device family
3) HDL environment configuration files 3) HDL environment configuration files
a) Tools and libraries a) Tools and libraries
...@@ -130,30 +131,45 @@ Some environment variables need to be set in the .bashrc, because they are not k ...@@ -130,30 +131,45 @@ Some environment variables need to be set in the .bashrc, because they are not k
- The $SVN environment variable with the path to the SVN checkout directory, because it is user specific. - The $SVN environment variable with the path to the SVN checkout directory, because it is user specific.
- The $LM_LICENSE_FILE environment variable, because it is site specific. - The $LM_LICENSE_FILE environment variable, because it is site specific.
- The $PATH to the python installation directory, because it is machine specific and may also be used for other projects. - The $PATH to the python installation directory, because it is machine specific and may also be used for other projects.
The toolset defines which comination of Modelsim and Quartus tools is used. Currently there are:
- toolset 'unb1' --> use to compile for StratixIV and UniBoard1
- toolset 'unb2' --> use to compile for Arria10 and UniBoard2
The tool versions that belong to these toolsets are defined in:
${RADIOHDL}/tools/quartus/set_quartus
${RADIOHDL}/tools/modelsim/set_modelsim
d) Compiling the Altera libraries for simulation with Modelsim d) Compiling the Altera libraries for simulation with Modelsim
The Altera verilog and vhdl libraries for the required FPGA device families can be compile using: The Altera verilog and vhdl libraries for the required FPGA device families can be compiled using:
> ${RADIOHDL}/tools/quartus/run_altera_simlib_comp <tool target> <compilation output directory> <FPGA device family> > ${RADIOHDL}/tools/quartus/run_altera_simlib_comp <tool target> <compilation output directory> <FPGA device family>
For Modelsim versions newer than about version 10 this run_altera_simlib_comp script must be used and not the tools/Launch simulation library compiler in the Quartus GUI, because For Modelsim versions newer than about version 10 this run_altera_simlib_comp script must be used and not the tools/Launch simulation library compiler in the Quartus GUI, because
the libraries have to be compiled with the 'vlib -type directory' option to be able to use 'mk all'. the libraries have to be compiled with the 'vlib -type directory' option to be able to use 'mk all'.
The run_altera_simlib_comp uses set_modelsim and set_quartus to make the tool settings for Modelsim and Quartus. For more info also see the description in run_altera_simlib_comp.
The run_altera_simlib_comp uses set_modelsim and set_quartus to make the tool settings for Modelsim and Quartus.
For example: For example:
> cd ${RADIOHDL}/tools/quartus/
# For toolset 'unb1' with only stratixiv the libraries can be compiled with the GUI (because 'unb1' uses Modelsim 6.6.c < 10) or one may use: # For toolset 'unb1' with only stratixiv the libraries can be compiled with the GUI (because 'unb1' uses Modelsim 6.6.c < 10) or one may use:
> run_altera_simlib_comp unb1 11.1 stratixiv > run_altera_simlib_comp unb1 11.1 stratixiv
# For toolset 'unb2' with arria10 and also support for stratixiv # For toolset 'unb2' with arria10 and also support for stratixiv
> run_altera_simlib_comp unb2 14.1 stratixiv > run_altera_simlib_comp unb2 15.0 stratixiv
> run_altera_simlib_comp unb2 14.1 arria10 > run_altera_simlib_comp unb2 15.0 arria10
Note that the second argument of the Quartus version is used as OUTPUT_DIR and must match the toolset. Note that the second argument of the Quartus version is used as OUTPUT_DIR and must match the toolset.
Then use 'sudo' to move the directory to the protected central project directory that is set by $MODEL_TECH_ALTERA_LIB.
> sudo mv 15.0 /home/software/modelsim_altera_libs
e) Quartus user_components.ipx e) Quartus user_components.ipx
...@@ -161,15 +177,18 @@ The user_components.ipx tells QSYS and SOPC where to search for MM components. T ...@@ -161,15 +177,18 @@ The user_components.ipx tells QSYS and SOPC where to search for MM components. T
https://svn.astron.nl/UniBoard_FP7/UniBoard/trunk/Firmware/synth/quartus/user_components.ipx https://svn.astron.nl/UniBoard_FP7/UniBoard/trunk/Firmware/synth/quartus/user_components.ipx
This user_components.ipx needs to be copied to the Quartus installation directory, given by $QUARTUS_DIR that is defined in quartus_version.sh, at:
/ip/altera/user_components.ipx
In a Unix system this goes to the personal folder at ~ (= $HOME): In a Unix system this goes to the personal folder at ~ (= $HOME):
~/.altera.quartus/ip/11.1/ip_search_path/user_components.ipx ~/.altera.quartus/ip/15.0/ip_search_path/user_components.ipx
Maybe coping the user_components.ipx from SVN location to the personal ~ location avoids having to copy it into the installation location. It appears that copying the user_components.ipx from SVN location to the personal ~ location avoids having to copy it into the installation location. The
version part of the directory name needs to match the Quartus version (eg. 11.1sp2, 14.1, 15.0). The ${RADIOHDL}/tools/quartus/check_ipx_content bash script
checks that the paths in the ipx file are oke. The check_ipx_content is called in the set_quartus bash script that is called in run_quartus.
Alternatively the user_components.ipx can be copied to the Quartus installation directory, given by $QUARTUS_DIR that is defined in quartus_version.sh, at:
/ip/altera/user_components.ipx
f) Generate IP f) Generate IP
...@@ -190,6 +209,42 @@ The IP for all libraries of a certain FPGA technology can also be generated auto ...@@ -190,6 +209,42 @@ The IP for all libraries of a certain FPGA technology can also be generated auto
# ip_arria10 # ip_arria10
> cd $RADIOHDL/libraries/technology/ip_arria10 > cd $RADIOHDL/libraries/technology/ip_arria10
> ./generate-all-ip.sh > ./generate-all-ip.sh
On 20 May 2015 Eric manually upgraded all current Arria10 IP to Quartus 15.0 and used the Qsys GUI menu view->device family to set the FPGA that is on UniBoard2 v0:
kooistra@dop233 ip_arria10 $ svn status -q
M ddio/ip_arria10_ddio_in_1.qsys
M ddio/ip_arria10_ddio_out_1.qsys
M ddr4_4g_1600/ip_arria10_ddr4_4g_1600.qsys
M ddr4_8g_2400/ip_arria10_ddr4_8g_2400.qsys
M fifo/ip_arria10_fifo_dc.qsys
M fifo/ip_arria10_fifo_dc_mixed_widths.qsys
M fifo/ip_arria10_fifo_sc.qsys
M flash/asmi_parallel/ip_arria10_asmi_parallel.qsys
M flash/remote_update/ip_arria10_remote_update.qsys
M mac_10g/ip_arria10_mac_10g.qsys
M phy_10gbase_r/ip_arria10_phy_10gbase_r.qsys
M phy_10gbase_r_24/ip_arria10_phy_10gbase_r_24.qsys
M pll_clk125/ip_arria10_pll_clk125.qsys
M pll_clk200/ip_arria10_pll_clk200.qsys
M pll_clk25/ip_arria10_pll_clk25.qsys
M pll_xgmii_mac_clocks/ip_arria10_pll_xgmii_mac_clocks.qsys
M pll_xgmii_mac_clocks/pll_xgmii_mac_clocks.qsys
M ram/ip_arria10_ram_cr_cw.qsys
M ram/ip_arria10_ram_crw_crw.qsys
M ram/ip_arria10_ram_crwk_crw.qsys
M ram/ip_arria10_ram_r_w.qsys
M transceiver_phy_1/transceiver_phy_1.qsys
M transceiver_phy_48/transceiver_phy_48.qsys
M transceiver_pll/transceiver_pll.qsys
M transceiver_pll_10g/ip_arria10_transceiver_pll_10g.qsys
M transceiver_reset_controller_1/ip_arria10_transceiver_reset_controller_1.qsys
M transceiver_reset_controller_1/transceiver_reset_controller_1.qsys
M transceiver_reset_controller_24/ip_arria10_transceiver_reset_controller_24.qsys
M transceiver_reset_controller_48/ip_arria10_transceiver_reset_controller_48.qsys
M transceiver_reset_controller_48/transceiver_reset_controller_48.qsys
M tse_sgmii_gx/ip_arria10_tse_sgmii_gx.qsys
M tse_sgmii_lvds/ip_arria10_tse_sgmii_lvds.qsys
g) Tool start scripts g) Tool start scripts
...@@ -300,6 +355,18 @@ GUI: ...@@ -300,6 +355,18 @@ GUI:
For command line scripts use the unb_* scripts. See ASTRON_RP_1354_unb_minimal.pdf for more description. For command line scripts use the unb_* scripts. See ASTRON_RP_1354_unb_minimal.pdf for more description.
l) UniBoard2 device family
The device family of the Arria10 on UniBoard2 v0 is 10AX115U4F45I3SGES as can be seen at the photo of the FPGA:
$RADIOHDL/boards/uniboard2/libraries/unb2_board/quartus/unb2_board_v0_device_family.JPG
The device family is used in:
- $RADIOHDL/boards/uniboard2/libraries/unb2_board/quartus/unb2_board.qsf
- QSYS IP component files
- QSYS system design file
3) HDL environment configuration files 3) HDL environment configuration files
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment