diff --git a/CMakeLists.txt b/CMakeLists.txt index b2467e27..0053a4de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,6 +157,8 @@ else() install(TARGETS libsilice ARCHIVE DESTINATION bin/) install(FILES bin/silice-make.py PERMISSIONS WORLD_EXECUTE OWNER_WRITE WORLD_READ DESTINATION bin/) install(FILES bin/report-cycles.py PERMISSIONS WORLD_EXECUTE OWNER_WRITE WORLD_READ DESTINATION bin/) + install(FILES projects/ice-v/CPUs/ice-v.si DESTINATION share/silice/projects/ice-v/CPUs/) + install(FILES projects/ice-v/CPUs/ice-v-dual.si DESTINATION share/silice/projects/ice-v/CPUs/) install(DIRECTORY frameworks DESTINATION share/silice/ USE_SOURCE_PERMISSIONS) install(DIRECTORY src/libs/LibSL-small DESTINATION share/silice/src/libs/) add_definitions(-DFRAMEWORKS_DEFAULT_PATH=\"${CMAKE_INSTALL_PREFIX}/share/silice/frameworks\") diff --git a/frameworks/boards/verilator/verilator.sh b/frameworks/boards/verilator/verilator.sh index 5c42880c..e852d83a 100755 --- a/frameworks/boards/verilator/verilator.sh +++ b/frameworks/boards/verilator/verilator.sh @@ -53,6 +53,7 @@ echo "[WARNING] **** VERILATOR_ROOT is NOT set ****" else echo "VERILATOR_ROOT already defined, using its value" fi +echo "build script: VERILATOR_ROOT = $VERILATOR_ROOT" # check Verilator support for -Wno-TIMESCALEMOD set +e diff --git a/src/ExpressionLinter.cpp b/src/ExpressionLinter.cpp index f0e5b9c1..6132dc7f 100644 --- a/src/ExpressionLinter.cpp +++ b/src/ExpressionLinter.cpp @@ -220,9 +220,9 @@ void ExpressionLinter::lintBinding( ) const { // check width - std::string slw = bp->resolveWidthOf(bnfo.left, local_ictx, bnfo.srcloc); int lw = -1; e_Type rtype = Parameterized; + std::string slw = bp->resolveWidthOf(bnfo.left, local_ictx, bnfo.srcloc); try { lw = stoi(slw); } catch (...) { @@ -237,12 +237,15 @@ void ExpressionLinter::lintBinding( rtype = rnfo.base_type; } else { /// TODO: rtype in this case? - std::string srw = m_Host->resolveWidthOf(std::get(bnfo.right), m_Ictx, bnfo.srcloc); - try { - rw = stoi(srw); - } catch (...) { - warn(Standard, bnfo.srcloc, "%s, cannot check binding bit-width", msg.c_str()); - return; + std::string right = std::get(bnfo.right); + if (right != ALG_CLOCK && right != ALG_RESET) { + std::string srw = m_Host->resolveWidthOf(right, m_Ictx, bnfo.srcloc); + try { + rw = stoi(srw); + } catch (...) { + warn(Standard, bnfo.srcloc, "%s, cannot check binding bit-width", msg.c_str()); + return; + } } } if (rw != lw) {