日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

报错解决:Unable to find a `./myhdl.vpi‘ module on the search path.以及 %1 is not a valid Win32 application

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 报错解决:Unable to find a `./myhdl.vpi‘ module on the search path.以及 %1 is not a valid Win32 application 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題產生

在學習Verilog進行FFT的時候,從GitHub上找到了一個相關代碼fft-dit-fpga。代碼中不僅給出了Verilog代碼,還附加了一個仿真測試的python程序,就想著運行運行,沒想到在

self.dut = Cosimulation("vvp -m ./myhdl.vpi fftexec",clk=self.clk, rst_n=self.rst_n,din=self.in_data, din_nd=self.in_nd,dout=self.out_data, dout_nd=self.out_nd,overflow=self.overflow,)

這里報錯了,上網上找了一大圈子也沒有直接解決問題。因此記錄一下解決過程(在最后)。


相關介紹

MyHDL

??MyHDL是使用python語言進行HDL仿真驗證的一個工具包,而且是開源的(GitHub: MyHDL)。真的對我這種Verilog白紙很友善,起碼python語法是知道的。 當然,也可以使用Verilog語言寫一個test bench。

??想要安裝也很簡單,有兩種方式:

  • pip install myhdl
  • 點擊上方的GitHub鏈接,pull到本地,然后進入文件夾python setup.py install
  • 第二種方式也可以進行驗證安裝是否成功,在{repo_dir}/myhdl/test/core目錄下執行python -m pytest

    iverilog

    ??iverilog的全稱是Icarus Verilog,是一個輕量的Verilog編譯器(感覺和mingw作用挺像的),常常和gtkwave一起使用。安裝參考這個。當然,作為樂色的我肯定不會使用Vim等文本編輯器寫代碼,于是找了在VSC上配置Verilog開發環境的,參考這個。

    問題解決

    ./myhdl: Unable to find a `./myhdl.vpi’ module on the search path.

    這個從網上找了半天,說是“myhdl.vpi要copy到iverilog能找到的地方”(甜蜜的我怎么知道是哪里?),然后在這里看到說要copy到/usr/lib/x86_64-linux-gnu/ivl/system.vpi一個路徑下,于是將這個東西移動到和system.vpi同一級目錄下。這樣就不報這個錯了
    (有可能還會說什么“myhdl.vpi.vpi not found”之類的錯,把vvp -m ./myhdl.vpi ...改成vvp -m ./myhdl就行了)

    %1 is not a valid Win32 application.

    完整的是

    ./myhdl:`E:\iverilog\lib\ivl./myhdl.vpi’ failed to open using dlopen() because:
    %1 is not a valid Win32 application.

    一看這個感覺就不對,竟然是操作系統不一致。感覺真不會搞了。。不過我在MyHDL官網文檔上看到了這樣一句話:

    In Icarus Verilog, the tasks are defined in a myhdl.vpi module that is compiled from C source code.

    myhdl.vpi可以編譯得到,所以我在網上搜myhdl的C語言源代碼。結果在GitHub: MyHDL里的cosimulation/modelsim-win目錄下找到了myhdl_vpi.c的源文件,覺得大概率就是它了。問題是怎么編譯?
    看見同級目錄下有個Makefile,先用make試了試,可惜不成功。然后在GitHub: MyHDL的issue上看到了使用iverilog-vpi進行編譯,于是輸入命令:iverilog-vpi myhdl_vpi.c,果然得到了想要的myhdl_vpi.vpi文件,重命名為myhdl.vpi之后,移動到了和system.vpi同級目錄下,再進行測試,結果成功。


    總結

    以上是生活随笔為你收集整理的报错解决:Unable to find a `./myhdl.vpi‘ module on the search path.以及 %1 is not a valid Win32 application的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。