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

Subversion Repositories gecko3

[/] [gecko3/] [trunk/] [GECKO3COM/] [gecko3com-ip/] [core/] [GECKO3COM_functions.vhd] - Diff between revs 11 and 14

Show entire file | Details | Blame | View Log

Rev 11 Rev 14
Line 1... Line 1...
 
--      Package File Template
 
--
 
--      Purpose: This package defines supplemental types, subtypes, 
 
--               constants, and functions 
 
 
 
 
 
library IEEE;
 
use IEEE.STD_LOGIC_1164.all;
 
 
 
 
 
library work;
 
use work.USB_TMC_IP_Defs.all;
 
use work.USB_TMC_cmp.all;
 
 
 
 
 
package USB_TMC_func is
 
 
 
 
 
--  type <new_type> is
 
--    record
 
--        <type_name>        : std_logic_vector( 7 downto 0);
 
--        <type_name>        : std_logic;
 
--    end record;
 
--
 
---- Declare constants
 
--
 
--  constant <constant_name>            : time := <time_unit> ns;
 
--  constant <constant_name>            : integer := <value>;
 
-- 
 
---- Declare functions and procedure
 
--
 
--  function <function_name>  (signal <signal_name> : in <type_declaration>) return <type_declaration>;
 
--  procedure <procedure_name>  (<type_declaration> <constant_name>     : in <type_declaration>);
 
 
 
procedure rst_header_Reg  (signal reg : out tHeaderReg);
 
 
 
procedure wr_header_Reg_element (variable bl : in integer;
 
                                 signal data : in std_logic_vector(SIZE_DBUS_GPIF-1 downto 0);
 
                                 signal reg : out tHeaderReg);
 
 
 
procedure rd_header_Reg_element (variable bl : in integer;
 
                                 signal reg : in tHeaderReg;
 
                                 signal data : out std_logic_vector(SIZE_DBUS_GPIF-1 downto 0));
 
 
 
 
 
end USB_TMC_func;
 
 
 
 
 
package body USB_TMC_func is
 
--
 
---- Example 1
 
--  function <function_name>  (signal <signal_name> : in <type_declaration>  ) return <type_declaration> is
 
--    variable <variable_name>     : <type_declaration>;
 
--  begin
 
--    <variable_name> := <signal_name> xor <signal_name>;
 
--    return <variable_name>; 
 
--  end <function_name>;
 
--
 
--
 
---- Example 2
 
--  function <function_name>  (signal <signal_name> : in <type_declaration>;
 
--                         signal <signal_name>   : in <type_declaration>  ) return <type_declaration> is
 
--  begin
 
--    if (<signal_name> = '1') then
 
--      return <signal_name>;
 
--    else
 
--      return 'Z';
 
--    end if;
 
--  end <function_name>;
 
--
 
---- Procedure Example
 
--  procedure <procedure_name>  (<type_declaration> <constant_name>  : in <type_declaration>) is
 
--    
 
--  begin
 
--    
 
--  end <procedure_name>;
 
 
 
procedure rst_header_Reg  (signal reg : out tHeaderReg) is
 
 
 
  begin
 
         reg.MsgID   <= (others => '0');
 
         reg.bTag    <= (others => '0');
 
         reg.bTagInv <= (others => '0');
 
         reg.res1    <= (others => '0');
 
         reg.TfSize  <= (others => '0');
 
         reg.bmTfAtt <= (others => '0');
 
    reg.GPByte1 <= (others => '0');
 
         reg.GPByte2 <= (others => '0');
 
         reg.GPByte3 <= (others => '0');
 
 
 
end rst_header_Reg;
 
 
 
procedure wr_header_Reg_element (variable bl : in integer;
 
                                 signal data : in std_logic_vector(SIZE_DBUS_GPIF-1 downto 0);
 
                                 signal reg : out tHeaderReg) is
 
 
 
begin
 
        case bl is
 
 
 
          when 0 =>
 
                 reg.MsgID   <= data(BYTE-1 downto 0);
 
                 reg.bTag    <= data((2*BYTE)-1 downto BYTE);
 
          when 1 =>
 
                 reg.bTagInv <= data(BYTE-1 downto 0);
 
                 reg.res1    <= data((2*BYTE)-1 downto BYTE);
 
          when 2 =>
 
                 reg.TfSize((2*BYTE)-1 downto 0)      <= data;
 
          when 3 =>
 
                 reg.TfSize((4*BYTE)-1 downto 2*BYTE) <= data;
 
          when 4 =>
 
                 reg.bmTfAtt <= data(BYTE-1 downto 0);
 
                 reg.GPByte1 <= data((2*BYTE)-1 downto BYTE);
 
          when 5 =>
 
                 reg.GPByte2 <= data(BYTE-1 downto 0);
 
                 reg.GPByte3 <= data((2*BYTE)-1 downto BYTE);
 
          when others =>
 
   end case;
 
end wr_header_Reg_element;
 
 
 
 
 
 
 
procedure rd_header_Reg_element (variable bl : in integer;
 
                                 signal reg : in tHeaderReg;
 
                                 signal data : out std_logic_vector(SIZE_DBUS_GPIF-1 downto 0)) is
 
 
 
   begin
 
 
 
        case bl is
 
          when 0 =>
 
                 data <= reg.MsgID & reg.bTag;
 
          when 1 =>
 
                 data <= reg.bTagInv & reg.res1;
 
          when 2 =>
 
                 data <= reg.TfSize((2*BYTE)-1 downto 0);
 
          when 3 =>
 
                 data <= reg.TfSize((4*BYTE)-1 downto 2*BYTE);
 
          when 4 =>
 
                 data <= reg.bmTfAtt & reg.GPByte1;
 
          when 5 =>
 
                 data <= reg.GPByte2 & reg.GPByte3;
 
          when others =>
 
            data <= (others => 'X');
 
        end case;
 
 
 
end rd_header_Reg_element;
 
 
 
 
 
end USB_TMC_func;
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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