FPGA/Verilog(12)
-
[베릴로그 개인 공부] 조합회로
조합회로 조합논리회로 : 입력 신호의 조합에 따라 출력신호가 결정되는 회로. 이 회로는 입력신호의 조합이 현재 상태에만 영향을 미치고, 이전 상태나 다음 상태와는 관련이 없다. 따라서 출력은 오로지 입력 신호의 조합에 의해 결정된다. 조합회로 종류 반가산기 (Half Adder) : 두 개의 입력 비트를 받아 합과 자리올림 값을 출력하는 회로. module HalfAdder(A, B, Sum, Carry); input A, B; output Sum, Carry; assign Sum = A ^ B; // XOR 연산: 입력 비트의 합을 구합니다. assign Carry = A & B; // AND 연산: 자리올림 값을 구합니다. endmodule 전가산기 (Full Adder) : 두 개의 입력 비트와 자..
2023.06.27 -
[베릴로그 개인 공부] generate문
generate 베릴로그(Verilog) 문법에서 "generate"는 코드 생성과 제어를 위해 사용되는 키워드이다. generate 블록 내에서는 일반적인 선언과 실행 흐름을 따르는 것이 아니라, 코드의 반복, 조건부 실행, 계층적 구조 등을 구현하는 데 사용된다. generate 블록은 일반적으로 조건에 따라 여러 인스턴스를 생성하거나, 계층적인 모듈 구조를 생성하는 데 사용. 예를 들어, if - else문을 사용해서 generate 블록 내에서 조건에 따라 다른 모듈 인스턴스를 생성할 수 있다. generate 블록은 복잡한 모듈 구조를 구현하는 데 사용될 수 있으며, 코드의 재사용성과 유지보수성을 향상시킬 수 있다. 그러나 generate블록을 사용할 때 주의할 점은 모듈 인스턴스 및 신호 선언..
2023.06.26 -
Finite State Machine (유한 상태 머신)
Finite State Machine (유한 상태 머신) 일종의 메모리 메모리는 단순 값을 저장하지만 FSM은 유한한 갯수의 정해진 상태값을 저장하는 LOGIC FSM에선 메모리가 아닌 MACHINE이란 명칭이 붙는다 -> 단순 상태값을 저장하는 것 뿐만 아니라 다음상태값을 무엇으로 저장할 것인가에도 FSM이 능동적으로 결정하기 때문 현재상태를 저장하는 플립플롭(레지스터)로직과 현재 들어오는 입력값과 다음 상태값을 결정하는 로직(상태 결정 회로, 조합회로)의 조합으로 이루어져있다. 정해진 순서를 갖는 패턴을 출력으로 내보내는 로직 State Machine 예시 안의 숫자 = 현재 상태 외부의 숫자 = 입력 현재입력이 000이라면 다음상태는 변하지 않고 000유지 입력값이 001이라면 현재상태가 000 -..
2023.06.14 -
Xilinx Board
FPGA 장점 쉽게 디지털 로직을 여러 번 프로그래밍 할 수 있다. ASIC 대비 개발 출시 기간이 빠르다 업데이트 가능 단점 고비용 베릴로그 개발 과정 베릴로그를 통해 RTL 디자인을 한다 Synthesis를 통해 게이트레벨의 회로도 netlist를 추출하게 된다. 게이트들의 place와 routing을 하게 된다. 최종적으로 FPGA에 삽입되어질 Layout을 하게된다. 그 후 FPGA가 된다. Synthesis HDL(Verilog)로 작성된 code를 실제 Gate-Level의 회로들로 Netlist로 변환하는 과정 그렇게 만들어진 회로를 실제칩에 이식하기 위해서 Place와 Routing 과정이 있다. HARDWARE MANAGER -> 만들어진 비트스트림파일을 FPGA에 프로그래밍하기위한 상태..
2023.06.14 -
Verilog Simulation 2
D FF Simulation `timescale 1ns / 1ps module Flipflop( input wire D, input wire clk, output reg OUT ); always @ (posedge clk) begin OUT
2023.06.14 -
Verilog Simulation 1
Simulation PFGA Verilog Code를 합성하여 SYNTHESIS (Netlist를 추출하고 Netlist를 Place & Routing) 하는데 시간이 오래걸리기 때문에, 먼저 Simulation을 해서 정확한 동작을 하는지 검증을 한다. `timescale 1ns / 1ps module AND_GATE( input A, input B, output C ); assign C = A&B; endmodule Simulation할 시 정상적으로 timing diagram이 생성되는 것을 확인할 수 있다. Simulation with Modelsim 베릴로그를 사용하여 디지털 로직을 설계할 시 그림을 그린다고 표현. 자기가 원하는 디지털 로직의 연결과 게이트를 추가하여 입, 출력을 연결해준다. ..
2023.06.14