// ************************************************************************** // // 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 // // ************************************************************************** // // DeltaSigmaModulator is an Analog mixed signal(AMS) system model. // // The example has been taken from the following reference: // @phdthesis{Baue12, // key ={Baue12}, // author ={K. Bauer}, // title ={A New Modelling Language for Cyber-physical Systems}, // address ={Kaiserslautern, Germany}, // editor ={K. Schneider and R. Majumdar}, // month ={January}, // school ={Department of Computer Science, University of Kaiserslautern, Germany}, // year ={2012}, // note ={PhD}, // remark ={rsg} // } // ****************************************************************************** macro deltaT = 3.14159/2.0; module DeltaSigmaModulator( ) { hybrid real mySignal,t; int out,dac; real integral; flow{} until (true); dac = −1; mySignal = 0.0; flow{}until(true); { // analog signal flow{ mySign al <− sin(cont(time)); } until (false); } || { // Delta Sigma Modulator loop{ next(integral) = integral + deltaT∗(mySignal − dac); flow{} until (true); if (integral > 0){ out = 1; } else { out = −1; } next(dac) = out; t = 0; flow{ drv(t) <− 1.0; } until (cont(t) >= deltaT); } } }