FPGA 12

[FPGA] ROM code load

- FPGA 합성 할 때 ROM에 부트로더 load 하기 컴퓨터나 SoC는 ROM이 있어서 부팅할 시에 ROM에 내장된 부트로더를 불러와 실행해야 합니다. 그러면 FPGA 합성할 때는 이러한 부트로더를 어떻게 메모리에 넣을 수 있을까요? 그건 Block Memory Generator 설정에서 할 수 있습니다. 실행할 부트로더를 아래 그림과 같이 'Other options'에서 넣어줄 수 있습니다. ROM으로 사용할 block memory에서 해당 부트로더 파일을 load하고 bit 합성하면 FPGA 보드에 bit를 다운받자마자 정해진 프로그램이 실행됩니다.

Ch1 Seminar/FPGA 2024.04.19

[FPGA] Block memory 사용 방법

FPGA 합성 시에는 clock wiz(DCM)와 마찬가지로 memory도 vivado에서 생성하여 bit를 생성합니다. - Block memory 생성 방법 먼저 Vivado 창의 가장 왼쪽의 Project manager에서 IP Catalog를 선택합니다. IP Catalog를 선택하면 다음과 같은 창이 나오는데 memory를 검색하고 Block Memory Generator를 선택합니다. 그러면 다음과 같은 창이 나옵니다. 자, 이제 어떤 값을 어떻게 수정해야 할까요?? 그걸 알기 위해서는 우선 일반적인 상황에서 메모리 인스턴스가 어떻게 되어있는지 알아야 합니다. input wire clk ; input wire data0_cs ; input wire [10:0] data0_addr ; input ..

Ch1 Seminar/FPGA 2024.04.19

[FPGA] VCU118 power check

- 이슈 발생 VCU118 보드에 FMC 보드를 달아서 FPGA test를 하는데 JTAG 연결이 안 되더라구요;;; 왜 그런가 알아보니까 FMC 보드에 들어가는 전원 소스에 이상이 생겼더라구요 ㅠㅠ 회로도를 보니까 어떤 부품에 이상이 생긴 건지도 알 수 있었습니다. FPGA 보드를 다루는 엔지니어는 보드의 data sheet와 회로도를 끼고 살아야 하겠더라구요;; - SCUI를 통해 보드 전원 체크 모든 보드가 다 그런 건 아닌데 xilinx 홈페이지에서 보드의 상태를 알 수 있는 프로그램을 지원하기도 합니다. https://www.xilinx.com/products/boards-and-kits/vcu118.html#resources 위의 링크에서 System Controller Tutorial을 다운..

Ch1 Seminar/FPGA 2024.01.29

[FPGA] VIO를 사용한 pin test

FPGA 검증을 할 때 여러 디버깅 포인트가 있는데요, 최대한 변수를 줄이는 것이 좋습니다. 가장 먼저 해결할 수 있는 문제는 FPGA 보드의 핀이 정상적으로 작동하냐는 것입니다. 시뮬레이션에서는 문제가 없는데 FPGA test에서 문제가 발생하면 진짜 미치고 팔짝 뛰거든요;; 그러면 이것저것 의심하게 되는데 저 같은 경우는 핀 테스트를 가장 먼저 합니다. IO 핀에 core clock 같은 것을 연결해서 bit를 다운로드하자마자 핀 output이 토글 되도록 만듭니다. 그리고 오실로스코프로 찍어서 신호를 확인함으로써 IO 핀에 이상이 없음을 확인할 수 있습니다. 하지만 위의 방법은 FPGA 합성을 해야 하고 그동안 시간이 지체될 수밖에 없습니다. - vio(virtual input/output)를 사용..

Ch1 Seminar/FPGA 2024.01.24

[FPGA] DONT_TOUCH

- 문제 발생 System verilog 파일을 받아서 FPGA 합성을 돌리고 test를 진행했습니다. 그런데 자꾸 에러가 발생하는데 그 원인이 모듈 하나가 아예 빠진 것 같더라구요;; 그래서 Vivado에서 source 목록을 확인해 봤는데 source에는 제대로 import 된 모듈들이 Synthesis 후 netlist 목록에 없는 것을 확인했습니다. 무슨 이유인지 모르겠지만 합성과정에서 Vivado tool이 아예 날려버린 것 같더라구요;; - DONT_TOUCH로 해결 Vivado tool이 모듈을 날리지 못하게 처리하는 방법이 있습니다, 바로 DONT_TOUCH인데요, 아래 링크로 가시면 예제를 확인해보실 수 있습니다. https://docs.xilinx.com/r/en-US/ug901-viv..

Ch1 Seminar/FPGA 2024.01.16

