// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
|
|
// TAP reset action : definition
|
// TAP reset action : definition
|
|
|
// Copyright (C) 2009 Embecosm Limited <info@embecosm.com>
|
// Copyright (C) 2009 Embecosm Limited <info@embecosm.com>
|
|
|
// Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
|
// Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
|
|
|
// This file is part of the Embecosm cycle accurate SystemC JTAG library.
|
// This file is part of the Embecosm cycle accurate SystemC JTAG library.
|
|
|
// This program is free software: you can redistribute it and/or modify it
|
// This program is free software: you can redistribute it and/or modify it
|
// under the terms of the GNU Lesser General Public License as published by
|
// under the terms of the GNU Lesser General Public License as published by
|
// the Free Software Foundation, either version 3 of the License, or (at your
|
// the Free Software Foundation, either version 3 of the License, or (at your
|
// option) any later version.
|
// option) any later version.
|
|
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
// License for more details.
|
// License for more details.
|
|
|
// You should have received a copy of the GNU Lesser General Public License
|
// You should have received a copy of the GNU Lesser General Public License
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
// The C/C++ parts of this program are commented throughout in a fashion
|
// The C/C++ parts of this program are commented throughout in a fashion
|
// suitable for processing with Doxygen.
|
// suitable for processing with Doxygen.
|
|
|
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
|
|
// $Id$
|
// $Id$
|
|
|
|
|
#ifndef TAP_RESET_ACTION__H
|
#ifndef TAP_RESET_ACTION__H
|
#define TAP_RESET_ACTION__H
|
#define TAP_RESET_ACTION__H
|
|
|
#include "TapAction.h"
|
#include "TapAction.h"
|
#include "TapStateMachine.h"
|
#include "TapStateMachine.h"
|
|
|
|
|
//! Class to represent a TAP reset action.
|
//! Class to represent a TAP reset action.
|
|
|
//! This can be very simple, since it reuses the parent class method to do the
|
//! This can be very simple, since it reuses the parent class method to do the
|
//! reset.
|
//! reset.
|
|
|
class TapActionReset
|
class TapActionReset:public TapAction {
|
: public TapAction
|
|
{
|
|
public:
|
public:
|
|
|
// Constructor
|
// Constructor
|
TapActionReset (sc_core::sc_event *_doneEvent);
|
TapActionReset(sc_core::sc_event * _doneEvent);
|
|
|
|
|
protected:
|
protected:
|
|
|
// Process the action for reset
|
// Process the action for reset
|
bool process (TapStateMachine *tapStateMachine,
|
bool process (TapStateMachine *tapStateMachine,
|
bool &tdi,
|
bool & tdi, bool tdo, bool & tms);
|
bool tdo,
|
|
bool &tms);
|
|
|
|
|
|
private:
|
private:
|
|
|
//!< Flag to mark first call to process method
|
//!< Flag to mark first call to process method
|
bool firstTime;
|
bool firstTime;
|
|
|
}; // TapActionReset
|
}; // TapActionReset
|
|
|
#endif // TAP_RESET_ACTION__H
|
#endif // TAP_RESET_ACTION__H
|
|
|