OpenCores
URL https://opencores.org/ocsvn/axi4_tlm_bfm/axi4_tlm_bfm/trunk

Subversion Repositories axi4_tlm_bfm

[/] [axi4_tlm_bfm/] [trunk/] [rtl/] [packages/] [pkg-tlm.vhdl] - Diff between revs 2 and 5

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 5
Line 50... Line 50...
--      /* TODO remove once generic packages are supported. */
--      /* TODO remove once generic packages are supported. */
--      subtype t_addr is unsigned(31 downto 0);
--      subtype t_addr is unsigned(31 downto 0);
--      subtype t_msg is signed(63 downto 0);
--      subtype t_msg is signed(63 downto 0);
 
 
        /* BFM control interface. */
        /* BFM control interface. */
        type tBfmCtrl is record
        type t_bfm is record
                address:t_addr;
                address:t_addr;
                message:t_msg;
                message:t_msg;
                trigger:boolean;
                trigger:boolean;
        end record tBfmCtrl;
        end record t_bfm;
 
 
        procedure write(
        procedure write(
                signal request:inout tBfmCtrl;          --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: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.
                address:in t_addr;
                address:in t_addr;
                data:in t_msg
                data:in t_msg
        );
        );
 
 
        procedure writeStream(
        procedure writeStream(
                signal request:inout tBfmCtrl;
                signal request:inout t_bfm;
                data:in t_msg
                data:in t_msg
        );
        );
 
 
        procedure read(
        procedure read(
                signal request:inout tBfmCtrl;          --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: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.
                address:in t_addr
                address:in t_addr
        );
        );
end package tlm;
end package tlm;
 
 
package body tlm is
package body tlm is
        procedure write(
        procedure write(
                signal request:inout tBfmCtrl;          --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: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.
                address:in t_addr;
                address:in t_addr;
                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 writeStream(
        procedure writeStream(
                signal request:inout tBfmCtrl;
                signal request:inout t_bfm;
                data:in t_msg
                data:in t_msg
        ) is begin
        ) is begin
                request.message<=data;
                request.message<=data;
                request.trigger<=not request.trigger;
                request.trigger<=not request.trigger;
        end procedure writeStream;
        end procedure writeStream;
 
 
        procedure read(
        procedure read(
                signal request:inout tBfmCtrl;          --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: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.
                address:in t_addr
                address:in t_addr
        ) 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);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.