为什么VHDL中的write语句之间有空格

时间:2015-09-01 08:41:35

标签: vhdl

在第二个写入语句之后的下面的代码中插入了一个空格,我不明白为什么

  write(output_line,string'("  when x"""));
  write(output_line,address_map(1 to address_count));
  write(output_line,string'(""""));

我期望得到---当x "adressmap"时,而是接受-----当x "adressmap "

我不希望p和引号之间有这个额外的空间,为什么会发生这种情况呢?

1 个答案:

答案 0 :(得分:1)

有了这个:

use std.textio.all;

entity foo is
end entity;

architecture fum of foo is
    constant address_map: string := "address_map";
    constant address_count: natural := address_map'LENGTH;
begin
    process
        variable output_line: line;
        variable output_line_length: natural;
        variable read_buff: string (1 to 80);

    begin
        write(output_line,string'("  when x"""));
        write(output_line,address_map(1 to address_count));
        write(output_line,string'(""""));
        output_line_length := output_line'length;
        read(output_line, read_buff(1 to output_line_length));
        report "output_line = " & read_buff(1 to output_line_length);
        wait;
    end process;

end architecture;

我明白了:

  

%foo
  foo.vhdl:21:9:@ 0ms :(报告说明):output_line =当x“address_map”

其中没有显示output_line访问过的字符串引用部分中的额外空格。

这告诉我们您的额外空间来自您未提供的声明或声明。您的代码不是Minimal, Complete, and Verifiable example

您的实际代码中似乎有address_count错误。

你可以注意到提供一个mcve可能会指出你的差异。