aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/vests/vhdl-ams/ashenden/compliant/AMS_CS3_Power_Systems/CalcBuckParams.vhd
blob: 176837f011a9a63e241d9c33515e5515aff664a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
-- Copyright (C) 2002 Morgan Kaufmann Publishers, Inc

-- This file is part of VESTs (Vhdl tESTs).

-- VESTs is free software; you can redistribute it and/or modify it
-- under the terms of the GNU General Public License as published by the
-- Free Software Foundation; either version 2 of the License, or (at
-- your option) any later version. 

-- VESTs is distributed in the hope that it will be useful, but WITHOUT
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-- for more details. 

-- You should have received a copy of the GNU General Public License
-- along with VESTs; if not, write to the Free Software Foundation,
-- Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

library ieee_proposed;  use ieee_proposed.electrical_systems.all;

entity CalcBuckParams is

  generic ( Vin : voltage range 1.0 to 50.0 := 42.0;  -- input voltage [volts]
            Vout : voltage := 4.8;		      -- output voltage [volts]
            Vd : voltage := 0.7;		      -- diode voltage [volts]
            Imin : current := 15.0e-3;	              -- min output current [amps]
            Vripple : voltage range 1.0e-6 to 100.0
                        := 100.0e-3 );                -- output voltage ripple [volts]

  port ( quantity Fsw : in real range 1.0 to 1.0e6
                          := 2.0;                     -- switching frequency [Hz]
         quantity Lmin : out inductance;	      -- minimum inductance [henries]
         quantity Cmin : out capacitance );	      -- minimum capacitance [farads]

end entity CalcBuckParams;

----------------------------------------------------------------

architecture behavioral of CalcBuckParams is

  constant D : real := (Vout + Vd) / Vin;  -- duty cycle
  quantity Ts : real;		           -- period
  quantity Ton : real;		           -- on time

begin

    Ts == 1.0 / Fsw;

    Ton == D * Ts;

    Lmin == (Vin - Vout) * Ton / (2.0 * Imin);

    Cmin == (2.0 * Imin) / (8.0 * Fsw * Vripple);

end architecture behavioral;