흔히 찾을 수 있는 LDO나 일반 레귤레이터의 데이터시트를 보면,

대부분 저런 형태의 모습을 하고 있는 구조를 볼 수 있다.

정전압회로에는

1.기준전압

2.비교기

3.출력단

이렇게 3단계로 크게 분리할수 있습니다.

실제로 저렇게 구성하여 PWM,PFM방식, 스위칭 방식등을 이용해서

Step-up, Step-Down DC to DC Converter를 제작 할 수 있다.

위의 경우 기준전압은 나와 있지 않지만 Vref(Voltage reference)부분으로 기준전압을 인가하면 비교기(opamp)는 두 입력단자(반전입력및 비반전입력)이 똑같은 전압이 되기 위해 출력단(2개의 TR)을 제어하게 됩니다. 그렇게 되면 결국 Vo x R1/(R1+R2) = Vref 가 되는 것입니다. 달리 표현하자면 Vo = Vref(1+R2/R1)이 됩니다.

여기서 일반 레귤레이터와 LDO의 차이점은 위의 Q1 소자와 회로구성입니다.

일반레귤레이터는 대부분 Common Collector 방식을 사용합니다. 이런 경우 Ve = Vb - 0.7V가 되고, opamp에서 아무리 높은 전압을 줘도 출력은 입력보다 0.7V이상 떨어집니다.

반면에 위와 같은 경우는 Common Emitter 방식을 사용합니다. 이때는 Vce(sat) 전압의 차이와 있으면 되는데 Vce(sat)은 약 0.1~0.2V이므로 위의 CC방식보다 0.5V이상 유리해 지죠.

실제로 일반 레귤레이터는 입출력 전압차가 2V이상을 요구하는 반면LDO는 0.5~0.8V전압차만 있으면 정상동작을 합니다.

다만 입출력전압차가 적은 경우는 LDO가 유리하지만 입출력 전압차가 3V이상인경우는 LDO나 일반 레귤레이터 방식이다 둘다 같은 손실이 발생합니다.

 

출처 : http://cafe.naver.com/deepcore/55

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그


1. 바이어스


  능동소자인 트랜지스터나 FET를 찌그러짐이 없는 증폭기로 사용하기 위해서는 각 소자에 바이어스를 인가해 주어야 한다. 그 이유는 능동소자들의 전체 정 특성 곡선이 선형이 아닌 비선형 특성을 일부 갖고 있기 때문이다. 즉, 능동소자를 선형증폭기에 이용한다는 것은 특성 곡선상의 선형인 부분을 사용하는 것이다. 따라서 비선형 부분을 제외한 선형 특성인 부분만을 사용하기 위해 능동소자에 입력신호를 가하기 전에 미리 전압이나 전류를 흘려준다. 이것을 보통 바이어스전압, 전류라 한다. 특별한 경우를 제외하고는 거의 모든 능동소자를 사용하기 위해서는 이러한 바이어스전압, 전류를 가해 주어야 한다.

  이 항에서는 바이어스의 방법에 대해서 논한다. 능동소자를 동작시키려면 능동소자의 정 특성 곡선상의 선형영역 중에서 적당한 위치에 동작점(operating point)을 설정하는 것이 필요하다. 이를 위한 전류 또는 전압을 바이어스전압(bias voltage) 혹은 바이어스전류(bias current)라고 한다. FET에는 바이어스전압을 인가하는 방법이 비교적 간단한 반면 트랜지스터의 경우 동작점을 설정하는 작업이 또한 아주 번거롭다. 이것은 트랜지스터마다 정 특성 곡선이 아주 불균일하고 설계시 고려해야 할 사항이 많기 때문이다.


  트랜지스터회로


  트랜지스터는 전류제어 소자이기 때문에 필요한 동작을 행하기 위해서는 적당한 바이어스 전류를 흘려주지 않으면 안 된다. 실제로 트랜지스터에 전원 1개를 가하지만 내부적으로는 2개의 전원이 필요하다. 따라서 전원의 전압을 이용해서 입력회로에 바이어스전류 또는 전압을 인가한다.

  트랜지스터의 바이어스회로에서는 동작점이 외부의 요인, 즉 주위온도 등이 변화하여 동작점이 이동하지 않도록 트랜지스터의 동작을 안정화하는 목적도 있다. 트랜지스터의 바이어스법에는 고정바이어스, 전압궤환바이어스, 전류궤환바이어스의 세 가지가 있으며, 다음에서 바이어스 안정화에 대하여 논한다.


  ⑴ 고정바이어스회로


  그림 1-1에서 고정바이어스회로(fixed bias circuit)라고 하는 가장 간단한 회로를 소개한다. 이 회로에서는 컬렉터전류와 베이스전류가 전원과 병렬로 인가되어 가해진다.

