source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters_msg_error.cpp @ 88

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

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 1.7 KB
Line 
1/*
2 * $Id: Parameters_msg_error.cpp 88 2008-12-10 18:31:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/include/Types.h"
9#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h"
10#include <sstream>
11
12namespace morpheo                    {
13namespace behavioural {
14namespace core {
15namespace multi_execute_loop {
16namespace execute_loop {
17namespace multi_execute_unit {
18namespace execute_unit {
19namespace functionnal_unit {
20
21
22#undef  FUNCTION
23#define FUNCTION "Functionnal_unit::msg_error"
24  Parameters_test Parameters::msg_error(void)
25  {
26    log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin");
27
28    Parameters_test test("Functionnal_unit");
29
30    for (uint32_t i=0; i<_nb_type; i++)
31      for (uint32_t j=0; j<_nb_operation; j++)
32        if (_timing[i][j]._delay != _timing[i][j]._latence)
33          test.error(toString(_("For the type '%d', and the operation '%d', the delay and the latence must be equal.\n"),i,j));
34
35    if (_have_groupe_MAC and ((_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC  ]._latence == 0) or
36                              (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC]._latence == 0) or
37                              (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB  ]._latence == 0)))
38      test.error("The functionnal unit implement a MAC unit, the latence to operation OPERATION_ALU_L_MAC, OPERATION_ALU_L_MACRC and OPERATION_ALU_L_MSB must be higher than 0.\n");
39
40    log_printf(FUNC,Functionnal_unit,FUNCTION,"End");
41
42    return test;
43  };
44
45}; // end namespace functionnal_unit
46}; // end namespace execute_unit
47}; // end namespace multi_execute_unit
48}; // end namespace execute_loop
49}; // end namespace multi_execute_loop
50}; // end namespace core
51}; // end namespace behavioural
52}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.