// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // // The following algorithm converts a given integer zin to its B-complement // // representation to base B provided that N digits are sufficient. // // ************************************************************************** // macro B = 4; macro N = 10; module ToBComplement(int ?zin,[N]nat{B} x,event !rdy) { int z; nat{N+1} i; z = zin; i = 0; while(z!=0 & z!=-1) { x[i] = z % B; next(i) = i+1; next(z) = z / B; pause; } while(i<N) { x[i] = (z==0 ? 0 : B-1); next(i) = i+1; pause; } emit(rdy); } drivenby { zin = 25; await(rdy); } drivenby { zin = -25; await(rdy); }