그림 1-1 고정바이어스회로


 라 하면 베이스전류

              (1-1)

로 주어진다. 이미터접지 증폭회로의 컬렉터전류

이며, 또 컬렉터전류 및 컬렉터전압 는 근사적으로

                      (1-2)

                      

        (1-3)

와 같이 된다.

 

 여기서 고정바이어스회로의 동작을 살펴보면 기본적으로 트랜지스터가 활성영역에서 동작하기 위해서는 베이스 - 이미터 간의 순방향, 컬렉터 - 베이스간에는 역방향의 조건을 만들어주는 것으로써 바이어스저항 가 전원 전압과 병렬로 인가되어 베이스에는 바이어스 저항값에 따른 베이스전류가 흐르고 이 전류는 이미터로 흘러가며, 이 과정에서 베이스와 이미터에는 바이어스전압 가 생성된다.


  다시 말해서 바이어스전압이 만들어지는 것이다. 그런데 여기서 주의해야 할 것은 트랜지스터를 선형으로 동작시키기 위해서는 보다 작아야 한다. 그 이유는 가 전원 전압인 보다 적어야 하기 때문이다.

  그리고, 특성곡선의 선형영역에서 주어지는 컬렉터전류의 크기 에 의한 값보다 작아야 한다. 이 컬렉터전류의 크기가 선형부분을 넘어서 포화영역으로 동작하게 되면 특성곡선에서의 최대치로 주어지므로 선형동작을 할 수 없게 된다. 증폭기 설계시에 중요하게 고려되어야 할 사항이다. 만약 트랜지스터를 스위칭(포화영역 - 차단영역) 동작으로 사용한다면 포화영역에서 사용해도 무방하다.

  이 회로는 가장 간단한 회로로서 전력소비는 적지만 안정도는 그다지 좋지 않다. 그 때문에 이 회로는 전압 및 전류가 크지 않고 다소 바이어스점이 이동해도 문제가 없는 회로의 용도에 한정되어 사용되고 있다.


  (2) 전압궤환바이어스회로


  그림 1-2와 같이 를 컬렉터와 베이스 사이에 접속해서 바이어스를 인가하는 회로를 전압궤환바이어스회로(voltage feedbace bias circuit)라고 한다.

그림 1-2 전압궤환바이어스회로


  이 회로에서는 가 어떤 원인에 의해서 증가하면 에서 전압 강하가 증대되어 가 저하되고, 바이어스전류 가 감소해서 컬렉터전류 의 증가를 억제시킨다. 이와 같은 작용은 뒤에서 기술하는 부궤환의 일종이기 때문에 전압궤환바이어스라고 한다.

  전압궤환바이어스회로는 고정바이어스회로와 같이 간단하지만 고정바이어스보다도 안정도와 트랜지스터의 에 의한 영향 등이 개선되었다. 그러나 부궤환작용은 신호주파수에 대해 작용하기 때문에 입․출력임피던스가 저하하며, 증폭기의 이득이 감소한다. 그림 1-2에 대해서

       (1-4)

