Line 57... |
Line 57... |
message:t_msg;
|
message:t_msg;
|
trigger:boolean;
|
trigger:boolean;
|
end record t_bfm;
|
end record t_bfm;
|
|
|
procedure write(
|
procedure write(
|
signal request:inout t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
signal request:out t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
address:in t_addr; -- used only for non-stream interfaces.
|
address:in t_addr; -- used only for non-stream interfaces.
|
data:in t_msg
|
data:in t_msg
|
);
|
);
|
|
|
procedure read(
|
procedure read(
|
signal request:inout t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
signal request:out t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
address:in t_addr -- used only for non-stream interfaces.
|
address:in t_addr -- used only for non-stream interfaces.
|
);
|
);
|
end package tlm;
|
end package tlm;
|
|
|
package body tlm is
|
package body tlm is
|
procedure write(
|
procedure write(
|
signal request:inout t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
signal request:out t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
address:in t_addr; -- used only for non-stream interfaces.
|
address:in t_addr; -- used only for non-stream interfaces.
|
data:in t_msg
|
data:in t_msg
|
) is begin
|
) is begin
|
request.address<=address;
|
request.address<=address;
|
request.message<=data;
|
request.message<=data;
|
request.trigger<=not request.trigger;
|
request.trigger<=not request.trigger;
|
end procedure write;
|
end procedure write;
|
|
|
procedure read(
|
procedure read(
|
signal request:inout t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
signal request:out t_bfm; --FIXME use inout because Quartus doesn't yet allow reading of "out" within a procedure. VHDL-2008 allows this, and QuestaSim works fine.
|
address:in t_addr -- used only for non-stream interfaces.
|
address:in t_addr -- used only for non-stream interfaces.
|
) is begin
|
) is begin
|
request.address<=address;
|
request.address<=address;
|
request.trigger<=not request.trigger;
|
request.trigger<=not request.trigger;
|
--report "request.address: " & to_hstring(request.address);
|
--report "request.address: " & to_hstring(request.address);
|