| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- * Customer ID=11656; Build=0x5f626; Copyright (c) 2009-2013 by Tensilica Inc. ALL RIGHTS RESERVED.
- * These coded instructions, statements, and computer programs are the
- * copyrighted works and confidential proprietary information of
- * Tensilica Inc. They may be adapted and modified by bona fide
- * purchasers for internal use, but neither the original nor any
- * adapted or modified version may be disclosed or distributed to
- * third parties in any manner, medium, or form, in whole or in part,
- * without the prior written consent of Tensilica Inc.
- *
- * This software and its derivatives are to be executed solely on
- * products incorporating a Tensilica processor.
- */
- // Utility routines for returning pass/fail status in HW simulations
- #ifndef XT_REF_TESTBENCH_H
- #define XT_REF_TESTBENCH_H 1
- #ifdef __cplusplus
- extern "C" {
- #endif
- // Exit routines for HW simulation
- extern int diag_pass();
- extern int diag_fail();
- // Set exit status for HW simulation
- int set_diag_status(int stat);
- // Setup for user power toggling
- extern int setup_power_toggle();
- // Return exit status location
- extern unsigned int* testbench_exit_location();
- // Return power toggle location
- extern unsigned int* testbench_power_toggle_location();
- // Change exit status location
- // You must also change the plusarg "+DVMagicExit" sent to the HW simulator
- // or change the argument "--exit_location" sent to the ISS
- extern unsigned int* set_testbench_exit_location(unsigned int*);
- // Change power toggle location
- // You must also change the plusarg "+DVPowerLoc" sent to the HW simulator
- extern unsigned int* set_testbench_power_toggle_location(unsigned int*);
- // Exit routines with status message
- //
- static inline
- int pass(const char *msg)
- {
- return diag_pass();
- }
- static inline
- int fail(const char *msg)
- {
- return diag_fail();
- }
- #define POWER_TOGGLE_ON 1
- #define POWER_TOGGLE_OFF 0
- // Routine to turn on and off power toggle
- // Does a magic write that Monitors.v intercepts and appropriately turns
- // SAIF dumping on and offf
- //
- extern volatile unsigned int *_reftb_power_toggle;
- __attribute__ ((always_inline))
- static inline
- int set_power_toggle(int val)
- {
- #ifdef __XTENSA__
- *_reftb_power_toggle = val;
- #endif
- return val;
- }
- #ifdef __cplusplus
- }
- #endif
- #endif // XT_REF_TESTBENCH_H
|