본문 바로가기

전체 글315

[Harman 세미콘 아카데미] 5일차 - Sequential Logic(LATCH, FF) [Squential Logic] Squential Logic = 순차 논리 회로 - Combinational Logic과 달리 feedback 기능이 있다. #feedback : 출력이 입력에 영향을 줌. - Time dependent(clock에 의해 좌우된다.) .- 회로는 Latch 또는 Flip-flop로 구성된다. 공통점 차이점 Latch 상태 기억 소자 - 현재 상태를 기억하고 유지한다 (HOLD) - 적절한 시점이 되었을 때, 그 기억을 바꿀 수 있어야 한다. (Triggered 방식) Level-triggered : clk가 특정한 값을 가지고 있을 때 동작 Flip-flop Edge_triggered : clk이 0→1 또는 1→0이 되는 시점에 동작 [LATCH] 메모리의 시작이기도 한.. 2023. 6. 23.
[Harman 세미콘 아카데미] 5일차 - Demux, 코드변환기 [Demux] Demux : 한 선의 입력을 받아 출력선들 중 하나를 선택하여 받은 정보를 전송하는 회로. 앞에서 만든 Mux와 Demux를 instance 하여 Top module에 장착 top module을 Test_bench로 보내 시뮬레이션 시행 우리는 d에 clk들을 넣어 줄 것므로, 위와 같이 수정해준다. 1. 테스트하고자하는 모듈의 입/출력을 복사해 온다. 2. 입력은 reg, 출력은 wire로 연결해해준다. 3. 모듈의 instance 선언 4. clock 설정 - clock 초기화 - clock toggle 5. 입력해서 test하고 싶은 값들을 initial 문 안에 넣어준다. 충분한 출력이 나올 수 있도록 여유롭게 시간을 주어야 함. 6. 시뮬레이션하고 결과 확인 [코드 변환기] : .. 2023. 6. 23.
[Harman 세미콘 아카데미] 4일차 - Encoder 설계, MUX, LUT [Encoder] schematic을 생성하면, ROM을 포함하여 생성된다. (4-bit이므로 ROM 내부에 16개의 메모리가 생성됨) 우리가 정해준 4개 빼고 나머지 12개에는 다 2’b11(조건연산자의 가장 마지막 값)을 저장해버린다. 회로만 좀 낭비될 뿐, 문제는 없다. (입력이 많아질수록 더 많은 메모리가 많이 낭비됨) [MUX] MUX란? = 'Multiplexer' or 'Selector' 여러 개의 입력 신호 중에서 하나를 선택하여 출력 선에 연결하는 조합 회로. (FPGA에서 필수적이며 정말 많이 사용된다.) 디코더와 비슷하지만 다르다. → 들어오는 신호 중에 하나 골라서 출력(압축이 아닌, 선택) 2x1 MUX 1) Structure Modeling 2) Dataflow modeling .. 2023. 6. 22.
[Harman 세미콘 아카데미] 4일차 - 7_segment로 디코더 회로 출력하기 [BCD 7-segment decoder] 위 그림처럼 8개의 LED(a, b, c, d, e, f, g, dot) 합쳐놓은 것을 말하며, 각 LED를 on하여 숫자 또는 문자를 표현한다. 4 bit의 입력으로 출력할 수 있는 경우의 수 → 2⁴(=16) 가지(0~9, A~F) case를 써주지도 않고, default도 안 만들어주면, LATCH가 만들어진다. → 주의할 것 ※ 분주기 (2진수에서 다음 bit의 주기는 이전 bit 주기의 2배) 위 코드를 예로 들면, i) 1 clk rising edge일 때, clk_div = clk_div +1 즉, clk 1주기 동안 clk_div[0]는 1회 rising/falling 한다. → clk의 주기는 clk_div[0]의 주기의 1/2 ii) clk_d.. 2023. 6. 22.
[Harman 세미콘 아카데미] 3일차 - Cora z7 setting, Decoder [FPGA board] 1. Board setting : 설계한 회로를 board에 programing하기 위해서는 입출력 변수들을 board의 입출력 단자에 연결해주어야 하고 그러기 위해서는 board에 장착된 FPGA chip의 연결 정보를 알아야 한다. → XDC file을 다운받아 vivado에서 programing 1) XDC File 다운받기 & 불러오기 ※ Cora z7 board 관련 링크 https://digilent.com/reference/programmable-logic/cora-z7/start Cora Z7 - Digilent Reference digilent.com ※ C언어에서 사용 가능한 파일 경로 사용 가능 : 영어 대문자/소문자, 숫자(맨 앞에는 오면 안 됨), _(und.. 2023. 6. 21.
[Harman 세미콘 아카데미] 3일차 - 가산기,비교기, 인코더/디코더 [가산기] 1. 가산기를 Data-flow modeling으로 설계 위 식은 조건연산자를 활용하여 작성할 수도 있다. ※ 조건연산자 Q = 조건식 ? A : B; i) 조건식이 참(1)일 경우, Q = A ii) 조건식이 거짓(0)일 경우, Q = B 2. 가산기 모듈을 테스트 벤치에 인스턴스 : 변수는 이전과 같으므로 DUT 값만 변경해주면 된다. cf) 가독성을 좋게 하기 위해 4자리마다 _를 붙여주면 좋다. → 9'b1_1111_1111 [비교기] 1. 1-bit 비교기 1) 논리 연산자로 i-bit 비교기 설계 assign 문을 사용하여 설계하였지만, 논리연산자를 사용하면 구조적 모델링과 별 차이가 없게 된다. ※ Force clock 시간의 흐름에 따라서 값을 지정해줄 수 있는 기능이다. 각 b.. 2023. 6. 21.
[Harman 세미콘 아카데미] 2일차 - 보수체계, Testbench, Delay [개요] 1. 논리 회로 - Combinational Logic (조합 논리 회로) : input이 주어지면, output이 고정된다. output이 다음 output에 영향을 주지 못 함. - Sequential Logic (순차 논리 회로) : 이전 output이 다음 output에 영향을 줄 수 있다.(Feedback) clock을 사용함. 2. Modeling 기법 동작 레벨(Behavioural Level) 동작적 모델링(Behavioural Modeling) : C언어와 가상 유사한 방법이며, 설계의 기능을 알고리즘 위주로 기술하는 방법. 하지만 Synthesis하 는 과정에서 LUT나 Flip Flop들이 지나치게 사용될 수 있다. initial(Time = 0 일떄 실행되는 구문), alw.. 2023. 6. 20.
[Harman 세미콘 아카데미] 1일차 - Half adder, Full adder [Source 생성] Source 탭에서 + 표시를 클릭 첫 source 생성이므로, create file 클릭하고 파일명 설정 모듈의 input와 output을 설정해주면, 위와같이 모듈명과 변수들이 자동으로 선언된다. [Modeling 방법] Modeling 방법은 총 세 종류가 있다. 1. Gate-level Modeling(=Structural Modeling) : 어떤 특정한 구조나 기술을 나타내지 않는 상위 추상화 레벨(매우 중요한 회로, 블록 표현) 2. Data-flow Modeling : 사용한 컴포넌트와 컴포넌트 간의 상호연결 구조가 분명히 기술되는 하위 추상화 레벨 (특정 라이브러리/패키지의 개별 게이트나 플립플롭의 사용을 지정할 수 있음) 3. Behavior Modeling : 상.. 2023. 6. 19.