반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

공머씨의 블로그

내가 공부한 논리회로 설계 22. Combinational circuit Design(Mathodology_Examples)_Majority v 본문

내가 공부한 3학기 전공/내가 공부한 논리회로 설계

내가 공부한 논리회로 설계 22. Combinational circuit Design(Mathodology_Examples)_Majority v

공머씨 2020. 6. 11. 15:14
반응형

지난 시간까지는 조합 회로를 해석하는 방법을 공부했습니다.
F(x, y, z)
어떻게 동작하는지 어떻게 해석하는지
 
 
이번 시간부터는 조합 회로를 설계하는 방법에 대해 공부합니다.
두 가지 주제로 구성되어있습니다.
3.1 방법론
3.2 예시를 가지고 공부합니다.(예제 위주로 설명)

 
일단 가벼운 이야기부터 합니다.
조합회로의  개념은 다음과 같습니다.
 
 
네모 박스 안에 not OR 게이트 등등이 들어갑니다.

 
네모 박스 안에 들어갈 회로를 만들기 위해서는 어떤 절차를 거쳐야 하나면..

두 번째 단계가 중요합니다.
 
 
2번째 단계를 활용해서 최적화합니다.
출력을 입력의 함수로 최적화
최적화된 결과를 회로로 구현하면  됩니다.
 
마지막으로 타이밍 다이어 그램 등으로 검증합니다.
 
 
 

Desigh Space

어디에 조합 회로를 구현할 지에 대한 내용입니다.
이 교과목에서는 TTL이라는 회로에 구현을 하게 됩니다.
아래와 같이 생겼습니다.

SN이 의미하는 것은 제조사입니다.
SN>>>Texas Instrument에서 만든 칩이라는 의미입니다.
 
그다음 붙어있는 74는 동작 온도입니다. SN74S00은 범용으로 사용되는 칩입니다.
54가 붙어있는 것은 고사양 칩입니다. 훨씬 낮은 온도부터 훨씬 높은 온도까지 구동될 수 있는 칩입니다.
 
그 뒤에 붙어있는 00이라는 숫자는 기능을 이야기합니다.
00이 붙어있는 것은 NAND칩입니다.
 그 뒤에 알파벳이 붙어있는 경우가 있는데 이것은 내부의 구조를 이야기합니다.
 

참고만 하면 됩니다.
SSI SK MSI정도를 공부합니다.
 
 

게이트가 수십 개가 아니라 수천, 수백만 개는 다른 디바이스에 구현해야 합니다.
대표적인 제품군에  마이크로프로세서라는 것이 있습니다.
ATmega라든가, ARM이라는 것으로 나중에 구현할 기회가 있다고 합니다.
 
 
DSP,
FPGA 고난도 복잡한 알고리즘을 구현할 수 있습니다.
 
 
ASIC주문형 반도체
EX) INTEL의 CPU, NVIDIA칩.... etc
원하는 기능만 직접 하나하나 설계해서 넣은 것입니다.
 
교과목에서 공부하는 것은 손으로 셀 수 있는 
Gate-levle회로입니다.

알아야 하는 것이 많지 않습니다.
진리표 불대수 항등식 카르노 맵 타이밍 도정도를 알면 됩니다.
 
복잡한 시스템 레벨의 회로를 만든다고 하면, 복잡한 레벨의 칩을 꾸민다고 하면 알아야 할 것이 많아집니다.

전용 소프트웨어를 활용해서 컴파일하고 
칩에 이식시켜서 구동시키면 됩니다.
 
다루는 것은 어렵지 않은데 소프트웨어에 코딩하는 것이 어렵다고 합니다.
C언어를 잘 알아야 합니다. 
그 외에 다른 언어들은 차차 배우게 됩니다.
 
 
 
디자인하는 방법을 아래와 같이 두 가지로 분류할 수가 있습니다.

 
첫 번째 방식은 Top down방식입니다.
위에서부터 내려온다.
 Top down 제일 큰 큰 덩어리들을 먼저 생각합니다.
개념을 명확하게 잡고 작은 단위의 칩을 만듭니다.
잘라서 정복한다 디바이스 앤드
 
 
반대의 개념으로 밑에서부터 치고 올라온다는 뜻인 Bottom-up방식이 있습니다.
 
 
 
그리고 디지털 시스템을 설계할 때 고민해야 할 것이 많습니다.
성능의 측정
지금까지 배운 최적화하는 여러 방법과 스킬들은 회로의 성능을 높이기 위해서 공부한 것입니다.
아래와 같은 요소들을 고려해서 회로의 성능들을 측정할 수 있습니다.

동일한 기능을 수행하면서도 게이트의 수가 적을수록 좋습니다.
그리고 딜레이 시간이 짧을수록 좋습니다. P&R이라는 것을 공부합니다.
전력을 최대한 적게 소비
안정적인 Fan-in Fan-out개수를 유지
회로에서 발생하는 소음도 작아야 합니다.
 

