Use more C++11 features
This commit is contained in:
parent
7f5b8d49eb
commit
6b2990cfec
|
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
# include "PTimingCheck.h"
|
# include "PTimingCheck.h"
|
||||||
|
|
||||||
PRecRem::PRecRem(event_t reference_event,
|
PRecRem::PRecRem(event_t* reference_event,
|
||||||
event_t data_event,
|
event_t* data_event,
|
||||||
PExpr* setup_limit,
|
PExpr* setup_limit,
|
||||||
PExpr* hold_limit,
|
PExpr* hold_limit,
|
||||||
pform_name_t* notifier,
|
pform_name_t* notifier,
|
||||||
|
|
@ -43,24 +43,10 @@ PRecRem::PRecRem(event_t reference_event,
|
||||||
|
|
||||||
PRecRem::~PRecRem()
|
PRecRem::~PRecRem()
|
||||||
{
|
{
|
||||||
delete setup_limit_;
|
|
||||||
delete hold_limit_;
|
|
||||||
|
|
||||||
// Delete optional arguments
|
|
||||||
if (reference_event_.condition) delete reference_event_.condition;
|
|
||||||
if (data_event_.condition) delete data_event_.condition;
|
|
||||||
|
|
||||||
if(notifier_) delete notifier_;
|
|
||||||
|
|
||||||
if(timestamp_cond_) delete timestamp_cond_;
|
|
||||||
if(timecheck_cond_) delete timecheck_cond_;
|
|
||||||
|
|
||||||
if(delayed_reference_) delete delayed_reference_;
|
|
||||||
if(delayed_data_) delete delayed_data_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PSetupHold::PSetupHold(event_t reference_event,
|
PSetupHold::PSetupHold(event_t* reference_event,
|
||||||
event_t data_event,
|
event_t* data_event,
|
||||||
PExpr* setup_limit,
|
PExpr* setup_limit,
|
||||||
PExpr* hold_limit,
|
PExpr* hold_limit,
|
||||||
pform_name_t* notifier,
|
pform_name_t* notifier,
|
||||||
|
|
@ -83,18 +69,4 @@ PSetupHold::PSetupHold(event_t reference_event,
|
||||||
|
|
||||||
PSetupHold::~PSetupHold()
|
PSetupHold::~PSetupHold()
|
||||||
{
|
{
|
||||||
delete setup_limit_;
|
|
||||||
delete hold_limit_;
|
|
||||||
|
|
||||||
// Delete optional arguments
|
|
||||||
if (reference_event_.condition) delete reference_event_.condition;
|
|
||||||
if (data_event_.condition) delete data_event_.condition;
|
|
||||||
|
|
||||||
if(notifier_) delete notifier_;
|
|
||||||
|
|
||||||
if(timestamp_cond_) delete timestamp_cond_;
|
|
||||||
if(timecheck_cond_) delete timecheck_cond_;
|
|
||||||
|
|
||||||
if(delayed_reference_) delete delayed_reference_;
|
|
||||||
if(delayed_data_) delete delayed_data_;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@
|
||||||
# include "LineInfo.h"
|
# include "LineInfo.h"
|
||||||
# include "PExpr.h"
|
# include "PExpr.h"
|
||||||
# include "pform_types.h"
|
# include "pform_types.h"
|
||||||
|
# include <memory>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The PTimingCheck is the base class for all timing checks
|
* The PTimingCheck is the base class for all timing checks
|
||||||
|
|
@ -36,7 +37,7 @@ class PTimingCheck : public LineInfo {
|
||||||
bool posedge;
|
bool posedge;
|
||||||
bool negedge;
|
bool negedge;
|
||||||
std::vector<EdgeType> edges;
|
std::vector<EdgeType> edges;
|
||||||
PExpr* condition;
|
std::unique_ptr<PExpr> condition;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This struct is used to parse the optional arguments
|
// This struct is used to parse the optional arguments
|
||||||
|
|
@ -65,8 +66,8 @@ class PRecRem : public PTimingCheck {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
PRecRem(event_t reference_event,
|
PRecRem(event_t* reference_event,
|
||||||
event_t data_event,
|
event_t* data_event,
|
||||||
PExpr* setup_limit,
|
PExpr* setup_limit,
|
||||||
PExpr* hold_limit,
|
PExpr* hold_limit,
|
||||||
pform_name_t* notifier,
|
pform_name_t* notifier,
|
||||||
|
|
@ -82,19 +83,19 @@ class PRecRem : public PTimingCheck {
|
||||||
void dump(std::ostream&out, unsigned ind) const override;
|
void dump(std::ostream&out, unsigned ind) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
event_t reference_event_; // hierarchy_identifier
|
std::unique_ptr<event_t> reference_event_;
|
||||||
event_t data_event_;
|
std::unique_ptr<event_t> data_event_;
|
||||||
|
|
||||||
PExpr* setup_limit_;
|
std::unique_ptr<PExpr> setup_limit_;
|
||||||
PExpr* hold_limit_;
|
std::unique_ptr<PExpr> hold_limit_;
|
||||||
|
|
||||||
pform_name_t* notifier_;
|
std::unique_ptr<pform_name_t> notifier_;
|
||||||
|
|
||||||
pform_name_t* timestamp_cond_;
|
std::unique_ptr<pform_name_t> timestamp_cond_;
|
||||||
pform_name_t* timecheck_cond_;
|
std::unique_ptr<pform_name_t> timecheck_cond_;
|
||||||
|
|
||||||
pform_name_t* delayed_reference_;
|
std::unique_ptr<pform_name_t> delayed_reference_;
|
||||||
pform_name_t* delayed_data_;
|
std::unique_ptr<pform_name_t> delayed_data_;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -103,8 +104,8 @@ class PRecRem : public PTimingCheck {
|
||||||
class PSetupHold : public PTimingCheck {
|
class PSetupHold : public PTimingCheck {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PSetupHold(event_t reference_event,
|
PSetupHold(event_t* reference_event,
|
||||||
event_t data_event,
|
event_t* data_event,
|
||||||
PExpr* setup_limit,
|
PExpr* setup_limit,
|
||||||
PExpr* hold_limit,
|
PExpr* hold_limit,
|
||||||
pform_name_t* notifier,
|
pform_name_t* notifier,
|
||||||
|
|
@ -120,19 +121,19 @@ class PSetupHold : public PTimingCheck {
|
||||||
void dump(std::ostream&out, unsigned ind) const override;
|
void dump(std::ostream&out, unsigned ind) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
event_t reference_event_; // hierarchy_identifier
|
std::unique_ptr<event_t> reference_event_;
|
||||||
event_t data_event_;
|
std::unique_ptr<event_t> data_event_;
|
||||||
|
|
||||||
PExpr* setup_limit_;
|
std::unique_ptr<PExpr> setup_limit_;
|
||||||
PExpr* hold_limit_;
|
std::unique_ptr<PExpr> hold_limit_;
|
||||||
|
|
||||||
pform_name_t* notifier_;
|
std::unique_ptr<pform_name_t> notifier_;
|
||||||
|
|
||||||
pform_name_t* timestamp_cond_;
|
std::unique_ptr<pform_name_t> timestamp_cond_;
|
||||||
pform_name_t* timecheck_cond_;
|
std::unique_ptr<pform_name_t> timecheck_cond_;
|
||||||
|
|
||||||
pform_name_t* delayed_reference_;
|
std::unique_ptr<pform_name_t> delayed_reference_;
|
||||||
pform_name_t* delayed_data_;
|
std::unique_ptr<pform_name_t> delayed_data_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* IVL_PTimingCheck_H */
|
#endif /* IVL_PTimingCheck_H */
|
||||||
|
|
|
||||||
55
elaborate.cc
55
elaborate.cc
|
|
@ -6321,15 +6321,15 @@ void PRecRem::elaborate(Design*des, NetScope*scope) const
|
||||||
{
|
{
|
||||||
if (debug_elaborate) {
|
if (debug_elaborate) {
|
||||||
cerr << get_fileline() << ": PRecRem::elaborate: Assigning "
|
cerr << get_fileline() << ": PRecRem::elaborate: Assigning "
|
||||||
<< reference_event_.name
|
<< reference_event_->name
|
||||||
<< " to " << *delayed_reference_ << endl;
|
<< " to " << *delayed_reference_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetNet*sig = des->find_signal(scope, reference_event_.name);
|
NetNet*sig = des->find_signal(scope, reference_event_->name);
|
||||||
|
|
||||||
if (sig == nullptr) {
|
if (sig == nullptr) {
|
||||||
cerr << get_fileline() << ": error: Cannot find: "
|
cerr << get_fileline() << ": error: Cannot find: "
|
||||||
<< reference_event_.name << endl;
|
<< reference_event_->name << endl;
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -6350,15 +6350,15 @@ void PRecRem::elaborate(Design*des, NetScope*scope) const
|
||||||
{
|
{
|
||||||
if (debug_elaborate) {
|
if (debug_elaborate) {
|
||||||
cerr << get_fileline() << ": PRecRem::elaborate: Assigning "
|
cerr << get_fileline() << ": PRecRem::elaborate: Assigning "
|
||||||
<< data_event_.name
|
<< data_event_->name
|
||||||
<< " to " << *delayed_data_ << endl;
|
<< " to " << *delayed_data_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetNet*sig = des->find_signal(scope, data_event_.name);
|
NetNet*sig = des->find_signal(scope, data_event_->name);
|
||||||
|
|
||||||
if (sig == nullptr) {
|
if (sig == nullptr) {
|
||||||
cerr << get_fileline() << ": error: Cannot find: "
|
cerr << get_fileline() << ": error: Cannot find: "
|
||||||
<< data_event_.name << endl;
|
<< data_event_->name << endl;
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -6388,15 +6388,15 @@ void PSetupHold::elaborate(Design*des, NetScope*scope) const
|
||||||
{
|
{
|
||||||
if (debug_elaborate) {
|
if (debug_elaborate) {
|
||||||
cerr << get_fileline() << ": PSetupHold::elaborate: Assigning"
|
cerr << get_fileline() << ": PSetupHold::elaborate: Assigning"
|
||||||
<< reference_event_.name
|
<< reference_event_->name
|
||||||
<< " to " << *delayed_reference_ << endl;
|
<< " to " << *delayed_reference_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetNet*sig = des->find_signal(scope, reference_event_.name);
|
NetNet*sig = des->find_signal(scope, reference_event_->name);
|
||||||
|
|
||||||
if (sig == nullptr) {
|
if (sig == nullptr) {
|
||||||
cerr << get_fileline() << ": error: Cannot find: "
|
cerr << get_fileline() << ": error: Cannot find: "
|
||||||
<< reference_event_.name << endl;
|
<< reference_event_->name << endl;
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -6417,15 +6417,15 @@ void PSetupHold::elaborate(Design*des, NetScope*scope) const
|
||||||
{
|
{
|
||||||
if (debug_elaborate) {
|
if (debug_elaborate) {
|
||||||
cerr << get_fileline() << ": PSetupHold::elaborate: Assigning"
|
cerr << get_fileline() << ": PSetupHold::elaborate: Assigning"
|
||||||
<< reference_event_.name
|
<< data_event_->name
|
||||||
<< " to " << *delayed_reference_ << endl;
|
<< " to " << *delayed_data_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetNet*sig = des->find_signal(scope, data_event_.name);
|
NetNet*sig = des->find_signal(scope, data_event_->name);
|
||||||
|
|
||||||
if (sig == nullptr) {
|
if (sig == nullptr) {
|
||||||
cerr << get_fileline() << ": error: Cannot find: "
|
cerr << get_fileline() << ": error: Cannot find: "
|
||||||
<< data_event_.name << endl;
|
<< data_event_->name << endl;
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -6518,10 +6518,8 @@ bool Module::elaborate(Design*des, NetScope*scope) const
|
||||||
bool result_flag = true;
|
bool result_flag = true;
|
||||||
|
|
||||||
// Elaborate within the generate blocks.
|
// Elaborate within the generate blocks.
|
||||||
typedef list<PGenerate*>::const_iterator generate_it_t;
|
for (const auto cur : generate_schemes) {
|
||||||
for (generate_it_t cur = generate_schemes.begin()
|
cur->elaborate(des, scope);
|
||||||
; cur != generate_schemes.end() ; ++ cur ) {
|
|
||||||
(*cur)->elaborate(des, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaborate functions.
|
// Elaborate functions.
|
||||||
|
|
@ -6540,10 +6538,8 @@ bool Module::elaborate(Design*des, NetScope*scope) const
|
||||||
// complex.
|
// complex.
|
||||||
const list<PGate*>&gl = get_gates();
|
const list<PGate*>&gl = get_gates();
|
||||||
|
|
||||||
for (list<PGate*>::const_iterator gt = gl.begin()
|
for (const auto gt : gl) {
|
||||||
; gt != gl.end() ; ++ gt ) {
|
gt->elaborate(des, scope);
|
||||||
|
|
||||||
(*gt)->elaborate(des, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaborate the variable initialization statements, making a
|
// Elaborate the variable initialization statements, making a
|
||||||
|
|
@ -6556,23 +6552,18 @@ bool Module::elaborate(Design*des, NetScope*scope) const
|
||||||
result_flag &= elaborate_behaviors_(des, scope);
|
result_flag &= elaborate_behaviors_(des, scope);
|
||||||
|
|
||||||
// Elaborate the specify paths of the module.
|
// Elaborate the specify paths of the module.
|
||||||
for (list<PSpecPath*>::const_iterator sp = specify_paths.begin()
|
for (const auto sp : specify_paths) {
|
||||||
; sp != specify_paths.end() ; ++ sp ) {
|
sp->elaborate(des, scope);
|
||||||
|
|
||||||
(*sp)->elaborate(des, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaborate the timing checks of the module.
|
// Elaborate the timing checks of the module.
|
||||||
for (list<PTimingCheck*>::const_iterator tc = timing_checks.begin()
|
for (const auto tc : timing_checks) {
|
||||||
; tc != timing_checks.end() ; ++ tc ) {
|
tc->elaborate(des, scope);
|
||||||
|
|
||||||
(*tc)->elaborate(des, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaborate the elaboration tasks.
|
// Elaborate the elaboration tasks.
|
||||||
for (list<PCallTask*>::const_iterator et = elab_tasks.begin()
|
for (const auto et : elab_tasks) {
|
||||||
; et != elab_tasks.end() ; ++ et ) {
|
result_flag &= et->elaborate_elab(des, scope);
|
||||||
result_flag &= (*et)->elaborate_elab(des, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result_flag;
|
return result_flag;
|
||||||
|
|
|
||||||
25
parse.y
25
parse.y
|
|
@ -33,6 +33,7 @@
|
||||||
# include <stack>
|
# include <stack>
|
||||||
# include <cstring>
|
# include <cstring>
|
||||||
# include <sstream>
|
# include <sstream>
|
||||||
|
# include <memory>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
@ -5970,11 +5971,9 @@ specify_item
|
||||||
cerr << endl;
|
cerr << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRecRem*recrem = pform_make_recrem(@1, *$3, *$5, $7, $9, $10);
|
PRecRem*recrem = pform_make_recrem(@1, $3, $5, $7, $9, $10);
|
||||||
pform_module_timing_check((PTimingCheck*)recrem);
|
pform_module_timing_check(recrem);
|
||||||
|
|
||||||
delete $3; // spec_reference_event
|
|
||||||
delete $5; // spec_reference_event
|
|
||||||
delete $10; // setuphold_recrem_opt_notifier
|
delete $10; // setuphold_recrem_opt_notifier
|
||||||
}
|
}
|
||||||
| K_Sremoval '(' spec_reference_event ',' spec_reference_event
|
| K_Sremoval '(' spec_reference_event ',' spec_reference_event
|
||||||
|
|
@ -6009,11 +6008,9 @@ specify_item
|
||||||
cerr << endl;
|
cerr << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
PSetupHold*setuphold = pform_make_setuphold(@1, *$3, *$5, $7, $9, $10);
|
PSetupHold*setuphold = pform_make_setuphold(@1, $3, $5, $7, $9, $10);
|
||||||
pform_module_timing_check((PTimingCheck*)setuphold);
|
pform_module_timing_check(setuphold);
|
||||||
|
|
||||||
delete $3; // spec_reference_event
|
|
||||||
delete $5; // spec_reference_event
|
|
||||||
delete $10; // setuphold_recrem_opt_notifier
|
delete $10; // setuphold_recrem_opt_notifier
|
||||||
}
|
}
|
||||||
| K_Sskew '(' spec_reference_event ',' spec_reference_event
|
| K_Sskew '(' spec_reference_event ',' spec_reference_event
|
||||||
|
|
@ -6267,7 +6264,7 @@ spec_reference_event
|
||||||
event->name = *$1;
|
event->name = *$1;
|
||||||
event->posedge = false;
|
event->posedge = false;
|
||||||
event->negedge = false;
|
event->negedge = false;
|
||||||
event->condition = $3;
|
event->condition = std::unique_ptr<PExpr>($3);
|
||||||
delete $1;
|
delete $1;
|
||||||
$$ = event;
|
$$ = event;
|
||||||
}
|
}
|
||||||
|
|
@ -6294,7 +6291,7 @@ spec_reference_event
|
||||||
event->name = *$2;
|
event->name = *$2;
|
||||||
event->posedge = true;
|
event->posedge = true;
|
||||||
event->negedge = false;
|
event->negedge = false;
|
||||||
event->condition = $4;
|
event->condition = std::unique_ptr<PExpr>($4);
|
||||||
delete $2;
|
delete $2;
|
||||||
$$ = event;
|
$$ = event;
|
||||||
}
|
}
|
||||||
|
|
@ -6303,7 +6300,7 @@ spec_reference_event
|
||||||
event->name = *$2;
|
event->name = *$2;
|
||||||
event->posedge = false;
|
event->posedge = false;
|
||||||
event->negedge = true;
|
event->negedge = true;
|
||||||
event->condition = $4;
|
event->condition = std::unique_ptr<PExpr>($4);
|
||||||
delete $2;
|
delete $2;
|
||||||
$$ = event;
|
$$ = event;
|
||||||
}
|
}
|
||||||
|
|
@ -6323,7 +6320,7 @@ spec_reference_event
|
||||||
event->posedge = false;
|
event->posedge = false;
|
||||||
event->negedge = false;
|
event->negedge = false;
|
||||||
// TODO add edge descriptors
|
// TODO add edge descriptors
|
||||||
event->condition = $7;
|
event->condition = std::unique_ptr<PExpr>($7);
|
||||||
delete $5;
|
delete $5;
|
||||||
$$ = event;
|
$$ = event;
|
||||||
}
|
}
|
||||||
|
|
@ -6526,14 +6523,14 @@ timeskew_fullskew_opt_remain_active_flag
|
||||||
|
|
||||||
spec_notifier_opt
|
spec_notifier_opt
|
||||||
: /* empty */
|
: /* empty */
|
||||||
{ $$ = 0; }
|
{ $$ = nullptr; }
|
||||||
| spec_notifier
|
| spec_notifier
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
spec_notifier
|
spec_notifier
|
||||||
: ','
|
: ','
|
||||||
{ $$ = 0; }
|
{ $$ = nullptr; }
|
||||||
| ',' hierarchy_identifier
|
| ',' hierarchy_identifier
|
||||||
{ $$ = $2; }
|
{ $$ = $2; }
|
||||||
;
|
;
|
||||||
|
|
|
||||||
10
pform.cc
10
pform.cc
|
|
@ -3114,8 +3114,8 @@ extern void pform_module_specify_path(PSpecPath*obj)
|
||||||
* Timing checks.
|
* Timing checks.
|
||||||
*/
|
*/
|
||||||
extern PRecRem* pform_make_recrem(const struct vlltype&li,
|
extern PRecRem* pform_make_recrem(const struct vlltype&li,
|
||||||
PTimingCheck::event_t&reference_event,
|
PTimingCheck::event_t*reference_event,
|
||||||
PTimingCheck::event_t&data_event,
|
PTimingCheck::event_t*data_event,
|
||||||
PExpr*setup_limit,
|
PExpr*setup_limit,
|
||||||
PExpr*hold_limit,
|
PExpr*hold_limit,
|
||||||
PTimingCheck::optional_args_t* args)
|
PTimingCheck::optional_args_t* args)
|
||||||
|
|
@ -3139,8 +3139,8 @@ extern void pform_module_specify_path(PSpecPath*obj)
|
||||||
return recrem;
|
return recrem;
|
||||||
}
|
}
|
||||||
extern PSetupHold* pform_make_setuphold(const struct vlltype&li,
|
extern PSetupHold* pform_make_setuphold(const struct vlltype&li,
|
||||||
PTimingCheck::event_t&reference_event,
|
PTimingCheck::event_t*reference_event,
|
||||||
PTimingCheck::event_t&data_event,
|
PTimingCheck::event_t*data_event,
|
||||||
PExpr*setup_limit,
|
PExpr*setup_limit,
|
||||||
PExpr*hold_limit,
|
PExpr*hold_limit,
|
||||||
PTimingCheck::optional_args_t* args)
|
PTimingCheck::optional_args_t* args)
|
||||||
|
|
@ -3166,7 +3166,7 @@ extern PSetupHold* pform_make_setuphold(const struct vlltype&li,
|
||||||
|
|
||||||
extern void pform_module_timing_check(PTimingCheck*obj)
|
extern void pform_module_timing_check(PTimingCheck*obj)
|
||||||
{
|
{
|
||||||
if (obj == 0)
|
if (!obj)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pform_cur_module.front()->timing_checks.push_back(obj);
|
pform_cur_module.front()->timing_checks.push_back(obj);
|
||||||
|
|
|
||||||
8
pform.h
8
pform.h
|
|
@ -434,15 +434,15 @@ extern void pform_module_specify_path(PSpecPath*obj);
|
||||||
* Functions related to timing checks.
|
* Functions related to timing checks.
|
||||||
*/
|
*/
|
||||||
extern PRecRem* pform_make_recrem(const struct vlltype&li,
|
extern PRecRem* pform_make_recrem(const struct vlltype&li,
|
||||||
PTimingCheck::event_t&reference_event,
|
PTimingCheck::event_t*reference_event,
|
||||||
PTimingCheck::event_t&data_event,
|
PTimingCheck::event_t*data_event,
|
||||||
PExpr*setup_limit,
|
PExpr*setup_limit,
|
||||||
PExpr*hold_limit,
|
PExpr*hold_limit,
|
||||||
PTimingCheck::optional_args_t* args
|
PTimingCheck::optional_args_t* args
|
||||||
);
|
);
|
||||||
extern PSetupHold* pform_make_setuphold(const struct vlltype&li,
|
extern PSetupHold* pform_make_setuphold(const struct vlltype&li,
|
||||||
PTimingCheck::event_t&reference_event,
|
PTimingCheck::event_t*reference_event,
|
||||||
PTimingCheck::event_t&data_event,
|
PTimingCheck::event_t*data_event,
|
||||||
PExpr*setup_limit,
|
PExpr*setup_limit,
|
||||||
PExpr*hold_limit,
|
PExpr*hold_limit,
|
||||||
PTimingCheck::optional_args_t* args
|
PTimingCheck::optional_args_t* args
|
||||||
|
|
|
||||||
|
|
@ -1718,10 +1718,8 @@ void Module::dump_timingchecks_(ostream&out, unsigned indent) const
|
||||||
{
|
{
|
||||||
cout << "dump_timingchecks_" << endl;
|
cout << "dump_timingchecks_" << endl;
|
||||||
|
|
||||||
typedef list<PTimingCheck*>::const_iterator tcheck_iter_t;
|
for (const auto cur : timing_checks) {
|
||||||
for (tcheck_iter_t cur = timing_checks.begin()
|
cur->dump(out, indent);
|
||||||
; cur != timing_checks.end() ; ++ cur ) {
|
|
||||||
(*cur)->dump(out, indent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue