source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl.cpp @ 98

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

1) Fix bug (read unit, RAT -> write in R0, SPR desallocation ...)
2) Change VHDL Execute_queue -> use Generic/Queue?
3) Complete document on VHDL generation
4) Add soc test

  • Property svn:keywords set to Id
File size: 1.9 KB
Line 
1#ifdef VHDL
2/*
3 * $Id: Execute_queue_vhdl.cpp 98 2008-12-31 10:18:08Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
10#include "Behavioural/include/Vhdl.h"
11#include "Behavioural/Generic/Queue/include/Queue.h"
12
13namespace morpheo                    {
14namespace behavioural {
15namespace core {
16namespace multi_execute_loop {
17namespace execute_loop {
18namespace multi_write_unit {
19namespace write_unit {
20namespace execute_queue {
21
22
23#undef  FUNCTION
24#define FUNCTION "Execute_queue::vhdl"
25  void Execute_queue::vhdl (void)
26  {
27    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
28
29    //----- Queue -----
30   
31    morpheo::behavioural::generic::queue::Parameters * param_queue;
32    morpheo::behavioural::generic::queue::Queue      * queue;
33   
34    param_queue = new morpheo::behavioural::generic::queue::Parameters
35      (_param->_size_queue,
36       _param->_size_internal_queue
37       );
38   
39    std::string queue_name = _name + "_queue";
40    queue = new morpheo::behavioural::generic::queue::Queue
41      (queue_name.c_str()
42#ifdef STATISTICS
43       ,NULL
44#endif
45       ,param_queue
46       ,USE_VHDL);
47   
48    _component->set_component(queue->_component
49#ifdef POSITION
50                              , 0, 0, 0, 0
51#endif
52                              , INSTANCE_LIBRARY
53                              );
54
55    Vhdl * vhdl = new Vhdl (_name);
56
57    _interfaces->set_port(vhdl);
58    _component->vhdl_instance(vhdl);
59
60    vhdl_declaration (vhdl);
61    vhdl_body        (vhdl);
62
63    vhdl->generate_file();
64
65    delete vhdl;
66
67    log_printf(FUNC,Execute_queue,FUNCTION,"End");
68  };
69
70}; // end namespace execute_queue
71}; // end namespace write_unit
72}; // end namespace multi_write_unit
73}; // end namespace execute_loop
74}; // end namespace multi_execute_loop
75}; // end namespace core
76
77}; // end namespace behavioural
78}; // end namespace morpheo             
79#endif
Note: See TracBrowser for help on using the repository browser.