clear all; close all;
PLOT_TRADEOFF = 1;
m = 7;
f = [1 0.8 1 0.7 0.7 0.5 0.5]';
e = [1 2 1 1.5 1.5 1 2]';
Cout6 = 10;
Cout7 = 10;
a = ones(m,1);
alpha = ones(m,1);
beta = ones(m,1);
gamma = ones(m,1);
Amax = 25; Pmax = 50;
gpvar x(m)
cin = alpha + beta.*x;
cload(1) = cin(4);
cload(2) = cin(4) + cin(5);
cload(3) = cin(5) + cin(7);
cload(4) = cin(6) + cin(7);
cload(5) = cin(7);
cload(6) = Cout6;
cload(7) = Cout7;
d = (cload').*gamma./x;
power = (f.*e)'*x;
area = a'*x;
constr_x = ones(m,1) <= x;
path_delays = [ ...
d(1) + d(4) + d(6);
d(1) + d(4) + d(7);
d(2) + d(4) + d(6);
d(2) + d(4) + d(7);
d(2) + d(5) + d(7);
d(3) + d(5) + d(6);
d(3) + d(7) ];
circuit_delay = max(path_delays);
constr = [power <= Pmax; area <= Amax; constr_x];
[obj_value, solution, status] = gpsolve(circuit_delay, constr);
assign(solution);
fprintf(1,'\nOptimal circuit delay for Pmax = %d and Amax = %d is %3.4f.\n', ...
Pmax, Amax, obj_value)
disp('Optimal scale factors are: ')
x
if( PLOT_TRADEOFF )
N = 25;
Pmax = linspace(10,100,N);
Amax = [25 50 100];
min_delay = zeros(length(Amax),N);
global QUIET; QUIET = 1;
for k = 1:length(Amax)
for n = 1:N
constr(1) = power <= Pmax(n);
constr(2) = area <= Amax(k);
[obj_value, solution, status] = gpsolve(circuit_delay, constr);
min_delay(k,n) = obj_value;
end
end
global QUIET; QUIET = 0;
plot(Pmax,min_delay(1,:), Pmax,min_delay(2,:), Pmax,min_delay(3,:));
xlabel('Pmax'); ylabel('Dmin');
end
Iteration primal obj. gap dual residual previous step.
1 3.89037e+00 3.20000e+01 1.07e+02 Inf
2 3.47240e+00 1.32459e+01 3.10e-01 9.52513e-01
3 1.85461e+00 9.31800e+00 7.64e-02 5.09750e-01
4 1.22655e+00 6.88966e+00 2.15e-02 4.73957e-01
5 8.60617e-01 5.18674e+00 3.42e-03 6.03053e-01
6 4.04436e-01 3.55712e+00 6.32e-04 5.64136e-01
7 -1.66117e-02 2.08420e+00 4.59e-05 7.20804e-01
Iteration primal obj. gap dual residual previous step.
1 4.76437e+01 3.20000e+01 7.63e-01 Inf
2 1.38223e+01 2.64314e+01 5.85e-01 1.24588e-01
3 5.76117e+00 2.23269e+01 3.29e-01 2.50000e-01
4 5.17905e+00 1.56792e+01 3.02e-04 1.00000e+00
5 3.69433e+00 7.84091e+00 3.18e-04 1.00000e+00
6 2.81300e+00 3.92205e+00 1.66e-04 1.00000e+00
7 2.35935e+00 1.96290e+00 5.99e-05 1.00000e+00
8 2.12727e+00 9.82837e-01 1.30e-05 1.00000e+00
9 2.01360e+00 4.91886e-01 1.64e-06 1.00000e+00
10 1.96179e+00 2.46028e-01 1.40e-07 1.00000e+00
11 1.93877e+00 1.23196e-01 6.80e-08 1.00000e+00
12 1.92771e+00 6.18340e-02 8.84e-08 1.00000e+00
13 1.92225e+00 3.10914e-02 4.45e-08 1.00000e+00
14 1.91955e+00 1.56506e-02 1.56e-08 1.00000e+00
15 1.91821e+00 7.88274e-03 4.60e-09 1.00000e+00
16 1.91755e+00 3.97081e-03 1.19e-09 1.00000e+00
17 1.91722e+00 1.99948e-03 2.68e-10 1.00000e+00
18 1.91705e+00 1.00589e-03 4.96e-11 1.00000e+00
19 1.91696e+00 5.05378e-04 7.21e-12 1.00000e+00
20 1.91691e+00 2.53560e-04 8.23e-13 1.00000e+00
21 1.91689e+00 1.27057e-04 7.56e-14 1.00000e+00
22 1.91688e+00 6.36062e-05 5.71e-15 1.00000e+00
23 1.91687e+00 3.18233e-05 3.80e-16 1.00000e+00
24 1.91687e+00 1.59168e-05 2.42e-17 1.00000e+00
25 1.91687e+00 7.95966e-06 1.52e-18 1.00000e+00
26 1.91687e+00 3.98015e-06 9.50e-20 1.00000e+00
27 1.91687e+00 1.99015e-06 5.95e-21 1.00000e+00
28 1.91687e+00 9.95097e-07 3.72e-22 1.00000e+00
29 1.91687e+00 4.97553e-07 2.32e-23 1.00000e+00
30 1.91687e+00 2.48778e-07 1.45e-24 1.00000e+00
31 1.91687e+00 1.24389e-07 9.09e-26 1.00000e+00
32 1.91687e+00 6.21947e-08 5.72e-27 1.00000e+00
33 1.91687e+00 3.10974e-08 3.63e-28 1.00000e+00
34 1.91687e+00 1.55487e-08 1.93e-29 1.00000e+00
35 1.91687e+00 7.77435e-09 3.86e-30 1.00000e+00
Solved
Problem succesfully solved.
Optimal circuit delay for Pmax = 50 and Amax = 25 is 6.7996.
Optimal scale factors are:
x =
2.9336
4.7136
4.1289
4.2254
2.1706
3.4140
3.4140
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.
Problem succesfully solved.