[FPGA] DCM 사용 방법

반도체 설계에는 반드시 외부에서 들어오는 clock이 있습니다. 이는 FPGA 보드에 있는 external clock으로 사용할 수 있습니다. 하지만 이 클럭의 주파수가 유저가 원하는 값이 아닐 경우에는 원하는 주파수의 클럭을 만들 필요가 있습니다. 클럭 분주를 통해 낮은 주파수를 만들 수 있지만, 더 빠른 클럭이 필요한 경우에는 문제가 생깁니다. DCM(digital clock manager)은 Vivado에서 생성할 수 있는 clock generator로 유저가 원하는 주파수의 클럭을 생성할 수 있습니다. 그러면 DCM을 어떻게 만드는 것인지 알아보겠습니다. - DCM 생성 방법 먼저 Vivado 창의 가장 왼쪽의 Project manager에서 IP Catalog를 선택합니다. IP Catalog를..

Ch1 Seminar/FPGA 2024.01.15

[FPGA] ILA 사용법

지난 글에서는 ILA module에 대한 설명과 FPGA 합성 시 ILA를 넣는 방법에 대해 설명드렸습니다. 이번 글에서는 ILA를 사용하는 방법에 대해 설명하도록 하겠습니다. 2024.01.11 - [Ch1 Seminar/FPGA] - [FPGA] ILA module 설명 [FPGA] ILA module 설명- ILA(Integrated Logic Analyzer) 설명 FPGA test를 하다 보면 signal을 확인해야 할 때가 있습니다. IO 핀으로 나오는 신호는 오실로스코프를 통해 확인할 수 있지만 내부 신호는 확인할 수 없습니다. ILA는 FPGveriln-e.tistory.com - bit 파일 다운로드ILA를 넣어 FPGA 합성을 하면 ltx 파일이 생성됩니다. FPGA 보드에 bit를 넣..

Ch1 Seminar/FPGA 2024.01.12

[FPGA] ILA module 설명

- ILA(Integrated Logic Analyzer) 설명 FPGA test를 하다 보면 signal을 확인해야 할 때가 있습니다. IO 핀으로 나오는 신호는 오실로스코프를 통해 확인할 수 있지만 내부 신호는 확인할 수 없습니다. ILA는 FPGA 합성 시 Vivado에서 만들어 넣을 수 있는 모니터링 모듈로서 원하는 신호를 모니터링하는 데 사용합니다. 그럼 어떻게 사용하는지 알아볼까요? - ILA 생성 방법 먼저 Vivado 창의 가장 왼쪽의 Project manager에서 IP Catalog를 선택합니다. IP Catalog를 선택하면 다음과 같은 창이 나오는데 ila를 검색하고 Integrated Logic Analyzer를 선택합니다. 그럼 다음과 같은 창이 뜨는데요, 이제 입력해야 하는 부..

Ch1 Seminar/FPGA 2024.01.11

[FPGA] 합성 시 발생하는 에러 - type

- logic type error 발생System verilog 파일을 받아서 FPGA 합성을 진행하려고 했습니다. System verilog는 확장자명이 .sv인데 저희 회사는 System verilog에 익숙지가 않아서 .v로 수정하고 작업을 진행했었어요. RTL 작업이 끝나서 FPGA 합성을 돌렸는데 다음과 같은 ERROR가 발생했습니다. [Synth 8-993] logic is an unknown type 그래서 뭔가 해서 찾아봤는데 logic type은 verilog에서 사용하지 않는 type이어서 System verilog로 확장자를 바꿔줘야 한다고 합니다. 그래서 .v를 원래 형태인 .sv로 수정하고 합성을 돌리니 에러가 사라졌습니다. - verilog 파일을 System verilog 파일..

Ch1 Seminar/FPGA 2024.01.08

[FPGA] xdc 세팅

RTL 설계를 하고 FGPA 검증을 하기 위해 bit 파일을 생성하기 위해서는 xdc 파일을 만들어야 합니다. - XDC 설명 xdc 파일은 xilinux 툴에서 사용하는 design constrant 파일로 FPGA 보드 test를 위한 여러 가지 constraint를 설정할 수 있습니다. XDC에서 설정해 주는 constraint에는 대표적으로 clock constraint, 핀 설정, pull up/down 설정 등이 있습니다. 1. Clock constraint Chip을 설계할 때 input으로 들어오는 clock들이 있습니다. FPGA 보드에도 오실레이터를 달아서 clock을 생성해주거나 디버깅 용 JTAG을 연결할 때 들어오는 clock은 constraint를 설정해줘야 합니다. create..

Ch1 Seminar/FPGA 2023.09.07