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

Subversion Repositories ht_tunnel

[/] [ht_tunnel/] [tags/] [START/] [rtl/] [systemc/] [decoder_l2/] [cd_cmdwdata_buffer_l3.h] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 acastong
// cd_cmdwdata_buffer_l3.h
2
 
3
/* ***** BEGIN LICENSE BLOCK *****
4
 * Version: MPL 1.1
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version
7
 * 1.1 (the "License"); you may not use this file except in compliance with
8
 * the License. You may obtain a copy of the License at
9
 * http://www.mozilla.org/MPL/
10
 *
11
 * Software distributed under the License is distributed on an "AS IS" basis,
12
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
 * for the specific language governing rights and limitations under the
14
 * License.
15
 *
16
 * The Original Code is HyperTransport Tunnel IP Core.
17
 *
18
 * The Initial Developer of the Original Code is
19
 * Ecole Polytechnique de Montreal.
20
 * Portions created by the Initial Developer are Copyright (C) 2005
21
 * the Initial Developer. All Rights Reserved.
22
 *
23
 * Contributor(s):
24
 *   Max-Elie Salomon
25
 *   Ami Castonguay <acastong@grm.polymtl.ca>
26
 *
27
 * Alternatively, the contents of this file may be used under the terms
28
 * of the Polytechnique HyperTransport Tunnel IP Core Source Code License
29
 * (the  "PHTICSCL License", see the file PHTICSCL.txt), in which case the
30
 * provisions of PHTICSCL License are applicable instead of those
31
 * above. If you wish to allow use of your version of this file only
32
 * under the terms of the PHTICSCL License and not to allow others to use
33
 * your version of this file under the MPL, indicate your decision by
34
 * deleting the provisions above and replace them with the notice and
35
 * other provisions required by the PHTICSCL License. If you do not delete
36
 * the provisions above, a recipient may use your version of this file
37
 * under either the MPL or the PHTICSCL License."
38
 *
39
 * ***** END LICENSE BLOCK ***** */
40
 
41
#ifndef CD_CMDWDATA_BUFFER_L3_H
42
#define CD_CMDWDATA_BUFFER_L3_H
43
 
44
 
45
#include "../core_synth/synth_datatypes.h"
46
#include "../core_synth/constants.h"
47
 
48
///Command register sub-module for the decoder module
49
/**
50
        @description A buffer (register) for control commands
51
        that do have data associated
52
        @author Max-Elie Salomon
53
                Ami Castonguay
54
*/
55
class cd_cmdwdata_buffer_l3 : public sc_module
56
{
57
public:
58
 
59
        //*******************************
60
        //      Inputs
61
        //*******************************
62
 
63
        ///Clock to synchronize module
64
        sc_in< bool >           clk;
65
        ///Input bit vector
66
        sc_in< sc_bv<32> >      dataDword;
67
        ///Address of data associated to the control command
68
        sc_in< sc_uint<BUFFERS_ADDRESS_WIDTH> > db_address_cd;
69
        ///Enables registering of the first doubleword of the packet
70
        sc_in< bool >           enCtl1;
71
        ///Enables registering of the second doubleword of the packet
72
        sc_in< bool >           enCtl2;
73
        ///Indication that the packet has an address error
74
        sc_in< bool >           error64BitsCtlwData;
75
        ///Clear the register
76
        sc_in< bool >           resetx;
77
        //*******************************
78
        //      Outputs
79
        //*******************************
80
 
81
        ///Output control packet
82
        sc_out< syn_ControlPacketComplete > packet;
83
 
84
        /**Where we are storing data.   This is used by the ro to know
85
        if we have finished receiving the data of a packet, so it can know if
86
        it can send it.*/
87
        sc_out< sc_uint<BUFFERS_ADDRESS_WIDTH> >        cd_data_pending_addr_ro;
88
 
89
        /**
90
                Process of updating the output of the register
91
                according to the inputs present on the rising edge
92
                of the clock
93
         */
94
        void bufferize();
95
 
96
        ///SystemC Macro
97
        SC_HAS_PROCESS(cd_cmdwdata_buffer_l3);
98
 
99
        ///SystemC Macro - Module constructor
100
        cd_cmdwdata_buffer_l3(sc_module_name name);
101
};
102
 
103
#endif

powered by: WebSVN 2.1.0

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