You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

165 lines
3.1 KiB

/*.......1.........2.........3.........4.........5.........6.........7.........8
================================================================================
FILE d_tristate/cfunc.mod
Public Domain
Georgia Tech Research Corporation
Atlanta, Georgia 30332
PROJECT A-8503-405
AUTHORS
18 Nov 1991 Jeffrey P. Murray
MODIFICATIONS
26 Nov 1991 Jeffrey P. Murray
SUMMARY
This file contains the functional description of the d_tristate
code model.
INTERFACES
FILE ROUTINE CALLED
CMevt.c void *cm_event_alloc()
void *cm_event_get_ptr()
REFERENCED FILES
Inputs from and outputs to ARGS structure.
NON-STANDARD FEATURES
NONE
===============================================================================*/
/*=== INCLUDE FILES ====================*/
/*=== CONSTANTS ========================*/
/*=== MACROS ===========================*/
/*=== LOCAL VARIABLES & TYPEDEFS =======*/
/*=== FUNCTION PROTOTYPE DEFINITIONS ===*/
/*==============================================================================
FUNCTION cm_d_tristate()
AUTHORS
18 Nov 1991 Jeffrey P. Murray
MODIFICATIONS
26 Nov 1991 Jeffrey P. Murray
SUMMARY
This function implements the d_tristate code model.
INTERFACES
FILE ROUTINE CALLED
CMevt.c void *cm_event_alloc()
void *cm_event_get_ptr()
RETURNED VALUE
Returns inputs and outputs via ARGS structure.
GLOBAL VARIABLES
NONE
NON-STANDARD FEATURES
NONE
==============================================================================*/
/*=== CM_D_TRISTATE ROUTINE ===*/
/************************************************
* The following is a model for a simple *
* digital tristate for the ATESSE Version *
* 2.0 system. Note that this version has *
* a single delay for both input and enable... *
* a more realistic model is anticipated in *
* the not-so-distant future. *
* *
* Created 11/18/91 J.P,Murray *
* Last Modified 11/26/91 *
************************************************/
void cm_d_tristate(ARGS)
{
int enable; /* holding variable for enable input */
/* Retrieve input values and static variables */
enable = INPUT_STATE(enable);
OUTPUT_STATE(out) = INPUT_STATE(in);
OUTPUT_DELAY(out) = PARAM(delay);
/* define input loading... */
LOAD(in) = PARAM(input_load);
LOAD(enable) = PARAM(enable_load);
if (ZERO == enable) {
OUTPUT_STRENGTH(out) = HI_IMPEDANCE;
}
else
if (UNKNOWN == enable) {
OUTPUT_STRENGTH(out) = UNDETERMINED;
}
else {
OUTPUT_STRENGTH(out) = STRONG;
}
}