source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h @ 113

Last change on this file since 113 was 113, checked in by rosiere, 15 years ago

1) Add modelsim simulation systemC
2) Modelsim cosimulation systemC / VHDL is not finish !!!! (cf execute_queue and write_unit)
3) Add multi architecture
5) Add template for comparator, multiplier and divider
6) Change Message
Warning) Various test macro have change, many selftest can't compile

  • Property svn:keywords set to Id
File size: 5.3 KB
Line 
1/*
2 * $Id: top.h 113 2009-04-14 18:39:12Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test "Write_unit"
7 */
8
9#ifdef SYSTEMC
10#include "systemc.h"
11#endif
12
13#define NB_ITERATION  1
14#define CYCLE_MAX     (2048*NB_ITERATION)
15
16#include "Common/include/Test.h"
17#include "Common/include/Time.h"
18#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h"
19
20using namespace std;
21using namespace morpheo;
22using namespace morpheo::behavioural;
23using namespace morpheo::behavioural::core;
24using namespace morpheo::behavioural::core::multi_execute_loop;
25using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
26using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
27
28using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
29
30SC_MODULE(top)
31{
32#ifdef SYSTEMC
33 private: sc_clock               *  in_CLOCK ;
34 private: sc_signal<Tcontrol_t>  *  in_NRESET;
35
36  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_VAL          ;
37  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_IN_ACK          ;
38  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_CONTEXT_ID   ;
39  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_FRONT_END_ID ;
40  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_OOO_ENGINE_ID;
41  private: sc_signal<Tpacket_t         >    *  in_WRITE_UNIT_IN_PACKET_ID    ;
42//private: sc_signal<Toperation_t      >    *  in_WRITE_UNIT_IN_OPERATION    ;
43//private: sc_signal<Ttype_t           >    *  in_WRITE_UNIT_IN_TYPE         ;
44  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_WRITE_RD     ;
45  private: sc_signal<Tgeneral_address_t>    *  in_WRITE_UNIT_IN_NUM_REG_RD   ;
46  private: sc_signal<Tgeneral_data_t   >    *  in_WRITE_UNIT_IN_DATA_RD      ;
47  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_WRITE_RE     ;
48  private: sc_signal<Tspecial_address_t>    *  in_WRITE_UNIT_IN_NUM_REG_RE   ;
49  private: sc_signal<Tspecial_data_t   >    *  in_WRITE_UNIT_IN_DATA_RE      ;
50  private: sc_signal<Texception_t      >    *  in_WRITE_UNIT_IN_EXCEPTION    ;
51  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_NO_SEQUENCE  ;
52  private: sc_signal<Taddress_t        >    *  in_WRITE_UNIT_IN_ADDRESS      ;
53
54  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_OUT_VAL          ;
55  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_OUT_ACK          ;
56  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_CONTEXT_ID   ;
57  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_FRONT_END_ID ;
58  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_OOO_ENGINE_ID;
59  private: sc_signal<Tpacket_t         >    * out_WRITE_UNIT_OUT_PACKET_ID    ;
60//private: sc_signal<Toperation_t      >    * out_WRITE_UNIT_OUT_OPERATION    ;
61//private: sc_signal<Ttype_t           >    * out_WRITE_UNIT_OUT_TYPE         ;
62  private: sc_signal<Tspecial_data_t   >    * out_WRITE_UNIT_OUT_FLAGS        ;
63  private: sc_signal<Texception_t      >    * out_WRITE_UNIT_OUT_EXCEPTION    ;
64  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_OUT_NO_SEQUENCE  ;
65  private: sc_signal<Taddress_t        >    * out_WRITE_UNIT_OUT_ADDRESS      ;
66  private: sc_signal<Tgeneral_data_t   >    * out_WRITE_UNIT_OUT_DATA         ;
67
68  private: sc_signal<Tcontrol_t        >   ** out_GPR_WRITE_VAL               ;
69  private: sc_signal<Tcontrol_t        >   **  in_GPR_WRITE_ACK               ;
70  private: sc_signal<Tcontext_t        >   ** out_GPR_WRITE_OOO_ENGINE_ID     ;
71  private: sc_signal<Tgeneral_address_t>   ** out_GPR_WRITE_NUM_REG           ;
72  private: sc_signal<Tgeneral_data_t   >   ** out_GPR_WRITE_DATA              ;
73
74  private: sc_signal<Tcontrol_t        >   ** out_SPR_WRITE_VAL               ;
75  private: sc_signal<Tcontrol_t        >   **  in_SPR_WRITE_ACK               ;
76  private: sc_signal<Tcontext_t        >   ** out_SPR_WRITE_OOO_ENGINE_ID     ;
77  private: sc_signal<Tspecial_address_t>   ** out_SPR_WRITE_NUM_REG           ;
78  private: sc_signal<Tspecial_data_t   >   ** out_SPR_WRITE_DATA              ;
79
80  private: sc_signal<Tcontext_t        >   ** out_BYPASS_WRITE_OOO_ENGINE_ID ;
81  private: sc_signal<Tcontrol_t        >   ** out_BYPASS_WRITE_GPR_VAL       ;
82  private: sc_signal<Tgeneral_address_t>   ** out_BYPASS_WRITE_GPR_NUM_REG   ; // RD
83  private: sc_signal<Tgeneral_data_t   >   ** out_BYPASS_WRITE_GPR_DATA      ;
84  private: sc_signal<Tcontrol_t        >   ** out_BYPASS_WRITE_SPR_VAL       ;
85  private: sc_signal<Tspecial_address_t>   ** out_BYPASS_WRITE_SPR_NUM_REG   ; // RE
86  private: sc_signal<Tspecial_data_t   >   ** out_BYPASS_WRITE_SPR_DATA      ;
87#endif
88
89 private: std::string name;
90 private: Tusage_t _usage;
91 private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * _param;
92#ifdef STATISTICS
93 private: morpheo::behavioural::Parameters_Statistics * _param_stat;
94#endif
95 private: Write_unit * component;
96
97 private: void usage
98    (
99#ifdef MTI_SYSTEMC
100     int argc, const char * const * argv
101#else
102     int argc, char * argv[]
103#endif
104     );
105 private: void allocation   (void);
106 private: void deallocation (void);
107 public : void test         (void);
108
109#ifdef MTI_SYSTEMC
110  SC_CTOR(top::top);
111#else
112 public : top (sc_module_name module_name,int argc, char * argv[]);
113#endif
114 public : ~top(void);
115};
Note: See TracBrowser for help on using the repository browser.