의 관계가 성립한다. 일반적으로 이기 때문에 식 (1-4)에서

                     (1-5)

  식 (1-5)와 같은 근사식을 얻을 수 있다.

그림 1-3 전압궤환바이어스회로 이득의 감소를 피하는 방법


  이 회로에서도 바이어스저항 가 전원 전압과 직렬로 연결된 컬렉터저항 바로 다음에 병렬로 연결되어 있으므로 이 전압강하에 의해서 베이스전류는 흐른다. 이 흐르는 전류가 베이스 - 이미터 사이에 바이어스전압이 생성된다.

  이 전압궤환바이어스회로는 결합회로와 같이 가 큰 경우에 유용하다. 그러나 변성이 결합과 같은 부하가 변성기로 결합된 경우 컬렉터회로위 직류저항이 적기 때문에 바이어스 안정화의 효과가 적다. 이러한 바이어스회로를 사용하기 위해서는 그림 1-3과 같이 바이어스 저항 를 적당히 나누고, 그 사이에 궤환신호 성분을 바이패스 하기 위한 콘덴서 를 삽입한다. 여기서 어느 정도 이득의 감소는 피할 수 있다.


  그림 1-2는 전압분배 바이어스(voltage-divider bias)회로를 나타내고 있다. 이 방법이 선형회로에서 가장 널리 사용되는 바이어스방식이다. ‘전압분배’라는 용어는 저항 로 구성된 전압분배기에서 나온말이다. 이때 저항 에 걸리는 전압은 이미터 다이오드로 순방향으로 바이어스시킨다.

  그림 1-2에서 출력측에 키르히호프의 법칙을 적용시켜 직류뷰하선의 식을 유도 한다.

    이므로

  

    이 회로는 컬렉터 귀환 바이어스회로와 마찬가지로 온도변화에 따라 컬렉터 전류 의 변화를 입력쪽(VBE)에 귀환시켜 항상 컬렉터전류 Ic를 일정한 값으로 유지하는 작용을 갖고 있다. 이 관계는 다음과 같이 된다.


  온도변화 → Ic의 증가 → IE의 증가 → VRE의 증가 → VBE의 감소 → IB의 감소 → IC의 감소


  전압분배 바이어스는 다음과 같이 동작한다. 베이스 단자를 떼어 내어(open), R2에 걸리는 테브닌(Thevenin)전압을 구하면 다음과 같다.

  트랜지스터는 제어된 전류원으로서의 역할을 한다. 이미터는 베이스에 부트스트랩되어 있기 때문에 다음과 같다.

  컬렉터전류는 이 이미터전류의 값과 거의 동일하다.

  이 이미터전류에 대한 공식에는 가 포함되어 있지 않는데, 이는 회로가 의 변화에 크게 관여하지 않고 동작점(Q)이 고정된다는 것을 의미한다. 이런 이유 때문에 전압분배 바이어스는 선형 트랜지스터회로에 적합한 바이어스방식이며 거의 이 방식을 사용한다.


  그림 1-2회로에서 테브닌의 정리를 이용하면 등가회로를 얻을 수 있다. 이 등가회로에서

베이스 루프상에 키르히호프의 법칙을 적용하면,

 

이므로,

만약 RE보다 100배 이상 크다면 일반적으로

안정된 전압분배 바이어스회로는 다음 조건을 요구한다.

  간혹 안정된 설계를 하다보면 R1과 R2 값이 적어지게 된다. 이것은 또 다른 문제점을 야기시키는 원인이 되며 이러한 경우에 대부분의 설계가들을 10%규정을 적용하여 해결한다. 즉,

  Thevein 등가회로에서의 등가요소

  base loop에 kvl을 적용하면 전류궤한 bias회로와 같은 결과의 안정계수 S를 얻을 수 있다.

 

따라서, 와 무관하며, 를 크게 할수록 안정도는 커진다.      



블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그

