공부/논리회로 (8) 썸네일형 리스트형 Logic_circuit_7: Register 너무 오랜만의 포스팅인데 졸업작품때문에 전혀 시간이 없었다 ㅎㅎ 그래도 최대한 포스팅할 수 있게 시간을 내보겠다. 금일 포스팅 주제는 레지스터이다.n bit register = n개의 flip flop + gate로 이루어져있는데, 보통 d-F/F을 사용하기 때문에 Q가 posedge clk에서 update된다.sequential logic에서 memory라는것은 매우 중요하기 때문에 flip flop을 사용한다고 했고, 이 flip flop을 여러개 이어붙인것이 register이기 때문에 잘 알아둬야할 필요가 있다. memory hierachy를 보면 알겠지만, cpu에 제일 가까운게 reg이다. 예를들어, A+B=C, C=C+2라는걸 계속 수행한다고 해보자. 계속 수행하는 C는 CPU에 가까운곳에 저.. Logic circuit_7 : Sequential Logic(2) 필자는 논리회로라는 과목을 20년도 1학기에 처음 접했다.이번에 정리를 위해 다시 찾아보기전에 논리회로라고했을때 기억에 남는거는 combination logic과 sequential logic내용들 부분부분밖에 없었는데 그만큼 이 논리회로라는 주제에서 가장 큰 부분을 차지하는 내용이 이 두가지 개념들이다.그 중에서도 clk개념이 들어가는 sequential logic이 더 어려울수밖없고 잘 이해하고 정리해야하는 부분이다. 지난 시간에 D-Latch까지 정리를 하였다. 어떻게 만들수있는지 내부 구조를 아는 것도 중요하지만 하나의 모듈을 어떻게 사용하는지도 매우 중요하니 꼭 알아두자고 강조했었는데, 이걸 사용해서 회로를 설계하기 때문에 그렇다.마치 고등학교때 미분을 배울때 y=2x라는식을 x에대해 미분할때 .. Logic circuit_6 : Sequential Logic(1) 이전에 combination logic을 배웠다. input에 의해 output이 바로 결정되는 회로였는데, 오늘 정리할 Sequential Logic은 input과 이전 state에 의해 output이 결정되는 논리 회로이다. 여기서 추가된 것은 "state"라는 개념인데, 이게 왜 필요한걸까?예시를 한 번 들어보자.내가 방 온도를 25도로 유지를하려고 한다. 현재 방 온도는 18도이고 내가 보일러에 입력하는 값은 그렇다면 25도가 될 것이다. 여기서 출력은 온도의 상승이며, 시간이 지날수록 온도는 점점 더 올라가 마지막에 25도가 될 것이다. Sequential logic에 해당 값들을 대입해보자.input은 25도이다.state는 처음에는 18도였지만 갈수록 점점 높아진다.output은 온도의 상승.. Logic_Circuit_5-Combination Logic(2)-Multiplier 지난 시간에 감/가산기까지 내용을 정리해보았다.오늘은 여러가지 combination logic에 대해 더 알아보겠다. 1. Binary Multiplier110 X 101을 해보자.너무나도 쉽다.이거를 회로로 어떻게 표현해야할까? 처음 생각해보면 생각보다 어려울 것이다. 좀 더 쉬운 예제로 먼저 예열을 해보자.이 예제는 어떤가?결과를 쓴 과정을 생각해보자. 먼저 곱하고 그다음 더했을 것이다.Gate는 AND와 OR밖에 사용하지 않게된다. 위와같이 설계할 수 있다. (다음 Verilog 포스팅에서 실제로 회로를 Verilog로 코딩 후 simulation까지 돌려보도록 하겠다.) 이제 맨위에 보았던 3 by 3 곱셈기를 설계해보자.이거를 어떻게 회로로 나타낼까?위와같은 아이디어로 덧셈을 두번 나눠서 하면.. Logic circuit_4: Combination Logic(1) 논리회로는 combination logic과 sequential logic 2개로 분류할 수 있다.input이 들어가면 바로 output이 나오는 combination logic에 대해 며칠에 거쳐 포스팅할 예정이다.또한, 해당 내용 포스팅이 끝나면 관련 몇가지 예시들을 Verilog 코딩을 통해 simulation까지 돌려볼 예정이다. 본론으로 돌아와서 회로 설계는 어떻게 할까?1. Design spec을 확인한다. (input/output bit수 결정 ....)2. Truth table을 작성한다.3. k-map을이용해 최적화를 한다.4. 최적화한것을 보고 Logic gate를 맞춰 그린다.위와 같은 과정을 거쳐 회로를 설계하는게 일반적인 방법이다. 예시를 통해 한번 따라가보자. 1. Design.. Logic Circuit3: Gate_Optimization 어떤 출력이 10이라는 값이 나왔다고 해보자. 이 값이 도출되기 위한 과정으로 2+2+2+2+2 일수도 있고 2*5가 될수도 있고 엄청나게 무한한 경우의 수가 존재한다.회로도 똑같다. 동일한 output값을 내보내도 그 안에 들어있는 회로가 어떻게 구성되어 있는지는 매우 다양하다. 최대한 효율적으로 회로를 설계해야 경쟁력이 있게 된다. 그렇다면 어떻게 최적화를 시켜야 할까?Boolean Algebra를 이용해서 사람이 직접 간단하게 회로를 바꿀 수 있다. 하지만, 사람이 식 하나하나를 보면서 최적화를 하다보면 실제로 이게 best로 줄인거인지도 확인이 안될 뿐더러 실수도 잦기 때문에, 카르노맵이라는 것이 등장하게 되었다. 카르노맵을 사용할 때 유의해야할 점 몇가지를 정리한 후 실제 예시를 들어 회로 최.. Logic Circuit_2 기본적으로 컴퓨터는 binary만 이해할 수 있기 때문에 encoding과정을 거쳐 값을 binary로 바꾸어 주게 된다. 이 때 사용하는것이 그 유명한 ASCII code로 128bit 즉, 7자리로 표현이 가능한데, 보통은 7bit만을 이용하지 않고, Error Detection Code로 parity를 추가하여 data를 이용하게 된다. (이번학기 무선통신공학때 자세히 배운 내용인데 시간이 된다면 나중에 이것도 큰 주제로 잡고 다뤄보도록하겠다.) 그렇다면, 값을 어디에 저장하게 될까? 답은 Memory 이다.HW내부에서 Processing(계산)을 담당하는 부분에 값을 넣고, 빼야 하기 때문에 이 메모리라는것은 매우 중요하다.Memory는 종류가 다양한데, 1. Register2. SRAM (Cac.. Logic Circuit_1 종강한지 일주일이 채 안됐는데 디지털회로설계쪽으로 진로를 잡다보니 방학때 한 번 관련된 내용을 정리를 해봐야 할 것 같아서 전공 내용 공부랑 C/C++를 remind하고 블로그에 정리를 쭉 할 생각이다. 학기중에 정리를 해보려했지만 쉽지 않은 것을 깨닫고 방학때 해야겠다라는 생각은 가지고 있었는데 더 늦지않게 오늘부터 조금씩 해나갈 생각이다. 논리회로는 20년도 1학기에 처음 배웠으니 너무 오래전이긴하지만 그래도 HW design Engineer가 되기 위해서는 필수적으로 알아야 하는 내용이기 때문에 선정하였다.이제 시작을 해보자. 우선, Digital이라는게 무엇일까? Chat GPT에게 물어보면, 디지털(Digital)은 정보를 이진수(0과 1) 형태로 표현하는 방식을 의미합니다. 디지털 시스템은.. 이전 1 다음