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

Last change on this file since 96 was 96, checked in by moulu, 16 years ago

1) Execute_queue VHDL.

  • Property svn:keywords set to Id
File size: 3.0 KB
Line 
1#ifdef VHDL
2/*
3 * $Id: Execute_queue_vhdl_declaration.cpp 96 2008-12-16 19:36:25Z moulu $
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
11namespace morpheo {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16namespace multi_write_unit {
17namespace write_unit {
18namespace execute_queue {
19
20
21#undef  FUNCTION
22#define FUNCTION "Execute_queue::vhdl_declaration"
23  void Execute_queue::vhdl_declaration (Vhdl * & vhdl)
24  {
25    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
26
27    for (uint32_t i=0; i<_param->_size_queue; ++i)
28      {
29        if (_param->_have_port_context_id)
30          vhdl->set_signal("reg_CONTEXT_ID_"+toString(i),_param->_size_context_id);
31        if (_param->_have_port_front_end_id)
32          vhdl->set_signal("reg_FRONT_END_ID_"+toString(i),_param->_size_front_end_id);
33        if (_param->_have_port_ooo_engine_id)
34          vhdl->set_signal("reg_OOO_ENGINE_ID_"+toString(i),_param->_size_ooo_engine_id);
35        if (_param->_have_port_rob_ptr)
36          vhdl->set_signal("reg_PACKET_ID_"+toString(i),_param->_size_rob_ptr);
37        vhdl->set_signal("reg_FLAGS_"+toString(i),_param->_size_special_data);
38        vhdl->set_signal("reg_EXCEPTION_"+toString(i),_param->_size_exception);
39        vhdl->set_signal("reg_NO_SEQUENCE_"+toString(i),1);
40        vhdl->set_signal("reg_ADDRESS_"+toString(i),_param->_size_instruction_address);
41        vhdl->set_signal("reg_DATA_"+toString(i),_param->_size_general_data);
42      }
43
44    vhdl->set_signal("reg_CURRENT_STATE",_param->_size_queue+1);
45
46    vhdl->set_signal("sig_NEXT_STATE",_param->_size_queue+1);
47
48    for (uint32_t i=0; i<_param->_size_queue-1; ++i)
49      {
50        vhdl->set_signal("sig_WEN_"+toString(i),1);
51        vhdl->set_signal("sig_SEL_"+toString(i),1);
52      }
53    vhdl->set_signal("sig_WEN_"+toString(_param->_size_queue - 1),1);
54
55    vhdl->set_signal("sig_IN_ACK",1);
56    vhdl->set_signal("sig_OUT_VAL",1);
57
58   for (uint32_t i=0; i<_param->_size_queue+1; ++i)
59      vhdl->set_constant("STATE_"+toString(i),_param->_size_queue+1,1<<i);
60
61    log_printf(FUNC,Execute_queue,FUNCTION,"End");
62  };
63
64}; // end namespace execute_queue
65}; // end namespace write_unit
66}; // end namespace multi_write_unit
67}; // end namespace execute_loop
68}; // end namespace multi_execute_loop
69}; // end namespace core
70
71}; // end namespace behavioural
72}; // end namespace morpheo             
73#endif
74//   signal reg_0             : std_logic_vector (15 downto 0);
75//   signal reg_1             : std_logic_vector (15 downto 0);
76//   signal reg_2             : std_logic_vector (15 downto 0);
77//   signal reg_3             : std_logic_vector (15 downto 0);
78//   signal reg_CURRENT_STATE : std_logic_vector (4 downto 0);
79
80//   signal sig_NEXT_STATE    : std_logic_vector (4 downto 0);
81//   signal sig_WEN0          : std_logic;
82//   signal sig_SEL0          : std_logic;
83//   signal sig_WEN1          : std_logic;
84//   signal sig_SEL1          : std_logic;
85//   signal sig_WEN2          : std_logic;
86//   signal sig_SEL2          : std_logic;
87//   signal sig_WEN3          : std_logic;
Note: See TracBrowser for help on using the repository browser.