컨볼루션 코드화된 심볼은 심볼 반복기(Symbol Repetition)을 통하여 여러번의 반복과정을 통해 모두 19.2Ksps로 통일되어 출력됩니다. 즉 컨볼루션 코드화되기 전의 음성데이터 전송이 9.6Kbps는 반복을 하지 않고(어차피 컨볼루션 코드화 되면 19.2Ksps가 되니까...) 4.8Kbps, 1.2Kbps의 경우에 19.2Ksps가 되도록 반복 쓰기를 합니다. 데이터 전송율을 이렇게 통일시키는 이유가 무엇일까요? 그건 여러개의 데이터 전송율로 계속 처리한다면 시스템에서 4가지의 회로가 필요하기 때문입니다.

데이터 전송율이 모두 한가지(19.2Ksps)로 통일 되었다 해도 그 데이터마다 당초의 음성 데이터 전송율이 얼마였는지를 표시함으로써 전파로 최종 발사시에 출력을 조정할 수 있습니다.

이번엔 블록 인터리버(Block Interleaver)를 알아볼까요?

전송에 따라 데이터에 에러가 발생하면 복구가 불가능하게 되어 데이터를 이용할 수 없는 경우가 발생하는데 이를 최소화 하기 위해 에러 정정방법을 사용합니다. 앞서 말씀드렸듯이 컨볼루션 코드가 에러 정정을 위해 사용되지요. 근데 컨볼루션 코드는 에러가 드문 드문 산재해 있을 때 복구가 가능합니다.

만약에 에러가 일정 부분에 집중되어 있으면 에러 정정 코드로는 정정이 불가능해집니다. 아무리 좋은 에러 정정 코드를 사용한다 해도 이렇게 특정부분에 에러가 집중되어 연속적으로 데이터를 한꺼번에 잃어버리는 것을 방지하기는 어렵습니다. 이때 블록 인터리버가 에러가 집중되는 것을 최소화하는 역할을 합니다.

컨볼루션 코드화된 데이터는 블록 인터리버로 입력되어 인터리빙(Interleaving) 됩니다.

블록 인터리버의 원리는 다음과 같습니다.

전송할 데이터가 1, 2, 3, 4, ... 20이라고 할때 입력은 세로방향으로 쓰여지고 출력은 가로방향으로 하게 됩니다. 이렇게 데이터를 정열하는 것을 인터리빙이라고 합니다. 송신측에서 이렇게 데이터를 정열해서 보내면 수신측에서 다시 반대 과정을 거치는 것을 디인터리빙(DeInterleaving)이라고 합니다.

입 1 6 11 16 --> 출력방향

력 2 7 12 17

방 3 8 13 18

향 4 9 14 19

5 10 15 20

위와 같이 보내면 어떤 잇점이 있을까요?

순서를 바꾸지 않고 그냥 보낼 경우에는 데이터가 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 이렇게 되겠죠? 그런데 에러가 한곳에 집중적으로 발생하여 2,3,4,5가 모두 깨어졌다고 생각해보죠... 그럼 수신된 데이터가 1**** 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 이 될거고 아마 1****는 복구가 되지 못할 것입니다.

이걸 위의 인터리빙 과정을 거친 데이터라 가정하면 전송되는 데이터는 1,6,11,16 2,7,12,17 3,8,13,18 4,9,14,19 5,10,15,20이 될겁니다. 여기서 2,3,4,5가 깨어지면 수신되는 데이터는 1,6,11,16 *,7,12,17 *,8,13,18 *,9,14,19 *,10,15,20이 됩니다. 이제는 에러가 분산이 되었으니까 복구가 될 겁니다.

즉 인터리빙하지 않고 1,2,3,4,5처럼 연속적으로 데이터를 전송하다가 1부터 10까지의 데이터가 손상된다면 아무리 이전의 비트와 연관되었다 해도 컨볼루션 코드를 이용해 데이터를 복구할 수 없게 됩니다. 이렇게 집중적으로 에러가 발생하는 것을 버스트에러(Burst Error)라고 하고 드문 드문 에러가 발생하는 것을 랜덤에러(Random Error)라고 합니다. 즉 블록 인터리버는 버스트에러를 랜덤에러화하는 역할을 합니다.

