编译开源软件vtr-verilog-to-routing遇到的一点问题

7 篇文章 1 订阅
4 篇文章 0 订阅

vtr-verilog-to-routing介绍


       Verilog-to-Routing(VTR)项目是一个全球性的合作项目,旨在提供一个开源框架,用于进行FPGA架构和CAD研究和开发。 VTR设计流程以数字电路的Verilog描述和目标FPGA架构的描述作为输入。然后执行以下操作:

        1、展开、综合和部分映射(PARMYS)

        2、逻辑优化和技术映射(ABC)

        3、打包、布局、路由和时间分析(VPR)

生成FPGA速度和面积结果。 VTR包括一组已知可与设计流程配合使用的基准设计。

以上摘自官网https://github.com/verilog-to-routing/vtr-verilog-to-routing/tree/master

有些同学在编译时遇到了一些问题,主要是cmake 环境的问题,以下列出,以供参考。

does not appear to contain CMakeLists.txt.

       问题

CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


CMake Error: The source directory "/vtr-verilog-to-routing/build" does not appear to contain CMakeLists.txt.

 解决方法 :

1、指定源目录和二进制目录:在运行 CMake 命令时,指定源目录和二进制目录。例如,如果您的源代码位于 "/vtr-verilog-to-routing" 目录中,您可以在命令行中输入以下命令:cmake /vtr-verilog-to-routing -B /vtr-verilog-to-routing/build。这将指定源目录为 "/vtr-verilog-to-routing",指定二进制目录为 "/vtr-verilog-to-routing/build"。

2、在正确的目录中运行 CMake 命令:确保您在正确的目录中运行 CMake 命令。例如,如果您的 CMakeLists.txt 文件位于 "/vtr-verilog-to-routing/CMakeLists.txt",则应该在 "/vtr-verilog-to-routing" 目录中运行 CMake 命令。

3、检查 CMakeLists.txt 文件是否存在:确保您的源目录中包含 CMakeLists.txt 文件。如果不存在,请创建一个新文件。

find_package(PkgConfig)

问题:

CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.25/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
  CMakeLists.txt:387 (find_package)

解决方法:

        1、确保 PkgConfig 工具已经安装:检查您的系统上是否已经安装了 PkgConfig 工具。如果未安装,请安装 PkgConfig 工具。

        2、添加 PkgConfig 工具路径到 PATH:如果您已经安装了 PkgConfig 工具但仍然遇到此问题,请检查您的环境变量是否包含 PkgConfig 工具路径。如果不包含,请将 PkgConfig 工具路径添加到 PATH 环境变量中。

        3、指定 PKG_CONFIG_EXECUTABLE 变量:如果您已经安装了 PkgConfig 工具但仍然遇到此问题,请尝试在 CMakeLists.txt 文件中添加以下行:set(PKG_CONFIG_EXECUTABLE /usr/bin/pkg-config),将 PKG_CONFIG_EXECUTABLE 变量设置为 PkgConfig 工具的路径。

Ubuntu 20 安装 PkgConfig 工具:

sudo apt install pkg-config

find_package(BISON)

问题:

CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find BISON (missing: BISON_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.25/Modules/FindBISON.cmake:306 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  libs/EXTERNAL/libsdcparse/CMakeLists.txt:16 (find_package)

解决方法:

        1、确保 Bison 工具已经安装:检查您的系统上是否已经安装了 Bison 工具。如果未安装,请安装 Bison 工具。

        2、添加 Bison 工具路径到 PATH:如果您已经安装了 Bison 工具但仍然遇到此问题,请检查您的环境变量是否包含 Bison 工具路径。如果不包含,请将 Bison 工具路径添加到 PATH 环境变量中。

        3、指定 BISON_EXECUTABLE 变量:如果您已经安装了 Bison 工具但仍然遇到此问题,请尝试在 CMakeLists.txt 文件中添加以下行:set(BISON_EXECUTABLE /usr/bin/bison),将 BISON_EXECUTABLE 变量设置为 Bison 工具的路径。

安装 Bison 工具:

sudo apt install bison

clang: not found

这个错误提示表明系统中缺少 clang 编译器。

要解决这个问题,可以按照以下步骤安装 clang 编译器:

1. 打开终端,使用以下命令更新软件包列表:

sudo apt update

2. 安装 clang 编译器:

   sudo apt install clang

3. 等待安装完成后,您可以使用以下命令检查 clang 编译器的版本:

clang --version

   如果看到了 clang 编译器的版本号,则表示已经成功安装。

readline/readline.h' file not found

这个错误提示表明在编译过程中缺少 readline 库的头文件。

要解决这个问题,可以按照以下步骤操作:

1. 确认 readline 库已安装:使用以下命令检查 readline 库是否已经安装:

dpkg -s libreadline-dev

   如果已经安装,可以看到关于 readline 库的信息。如果未安装,请执行以下命令安装 readline 库:

 sudo apt-get install libreadline-dev

2. 确认头文件路径:检查编译命令是否正确指定了 readline 库的头文件路径。如果未正确指定,请在编译命令中添加以下参数:

 -I /usr/include/readline

3. 确认库文件路径:检查链接命令是否正确指定了 readline 库的库文件路径。如果未正确指定,请在链接命令中添加以下参数:

   -L /usr/lib/x86_64-linux-gnu -lreadline

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
回答: 在Vue中,可以通过自定义组件上使用v-model来实现父子组件之间的双向数据绑定。\[1\]当使用v-model时,默认同时进行两项绑定操作,利用这个特性可以实现自定义组件上的v-model。通过这个特性,可以自定义表单组件,实现父子组件之间的数据传递。\[2\] 在子组件中,可以通过props接收父组件传递的value值,并在子组件中使用:value绑定到input元素上。同时,通过@input监听input事件,并在事件处理函数中通过this.$emit('input', value)将输入的值传递给父组件。这样就实现了子组件的双向数据绑定。\[2\] 然而,有时候我们可能需要自定义事件和属性来替代默认的value属性和input事件。在这种情况下,可以通过在子组件中定义自定义事件和属性来实现。\[3\]通过在子组件中定义自定义事件,可以在子组件中触发该事件,并将需要传递给父组件的值作为参数传递。在父组件中,可以通过监听子组件的自定义事件,并在事件处理函数中获取传递的值。这样就可以实现自定义的数据传递和事件处理。\[3\] 总结起来,通过自定义组件上使用v-model,可以实现父子组件之间的双向数据绑定。同时,可以通过自定义事件和属性来扩展v-model的使用范围,实现更灵活的数据传递和事件处理。 #### 引用[.reference_title] - *1* *3* [(三)vue:自定义组件上使用v-model](https://blog.csdn.net/AHcola233/article/details/103851723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vue之自定义组件的v-model](https://blog.csdn.net/VTR_xyh/article/details/122938122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从此不归路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值