------------------------------------------------------------------------------- -- Copyright (c) 2003 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 : adaptive_z.vhd -- Author : Mentor Graphics -- Created : 2003-05-30 -- Last update: ------------------------------------------------------------------------------- -- Description: Adaptive Impedance Model. Can be used as an adaptive termination -- (parallel resistor). Decrements the impedance by rinc, starting from rmax down -- to as low as rmin, whenever the differential voltage (v(pos) - v(neg) drops -- below v_trigger. The voltage must rise above v_arm before it can perform the -- next impedance decrement. Note: v_trigger must be less than v_arm. ------------------------------------------------------------------------------- -- Revisions : -- Date Version Author Description -- 2003-05-30 1.0 Mentor Graphics Created ------------------------------------------------------------------------------- Library IEEE; use IEEE.electrical_systems.all; entity adaptive_z is generic ( rmax : resistance := 100.0; -- Maximum value of input resistor. rmin : resistance := 20.0 ; -- Minimum value of input resistor. rinc : resistance := 10.0; -- Increment (downward) for input resistor. v_trigger : voltage := -0.1; -- Trigger voltage level v_arm : voltage := 1.0; -- Arming voltage level trans_time : real := 10.0e-12 -- Ramp time for incremental resistance transitions ); port ( terminal pos, neg : electrical ); end entity adaptive_z; architecture behavioral of adaptive_z is QUANTITY v across i through pos TO neg; SIGNAL r_signal : real := rmax; -- Instantaneous (discontinuous) resistance values QUANTITY r : real; -- Effective (continuous) resistance value begin adapt : process begin wait until not v'above(v_trigger); -- Falling trigger voltage crossing if (r_signal - rinc) >= rmin then r_signal <= r_signal - rinc; -- If allowed, reduce input resistance end if; wait until v'above(v_arm); -- Wait for voltage to rise above arming level end process adapt; r == r_signal'ramp(trans_time, trans_time); -- Convert discontinuous r_signal to continuous resistance v == i*r; -- Ohm's law end architecture behavioral; ------------------------------------------------------------------------------- -- Copyright (c) 2003 Mentor Graphics Corporation -------------------------------------------------------------------------------