인코딩이나 인터리빙 방법은 에러를 정정하는데에는 효과가 있지만 다른 사람이 도청하는 것을 막지는 못합니다. 따라서 CDMA에서는 롱코드를 이용하여 암호화 과정을 거칩니다.

롱코드 발생기(Long Code Generator)에서 PN 시퀀스로 된 긴 코드(Long Code)를 발생시키는데 이 긴 코드들이 블록인터리버로부터 출력된 데이터를 전혀 다른 값으로 바꾸어 암호화합니다. 롱코드는 각 사용자마다 유일하게 할당되며 가입자마다 주어질 수 있는 경우의 수가 2exp(42)-1(약 4조 2천억개)가 되므로 이 코드를 안다는 것은 거의 불가능에 가깝습니다. 암호화를 거친 데이터에는 타 사용자에 대한 간섭등을 줄이기 위한 전력제어용 비트가 삽입됩니다.

[출처]: http://vanijini.net/bbs/view.php?id=mobile&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&&select_arrange=headnum&desc=asc&no=41

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그

Scan enable에 관련된 사항은 아래를 읽으면 된다.

 

SoC 시프트 모드에서 듀얼 SE(Scan Enable) 저전력 플롭을 통한 전력 제한

 

 

모든 SoC 제조상 결함을 감지하기 위해 설계에 스캔 체인을 사용한다. 테스트용으로 설계된 스캔 체인은 칩의 순차적 소자를 연속적인 순서로 연결한다. SoC 점점 많은 기능이 통합됨에 따라, SoC 내의 플롭(순차적 소자) 조합 로직 수도 증가되고 있다. 스캔 시프트 단계 동안에는 모든 플롭과 함께 조합 로직이 완전한 SI(shift-in) SO(shift-out) 단계 동안 토글되고, 피크 전력이 허용 한계를 초과하면 시프트 데이터가 손상될 있으며 의사 실패(pseudo fail) 인해 수율이 영향을 받게 되므로 피크 전력이 중요한 문제이다. 문서에서는 시프트 단계 동안 조합 로직 토글을 게이트하며 설계의 피크 평균 동적 전력을 절감하는 플롭 설계를 제시한다.

 

 

 

scan logic에 관해서 자세한 내용을 보고 싶으면 다음 파일을 다운로드

 

 

Scan logic에 관한 설명.pdf

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그

시스템 IC 설계에서 말하는 IP(Intellectual Property) 는 재이용 가능한 기능블록을 지칭하며 하드웨어 또는 소프트웨어 기능블록을 의미합니다.

재이용 가능한 하드웨어 기능블록을 하드웨어 IP, 재이용 가능한 소프트웨어 기능블록을 소프트웨어 IP라고 합니다.

예를 들면, 프로세서, RAM, ROM 등의 기능블록은 하드웨어 IP이고, ARM 프로세서 상에서 실행 가능한 mp3 소프트웨어는 소프트웨어 IP입니다.

하드웨어 IP는 형태에 따라 소프트(Soft)IP, 펌(Firm)IP 및 하드(Hard)IP의 3가지로 분류할 수 있다.

1) 소프트 IP

소프트 IP란 일반적으로 하드웨어 기술언어로 쓰여진 논리 합성 가능한 설계 자산하드웨어 기술 언어는 VHDL과 Verilog 등이 이용되며, 합성 가능한 RTL(Register Transfer Level)에서 기술되는 것이 일반적입니다. 소프트 IP는 아직 테크놀로지 매핑(Technology Mapping)이 되어 있지 않으며, 이것이 가장 큰 장점입니다.

