sylefeb / Silice

Silice is an easy-to-learn, powerful hardware description language, that simplifies designing hardware algorithms with parallelism and pipelines.
Other
1.3k stars 78 forks source link

build.v: No such file or directory? #212

Closed ShervinShokouhi closed 2 years ago

ShervinShokouhi commented 2 years ago

I followed "Getting started with Silice" and "Getting started under Windows" for WIN 10 64bit, Any help will be appreciated

Capture .

rob-ng15 commented 2 years ago

Do you have Icarus installed?

On Mon, 14 Mar 2022 at 07:02, ShervinShokouhi @.***> wrote:

I followed "Getting started with Silice" and "Getting started under Windows" for WIN 10 64bit, Any help will be appreciated

[image: Capture] https://user-images.githubusercontent.com/10044354/158120996-024bb997-5fbf-4b2b-91d5-bd2bfeb501bb.PNG .

— Reply to this email directly, view it on GitHub https://github.com/sylefeb/Silice/issues/212, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN4SYT52QE7GNVFNNUIUW23U73P73ANCNFSM5QUTNTEA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

rob-ng15 commented 2 years ago

Apologies, line 34 of the icarus.sh file is calling silice. It looks like it isn't finding silice in your path. Check that the directory where the silice executable resides is in your path?

On Mon, 14 Mar 2022 at 07:07, Rob Shelton @.***> wrote:

Do you have Icarus installed?

On Mon, 14 Mar 2022 at 07:02, ShervinShokouhi @.***> wrote:

I followed "Getting started with Silice" and "Getting started under Windows" for WIN 10 64bit, Any help will be appreciated

[image: Capture] https://user-images.githubusercontent.com/10044354/158120996-024bb997-5fbf-4b2b-91d5-bd2bfeb501bb.PNG .

— Reply to this email directly, view it on GitHub https://github.com/sylefeb/Silice/issues/212, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN4SYT52QE7GNVFNNUIUW23U73P73ANCNFSM5QUTNTEA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

sylefeb commented 2 years ago

Thanks for trying Silice @ShervinShokouhi! @rob-ng15 is correct, either the path is not setup or the executable is not there.

Under mingw64 the get_started_mingw64.sh script is supposed to have set up the path in your .bashrc:

https://github.com/sylefeb/Silice/blob/31fe0c204d7d7b3f5a5190d4e3944211fc68da6b/get_started_mingw64.sh#L26

You can do that manually in the mingw64 shell by entering export PATH=$PATH:'$DIR/bin':'$DIR/tools/fpga-binutils/mingw64/bin, replacing $DIR by your Silice root directory (the one where you cloned the repo).

After making sure the silice.exe is in $DIR/bin, could you also check the end of your ~/.bashrc file to see whether the line was added?

ShervinShokouhi commented 2 years ago

"After making sure the silice.exe is in $DIR/bin?" Currently there isn't any "silice.exe" in "bin" directory, Is it created during "get_started_mingw64.sh" or some commands must be run manually? And also how to be sure all steps during "get_started_mingw64.sh" are executed correctly?

sylefeb commented 2 years ago

Yes it should have been created. The get_started_mingw64.sh script calls the compile_silice_mingw64.sh script. Try to launch ./compile_silice_mingw64.sh directly and send the log (console output) here if that fails? Be sure to be in a MinGW64 shell, in the same directory as the script. The prompt should look like that:
image

ShervinShokouhi commented 2 years ago

inflating: jdk-14.0.1/release mkdir: cannot create directory ‘build-silice’: File exists CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:2 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Building without demo. To enable demo build use: -DWITH_DEMO=True CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:31 (CMAKE_POLICY): The OLD behavior for policy CMP0054 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:32 (CMAKE_POLICY): The OLD behavior for policy CMP0045 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:33 (CMAKE_POLICY): The OLD behavior for policy CMP0042 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:38 (CMAKE_POLICY): The OLD behavior for policy CMP0059 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at antlr/antlr4-cpp-runtime-4.7.2-source/CMakeLists.txt:39 (CMAKE_POLICY): The OLD behavior for policy CMP0054 will be removed from a future version of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

-- Output libraries to D:/Silice/Silice/lib CMake Deprecation Warning at src/libs/lua/CMakeLists.txt:1 (CMAKE_MINIMUM_REQUIRED): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at src/libs/luabind-deboostified/CMakeLists.txt:6 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Configuring done CMake Error at CMakeLists.txt:70 (ADD_EXECUTABLE): Cannot find source file:

src/libs/LibSL-small/src/LibSL/System/System.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc

CMake Error at CMakeLists.txt:70 (ADD_EXECUTABLE): No SOURCES given to target: silice

CMake Generate step failed. Build files cannot be regenerated correctly. mingw32-make: *** No rule to make target 'install'. Stop.


Please start a new shell before using Silice (PATH has been changed)

sylefeb commented 2 years ago

Thanks, I think I see the problem: the submodule were not checked out. Try this (in a shell, at Silice root):

git submodule update --init --recursive

It will get all submodules, after which you can try the compilation again. I'll recheck the documentation for this point.

Edit: it is surprising though because the compilation script does attempt to initialize and update the submodules ... Is the directory src/libs/LibSL-small empty?

ShervinShokouhi commented 2 years ago

Thanks @sylefeb: Yes "src/libs/LibSL-small" dir was empty! First fix it with: "git submodule update --init --recursive" Then: "./compile_silice_mingw64.sh", It make "Silice.exe" in "bin" And again: "./compile_silice_mingw64.sh" Last: Test "divstd_bare" by icarus lead to "icarus.fst"

sylefeb commented 2 years ago

So all seems to be working now? A good test is to run ./simul.sh from within projects/terrain (needs verilator, but that should be in the downloaded package already).

ShervinShokouhi commented 2 years ago

Fantastic, It works like a charm Thank you

sylefeb commented 2 years ago

That's great! Hope you'll enjoy Silice!

ShervinShokouhi commented 2 years ago

For sure I will be ;)