Computer Science/μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ°

순차회둜 vs μ‘°ν•©νšŒλ‘œ(feat ν”Œλ¦½ν”Œλ‘­)

kite707 2023. 8. 29.

πŸ“Œμˆœμ°¨νšŒλ‘œ(Sequential Circuits)와 μ‘°ν•©νšŒλ‘œ(Comninational Circuits)

μˆœμ°¨νšŒλ‘œλŠ” 좜λ ₯이 ν˜„μž¬μ˜ μž…λ ₯κ³Ό μ΄μ „μ˜ λ…Όλ¦¬νšŒλ‘œ μƒνƒœμ˜ 쑰합에 μ˜ν•΄ κ²°μ •λ˜λŠ” λ…Όλ¦¬νšŒλ‘œ, μ‘°ν•©νšŒλ‘œλŠ” μž…λ ₯이 주어지면 λ°”λ‘œ 좜λ ₯이 λ‚˜μ˜€λŠ” νšŒλ‘œμ΄λ‹€.

μ•žμ„œ μˆœμ°¨νšŒλ‘œλŠ” μ΄μ „μ˜ λ…Όλ¦¬νšŒλ‘œ μƒνƒœμ— 영ν–₯을 λ°›λŠ”λ‹€κ³  ν–ˆλŠ”λ°, 그러기 μœ„ν•΄ μ΄μ „μ˜ 값을 κΈ°μ–΅μž₯μΉ˜μ— μ €μž₯ν•΄μ•Όν•œλ‹€. μ΄λ•Œ 이 κΈ°μ–΅μ†Œμžλ‘œ 많이 μ“°μ΄λŠ” 것이 λ°”λ‘œ ν”Œλ¦½ν”Œλ‘­μ΄λ‹€.

즉 μˆœμ°¨νšŒλ‘œλŠ” μ‘°ν•©νšŒλ‘œ+κΈ°μ–΅νšŒλ‘œμΈ 것이닀. μ‘°ν•© λ…Όλ¦¬νšŒλ‘œμ˜ ν˜„μž¬ 좜λ ₯값은 κΈ°μ–΅νšŒλ‘œμ— μ €μž₯되고 이 μ €μž₯된 값은 λ‹€μŒ 단계λ₯Ό μœ„ν•΄ ν”Όλ“œλ°± 경둜λ₯Ό 톡해 μ‘°ν•© λ…Όλ¦¬νšŒλ‘œμ˜ μž…λ ₯ λ‹¨μœΌλ‘œ λ“€μ–΄κ°€κ²Œ λœλ‹€.

좜λ ₯값이 κΈ°μ–΅νšŒλ‘œμ— μ €μž₯λ˜μ—ˆλ‹€κ°€ μ‘°ν•© λ…Όλ¦¬νšŒλ‘œλ‘œ λ‹€μ‹œ λ“€μ–΄κ°€λŠ” λͺ¨μŠ΅μ„ 확인할 수 μžˆλ‹€.

πŸ“Œν”Œλ¦½ν”Œλ‘­

κ·Έλ ‡λ‹€λ©΄ 이 ν”Œλ¦½ ν”Œλ‘­μ— λŒ€ν•΄ 쑰금 더 μžμ„Ένžˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž. ν”Œλ¦½ν”Œλ‘­μ€ 크게 동기식 ν”Œλ¦½ν”Œλ‘­(Synchronous Flip-Flop), 비동기식 ν”Œλ¦½ν”Œλ‘­(Asynchronous Flip-Flop, Latch)으둜 κ΅¬λΆ„λœλ‹€.

두 개의 차이점을 μ•Œμ•„λ³΄κΈ° 전에 λ¨Όμ € ν”Œλ¦½ν”Œλ‘­μ— λŒ€ν•œ μ •μ˜λ₯Ό 짚고 λ„˜μ–΄κ°ˆ ν•„μš”κ°€ μžˆλ‹€. μ•žμ„œ λ§ν–ˆλ“―μ΄ ν”Œλ¦½ν”Œλ‘­μ€ 1bit κΈ°μ–΅μ†Œμžμ΄λ‹€. 순차 논리 회둜의 κΈ°λ³Έ κ΅¬μ„±μš”μ†Œμ΄κΈ°λ„ ν•˜λ‹€. 이 ν”Œλ¦½ν”Œλ‘­μ€ 값을 μ €μž₯ν–ˆλ‹€κ°€ λ‹€μŒ λ‹¨κ³„μ—μ„œ μ‘°ν•© λ…Όλ¦¬νšŒλ‘œλ‘œ λ‹€μ‹œ λ“€μ–΄κ°€μ„œ 순차 λ…Όλ¦¬νšŒλ‘œμ˜ 결과값에 영ν–₯을 μ€€λ‹€. (순차 λ…Όλ¦¬νšŒλ‘œλŠ” μ‘°ν•© λ…Όλ¦¬νšŒλ‘œ+κΈ°μ–΅νšŒλ‘œ(ν”Œλ¦½ν”Œλ‘­)) μ΄λ ‡κ²Œ κΈ°μ–΅ν•΄ λ‘μ—ˆλ˜ 값을 순차 λ…Όλ¦¬νšŒλ‘œμ˜ 결과값에 영ν–₯을 μ£ΌλŠ” μ‹œμ μ— 따라 동기식 ν”Œλ¦½ν”Œλ‘­, 비동기식 ν”Œλ¦½ν”Œλ‘­μœΌλ‘œ κ΅¬λΆ„λ˜λŠ” 것이닀.

