PandA-2024.02
vcd_trace_head.hpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2015-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
37 #ifndef VCD_TRACE_HEAD_HPP
38 #define VCD_TRACE_HEAD_HPP
39 
40 #include <list>
41 #include <string>
42 
43 #include "sig_variation.hpp"
44 
45 // include from parser/vcd/
46 #include "DiscrepancyOpInfo.hpp"
47 
50 
52 {
53  public:
54  vcd_trace_head(const DiscrepancyOpInfo& op_info, std::string signame, const std::list<sig_variation>& fv,
55  const std::list<sig_variation>& ov, const std::list<sig_variation>& sv, unsigned int init_state_id,
56  unsigned long long clock_period, const HLS_managerConstRef _HLSMgr, const tree_managerConstRef _TM,
57  const bool one_hot_fsm_encoding);
58 
59  ~vcd_trace_head() = default;
60 
61  void advance();
62 
63  bool starts_after(unsigned long long t) const
64  {
65  return op_start_time > t;
66  }
67 
68  bool ends_after(unsigned long long t) const
69  {
70  return op_end_time > t;
71  }
72 
74  {
76  }
77 
79  {
88  };
90 
92  {
97  };
99 
100  protected:
102 
104 
105  void update();
106 
108 
110 
111  public:
113  const bool is_phi;
114  const bool is_in_reg;
117  const unsigned int initial_state_id;
118  const std::list<sig_variation>& fsm_vars;
119  std::list<sig_variation>::const_iterator fsm_ss_it; // start state iterator
120  std::list<sig_variation>::const_iterator fsm_end;
121  const std::list<sig_variation>& out_vars;
122  std::list<sig_variation>::const_iterator out_var_it;
123  std::list<sig_variation>::const_iterator out_var_end;
124  const std::list<sig_variation>& start_vars;
125  std::list<sig_variation>::const_iterator sp_var_it;
126  std::list<sig_variation>::const_iterator sp_var_end;
127  const std::string fullsigname;
128  unsigned long long op_start_time;
129  unsigned long long op_end_time;
130  const unsigned long long clock_period;
131  unsigned long long exec_times_in_current_state;
132  unsigned long long consecutive_state_executions;
136 };
137 
138 #endif
const std::list< sig_variation > & out_vars
unsigned long long consecutive_state_executions
const std::list< sig_variation > & fsm_vars
enum vcd_head_state state
enum vcd_head_failure failed
This class manages the tree structures extracted from the raw file.
unsigned long long op_start_time
vcd_trace_head(const DiscrepancyOpInfo &op_info, std::string signame, const std::list< sig_variation > &fv, const std::list< sig_variation > &ov, const std::list< sig_variation > &sv, unsigned int init_state_id, unsigned long long clock_period, const HLS_managerConstRef _HLSMgr, const tree_managerConstRef _TM, const bool one_hot_fsm_encoding)
std::list< sig_variation >::const_iterator out_var_it
const unsigned long long clock_period
CONSTREF_FORWARD_DECL(HLS_manager)
const tree_managerConstRef TM
unsigned long long op_end_time
const std::string fullsigname
void unbounded_find_end_time()
const bool is_in_reg
std::list< sig_variation >::const_iterator out_var_end
bool ends_after(unsigned long long t) const
const HLS_managerConstRef HLSMgr
bool starts_after(unsigned long long t) const
const bool one_hot_fsm_encoding
std::list< sig_variation >::const_iterator sp_var_end
void set_consecutive_state_executions()
const unsigned int initial_state_id
const DiscrepancyOpInfo & op_info
void detect_new_start_end_times()
const std::list< sig_variation > & start_vars
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
~vcd_trace_head()=default
std::list< sig_variation >::const_iterator sp_var_it
std::list< sig_variation >::const_iterator fsm_end
unsigned long long exec_times_in_current_state
std::list< sig_variation >::const_iterator fsm_ss_it
bool more_executions_in_this_hw_state() const

Generated on Mon Feb 12 2024 13:02:54 for PandA-2024.02 by doxygen 1.8.13