1. 조합 논리 회로 & 순차 논리 회로 조합 논리 회로(Combinational Logical Circuit)비동기 ← 클럭에 영향을 받지 않음 ⇒ 입력이 들어가면 출력이 바로 나옴MUX, Decoder, DigitSplitter, Gates(AND, OR, …), ALU순차 논리 회로(Sequential Logic Circuit)동기 ← 클럭에 영향을 받음 ⇒ 클럭을 기준으로 동작 시점 결정Clock Diver, Counter, Flip-Flop(Edge Trigger), Latch(Level Trigger), Register 클럭을 쓰는 이유?동기화 : 동시에 무엇인가 동작, 동작을 시키기 위한 기준점데이터 무결성 향상시스템 안정성 → 시스템이 정확한 시간, 원하는 타이밍에 동작병렬 처리 → 여..
1. C언어 vs Verilog 1. C언어 : Sequential(잇달아) → Polling 방식으로 위에서부터 아래로 차례대로 실행 2. Verilog : Concurrency(동시성) → 동시 실행 2. 8bit Adder FND 2-1. 8bit Adder 만들기더보기`timescale 1ns / 1psmodule Adder_8bit ( input [7:0] a, input [7:0] b, input cin, output [7:0] sum, output co); wire w_carry0; Adder_4bit U_4bitAdder0 ( .a (a[3:0]), .b (b[3:0]), ..
1. System Verilog 문법 사용하여 Verification 4bit Adder Simulation콘솔창에 출력하기 더보기4bit Adder Desing source`timescale 1ns / 1psmodule Adder ( input [3:0] a, input [3:0] b, input cin, output [3:0] sum, output co); wire [2:0] w_carry; fullAdder U_FA0 ( .a(a[0]), .b(b[0]), .cin(cin), // 1bit 이진수 0 .sum(sum[0]), .cout(w_carry[0]) ); fullAdder U..
1. Half Adder S = A’B + AB’ (XOR Gate)C = AB (AND Gate)module HalfAdder( // Port list input a, input b, output Sum, output Carry ); // Design Circuit assign Sum = a ^ b; assign Carry = a & b;endmodule Simualtionmodule tb_HalfAdder(); reg a; reg b; wire Sum; wire Carry; HalfAdder test_HA( .a(a), .b(b), .Sum(Sum), ...
1. 반도체 칩 설계 과정 2. Basys3 FPGA Board 가운데 칩이 FPGA Chip(ARTIX-7 (XC7A35T-CPG236C)) 파일 만들기 3. 로직 게이트 설계하기 위와 같이 Datasheet에 각 핀에 연결된 HW가 표기되어 있다.SW0 : V17, SW1 : V16LED0 : U16, LED1 : E19, … 설계 과정1. Design Source 작성2. RTL Schematic 확인 & IO Port 설정 IO 포트 설정을 위와같이 코드로 작성할 수 있음 3. Synthesis → Implementation → Program And Debug 순서로 실행Synthesis(합성) : Verilog code(논리) → HW(물리)로 바꾸는 과정이 과정에서 Ha..
내부 클럭(HSI) : 불안정 → Clock 주기가 외부의 영향으로 변할 수 있음외부 클럭(HSE) : 안정적 → 정확한 시간을 재야할 때 사용 전체 코드https://github.com/k1minseok/STM32_ButtonLED_0423 GitHub - k1minseok/STM32_ButtonPush_LEDON_0423Contribute to k1minseok/STM32_ButtonPush_LEDON_0423 development by creating an account on GitHub.github.com→ delay 함수를 사용하지 않음(non-blocking 방식 / delay 사용 : blocking 동작 방식) static uint32_t prevTime = 0; uint32_t cur..