본문 바로가기

FPGA

(13)
[FPGA] 5. Basys3 사용해보기 아래 코드는 지난 시간에 만든 전가산기 4개를 이용하여 4비트짜리 전가산기를 구현한 코드이다. Basys3 보드에서 스위치로 input을 넣고 LED로 결과를 출력하는 기능을 구현해보고자 한다. 구현하는 순서를 알아보자. module fadder_4bit( input [3:0] A, input [3:0] B, input Cin, output [3:0] S, output Cout ); wire c1, c2, c3; fadder fa0(.A(A[0]), .B(B[0]), .Cin(Cin), .S(S[0]), .Cout(c1)); fadder fa1(.A(A[1]), .B(B[1]), .Cin(c1), .S(S[1]), .Cout(c2)); fadder fa2(.A(A[2]), .B(B[2]), .Cin(c2..
[FPGA] 4. 대표적인 모델링 방법 (Data Flow/Gate Level/Behavioral Modeling) Verilog에는 시스템을 모델링할 수 있는 방법이 있다. 간단하게 그 중 세 가지를 알아보자. 1. 자료흐름적 모델링 (Data Flow Modeling) 데이터의 흐름에 중점을 두고 모델링하는 방법이고,디지털 필터와 같은 신호 처리 회로에서 적합하다고 한다. 하지만 이를 보고 무슨 말인지 잘 와닿지 않는다. 먼저 코드를 보자. module half_adder_d( //data flow modeling input A, input B, output wire S, //data type : reg, wire output wire Cout ); assign S = A ^ B; //you cannot use assign type in always assign Cout = A & B; endmodule 위 코드는..
[FPGA] 3. Verilog의 순차 회로 1. 순차 논리 회로란? 순차논리회로는 논리 회로의 한 종류로, 이전 상태에 따라 다음 상태가 결정되는 회로이다. 즉, 이전의 입력과 출력 상태가 다음 입력과 출력 상태에 영향을 주는 논리회로를 말한다. 대부분 클락이나 리셋을 통해서 제어하고 초기화한다. 아래 코드를 보면서 어떤 느낌의 회로인지 알아보자. 2. 순차 회로 D-플립플롭 구현 다음은 클락이 상승하는 시점에 input값에 따라 register의 값을 변화시키는 D-플립플롭을 구현할 것이다. 이는 순차 논리 회로의 기본적 예시이다. module d_ff( input rst, input clk, input din, output reg qout ); always@(negedge rst, posedge clk) begin if (rst == 0) q..
[FPGA] 2. Verilog의 조합 회로 1. 조합회로란? 조합회로는 입력 신호를 처리하여 출력 신호를 즉시 생성한다. 동기 방식(클럭을 사용하는 방식)인 순차회로와는 달리, 이러한 회로는 입력값에만 의존하며, 출력은 항상 동일한 입력에 대해 일관된 결과를 제공한다. 따라서 조합회로는 논리 게이트로 구성되며, 논리 연산자의 출력은 현재 입력에만 의존한다. module gate4a( input a, b, c, d, output y_a, y_b ); wire and_ab, and_cd, or_bc; assign and_ab = a & b; assign and_cd = c & d; assign or_bc = b | c; assign y_a = (and_ab | and_cd); assign y_b = (a & d) & or_bc; endmodule 위..
[FPGA] 1. Verilog 기본과 문법(4/17) 1. Verilog란? Verilog는 디지털 회로를 모델링하고 설계하기 위한 하드웨어 기술 언어(Hardware Description Language) 중 하나이다. 주로 ASIC(Application-Specific Integrated Circuit)과 FPGA(Field-Programmable Gate Array) 디자인에 사용된다. 베릴로그는 시뮬레이션과 합성을 위한 강력한 도구를 제공하여, 회로 설계자들이 복잡한 디지털 회로를 쉽게 모델링하고 시뮬레이션할 수 있도록 한다. 베릴로그는 기술적으로 높은 수준에서 디지털 회로를 모델링하며, 하드웨어적인 성능을 최적화하기 위해 논리적인 요소들을 조합하는 방법을 사용한다. 2. 글리치(glitch)란? 이상적인 동기화(클럭을 이용한) 설계에서는 같은 타이..