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

Subversion Repositories artificial_neural_network

[/] [artificial_neural_network/] [trunk/] [wrapper_Vivado/] [VHDL_files/] [ann_v2_0_Outputs_M_AXIS.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 ojosynariz
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
 
5
entity ann_v2_0_Outputs_M_AXIS is
6
        generic (
7
                -- Users to add parameters here
8
      WR_WIDTH : natural := 8; -- Bit width for Write data
9
      NUMBER_OF_OUTPUT_WORDS : integer := 8; -- Total number of output data.
10
                -- User parameters ends
11
                -- Do not modify the parameters beyond this line
12
 
13
                -- Width of S_AXIS address bus. The slave accepts the read and write addresses of width C_M_AXIS_TDATA_WIDTH.
14
                C_M_AXIS_TDATA_WIDTH    : integer       := 32
15
        );
16
        port (
17
                -- Users to add ports here
18
      fifo_wr : in std_logic;
19
      fifo_wdata : in std_logic_vector(WR_WIDTH-1 downto 0); -- Nota: recordar utilizar sxt() -sign extension- al enviar por AXI
20
                -- User ports ends
21
                -- Do not modify the ports beyond this line
22
 
23
                -- Global ports
24
                M_AXIS_ACLK     : in std_logic;
25
                -- 
26
                M_AXIS_ARESETN  : in std_logic;
27
                -- Master Stream Ports. TVALID indicates that the master is driving a valid transfer, A transfer takes place when both TVALID and TREADY are asserted. 
28
                M_AXIS_TVALID   : out std_logic;
29
                -- TDATA is the primary payload that is used to provide the data that is passing across the interface from the master.
30
                M_AXIS_TDATA    : out std_logic_vector(C_M_AXIS_TDATA_WIDTH-1 downto 0);
31
                -- TSTRB is the byte qualifier that indicates whether the content of the associated byte of TDATA is processed as a data byte or a position byte.
32
                M_AXIS_TSTRB    : out std_logic_vector((C_M_AXIS_TDATA_WIDTH/8)-1 downto 0);
33
                -- TLAST indicates the boundary of a packet.
34
                M_AXIS_TLAST    : out std_logic;
35
                -- TREADY indicates that the slave can accept a transfer in the current cycle.
36
                M_AXIS_TREADY   : in std_logic
37
        );
38
end ann_v2_0_Outputs_M_AXIS;
39
 
40
architecture implementation of ann_v2_0_Outputs_M_AXIS is
41
 
42
   signal counter : integer range 0 to NUMBER_OF_OUTPUT_WORDS-1;
43
 
44
begin
45
   -- I/O Connections assignments
46
   M_AXIS_TSTRB <= (others => '1');
47
   M_AXIS_TVALID <= fifo_wr;
48
   M_AXIS_TDATA <= std_logic_vector(resize(signed(fifo_wdata),C_M_AXIS_TDATA_WIDTH));
49
   M_AXIS_TLAST <= '1' when ( counter = (NUMBER_OF_OUTPUT_WORDS-1) ) else '0';
50
 
51
   process (M_AXIS_ACLK)
52
   begin
53
      if ( rising_edge(M_AXIS_ACLK) ) then
54
         if ( M_AXIS_ARESETN = '0' ) then
55
            counter <= 0;
56
         else
57
            if (fifo_wr = '1') then
58
               if counter = NUMBER_OF_OUTPUT_WORDS-1 then
59
                  counter <= 0;
60
               else
61
                  counter <= counter +1;
62
               end if;
63
            end if;
64
         end if;
65
      end if;
66
   end process;
67
 
68
end implementation;

powered by: WebSVN 2.1.0

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