------------------------------------------------------------------------------- -- Copyright (c) 2001 Mentor Graphics Corporation -- -- This model is a component of the Mentor Graphics VHDL-AMS educational open -- source model library, and is covered by this license agreement. This model, -- including any updates, modifications, revisions, copies, and documentation -- are copyrighted works of Mentor Graphics. USE OF THIS MODEL INDICATES YOUR -- COMPLETE AND UNCONDITIONAL ACCEPTANCE OF THE TERMS AND CONDITIONS SET FORTH -- IN THIS LICENSE AGREEMENT. Mentor Graphics grants you a non-exclusive -- license to use, reproduce, modify and distribute this model, provided that: -- (a) no fee or other consideration is charged for any distribution except -- compilations distributed in accordance with Section (d) of this license -- agreement; (b) the comment text embedded in this model is included verbatim -- in each copy of this model made or distributed by you, whether or not such -- version is modified; (c) any modified version must include a conspicuous -- notice that this model has been modified and the date of modification; and -- (d) any compilations sold by you that include this model must include a -- conspicuous notice that this model is available from Mentor Graphics in its -- original form at no charge. -- -- THIS MODEL IS LICENSED TO YOU "AS IS" AND WITH NO WARRANTIES, EXPRESS OR -- IMPLIED. MENTOR GRAPHICS SPECIFICALLY DISCLAIMS ALL IMPLIED WARRANTIES OF -- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MENTOR GRAPHICS SHALL -- HAVE NO RESPONSIBILITY FOR ANY DAMAGES WHATSOEVER. ------------------------------------------------------------------------------- -- File : v_SweptSine.vhd -- Author : Mentor Graphics -- Created : 2001/07/11 -- Last update: 2002-05-24 ------------------------------------------------------------------------------- -- Description: Swept Sinusoidal Voltage source ------------------------------------------------------------------------------- -- Revisions : -- Date Version Author Description -- 2001/07/11 1.0 Mentor Graphics Created -- 2002/02/11 1.1 Mentor Graphics Fixed a bug in the -- initialization routine ------------------------------------------------------------------------------- library ieee; use ieee.math_real.all; library IEEE; use IEEE.electrical_systems.all; entity v_SweptSine is generic ( InitDelay : real := 1.0; -- initial delay [Sec] StartFreq : real := 1.0; -- sweep start freq [Hz] SweepRate : real := 1.0; -- sweep rate [Hz/Sec] FinishFreq : real := 1.0e7; -- sweep finish freq [Hz] PeakAmp : voltage := 1.0; -- output peak amplitude [Volts] Offset : voltage := 0.0; -- offset voltage [Volts] ac_mag : voltage := 1.0; -- AC magnitude [Volts] ac_phase : real := 0.0 -- AC phase [Degrees] ); port ( terminal pos, neg : electrical); end entity v_SweptSine; architecture bhv of v_SweptSine is quantity vout across iout through pos to neg; quantity Freq : real; quantity phi : real; -- Declare Quantity in frequency domain for AC analysis quantity ac_spec : real spectrum ac_mag, math_2_pi*ac_phase/360.0; begin if NOW > InitDelay and Freq < FinishFreq use Freq == StartFreq + SweepRate*(NOW-InitDelay); elsif Freq >= FinishFreq use Freq == FinishFreq; else Freq == StartFreq; end use; -- Initialize for each domain if domain = frequency_domain use phi'dot == 0.0; vout == ac_spec; elsif domain = quiescent_domain use phi == 0.0; vout == Offset; else phi'dot == Freq; vout == Offset + PeakAmp*sin(math_2_pi*phi); end use; end architecture bhv; ------------------------------------------------------------------------------- -- Copyright (c) 2001 Mentor Graphics Corporation -------------------------------------------------------------------------------