공부/Verilog

Combinational logic delay

오비루 2022. 8. 26. 13:05
728x90
728x90

Glue logic = Combinational logic

(이전 memory내의 0 혹은 1의 값이 들어옴에 따라 출력으로 0 혹은 1을 내뱉는다.)

è  입력값이 변함에 따라 즉각적으로 결과값에 영향을 준다. (출력값은 항상 입력에 의존)

è  그러므로 combinational 회로는 기억장치가 없다.

è  입력 조건 중 하나가 0->1 혹은 1->0 으로 바뀌면 기본 combinational logic 에 의해 출력이 ‘no memory’ , ‘timing’ or ‘feedback loops’ 와 같은 형태를 갖는다.

 

combinational logic 회로는 nand 혹은 nor 게이트를 이용하여 설계되는데, 이때 논리 소자들의 입력이 변경되면 약간의 delay 이후 출력이 나타난다.

 

이러한 Timing 적인 문제는 회로 설계에서 매우 중요한 역할을 한다.

1.     Propagation delay : Input -> Output의 최대 시간. (tpd)

2.     Contamination delay : Input -> Output의 최소 시간.(tcd)

위와 같은 delay가 존재하는 이유는 회로내의 값 변화(상승, 하강) 시간 차이와 온도상승. 그리고 회로 이동에 걸리는 시간이 다르기 때문이다.

| F/F |-----[Combinational logic]------| F/F | 다음과 같이 연결 되어있을 때, 플립플롭 사이의 combination logic이 적절한 delay를 갖는다면 좋은 회로 구성이 된다.

이를 적절하게 조절하려면 setup time & hold time을 잘 파악해야 한다.

728x90

 

Setup time (Tsu)

ð  클럭 edgehigh로 가기 전까지 입력이 안정해야 되는 최소시간

Hold Time (Th)

ð  클럭 edgehigh로 변경된 후 입력이 안정해야 하는 최소시간.

 

다음 사진은 data가 안정적으로 들어온 경우이다.

만약, 옳지 못한 Timingdata가 들어온다면 아래 사진과 같은 Time Violation이 발생하는데,

이는 setup time & hold time에서 data가 일정(안정적)하지 않은 변동성 있는 위치이기에 정확한 인식을 못해 오작동 발생이 가능하다.

1.    Setup timing violation

ð  일반적으로 합성 constraint가 너무 타이트한 경우 발생 가능하다.

 

 

ex) 위 그림에서 플립플롭의 클럭이 상승edge일 때 출력 Q로 나오는 입력 A의 값이 미정인 경우 setup time violation이 발생한다. 이는 A의 값이 바로 앞단의 combination logic의 출력이므로 combination logic delay가 매우 크기 때문이다.

 

만약 어느 회로의 setup time 요구조건이 1ns, 클럭 주기가 10ns라면 아래 그림처럼 플립플롭의 클럭 상승edge 하기 전, 1ns 전에는 유효한 입력 데이터 A가 도착해야 한다.

  

 

320x100

 

 

2.    Hold timing violation

ð  모든 순차로직(f.f)hold time 요구조건이 존재하며, 이는 hold time 동안은 유효 데이터가 변동되지 않아야 함을 의미한다.

ð  만약, hold time동안 유효한 데이터가 유지 못하면 다음 상태가 발생된다.

ð  너무 빠르게 설계되었을 때 주로 발생

 

ex) 상승edge에 동작하는 플립플롭이 입력값을 인지하기도 전에 입력이 바뀌면 hold time violation이 발생한다.

 

아래 그림에서는 hold time 요구조건이 1ns인 경우이며, 이때 클럭 상승 edge 기준으로 최소 1ns동안은 A값을 유지하고 있어야한다.

 

 

따라서, 이러한 Time Violation이 발생하지 않기 위해서는 Clock Data(A)Delay를 고려해서 Setup Time & Hold TimeMargin안에 들어오게 설계를 해야 한다.

 

[Setup time violation 발생 방지를 위한 조건]

 

[Hold time violation 발생 방지를 위한 조건]

 

 

 

참고)

https://www.electronics-tutorials.ws/combination/comb_1.html

https://destiny738.tistory.com/278

http://www.internex.co.kr/insiter.php?design_file=notice_v.php&article_num=13

https://blog.daum.net/trts1004/12108896

728x90
반응형