3.1 정도는 다 무시하고 간단한 것들을 공부합니다.
 
 
게이트수가 몇 개안되는 것을 예로 들어서 살표 봅니다.

문제
출력이 입력의 제곱이고
입력은 Unsigned 3 bits
출력은 Unsigned라고 합니다.
아래 그림과 같이 제곱을 하는 회로를 만듭니다.
 

 
 
가장 먼저 해야 할 것은 Specification, 정의하는 것입니다.
회로의 입력, 출력의 개수를 정하고 이름을 지어줍니다.
 

 
 
 
 
그리고 출력의 개수를 고민해봅니다.
출력을 알기 위해서는 입력의 범위를 알아야 합니다.
I2를 MSB I0를 LSB라고 한다면
입력은 000부터 111을 의미합니다.
십진수로 0~7까지 표현할 수 있습니다.
 
출력은 6BIT를 가질 수 있습니다.
출력은 0에서 49까지 (49>> 이진수로 변환하면 110001)
2의 6승, 6비트가 필요합니다.
000000~111111(10진수 63)

첫 번째 단계가 끝났습니다.
이제 입출력의 진리표를 작성해야 합니다.

 
 
 
 
 
그다음 세 번째 단계
최적화하면 됩니다.
출력이 총 6개이므로 K-Map을 총 6개 작성해야 합니다.
 
각 출력을 입력의 함수로 표기하면 됩니다.
 
다음과 같이 카르노 맵을 세팅 합니다.
MSB가 I2임을 기억합니다.

 
위와 같은 식으로 카르노 맵을 작성 합니다.
 
그다음에 할 일은 회로를 작성하는 것입니다.
 

4번째 단계 회로 구현하기

입력이 I2 I1 I0였으므로 D5부터 그려보겠습니다.

이런식들로 최적화가 됩니다.
나머지 부분들은 스스로 그려보면 되겠습니다.
 

5번째 단계

잘 동작하는지 타이밍 도를 그리면 됩니다.
(생략)
제일 중요한 것은 입출력을 잘 결정하고 진리표만 잘 작성하면 됩니다.
 

 

다음 예제는 비슷한 문제입니다.

반드시 직접 풀어보기를 바랍니다.
 
 
입력이 있으면 입력에 root를 씌워서
아래 꺾새의 연산을 수행하면 됩니다.
루트를 씌우면 정수가 잘 안 나오는데
아래 꺽쇠의 기호는 1.73을 넘지 않는 최대의 자연수를 구하라는 이야기입니다.
예를 들어 1.73은 1로 작성해줍니다.
 
 
1.입력과 출력의 범위부터 파악합니다.
입력은 0000부터 1111까지  입니다. 

 
십진수로 0~15까지 인데 위 논리함수식에 넣으면
다음과 같은 과정에 의해

 
 
최대 0~3까지를 필요로 합니다.
이를 이진수로 나타내면 00~11이므로
출력은 Unsigned 이면서 2bit가 필요하다는것을 알 수 있습니다.
 
 
 
 
2.진리표를 작성합니다.
 
<규칙>

위와 같은 규칙성에 의해 F1 F0을 알아낼 수 있습니다.

 

 
 
 
 
3.작성한 진리표를 가지고 K-MAP으로 최적화합니다.

 
4. 함수는 다음과 같이 작성됩니다.

 
 
 
 
 
 
 
5.이를 바탕으로 다음과 같은 회로를 구현할 수 있습니다.

 
 
 
 
 
 
 
 
 

Majority Voting Circuit

 
다수표를 찾아내는 회로

3bit을 예를 들어 먼저 공부해봅니다.

입력 중에서 더 많은 것을 출력하는 회로입니다.
3bit에서 1이 많으면 1을 출력하고
0이 더 많으면  0을 출력하는 회로입니다.
 
 

첫 번째 단계

입, 출력의 개수와 이름을 정해줍니다.

 
 
진리표를 작성해보면 다음과 같습니다.

 
 
 
카르노 맵으로 최적화해봅니다.

 
 
 
회로를 구현하면 다음과 같습니다.

 
 
 
 
 
잘 동작하는지는 타이밍도를 그려서 확인하면 됩니다.
 
 
 

입력이 4bit일 때,majority voting circuit

 
입력이 짝수라서 1의 개수와 0의 개수가 같을 수도 있습니다.
이런 경우에는 문제에 따라 다르지만
이 문제는 입력의 1의 개수와 입력의 0의 개수가 같다면 doncare로 처리하시오.
라고 주어져 있다고 가정합니다.
 
입출력의 개수를 정합니다. 이름을 정의합니다.

 
문제에서 회로의 기능에 따라 진리표를 작성합니다.

작성한 진리표를 이용해 K-MAP으로 최적화한뒤  회로를 구현합니다.

답이 두개 나옵니다.

 
 
가장 중요한 것은 Design Procedure입니다.

도움이 되셨다면 로그인이 필요없는 하트버튼 한번 부탁드립니다!!

반응형
Comments