GTKW 无法阻止应用程序 (GHDL macos)

问题描述

我能够在 macos 上的 GHDL 中成功分析和运行一个简单的 VHDL 计数器,但是在启动 GTKW 时,使用泛型会导致问题。

错误信息是

无法阻止应用程序(GetProcesspID() 返回 184467095516)

任何想法这意味着什么或导致此错误的原因是什么? (谷歌搜索找不到任何东西)

好像连接到这条线

 signal count: unsigned (G_NBITS-1 downto 0)

来自这个代码

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity counter_simple is
generic(
       G_NBITS : integer range 1 to 32 := 3
     );
port(
    clk : in std_logic;
    reset_n : in std_logic;
    --count_out : out std_logic_vector(G_NBITS-1 downto 0)
    count_out : out std_logic_vector(2 downto 0)
  );
end;

architecture rtl of counter_simple is

--signal count: unsigned (G_NBITS-1 downto 0)
-- ABOVE LINE CRASHES gtkwave
-- Unable to block on application (GetProcesspID() returned 184467095516)

-- so instead:
signal count: unsigned (2 downto 0);


begin

 counting : process (clk,reset_n)
 begin

 if (reset_n = '0') then
   count <= (others => '0');

 elsif rising_edge(clk) then
      count <= count +1;

 end if;
 end process;

--count_out <= std_logic_vector(count(G_NBITS-1 downto 0));
count_out <= std_logic_vector(count(2 downto 0));

end rtl;

在测试台(在这个计数器周围)打印带有报告的计数器在两种情况下都可以,即在两种情况下计数器都运行 0..7。

所以模拟运行了,但 .ghw 文件中似乎有一些令人反感的东西。

解决方法

我对这里的答案不太走运,但我阅读了 GHDL 输出的 .ghw 文件,它是 GTKW 可读的自定义格式。

我尝试了另一种格式,vcd,似乎没问题:

代替默认值

  ghdl -r counter_simple_tb --stop-time=10ns --wave=counter_simple.ghw

使用 VCD

  ghdl -r counter_simple_tb --stop-time=10ns --vcd=counter_simple.vcd

(注意:你必须使用--vcd 开关。单独的文件扩展名是不够的)

作为一种解决方法,这样做是可行的。

希望这也能帮助其他人也坚持这一点。

当然,所有这些都可能在此期间得到修复,因为 GHDL 的 macos 二进制文件(v 0.29,32 位)比最新的(v 1.0)有很多版本

$ ghdl -v
GHDL 0.29 (20100109) [Sokcho edition]

我在 64 位机器上运行它。