테크놀로지는 사용자 쪽에서 선택할 수 있으며, 설계의 수정이나 개량, 기능 변경도 용이합니다. IP를 재이용의 관점에서 보면 펌 IP나 하드 IP 보다 유연하다고 할 수 있습니다. 또한 가격 측면에서도 다른 IP보다 유리하다는 것이 소프트 IP가 주목받는 이유 중의 하나입니다. 소프트 IP는 3가지 IP 중에서 유연성이 가장 좋고 필요에 따라 첨삭이 가능한 장점을 가지고 있습니다. 그러나 플로어플래닝(Floorplanning), 구현, 레이아웃 등에 관련된 정보가 없어 면적 및 성능 예측이 잘 안되는 단점이 있습니다.

소프트 IP의 공급시 최소한의 전달물은 원시코드, 일반적인 라이브러리에 의한 논리 합성용 스크립트, 테스트벤치 및 테스트 벡터, 사양서 등이 있습니다. 그밖에 소프트 IP를 사용하는데 있어서 보조적인 것으로서 C언어나 HDL(Hardware Description Language)등에 의한 동작모델, 평가보드가 있습니다. 소프트 IP는 기능 테스트와 합성 가능성 테스트만 행한 상태이므로 실제 논리 합성 이후의 작업 공정은 모두 사용자 측의 역할과 책임이 됩니다.

특히 중요한 것은 소프트 IP 자체의 기능이 검증되어 있어도 다른 회로와 조합하면 동작되지 않을 가능성도 있습니다.

2) 펌 IP

펌 IP는 소프트 IP와 하드 IP의 중간에 위치하며 약간의 플로어플래닝 정보를 가진 게이트 레벨의 네트리스트(Netlist)입니다. 일반적인 라이브러리를 사용한 네트리스트이므로 게이트 수나 성능 예측에 어느 정도 이용할 수 있습니다. 그러나 실제 공정에 대응하는 것은 아니기 때문에 참고로 할 뿐입니다.

만약 실제 공정에 대응한다면 소프트 IP의 이점인 공정의 이식성이라는 이점이 소멸되고 말 것입니다. 하지만, 최근에 ASIC 벤더간의 공정기술 차이가 별로 없어서 어느 한 회사의 라이브러리로 펌 IP를 만들어 두면 타 회사의 테크놀로지에 간단한 변환으로 이식할 수 있습니다. 이런 특성을 가지는 것이 펌 IP입니다.

3) 하드 IP

하드 IP는 공정이 완전히 정해져 있고 배치, 배선이 끝난 설계 데이터로 재이용 가능한 형태의 IP입니다. 표준셀이든 게이트 어레이이든 문제가 되지 않습니다. 즉, 게이트어레이라면 배선층의 마스크패턴, 표준셀이나 완전주문형이면 전 층의 마스크 패턴을 포함한 설계 데이터로 도면 검증까지 실시한 것을 하드 IP라고 합니다. ASIC 벤더가 블랙박스로서 제공하는 코아는 하드 IP에 속합니다.

하드 IP의 이점은 도면 검증을 포함하여 블록 레벨에서의 모든 설계가 종료되었다는 것입니다. 즉 칩 레벨에서 블랙박스로 취급할 수 있기 때문에 IP중에서도 가장 큰 TAT(Turn Around Time)의 단축이 가능합니다. 이런 형태의 IP는 타 공정으로의 전환이 거의 불가능하기 때문에 이식성이 낮습니다. 또한 반도체 제조업체는 이러한 형태의 설계 정보를 대단히 많이 가지고 있어서 입수하기는 쉽습니다.

하드 IP는 제조하면 동작할 것이 거의 확실하므로 매우 비쌉니다. 그러나 사용자는 칩 제조시 특정 반도체 공정에 예속되는 단점이 있습니다.


http://www.dawintech.co.kr 에서 펌

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그

ASIC 또는 FPGA에서 delay, skew, slack, slew등의 용어가 자주 나오고 있습니다. 모두 타이밍에 관한 특성 값들이지만, 서로 어떻게 다른 지 개념을 잡고 있는 것이 중요할 것 같습니다.



