Closed feyzaozdemir closed 3 months ago
You requested the GUI. Did the Vivado GUI open? If you build it in the GUI then the GUI will stay open until you close it and you won't really get any information in the terminal. Perhaps the GUI is waiting for you. If the GUI isn't opening, you could try building it without the GUI=1 option.
Build time depends on your computer, if it has to build the IP or not, and which USRP target. I would guess an hour to build that particular target if you already built the IP.
Yes, Vivado GUI opened but nothing happened at GUI, just opening page. Do I just need to close the GUI? Is there any difference building with GUI or opening GUI after building?
Make sure the Tcl console was open in the GUI and see if there was any output. You can also check the build
and build-X410_X1_100
directories to see if any files were produced. If not, then I would guess this problem is related to running under Cygwin. See if it works without the GUI=1 option. You should see lots of output to the terminal if it's working.
Building in the GUI and in the terminal should be the same. It's just running Vivado either way. People use the GUI option if they want to use the GUI at the end of the build while the design is still in memory. But you can basically do the same thing by loading the final checkpoint in Vivado after the build is done in the terminal.
After canceling the process, I opened cygwin again and I entered the following into the terminal: source setupenv.sh make cleanall make x410_X1_100
There was no problem with IP generation. And then this happened:
BUILDER: Releasing IP location: /cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400/build-ip/xczu28drffvg1517-1e/dds_sin_cos_lut_only IP build for X410_IP DONE . . . make[1]: Leaving directory '/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400' mkdir -p ./build tools/parse_versions_for_dts.py \ --input regmap/x410/versioning_regs_regmap_utils.vh \ --output dts/x410-version-info.dtsi \ --components fpga,cpld_ifc,db_gpio_ifc,rf_core_100m,rf_core_400m cc -o build/usrp_x410_fpga_X1_100.dts -C -E -I dts -nostdinc -undef -x assembler-with-cpp -DDTS \ $(python3 tools/get_dts_input.py --target build/usrp_x410_fpga_X1_100.dts) make -f Makefile.x4xx.inc bin NAME=X410_X1_100 ARCH=zynquplusRFSOC PART_ID=xczu28dr/ffvg1517/-1/e BUILD_SEED=0 QSFP0_0=2 RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=41 DRAM_W=64 X410=1 TOP_MODULE=x4xx EXTRA_DEFS=" BUILD_SEED=0 QSFP0_0=2 RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=41 DRAM_W=64 X410=1" DEFAULT_RFNOC_IMAGE_CORE_FILE=x410_200_rfnoc_image_core.v DEFAULT_EDGE_FILE=/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400/x410_200_static_router.hex INCR_BUILD=0 make[1]: Entering directory '/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400' BUILDER: Checking tools...
======================================================== Warnings: 0 Critical Warnings: 0 Errors: 0
make[1]: [Makefile.x4xx.inc:232: bin] Error 1 make[1]: Leaving directory '/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400' make: [Makefile:169: X410_X1_100] Error 2
I checked; make[1]: *** [Makefile.x4xx.inc:232: bin] Error 1, line 228-232 ->
bin: .prereqs @ echo "Printing MB_XDC:: $(MB_XDC)" @ echo "Printing EXTRA_DEFS:: $(EXTRA_DEFS)" $ (call BUILD_VIVADO_DESIGN,$(abspath ./build_x4xx.tcl),$(TOP_MODULE),$(ARCH),$(PART_ID))
make: *** [Makefile:169: X410_X1_100] Error 2, line 168-170 -> X410_X1_100: X410_IP $(BUILD_OUTPUT_DIR)/usrp_x410_fpga_X1_100.dts $ (call vivado_build,X410,$(DEFS) X410=1,$(X410_200_DEFAULTS)) $(call post_build,X410,X1_100)
Can you open build-X410_X1_100/build.log
and see if there's an error message or warning in there?
Which UHD version branch/commit are you building from?
I'm building from master branch.
here is the log file, except for comment lines
no such variable (read trace on "::env(VIV_SAVE)") invoked from within "variable g_project_save $::env(VIV_SAVE)" (in namespace eval "::vivado_utils" script line 12) invoked from within "namespace eval ::vivado_utils {
namespace export \
initialize_project \
synthesize_design \
check_de..."
(file "E:/v21_projects/uhd-master/fpga/usrp3/tools/scripts/viv_utils.tcl" line 8)
while executing
"source $::env(VIV_TOOLS_DIR)/scripts/viv_utils.tcl" (file "E:/v21_projects/uhd-master/fpga/usrp3/top/x400/build_x4xx.tcl" line 7) INFO: [Common 17-206] Exiting Vivado at Fri Mar 29 08:18:06 2024...
Try building off of the latest release branch (UHD-4.6
). I don't recommend building off of master unless you have a specific reason. I'll have to reproduce this on Cygwin to see what's going on. It looks like some variables aren't being defined.
I started building, looks like no problems so far. Let's not close the issue until monday so If there is a problem, I will inform you.
Build done without error. I was expecting .xpr file and seeing all of project files. There are only .rpt and .dcp files. How can I get the whole project? I saw uhd/fpga/usrp3/lib directory has all files but i need the whole system with block design. I want to examine and understand the entire project and make my own additions.
USRP builds use Vivado's non-project mode. For a quick summary see the FAQ here: https://kb.ettus.com/RFNoC_Frequently_Asked_Questions#How_do_I_create_a_Vivado_project_for_my_FPGA_build.3F
I found the cause of the original issue on master and created a pull request with a fix. There was a variable (VIV_SAVE) set to an empty string, which works fine under Linux but for some reason it doesn't work under Cygwin/Windows. Turns out it was empty because we were pulling the value from the wrong variable.
Thank you for help.
Issue Description
I followed https://files.ettus.com/manual/md_usrp3_build_instructions.html . More than 7 hours have passed after running make X410_X1_100 GUI=1 command in cygwin. I know some builds take a long time but Is it taking this long? Is this normal? What must I do?
Setup Details
My OS is Windows 10, I installed Vivado 2021.1 and added patch AR76780 as in manual. I installed Cygwin and packages. Then I followed the build instructions from cygwin.
Expected Behavior
Reaching the FPGA project in usrpx410 at the end of the build. If the build duration is normal, can I also get information about the accuracy of the method? If I cant reach the project after building, then how can i get the project?
Actual Behavior
BUILDER: Releasing IP location: /cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400/build-ip/xczu28drffvg IP build for X410_IP DONE . . . make[1]: Leaving directory '/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400' mkdir -p ./build tools/parse_versions_for_dts.py \ --input regmap/x410/versioning_regs_regmap_utils.vh \ --output dts/x410-version-info.dtsi \ --components fpga,cpld_ifc,db_gpio_ifc,rf_core_100m,rf_core_400m cc -o build/usrp_x410_fpga_X1_100.dts -C -E -I dts -nostdinc -undef -x assembler-with-cpp -DDTS \ $(python3 tools/get_dts_input.py --target build/usrp_x410_fpga_X1_100.dts) make -f Makefile.x4xx.inc bin NAME=X410_X1_100 ARCH=zynquplusRFSOC PART_ID=xczu28dr/ffvg1517/-1/e BUILD_SEED RF_BW=100 RF_CORE_100M=1 DRAM_BANKS=1 DRAM_CH=4*1 DRAM_W=64 X410=1" DEFAULT_RFNOC_IMAGE_CORE_FILE=x41 make[1]: Entering directory '/cygdrive/e/v21_projects/uhd-master/fpga/usrp3/top/x400' BUILDER: Checking tools...