xspice, digital/d_fdiv, fix the type of counter and counter_old

from Digital_State_t to int
This commit is contained in:
rlar 2010-07-16 15:38:27 +00:00
parent 84a69a3896
commit 1915f964dc
2 changed files with 13 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2010-07-16 Robert Larice
* src/xspice/icm/digital/d_fdiv/cfunc.mod :
xspice, digital/d_fdiv, fix the type of counter and counter_old
from Digital_State_t to int
2010-07-16 Robert Larice
* src/xspice/icm/digital/d_dff/cfunc.mod ,
* src/xspice/icm/digital/d_dlatch/cfunc.mod ,

View File

@ -135,9 +135,9 @@ void cm_d_fdiv(ARGS)
Digital_State_t *freq_in, /* freq_in clock value */
*freq_in_old, /* previous freq_in value */
*freq_out, /* current output for fdiv */
*freq_out_old, /* previous output for fdiv */
*freq_out_old; /* previous output for fdiv */
*count, /* counter value */
int *count, /* counter value */
*count_old; /* previous counter value */
@ -149,7 +149,7 @@ void cm_d_fdiv(ARGS)
/* allocate storage */
cm_event_alloc(0,sizeof(Digital_State_t));
cm_event_alloc(1,sizeof(Digital_State_t));
cm_event_alloc(2,sizeof(Digital_State_t));
cm_event_alloc(2,sizeof(int));
/* declare load values */
LOAD(freq_in) = PARAM(freq_in_load);
@ -157,7 +157,7 @@ void cm_d_fdiv(ARGS)
/* retrieve storage for the outputs */
freq_in = freq_in_old = (Digital_State_t *) cm_event_get_ptr(0,0);
freq_out = freq_out_old = (Digital_State_t *) cm_event_get_ptr(1,0);
count = count_old = (Digital_State_t *) cm_event_get_ptr(2,0);
count = count_old = (int *) cm_event_get_ptr(2,0);
}
else { /* Retrieve previous values */
@ -167,8 +167,8 @@ void cm_d_fdiv(ARGS)
freq_in_old = (Digital_State_t *) cm_event_get_ptr(0,1);
freq_out = (Digital_State_t *) cm_event_get_ptr(1,0);
freq_out_old = (Digital_State_t *) cm_event_get_ptr(1,1);
count = (Digital_State_t *) cm_event_get_ptr(2,0);
count_old = (Digital_State_t *) cm_event_get_ptr(2,1);
count = (int *) cm_event_get_ptr(2,0);
count_old = (int *) cm_event_get_ptr(2,1);
}
@ -191,7 +191,7 @@ void cm_d_fdiv(ARGS)
bounds, set to "zero" equivalent */
*count = PARAM(i_count);
if ( (div_factor <= *count) || (0 > *count) ) {
*count = ZERO;
*count = 0;
OUTPUT_STATE(freq_out) = *freq_out = *freq_out_old = ZERO;
}
@ -216,7 +216,7 @@ void cm_d_fdiv(ARGS)
/* If new count value is equal to the div_factor+1 value,
need to normalize count to "1", and raise output */
if ( ((div_factor+1) == *count)||(1 == *count) ) {
*count = ONE;
*count = 1;
OUTPUT_STATE(freq_out) = *freq_out = ONE;
OUTPUT_DELAY(freq_out) = PARAM(rise_delay);
}