1. Delay

ASIC 또는 FPGA에서 발생하는 지연(delay)은 흔히 이야기 하는 [딜레이]가 맞습니다.

[DELAY] = [CELL_DELAY] + [NET_DELAY]

여기서 CELL은 "AND", "OR", "D-FlipFlop"등의 셀을 의미하고, NET은 이들을 연결하는 (구리)Wire를 의미 합니다. CELL_DELAY는 전자의 이동속도 등과 관련이 있습니다. CELL_DELAY는 아래 그림과 같이 세숫대야 모델(?)로 이해 할 수 있습니다.





세숫대야를 CELL로 봅니다. 대야속의 물의 높이 즉 '수위'가 CELL의 값을 나타냅니다. 현재 물이 비어있다고 가정하면, '0'의 값입니다. 수도꼭지를 틀어서 수위가 '1'이 될 때 까지의 시간을 "RISE_DELAY"라고 합니다. 그리고 수채구멍을 열어 수위가 다시 '0'이 될 때 까지의 시간을 "FALL_DELAY"라고 합니다. 물 대신 전자가 대야에 차고 또 비워지고 하는 것을 디지털의 '1'과 '0'으로 이해한다면 CELL_DELAY의 의미를 마음속에 그려 볼 수 있을 것입니다. '0'은 0V이고, '1'은 경우에 따라서 3.3V 또는 5V 등의 전압을 의미 합니다.




2. Skew

실제 칩(ASIC 또는 FPGA)이 있다고 가정을 해 보겠습니다.




점선 안의 부분은 칩 내부이고, PAD로 연결된 칩 외부의 PCB상의 클럭 패턴도 있습니다. D-FF가 8개 있는 디자인 입니다. 단순하게 하기 위해, 필요한 부분만 남기고 나머지는 삭제하였습니다. RTL(Verilog 또는 VHDL)로 설계 할 때는 단일 클럭인 "CLK" 만을 사용하는 설계였는데 회로합성(synthesis)툴이 클럭을 나누어서 플립플롭 3개와 5개를 따로 드라이브하는 구조로 합성하였습니다.


클럭의 상승에지(rising edge)가 PCB_CLK에서 '발사' 되어 최종 목적지인 플립플롭 들에 '도착'하는 시간이 주요 관심사 입니다.


플립플롭들 중 foo와 bar라는 두 개의 플립플롭으로 도달하는 "CLK"의 시간은 조금 다를 것입니다. 그 이유를 처음의 그림의 세숫대야 모델로 생각을 해 볼 수 있습니다. CLK'(수도꼭지#1)는 세 개의 세숫대야, 그리고 CLK''(수도꼭지#2)는 다섯개의 세숫대야를 채워야 하기 때문에 CLK''에서 공급받는 bar의 세숫대야는 약간 늦은 시간에 '1'로 도달할 것입니다.


PCB클럭으로 부터 foo와 bar 플립플롭으로 도착하는 클럭의 시점을 그림으로 그려 보면 아래와 같을 것입니다.






여기서 만약 T1=2ns이고 T2=2.5ns였다고 가정해 보겠습니다. CLK_PCB를 "기준"으로 보면 foo로 도착하는 CLK의 delay는 2ns이고 bar로 도착하는 CLK의 delay는 2.5ns 입니다.

우리는 여기서 "CLK의 SKEW는 0.5ns 이다." 라고 이야기 합니다.

즉 SKEW는 클럭의 delay가 아니라 "가장 빨리 도달하는 클럭과 가장 늦게 도달하는 클럭의 차이" 인 것입니다.




3. SLACK

위의 회로의 예를 계속 보겠습니다. 클럭이 100MHz 클럭이라고 가정해 보겠습니다. 그렇다면 주기(period)는 10ns일 것입니다.

단순화를 위하여 여기서는 T1=T2=0ns라고 가정하겠습니다. 그리고 Setup과 Hold도 무시하겠습니다. foo와 bar사이에 "AND"게이트가 하나 있습니다. 이 AND게이트의 CELL_DELAY = 7ns라고 가정해 보겠습니다.

