diff --git a/tools/hdltool_readme.txt b/tools/hdltool_readme.txt index 8222e3ce1816b01a3e1692e7492f1a35f2f8a4a7..f22154dd5e980056a335bdcdd51d83534390c8db 100644 --- a/tools/hdltool_readme.txt +++ b/tools/hdltool_readme.txt @@ -14,6 +14,7 @@ Contents: i) How to start Quartus for RadioHDL j) How to start Modelsim for UNB k) How to start Quartus for UNB + l) UniBoard2 device family 3) HDL environment configuration files a) Tools and libraries @@ -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 $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 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 -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> 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 run_altera_simlib_comp uses set_modelsim and set_quartus to make the tool settings for Modelsim and Quartus. +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. 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: > run_altera_simlib_comp unb1 11.1 stratixiv # For toolset 'unb2' with arria10 and also support for stratixiv - > run_altera_simlib_comp unb2 14.1 stratixiv - > run_altera_simlib_comp unb2 14.1 arria10 + > run_altera_simlib_comp unb2 15.0 stratixiv + > 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. +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 @@ -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 -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): - ~/.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 @@ -190,6 +209,42 @@ The IP for all libraries of a certain FPGA technology can also be generated auto # ip_arria10 > cd $RADIOHDL/libraries/technology/ip_arria10 > ./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 @@ -300,6 +355,18 @@ GUI: 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