OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [orpsocv2/] [bench/] [sysc/] [include/] [TapActionDRScan.h] - Diff between revs 63 and 462

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 63 Rev 462
Line 26... Line 26...
 
 
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
 
 
// $Id$
// $Id$
 
 
 
 
#ifndef TAP_ACTION_DR_SCAN__H
#ifndef TAP_ACTION_DR_SCAN__H
#define TAP_ACTION_DR_SCAN__H
#define TAP_ACTION_DR_SCAN__H
 
 
#include <stdint.h>
#include <stdint.h>
 
 
#include "TapAction.h"
#include "TapAction.h"
#include "TapStateMachine.h"
#include "TapStateMachine.h"
 
 
 
 
//! Class to represent a TAP DR-Scan action.
//! Class to represent a TAP DR-Scan action.
 
 
//! JTAG data registers can be huge and are represented generically as arrays
//! JTAG data registers can be huge and are represented generically as arrays
//! of uint64_t. However for efficiency versions of methods are provided based
//! of uint64_t. However for efficiency versions of methods are provided based
//! on a single uint64_t.
//! on a single uint64_t.
 
 
//! The SystemC classes for large unsigned ints are fabulously inefficient in
//! The SystemC classes for large unsigned ints are fabulously inefficient in
//! the reference implementation, so are not used here.
//! the reference implementation, so are not used here.
 
 
class TapActionDRScan
class TapActionDRScan:public TapAction {
  : public TapAction
 
{
 
public:
public:
 
 
  // Constructors and destructor
  // Constructors and destructor
  TapActionDRScan (sc_core::sc_event *_doneEvent,
  TapActionDRScan (sc_core::sc_event *_doneEvent,
                   uint64_t           _dRegInArray[],
                        uint64_t _dRegInArray[], int _dRegSize);
                   int                _dRegSize);
 
  TapActionDRScan (sc_core::sc_event *_doneEvent,
  TapActionDRScan (sc_core::sc_event *_doneEvent,
                   uint64_t           _dRegIn,
                         uint64_t _dRegIn, int _dRegSize);
                   int                _dRegSize);
 
  TapActionDRScan (sc_core::sc_event *_doneEvent,
  TapActionDRScan (sc_core::sc_event *_doneEvent,
                   uint64_t           _dRegInArray[],
                   uint64_t           _dRegInArray[],
                   int                _dRegSize,
                   int                _dRegSize,
                   int                _goToPauseState,
                         int _goToPauseState, int _bitsBeforePauseState);
                   int                _bitsBeforePauseState);
 
  TapActionDRScan (sc_core::sc_event *_doneEvent,
  TapActionDRScan (sc_core::sc_event *_doneEvent,
                   uint64_t           _dRegIn,
                   uint64_t           _dRegIn,
                   int                _dRegSize,
                   int                _dRegSize,
                   int                _goToPauseState,
                         int _goToPauseState, int _bitsBeforePauseState);
                   int                _bitsBeforePauseState);
 
  ~TapActionDRScan ();
  ~TapActionDRScan ();
 
 
  // Get the shifted out value
  // Get the shifted out value
  void      getDRegOut (uint64_t  dRegArray[]);
  void      getDRegOut (uint64_t  dRegArray[]);
  uint64_t  getDRegOut ();
  uint64_t  getDRegOut ();
 
 
 
 
protected:
protected:
 
 
  // Process the action for IR-Scan
  // Process the action for IR-Scan
  bool  process (TapStateMachine *tapStateMachine,
  bool  process (TapStateMachine *tapStateMachine,
                 bool            &tdi,
                      bool & tdi, bool tdo, bool & tms);
                 bool             tdo,
 
                 bool            &tms);
 
 
 
 
 
private:
private:
 
 
  //! Number of bits in the data register
  //! Number of bits in the data register
  int  dRegBitSize;
  int  dRegBitSize;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.