클럭의 주기가 10ns이니까, Delay는 10ns를 넘으면 안됩니다.

여기서는 delay = 7ns가 되었지요, 그렇다면 약 3ns의 여유가 있습니다. 이 말을 "3ns의 Slack이 있다."라고 이야기 합니다. 즉 slack은 "마진(여유)"이라고 해석하면 될 것입니다.

만약 foo와 bar 사이의 AND게이트의 CELL_DELAY = 15ns 였다면 "Timing Violation"상황 입니다. 이 때 타이밍 리포트를 뽑아 보면 "SLACK = -5ns"라고 나올 것입니다. 즉 "네거티브 슬랙"의 의미는 우리가 원하는 조건(timing constraint)에 이 만큼 만족하지 못했다는 것을 의미하게 됩니다.




4. SLEW

Slew는 출력 PAD의 특성 값입니다. Slew의 의미는 '기울기' 입니다. 위의 세숫대야 모델로 본다면 RISE_DELAY와 FALL_DELAY를 통칭하는 의미로 보시면 됩니다. 상식적으로는 수도꼭지(drive strength)가 굵어서 '0'에서 '1'로 가는 시간이 짧으면 짧을 수록 좋은 것 처럼 보입니다. 하지만 무조건 빠른 것이 모든 면에서 좋은 것은 아닙니다. 즉, 항상 slew(기울기)가 높은 것이 좋은 것은 아닌 것입니다.

굵은 수도꼭지(낮은 기울기)의 단점은 두 가지가 있습니다.

(1) 0V에서 출발하여 3.3V로 도달하는데 걸리는 시간이 "아주" 짧아지면, 그만큼 원하지 않는 전자기파가 발생하기 쉽습니다. 이런 전자기파는 EMI 또는 노이즈라고 부르며 보드(PCB)상의 다른 소자들에게 간섭을 주는 등 아주 좋지 않습니다.

(2) 예를 들어 64비트 버스가 출력으로 사용되는 디자인이 있다고 하겠습니다. 동작을 하다 보면, 어떤 우연한 상황에서 64개의 '출력' 모두 '0'에서 '1'로 올라가야 하는 싯점이 있을 것입니다.[주1] 이 처럼 동시에 스위칭 하는 순간, 64개의 패드를 짧은 시간에 전압 레벨 '0'에서 '1'로 올리기 위해서는 엄청나게 굵은 수도꼭지로 물을 퍼부어야 할 것이고, 이 때 물의 양 즉, 순간전류는 상당히 많이 필요하게 됩니다. 이 처럼 순간 전력 피크치가 높으면, 칩 내부에 전압 강하 등의 문제가 발생할 수도 있을 것입니다.


이러한 이유들로 인해 '기울기'를 고의적으로 약간 "뉘여"주는 것이 전기적 특성을 좋게 만들기 때문에 "Slew Rate Control"이 가능한 출력 패드들이 있습니다.



[주1] 참고로 이렇게 동시에 스위칭하는 64개의 출력 패드를 SSO(Simultaneous Switching Outputs)라고 부릅니다.


*** http://www.asicclubkorea.com/ ***


원저자 : striker
수정자 : -
버전 : 2008-04-15
도움 주신 분들 : -

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그

우선 순위가 가장 높은 것을 먼저 실행한다.

 

 

다음은 진리표입니다.

 

 

 

 

 

위처럼 A가 1이 나오면 무조건 Y1이 1이 되고 A가 0인데 B가 1이면 C가 뭐가되건 상관없이 Y2가 1이

 

된다.

 

이런식으로 입력값에 순위가 A > B > C로 매겨져 있는 인코딩 회로를 말한다.

 

 

 

블로그 이미지

가카리

소프트웨어와 하드웨어 프로그래밍, 취업 및 직장생활 전문 블로그