source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/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.4 KB
Line 
1/*
2 * $Id: top.h 113 2009-04-14 18:39:12Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test "Write_queue"
7 */
8
9#ifdef SYSTEMC
10#include "systemc.h"
11#endif
12
13#define NB_ITERATION  1
14#define CYCLE_MAX     (1024*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/Write_queue/include/Write_queue.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;
27using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
28
29using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue;
30
31SC_MODULE(top)
32{
33#ifdef SYSTEMC
34 private: sc_clock               *  in_CLOCK ;
35 private: sc_signal<Tcontrol_t>  *  in_NRESET;
36
37  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_VAL           ;
38  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_IN_ACK           ;
39  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_CONTEXT_ID    ;
40  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_FRONT_END_ID  ;
41  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_OOO_ENGINE_ID ;
42  private: sc_signal<Tpacket_t         >  *  in_WRITE_QUEUE_IN_PACKET_ID     ;
43//private: sc_signal<Toperation_t      >  *  in_WRITE_QUEUE_IN_OPERATION     ;
44//private: sc_signal<Ttype_t           >  *  in_WRITE_QUEUE_IN_TYPE          ;
45  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_WRITE_RD      ;
46  private: sc_signal<Tgeneral_address_t>  *  in_WRITE_QUEUE_IN_NUM_REG_RD    ;
47  private: sc_signal<Tgeneral_data_t   >  *  in_WRITE_QUEUE_IN_DATA_RD       ;
48  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_WRITE_RE      ;
49  private: sc_signal<Tspecial_address_t>  *  in_WRITE_QUEUE_IN_NUM_REG_RE    ;
50  private: sc_signal<Tspecial_data_t   >  *  in_WRITE_QUEUE_IN_DATA_RE       ;
51  private: sc_signal<Texception_t      >  *  in_WRITE_QUEUE_IN_EXCEPTION     ;
52  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_NO_SEQUENCE   ;
53  private: sc_signal<Taddress_t        >  *  in_WRITE_QUEUE_IN_ADDRESS       ;
54  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_OUT_VAL          ;
55  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_OUT_ACK          ;
56  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_CONTEXT_ID   ;
57  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_FRONT_END_ID ;
58  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_OOO_ENGINE_ID;
59  private: sc_signal<Tpacket_t         >  * out_WRITE_QUEUE_OUT_PACKET_ID    ;
60//private: sc_signal<Toperation_t      >  * out_WRITE_QUEUE_OUT_OPERATION    ;
61//private: sc_signal<Ttype_t           >  * out_WRITE_QUEUE_OUT_TYPE         ;
62  private: sc_signal<Tspecial_data_t   >  * out_WRITE_QUEUE_OUT_FLAGS        ;
63  private: sc_signal<Texception_t      >  * out_WRITE_QUEUE_OUT_EXCEPTION    ;
64  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_OUT_NO_SEQUENCE  ;
65  private: sc_signal<Tgeneral_data_t   >  * out_WRITE_QUEUE_OUT_ADDRESS      ;
66  private: sc_signal<Taddress_t        >  * out_WRITE_QUEUE_OUT_DATA         ;
67  private: sc_signal<Tcontrol_t        > ** out_GPR_WRITE_VAL                ;
68  private: sc_signal<Tcontrol_t        > **  in_GPR_WRITE_ACK                ;
69  private: sc_signal<Tcontext_t        > ** out_GPR_WRITE_OOO_ENGINE_ID      ;
70  private: sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_NUM_REG            ;
71  private: sc_signal<Tgeneral_data_t   > ** out_GPR_WRITE_DATA               ;
72  private: sc_signal<Tcontrol_t        > ** out_SPR_WRITE_VAL                ;
73  private: sc_signal<Tcontrol_t        > **  in_SPR_WRITE_ACK                ;
74  private: sc_signal<Tcontext_t        > ** out_SPR_WRITE_OOO_ENGINE_ID      ;
75  private: sc_signal<Tspecial_address_t> ** out_SPR_WRITE_NUM_REG            ;
76  private: sc_signal<Tspecial_data_t   > ** out_SPR_WRITE_DATA               ;
77  private: sc_signal<Tcontext_t        > ** out_BYPASS_WRITE_OOO_ENGINE_ID   ;
78  private: sc_signal<Tcontrol_t        > ** out_BYPASS_WRITE_GPR_VAL         ;
79  private: sc_signal<Tgeneral_address_t> ** out_BYPASS_WRITE_GPR_NUM_REG     ;
80  private: sc_signal<Tgeneral_data_t   > ** out_BYPASS_WRITE_GPR_DATA        ;
81  private: sc_signal<Tcontrol_t        > ** out_BYPASS_WRITE_SPR_VAL         ;
82  private: sc_signal<Tspecial_address_t> ** out_BYPASS_WRITE_SPR_NUM_REG     ;
83  private: sc_signal<Tspecial_data_t   > ** out_BYPASS_WRITE_SPR_DATA        ;
84
85#endif
86
87 private: std::string name;
88 private: Tusage_t _usage;
89 private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * _param;
90#ifdef STATISTICS
91 private: morpheo::behavioural::Parameters_Statistics * _param_stat;
92#endif
93 private: Write_queue * component;
94
95 private: void usage
96    (
97#ifdef MTI_SYSTEMC
98     int argc, const char * const * argv
99#else
100     int argc, char * argv[]
101#endif
102     );
103 private: void allocation   (void);
104 private: void deallocation (void);
105 public : void test         (void);
106
107#ifdef MTI_SYSTEMC
108  SC_CTOR(top::top);
109#else
110 public : top (sc_module_name module_name,int argc, char * argv[]);
111#endif
112 public : ~top(void);
113};
114
115 
Note: See TracBrowser for help on using the repository browser.