728x90

Semiconductor/0. FPGA 8

FPGA를 이용한 시계 만들기 (AXI4-Lite를 이용한 입력에 따른 Freq 조절)

https://insoobaik.tistory.com/711 이전 글을 통해 Vivado에서 제공하는 AXI4-Lite Interface를 알아보았다. 이번 시간에는 AXI4-Lite를 이용하여 PS(Vitis)에서 값을 입력하면 해당 Freq가 PL(FPGA)의 Clock 모듈의 Clock으로 동작하여 시계가 동작하도록 구현할 것이다.* Clock의 경우 100MHz를 사용한다. Block Diagram Watch_Top.v먼저 시계를 담당하는 Module의 경우 Input- clk- rst- run_en : HIGH일 때 시계 동작- freq : 현재 Clock이 100MHz이고, 입력 freq를 설정하여 시계의 속도를 조절한다. (freq = 100000000일 경우 1초에 해당한다.) Output..

FPGA - IP 생성 및 Vitis를 이용한 Switch, LED 제어

목차IP 생성Block Design 생성 및 xsa 파일 생성 및 내보내기Vitis를 통한 하드웨어 실행- Switch 동작에 따라 점멸 속도가 각기 다른 LED를 조절하는 IP를 생성할 것이다.  IP란?Intellectual Property는 특정한 기능을 수행하는 사전 설계된 모듈이나 블록을 의미한다. IP는 재사용 가능한 설계 요소로, 설계자가 FPGA, ASIC, 또는 SoC와 같은 하드웨어 시스템을 설계할 때, 기존에 블록을 사용하여 설계 시간을 줄이고 개발의 효율성을 높일 수 있다.- Module, XDC file 생성 4개의 Switch와 LED의 FPGA Board의 Pin 번호에 맞게 설정한 xdc File과 Counter를 이용하여 출력 값을 지정한 Clock 속도에 맞게 Toggle..

FPGA - STM32 UART 이용한 DC Motor 제어 및 신호 확인

https://insoobaik.tistory.com/652 통신 프로토콜 UART 동작 원리보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com기본적인 UART 이론은 위 글을 참고한다. * 전체 실행 관련 코드는 글 아래 첨부되어 있다.UART 통신 규칙 설정Baud_Rate9600Data Bit8ParityxStop Bit1 FPGA Clock50MHz FPGA Board의 Clock은 50MHz(20ns)다.Baud Rate 9600은 104166ns에 해당한다.Clock Count를 5208번으로 설정하게 되면 Baud Rate와 1bit당 속도를 맞출 수 있다.Clock이 5208번 반복하게 되면 104160ns를 소요하게 되고 6ns의 차이는 ..

FPGA - SPI 통신을 이용한 DC Motor 제어하기

https://insoobaik.tistory.com/648 SPI - 신호 검증 (ILA) & (Cadence) Synthesis ~ POST SIM보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이전에 SPI를 ILA를 통해 전달되는 신호를 확인하고 Synthesis부터 Post Layout Simulation을 통해 코드가 정상적으로 실행되는 것을 확인하였다.https://insoobaik.tistory.com/630 Verilog- FPGA를 이용한 DC 모터 구동보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com 위에서 SPI 통신을 통해 전달 받은 Data를 이전에 실습해본 Dc Motor를 ..

FPGA - CHARACTER LCD에 문자 입력하기

FPGA를 이용한 LCD 문자 출력 결과 화면LCD는 CLK 신호를 기반으로 RS, RW, E, DB0~DB7 핀을 통해 신호를 전달받아 데이터를 출력한다. RS는 Register Select의 약자로RS가 0일 경우 명령 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 명령어 또는 제어 명령어임을 나타낸다.RS가 1일 경우 데이터 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 화면에 표시될 문자 데이터임을 나타낸다. RW는 Read Write의 약자로RW가 0 일 때는 쓰기 모드로 MCU -> LCD로 데이터를 전송한다. 이 모드는 주로 LCD에 문자를 표시하거나 명령을 전송할 때 사용된다.RW가 1일 때는 LCD -> MCU로 데이터를 전송한다. 이 모드는 주로 LCD의 상태를 읽거나, Bu..

FPGA - FPGA를 이용한 DC 모터 구동

https://insoobaik.tistory.com/635 STM32 - PWM를 이용한 모터 제어 및 부저를 이용한 멜로디 생성보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comPWM에 대한 내용은 위 글을 통해 참고하면된다.STM32를 가지고 PWM을 통해 모터를 동작시킨 것과 동일하게 FPGA, Verilog를 통해 DC 모터 제어를 해 볼 것이다.MotorMotor StatusIN1IN2IN3IN4MOTOR_AFoward Rotation1/PWM0  Reverse01/PWM  STOP00  Break11   DC 모터의 경우 ARR값에 대한 CCR값을 통해 속도를 조절 할 수 있다.DC 모터의 속도는 ARR에 의해 정해진 타이머 주기의 평균 전압..

FPGA - 7-Segment Count Up (0~9999) / FPGA

1. Introduction2. Signal Description3. Verilog Code4. Trouble Shooting1. Introduction 1.1. Overview- 0~9999까지의 숫자를 Count하여 7-Segment를 통해 해당 Count한 숫자를 표현하는 기능을 구현 1.2. FeaturesVersion 1 - Clock 신호를 분주하는 모듈- 4-Digits에 필요 신호를 전달하는 모듈- 7-Segment에 필요 신호를 전달하는 모듈- 숫자를 Count하여 TOP 모듈에 신호를 전달하는 모듈 Version 2 - Clock 신호를 분주하는 모듈- 4-Digits에 신호를 전달하는 모듈- 숫자 Count 및 7-Segment에 신호를 전달하는 모듈 1.3. Block Diagram..

FPGA - ILA(Integrated Logic Analyzer) 사용법

ILA(Integrated Logic Analyzer)는 디지털 회로의 디버깅과 분석을 위해 사용되는 도구이다. FPGA(Flexible Programmable Gate Array) 디자인에서 유용하다. ILA는 디지털 회로의 내부 신호를 모니터링하고 분석하는 데 도움이 되며, 디버깅 시간을 단축하고 회로의 동작을 이해하는데 도움이 된다. 좌측 IP Catalog를 클릭하여 검색창에 ila를 검색한다. Number of probes는 ILA로 캡처하려는 시그널의 수를 지정하는 항목이다. 이 값은 ILA에서 감시하고 분석할 수 있는 시그널의 개수를 결정한다.일반적으로 디버깅할 시그널의 수가 많을수록 문제 해결이 더욱 쉬워지지만, FPGA 디바이스의 리소스가 한정되어 있기 때문에 최적의 수를 지정해야 한다...

728x90