Given: , BW0, and initial values of , , . |
Input: and |
Objective: tunable BPF to meet and BW0 |
Output: , , |
Design approach: //Stage A to meet the specified (Steps (1)–(10))// |
(1) Find the range of () in Table 2; |
(2) Set initial values , , and set , , , , , , , , , , ; |
(3) Repeat |
(4) do AC simulation; |
(5) decrease by ; |
(6) Until ; |
(7) Repeat |
(8) do AC simulation; |
(9) decrease by ; |
(10) Until ; |
Design approach: //Stage B to meet the specified BW0 (Steps (11)–(17))// |
(11) Find and its corresponding BWmin in Table 2; |
(12) If BW0 < BWmin then break; |
(13) Else |
(14) Do { |
(15) decreases inductor by ; |
(16) do AC simulation to find the bandwidth BW; |
(17) } While ; |
Design approach: //Stage C to calibrate BPF design after considering process variations (Steps (18)–(32))// |
(18) Select (i.e., ) cases of BPF designs with different , BW0 and after Stage A and B; |
(19) Perform Monte Carlo analysis to obtain and for BW; |
(20) Compute ()); //calculate the BW deviation |
(21) Choose top 30% cases having the worst BW deviation and find their center frequency () and corresponding gain (); |
(22) Compute the average of center frequency () and gain deviation () |
(23) Compute from (17); |
(24) For to 30 //consider the top 30 cases |
(25) ; |
(26) do AC simulation; |
(27) if BWnew() > BWold() then set BW() = BWnew(); |
(28) else ; |
(29) do AC simulation; |
(30) set BW() = BWnew()}; |
(31) end if; |
(32) End for; |