⭐️비동기식 ν”Œλ¦½ν”Œλ‘­(Asynchronous FF, Latch) vs 동기식 ν”Œλ¦½ν”Œλ‘­(Synchronous FF)

λ¨Όμ € κ°„λ‹¨ν•œ 비동기식 ν”Œλ¦½ν”Œλ‘­, 즉 래치(Latch)에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž. μ΄λ¦„μ—μ„œ λ³Ό 수 μžˆλ“―μ΄ λž˜μΉ˜λŠ” λΉ„λ™κΈ°μ‹μœΌλ‘œ 값이 λ“€μ–΄μ˜€λ©΄ μ¦‰μ‹œ 결과값에 영ν–₯을 μ€€λ‹€.

이와 달리 동기식 ν”Œλ¦½ν”Œλ‘­μ€ 클럭 μ‹ ν˜Έμ— 따라 μž…λ ₯값을 λ°˜μ˜ν•˜λŠ” 것이닀. 이해λ₯Ό μœ„ν•΄ μ•„λž˜ 그림을 보도둝 ν•˜μž.

ν”Œλ¦½ ν”Œλ‘­μ„ μœ„μ™€ 같이 ν‘œν˜„ν•˜κ³€ ν•˜λŠ”λ° μ—¬κΈ°μ„œ μ£Όλͺ©ν•  뢀뢄은 CLK뢀뢄이닀. μ € λΆ€λΆ„μ—λŠ” μ•„λž˜μ™€ 같은 0κ³Ό 1이 λ°˜λ³΅λ˜λŠ” 클럭 μ‹ ν˜Έκ°€ λ“€μ–΄κ°„λ‹€.

ν”Œλ¦½ν”Œλ‘­μ€ 값이 0 ν˜Ήμ€ 1μΌλ•Œλ§Œ μž…λ ₯값을 κ°μ§€ν•˜κ³ , κ·Έ μ™Έμ˜ κ²½μš°μ—λŠ” μž…λ ₯을 λ¬΄μ‹œν•œλ‹€. 예λ₯Όλ“€μ–΄ 클럭 μ‹ ν˜Έκ°€ 1μΌλ•Œλ§Œ μž…λ ₯을 κ°μ§€ν•˜λŠ” ν”Œλ¦½ν”Œλ‘­(Positive-Edge-Triggered Flip-Flop이라고 ν•œλ‹€)의 경우 ν΄λŸ­μ‹ ν˜Έκ°€ 0μΌλ•Œ μž…λ ₯값이 바뀐닀고 해도 κ·Έ 값은 λ¬΄μ‹œν•΄λ²„λ¦°λ‹€. Negative-Edge-Triggered Flip-Flop의 κ²½μš°λŠ” λ°˜λŒ€λ‘œ λ™μž‘ν•œλ‹€.

 

클럭 μ‹ ν˜Έμ— λ”°λ₯Έ ν”Œλ¦½ν”Œλ‘­μ΄ ν•„μš”ν•œ 이유
사싀 κ°„λ‹¨ν•œ 회둜의 경우 κ·Έλƒ₯ 래치λ₯Ό μ΄μš©ν•΄λ„ λœλ‹€. κ·ΈλŸ¬λ‚˜ λ³΅μž‘ν•œ 회둜λ₯Ό 섀계할 수둝 λ™μž‘μ˜ μ•ˆμ •μ„±μ„ 높이기 μœ„ν•΄μ„œλŠ” ν”Œλ¦½ν”Œλ‘­μ΄ ν•„μš”ν•˜λ‹€.
μ—¬λŸ¬κ°œμ˜ 회둜λ₯Ό λ‹€λ£° 경우 νšŒλ‘œκ°„ 값을 동기화 ν•΄μ•Όν•  μˆ˜λ„ μžˆλ‹€. 예λ₯Όλ“€μ–΄ 1,2,3번 회둜의 결과값듀을 λͺ¨λ‘ λ°˜μ˜ν•˜μ—¬ 값을 λ„μΆœν•˜λŠ” 4번 νšŒλ‘œκ°€ μžˆλ‹€κ³  ν•΄λ³΄μž. μ΄λ•Œ 1, 2, 3번 회둜의 결과값이 λ„μΆœλ˜λŠ” 속도가 λ‹€λ₯΄λ‹€κ³  κ°€μ •ν•΄λ³΄μž. 그럼 μ„€κ³„ν• λ•Œμ™€ λ‹€λ₯΄κ²Œ λ™μž‘ν•  μˆ˜λ„ μžˆμ„ 것이닀. μ΄λ•Œ 각 νšŒλ‘œμ— λ™μΌν•œ 클럭 μ‹ ν˜Έλ₯Ό μ€€λ‹€λ©΄ νšŒλ‘œκ°„ 값을 λ™κΈ°ν™”ν•˜λŠ”λ° μ‚¬μš©λ  수 μžˆλ‹€.

'Computer Science > μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

컴파일 κ³Όμ •  (0) 2023.09.14

λŒ“κΈ€