Early Stage Power Analysis
Today, portable electronic devices (smartphones, tablets, etc.) are required to be as power-efficient as desktop PCs while consuming less power. Power consumption has become one of the major constraints in the design of semiconductor chips for portable electronic devices, and low-power design has long been an integral part of semiconductor chip design. For an efficient low-power design, it is imperative that the power analysis be accompanied by the need to know which block is consuming the power when doing some operation. But here we are faced with the dilemma of low power design. As shown in Figure 1, the amount of power that can be saved through the low-power design is very large in the early stages of the design flow .On the other hand, in the latter stage, high accuracy power analysis is possible, but the amount of power consumption that can be saved is too small.
To overcome this problem, we are developing a new power analysis tool that can obtain a very accurate power waveform at the initial stage of design. Figure 2 shows the power analysis using the tool. This tool provides netlist and power information at the gate level at the later stage of the design, signal transition information (FSDB / VCD) on the netlist. Based on this information, we generate a usable power model from the higher level functional simulator. Now, when the simulator is running in conjunction with this power model, accurate power waveforms can be obtained in real time at higher levels. Currently, the tool can predict power at 100 times faster than power analysis tools at the gate level, and the average power error is within 10%.
Figure 1. Possibility to reduce power consumption and accuracy of power analysis through low power design at each design stage
Figure 2 . Power analysis flow chart in the early stages using the tool proposed in this laboratory
Gate-Level Clock Gating
Flip-flop๊ณผ ๊ฐ์ ์ํ์ ์ ์๋ ํด๋ญ์ด ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ฐ๋ผ์ ํ๋ก์ ๋ค์ด์ค๋ ํด๋ญ์ ๊ฐ ์ํ์ ์ ๋ก ๋ถ๋ฐฐํ๋ ํด๋ญ ๋คํธ์ํฌ๊ฐ ํ๋ก ํฉ์ฑ๊ณผ์ ์์ ์์ฑ๋๋ค. ํด๋ญ์ ์ ์ ์ค์์นญ ์ฌ๋ถ์ ์๊ด์์ด ํญ์ ์ค์์นญ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ ์ ๋ ฅ์ ์๋นํ๋ฉฐ, ํ๊ท ์ ์ผ๋ก ํ๋ก ์ ์ฒด ์๋ชจ๋์ 40% ์ด์์ ํด๋ญ ๋คํธ์ํฌ๊ฐ ์๋ชจํ๋ค. ๋ฐ๋ผ์, ์ ์ ๋ ฅ ์ค๊ณ๋ฅผ ์ํด์๋ ํด๋ญ ๋คํธ์ํฌ์ ์ ๋ ฅ ์๋ชจ๋์ ์ค์ด๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ์ด๋ฅผ ์ํด flip-flop์ ์ ํธ๊ฐ ์ค์์นญ ๋๋ ๊ฒฝ์ฐ์๋ง ํด๋ญ์ ๊ณต๊ธํ๋๋ก ํ๋ ํด๋ญ ๊ฒ์ดํ ์ด (๊ทธ๋ฆผ 3)๊ณผ ๊ฐ์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค.
ํ์ฌ ์ฌ์ฉ๋๊ณ ์๋ ํด๋ญ ๊ฒ์ดํ ๋ฐฉ์์ RTL ๋จ๊ณ์์ ์ ์ ์ฐ๊ฒฐ ๊ตฌ์ฑ์ ๋ณด๊ณ , ํน์ ํ ๊ตฌ์ฑ์ ๊ฐ์ง (e.g. load-enable register ๊ตฌ์ฑ) ์์ญ์์๋ง ํด๋ญ ๊ฒ์ดํ ์ด ์ ์ฉ๋๋ค. ๋ฐ๋ผ์, ํด๋ญ ๊ฒ์ดํ ์ด ์ ์ฉ๋๋ flip-flop์ ํ๊ณ๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด gate-level์์ ๊ฐ flip-flop์ function์ ๊ธฐ๋ฐ์ผ๋ก ํด๋ญ ๊ฒ์ดํ ์กฐ๊ฑด์ ๊ตฌํ๋ gate-level ํด๋ญ ๊ฒ์ดํ ์ ์ฐ๊ตฌํ๋ค.
๊ทธ๋ฆผ 3. ํด๋ญ ๊ฒ์ดํ ์ ๊ตฌ์ฑ: gating function์ ๋ฐ๋ผ clock gating cell (CGC)์์ ํด๋ญ์ด ์ ๋ฌ ํน์ ์ฐจ๋จ
NTV Circuit Design
Near threshold voltage (NTV) ํ๋ก๋ ๋์์ ์์ ๋ฌธํฑ์ ์ (Vth) ๊ทผ์ฒ๊น์ง ๋ฎ์ถ์ด ์ค๊ณํจ์ผ๋ก์จ ์ต๋ ์๋์ง ํจ์จ์ ์ป๊ณ ์ ํ๋ค. (๊ทธ๋ฆผ 1)์ ํ๋ก์ ๋์์ ์๊ณผ ์๋์ง ์๋ชจ๋์ ๊ด๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ํ๋ก์, NTV (0.45V)์์์ ๋์์ด ์ ์์ ์ (1.2V)์ ๋นํด ์ ๋ ฅ ์๋ชจ๊ฐ 5๋ฐฐ ๋ฎ์ ๊ฒ์ ๋ณด์ธ๋ค. ๋ฐ๋ผ์, NTV ํ๋ก ์ค๊ณ๋ ์ฌ๋ฌผ์ธํฐ๋ท (IoT), ์จ์ด๋ฌ๋ธ ์ปดํจํฐ ๋ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์ํ ์ ๋ ฅ ์๋ชจ๋ฅผ ํ๊ธฐ์ ์ผ๋ก ์ค์ผ ์ ์๋ค
ํ์ง๋ง, NTV ํ๋ก์ ๊ฒฝ์ฐ ์ ๋๋ ์ด๊ฐ ์ฆ๊ฐํ๊ณ ๊ณต์ ์ค์ฐจ์ ๋ฏผ๊ฐํ ๋จ์ ์ ๊ฐ์ง๋ค. ๋ฐ๋ผ์, NTV ํ๋ก๋ฅผ ์ค๊ณํ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๊ฐ์ํ์ฌ ์ถ๊ฐ์ ์ธ ๋ง์ง์ ๋ฃ์ด์ฃผ๊ณ ์ด๋ ํ๋ก์ ๋ฉด์ ์ ์ฆ๊ฐ์ํค๋ ์์ธ์ด ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด, NTV ์ค๊ณ ๋ฐฉ๋ฒ๋ก ์์๋ ์ ๋ ฅ ์๋ชจ๋ ์ต์ํํ๋ฉด์ ์ถ๊ฐ์ ์ผ๋ก ์๊ตฌ๋๋ ๋ง์ง์ ์ต์ํํ๋ ๋ฐฉ๋ฒ๋ก ์ ๊ดํ์ฌ ์ฐ๊ตฌํ๋ค.
๊ทธ๋ฆผ 4. ๋์ ์ ์์ ๋ฐ๋ฅธ ์๋์ง ์๋ชจ๋ ๋ณํ
Library Optimization through RSCE
์ ์์ ์์์๋ DIBL์ด๋ Vth roll-off์ ๊ฐ์ short channel effect (SCE)๋ก ์ธํด ํธ๋์ง์คํฐ์ ์ฑ๋ ๊ธธ์ด๊ฐ ๊ฐ์ํ๋ฉด์ Vth๋ ๊ฐ์ํ๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด source์ drain ๊ทผ์ฒ ์ฑ๋์ ๋ ๋ง์ dopant (halo)๋ฅผ ํ์ฑ์์ผ์ Vth ๊ฐ์๋ฅผ ๋ณด์ํ๋ค. ๊ทธ๋ฌ๋ NTV์์๋ ๋ฎ์ drain ์ ์ ๋๋ฌธ์ SCE๊ฐ ์๋์ ์ผ๋ก ํฌ์ง ์์ผ๋ฏ๋ก, ์คํ๋ ค ์ฑ๋ ๊ธธ์ด๊ฐ ์์ ๋ Vth๊ฐ ํฐ ํ์์ด ๋ฐ์ํ๋๋ฐ, ์ด๋ฅผ reverse short channel effect (RSCE)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฐ๋ผ์, (๊ทธ๋ฆผ 2)์ ๊ฐ์ด ์ต์ delay๋ฅผ ๊ฐ์ง๋ ํธ๋์ง์คํฐ ์ฑ๋ ๊ธธ์ด์ ์ ๋ค์ ์ ํํ๊ณ , ๊ทธ์ค ๊ฐ์ฅ ์์ ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ์ ์ ์ ํํ์ฌ NTV ํ๋ก ํฉ์ฑ์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆผ 5. NTV์์ ํธ๋์ง์คํฐ ์ฑ๋ ๊ธธ์ด์ ๋ฐ๋ฅธ ๋๋ ์ด ๋ณํ
Optimization of Flip-Flop and remapping
D flip-flop์ (๊ทธ๋ฆผ 6)๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ ๊ฐ์ง๋ฉฐ, ck_a์ ck_b๋ flip-flop ๋ด๋ถ์ transmission gate์ tri-state buffer๋ฅผ ๊ตฌ๋ํ๋ค. ์ฐ๋ฆฌ๋ ck_a์ ck_b๋ฅผ (1)~(4)์ ํด๋ญ ํ์ ๋ค์ ๋ถ๋ฐฐํจ์ผ๋ก์จ ๋ค๋ฅธ timing ํน์ฑ์ ๊ฐ์ง๋ ๋ ์ข ๋ฅ์ flip-flop์ ์ ์ํ๋ค. ๊ธฐ์กด์ flip-flop์ ํฌํจํ 3๊ฐ์ง flip-flop์ NTV ํ๋ก์ ์กด์ฌํ๋ ๊ฐ flip-flop์ ๋ค์ mappingํ์ฌ hold total negative slack (TNS)๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
๊ทธ๋ฆผ 6. DFF์ ๋ด๋ถ ๊ตฌ์ฑ
Dual Edge-Triggered Flip-Flop
ํ์ฌ ํ๋ก ํฉ์ฑ์ ์ฌ์ฉ๋๋ flip-flop์ single edge-triggered flip-flop (SETFF)๋ก, clock ์ ํธ์ rising ํน์ falling edge์์๋ง trigger๋๋ ๋ฐฉ์์ด๋ค. ์ด์ ๋ฐ๋๋ก, rising๊ณผ falling ๋๊ฐ์ง ๋ชจ๋์์ trigger๋๋ flip-flop์ dual edge-triggered flip-flop (DETFF)๋ก ๋ถ๋ฆฐ๋ค. DETFF๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ SETFF์ ๋๋นํ์ฌ ๊ณต๊ธ ํด๋ญ์ ์ฃผํ์๋ฅผ ๋ฐ์ผ๋ก ์ค์ผ ์ ์์ผ๋ฉฐ, ์ด๋ ํด๋ญ ํ์ ์๋ชจ๋์ ํ๊ธฐ์ ์ผ๋ก ์ค์ผ ์ ์๋ค. ๋ค๋ง, ํด๋ญ์ duty ratio๊ฐ ์ผ์ ํ์ง ์์ ๋ฌธ์ ์ timing ๋ถ์์ด ์ด๋ ค์ด ๋ฌธ์ ๋ฑ์ผ๋ก ์ธํด ์ค์ DETFF๊ฐ ํ๋ก ํฉ์ฑ์ ์ฌ์ฉ๋์ง ๋ชปํ๊ณ ์๋ค.
๋ฐ๋ผ์ DETFF๊ฐ ์ค์ ํ๋ก ํฉ์ฑ์ ์ ์ฉ๋ ์ ์๋๋ก DETFF๋ฅผ ์ํ timing ๋ถ์ ๋ฐฉ๋ฒ, ํด๋ญ ๊ฒ์ดํ ๋ฐฉ๋ฒ๊ณผ logic simplification (๊ทธ๋ฆผ 7) ๋ฑ์ ๋ํ ์ฐ๊ตฌ๋ฅผ ์งํํ๋ค.
๊ทธ๋ฆผ 7. DETFF๋ฅผ ์ด์ฉํ logic simplification ์์
Pulsed-Latch
ํ๋ก ํฉ์ฑ์์ ์ํ์ ๋ก์ง์ผ๋ก๋ timing ๋ถ์์ด ์ฌ์ด flip-flop์ด ์ฃผ๋ก ์ฌ์ฉ๋์ด ์๋ค. ํ์ง๋ง, flip-flop์ ๋๋ ์ด ์ธก๋ฉด, ์ ์ ํฌ๊ธฐ, ์๋ชจ ์ ๋ ฅ ์ธก๋ฉด์์ ํ๋ก ํฉ์ฑ์์ ์ฃผ์ํ ํ๊ณ์ ์ผ๋ก ์์ฉํ๊ณ ์๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๋งค์ฐ ์งง์ ํด๋ญ ํ์ค์ trigger๋๋ pulsed-latch๊ฐ flip-flop์ ๋์์ผ๋ก ์ ์๋์๋ค. Pulsed-latch๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฉด์ (20%)๊ณผ ํ์ ์๋ชจ (30%)๊ฐ ๋ชจ๋ ๊ฐ์ ๋์ง๋ง, flip-flop๊ณผ๋ ๋ค๋ฅธ timing ํน์ฑ์ (๊ทธ๋ฆผ 8) ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์๋ก์ด timing ๋ชจ๋ธ๊ณผ placement ๋ฐฉ๋ฒ์ ๊ดํ ์ฐ๊ตฌ๋ฅผ ์งํํ๋ค. ๋ํ, flip-flop๊ณผ๋ ๋ค๋ฅด๊ฒ pulse๋ฅผ ์์ฑํ๋ pulse generator๊ฐ ํ์์ ์ผ๋ก ๋ค์ด๊ฐ์ผ ํ๋ฏ๋ก, ์ด๋ฅผ ์ฝ์ ํ๋ ๋ฐฉ์ ๋ํ ์ ์๋์๋ค.
๊ทธ๋ฆผ 8. Pulsed-latch์ timing ๋ชจ๋ธ