Das Paket enthält die folgenden Zeilen:
Datei INPUT: TEXT ist in „STD_INPUT“; Datei AUSGABE: TEXT ist aus „STD_OUTPUT“;
Aus irgendeinem Grund erinnern mich diese an die Standard-Input- und -Output-Streams aus meinem C-Sprachunterricht. Was bedeuten diese hier? Ist es wirklich möglich, den Standard-Eingabe-/Ausgabestrom mit diesem Paket zu lesen/schreiben? Wie?
Kurze Antwort: Ja :)
Leider unterstützt das nicht jeder Simulator.
Aktuell kenne ich nur GHDL und ModelSim / QuestaSim. Ich habe keine Informationen über iSim oder xSim.
Ich kenne kein Synthesetool, das STD_IN und STD_OUT unterstützt. Xilinx XST hat Datei-I/O-Unterstützung, aber ich denke, keine Unterstützung für STD_IN/STD_OUT.
Vivado hat keine Datei-I/O-Unterstützung und Quartus unterstützt std.textio nicht.
Minimalbeispiele getestet auf GHDL 0.33
Lesen Sie 4 Eingabezeilen von stdin und spucken Sie jede direkt zurück zu stdout:
library std;
use std.textio.all;
library ieee;
use ieee.std_logic_1164.all;
entity tmp_tb is
end;
architecture behav of tmp_tb is
begin
process
variable my_line : line;
begin
for i in 3 downto 0 loop
readline(input, my_line);
writeline(output, my_line);
end loop;
wait;
end process;
end;
Lies 4 Ganzzahlen aus stdin und schreibe sie in ein Signal. Dies kann dann auf einer generierten Wave-Datei beobachtet werden. Verwendung: https://stackoverflow.com/questions/7271092/vhdl-convert-string-to-integer-best-way
architecture behav of tmp_tb is
constant clk_period : time := 1 ns;
signal my_integer : integer;
begin
process
variable my_line : line;
variable my_integer_var : integer;
begin
for i in 3 downto 0 loop
readline(input, my_line);
read(my_line, my_integer_var);
my_integer <= my_integer_var;
wait for clk_period / 2;
end loop;
wait;
end process;
end;
Eine Reihe von Standardschreibbeispielen auf GitHub: https://github.com/cirosantilli/vhdl-cheat/blob/3721d42a1f1a8d3de3462ac70f90374c910f176e/write_tb.vhdl
Ganzzahl als Hex auf stdout schreiben: https://stackoverflow.com/questions/37879954/how-to-write-an-integer-to-stdout-as-hexadecimal-in-vhdl
Benutzer8352
quanten231
Benutzer8352