可以用vhdl打印波形中的字符串吗

可以用vhdl打印波形中的字符串吗,vhdl,quartus,Vhdl,Quartus,假设是FSM,我想在每个时钟周期打印当前状态。我该怎么做呢?我需要什么数据类型 是的,例如ModelSim中的波形可以显示字符串,这非常方便。下面是一个简单的例子: architecture sim of tb is signal info : string(1 to 20); function string_fill(msg : string; len : natural) return string is variable res_v : string(1 to len)

假设是FSM,我想在每个时钟周期打印当前状态。我该怎么做呢?我需要什么数据类型

是的,例如ModelSim中的波形可以显示
字符串
,这非常方便。下面是一个简单的例子:

architecture sim of tb is

  signal info : string(1 to 20);

  function string_fill(msg : string; len : natural) return string is
    variable res_v : string(1 to len);
  begin
    res_v := (others => ' ');  -- Fill with spaces to blank all for a start
    res_v(1 to msg'length) := msg;
    return res_v;
  end function;

begin

  process is
  begin
    info <= string_fill("Hello VHDL", info'length);
    wait for 100 ns;
    info <= string_fill("Hi Bren", info'length);
    wait for 100 ns;
    info <= string_fill("end of sim", info'length);
    wait for 100 ns;
    wait;
  end process;

end architecture;
tb的架构sim是 信号信息:字符串(1到20); 函数字符串_fill(msg:string;len:natural)返回字符串为 变量res_v:字符串(1到len); 开始 res_v:=(其他=>'');--用空格填充以全部空白作为开始 res_v(1到msg'长度):=msg; 返回resu v; 末端功能; 开始 过程是 开始
信息是的,例如ModelSim中的波形可以显示
字符串
,这非常方便。下面是一个简单的例子:

architecture sim of tb is

  signal info : string(1 to 20);

  function string_fill(msg : string; len : natural) return string is
    variable res_v : string(1 to len);
  begin
    res_v := (others => ' ');  -- Fill with spaces to blank all for a start
    res_v(1 to msg'length) := msg;
    return res_v;
  end function;

begin

  process is
  begin
    info <= string_fill("Hello VHDL", info'length);
    wait for 100 ns;
    info <= string_fill("Hi Bren", info'length);
    wait for 100 ns;
    info <= string_fill("end of sim", info'length);
    wait for 100 ns;
    wait;
  end process;

end architecture;
tb的架构sim是 信号信息:字符串(1到20); 函数字符串_fill(msg:string;len:natural)返回字符串为 变量res_v:字符串(1到len); 开始 res_v:=(其他=>'');--用空格填充以全部空白作为开始 res_v(1到msg'长度):=msg; 返回resu v; 末端功能; 开始 过程是 开始
信息您使用的是什么工具?@Qiu使用Quartus如果您的状态是枚举类型的值,您应该能够以符号方式显示它们。(你的状态类型声明是什么样子的?)你说的“打印输出”是什么意思:在模拟中,Morten向你展示了如何使用Wave窗口;我通常使用带有“Assert”或“Report”的控制台。您使用的是什么工具?@Qiu使用quartus如果您的状态是枚举类型的值,您应该能够以符号方式显示它们。(你的状态类型声明是什么样子的?)你说的“打印输出”是什么意思:在模拟中,Morten向你展示了如何使用Wave窗口;我通常使用带有“Assert”或“Report”的控制台。