inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

SPI와 I2C의 차이

해결됨

Verilog FPGA Program 1

안녕하세요. I2C에 대해 공부를 하고 있던 와중에, 직렬 통신 방식으로 대표적인 2가지가 I2C와 SPI가 있는데 어떤 상황에서는 SPI가 유리하고, 어떤 상황에서는 I2C 유리한가요?

  • fpga
  • verilog-hdl
osia0921 댓글 1 좋아요 2 조회수 2055

FSM Code 질문입니다!

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 맛비님 고생많으십니다. 맛비님께서 알려주신 코드는 위와 같으며, 위와 같이 설계할 경우 예를 들어 c_state 가 A 일 때 output 이 B가 된다고 가정한다면, n_state가 A로 바뀌면 다음 clock에 c_state는 A가 됩니다. 이 때 바로 output이 B가 되지 않습니다. output은 그 다음 clock에 B가 c_state가 A가 됨을 알아차리고 B가 됩니다. 이렇게 Timing 적으로 출력값이 밀릴 바에 위 사진처럼 바꾸는 것은 어떨까요? (n_state를 없애는 겁니다) 위로 했을 때의 문제점과 문제가 있다면 clock이 안밀리고 위 예시에서 n_state가 바뀔 때 output이 바뀌도록 설계하려면 어떻게 해야할까요?

  • verilog-hdl
  • 임베디드
  • fpga
sam716 댓글 1 좋아요 1 조회수 490

BRAM read에 관하여

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 맛비님 BRAM의 데이터를 Read할 때 Testbench에서 address를 1씩 증가시켜서 읽어보면 address와 read data가 동클락에 나오는 걸 방지하기 위해 r_valid로 1 cycle delay 시켜주는 것으로 이해했습니다. 하지만 주소를 생성하는 모듈 ((ex) address를 0부터 15까지 1씩 증가하면서 BRAM에 address를 보내주는 모듈) 과 BRAM을 연결해 Testbench에서 address를 1씩 증가시키지 않고 알아서 address를 BRAM으로 보내주어 시뮬레이션을 돌려보니, r_valid가 존재하지 않아도 read할 때 자동으로 1 cycle delay 미뤄줍니다. 이 이유를 혹시 아실까요?

  • bram
  • verilog-hdl
  • read
  • 임베디드
  • fpga
sam716 댓글 2 좋아요 1 조회수 1044

linux 관련 문의

해결됨

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요! 1강이 아닌 바로 2강을 결제해서 vitis와 Vivado를 설치하여 강의를 듣고있는데 1강을 참고하여 따로 Linux 환경에서 Vitis를 다시 깔아야할까요? 아니면 그대로 진행해도될까요? 감사합니다

  • fpga
  • 임베디드
호중 댓글 1 좋아요 1 조회수 396

AXI Interface Ready 신호

해결됨

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

AXI Interface 코드 리뷰를 진행하고 있는데, axi_awready , axi_wready 신호를 생성하는 과정에서 조건문에 ~axi_awready, ~axi_wready 같은 조건들이 ready 신호를 1 clock tick으로 생성하려고 의도한 게 맞는지 궁금합니다!

  • 임베디드
  • fpga
베릴로그 댓글 1 좋아요 1 조회수 300

S_AXI_WSTRB

해결됨

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

S_AXI_WSTRB 신호가 read_and_modify_write를 대체할 수 있다고 말씀하셨는데, 기존 방법대로라면 Read가 Write 이전에 선행되어야 한다고 하신것에 대한 이유를 알 수 있을까요? 그냥 Write를 하면 되는 것 아닌가 해서요.!

  • fpga
  • 임베디드
베릴로그 댓글 1 좋아요 1 조회수 432

설치파일 실행시 오류

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

강의시간 14:49로 넘어가는 과정에서 문제가 생겼는데 어떻게 해결해야할지 모르겠습니다 에러 내용은 다음과 같습니다 ERROR: Installer could not be started. Could not initialize class java.awt.Graph icsEnvironment$LocalGE java.lang.NoClassDefFoundError: Could not initialize class java.awt.GraphicsEnvi ronment$LocalGE

  • 임베디드
  • verilog-hdl
  • fpga
20200833 댓글 2 좋아요 1 조회수 6371

Bit Width 설정 관련해서 질문합니다.!

해결됨

설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)

Unisigned Value의 곱셈에 대한 Bit Extension을 통해 16 Bit , 이 값을 32번 누적하게 되면 Overflow를 방지하기 위해 47비트가 필요한 것이 아닌가요? 24비트로 설정된 이유를 여쭤보고 싶습니다!

  • 임베디드
  • cnn
  • fpga
  • verilog-hdl
베릴로그 댓글 1 좋아요 2 조회수 980

FSM은 밀리머신인가 무어머신인가

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 맛비님. 다음과 같은 코드를 보면 always문 안에는 *(asterisk) 로 combination circuit 즉, clock에 의존하지 않습니다. 제가 알기로 무어(MOORE) 머신은 output이 현재 state 에만 의존한다. 클럭 엣지에 의해서만 output이 바뀐다.로 이해하였고, 밀리(MEALY) 머신은 output이 현재 state와 input에 의존한다. 클럭의 한 사이클을 기다리지 않고 같은 사이클에서 입력을 바로 출력에 반영한다. 라고 알고 있습니다. 그럼 위 코드는 clock에 의존하지않고, 1. 현재 상태 = S_IDLE 일 때 현재 입력이 i_run=1이면 clock에 관계없이 바로 output, 즉 다음 상태가 S_RUN으로 되고, 2.현재 상태 = S_RUN 일 때 현재 입력이 is_done=1이면 clock에 관계없이 바로 output, 즉 다음 상태가 S_DONE으로 되고, 3.현재 상태 = S_DONE일 때 현재 입력에 상관없지만 clock에 관계없이 바로 output, 즉 다음 상태가 S_IDLE로 됩니다. c_state는 clock에 의존하여 변하지만, "밀리(MEALY) 머신은 output이 현재 state와 input에 의존한다. 클럭의 한 사이클을 기다리지 않고 같은 사이클에서 입력을 바로 출력에 반영한다. 라고 알고 있습니다." 에서 n_state는 같은 사이클에서 입력을 바로 출력에 반영한다. 라고 보이므로, MEALY 머신이 아닌가요? 인터넷에서는 FSM이 MOORE 머신이라고 나와서 질문드립니다!

  • verilog-hdl
  • 임베디드
  • fpga
sam716 댓글 1 좋아요 2 조회수 2299

bram 주소 접근

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 올려주신 bram 가이드를 보고 generate address interface with 32bits를 체크하고 single port ram을 ip로 생성해서 사용해봤어요 사용해보니 주소가 0~3, 4~7 이렇게는 같은 주소로 덮어 씌워지더라고요 그래서 주소를 4씩 늘려줘서 데이터를 쓰고 읽어봣더니 정상 동작 하더라고요 주소가 왜 4씩 늘려줘서 데이터를 써줘야하는지에 대해서 찾아보는데 잘 안찾아져서요 그 이유에 대해서 설명을 좀 듣고 싶어요 아니면 또 관련된 가이드가 있을까요

  • fpga
  • verilog-hdl
  • 임베디드
윤동욱 댓글 1 좋아요 1 조회수 529

RTL 연습문제, 예제?

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 강의 잘 듣고 있습니다. verilog는 c, 파이썬 처럼 막 연습문제 같은것들이 아무래도 인터넷 상에 잘 알려져 있지 가 않아서 어려움이 있습니다. 논리회로설계 수업 때 mips architecture alu를 약식으로 만들었었는데 이런 RTL 연습문제? 예제? 프로젝트? 같은것들을 풀어보고 설계해보고 싶은데 어디서 찾을 수 있는지 혹시 알려주시면 감사하겠습니다

  • fpga
  • verilog-hdl
  • 임베디드
진홍 댓글 2 좋아요 1 조회수 2240

case문 우선순위

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 다른 분께 남겨주신 if-else문과 case문의 차이에 대한 답변을 봤는데, case문은 우선순위가 없다는 말에 대해 혼란이 생겨 질문 남깁니다. 기존에 verilog를 학습했을때, verilog의 case문은 C의 switch case문과는 다르게 각각의 조건에 break가 있는 것과 같다. 그래서 맨 위 조건부터 우선순위가 있다고 알고있었는데요. 예를 들어 아래의 모듈의 시뮬레이션 결과로 sel=4'b0011인 경우에 out=a가 나옵니다. 따라서, case문에서 맨 위 조건부터 우선순위가 있다고 생각했습니다. module priorityencoder( input [2:0] a, input [2:0] b, input [2:0] c, input [2:0] d, input [3:0] sel, output reg [2:0] out ); always@(*) begin case(1'b1) sel[0] : out = a; sel[1] : out = b; sel[2] : out = c; sel[3] : out = d; default : out = 3'b0; endcase end endcase end endmodule 그런데, 남겨주신 답변에 case문에는 우선순위가 없다고 하셔서 조금 혼란이 생겼는데.. 말씀하신 'case문에 우선순위가 없다'는 말은, 코드상의(=function상의 ) 우선순위를 말하는 것이 아닌 합성에서 생기는 우선순위(?) 가 없다는 말로 생각하면 될까요? (위의 예시 모듈을 합성하면 아래 그림처럼, if-else로 적으면 mux chain형태로 합성되고 case로 적으면 하나의 mux로 합성됨을 확인하긴했습니다..) 그러면 이렇게 case문이 합성된 회로(위 그림의 아래의 회로)는 그럼.. function적으로는 우선순위가 있는데 형태는 우선순위가 없는(??)것.. 인건가요?

  • 임베디드
  • fpga
  • verilog-hdl
게으른거북이 댓글 1 좋아요 1 조회수 1689

질문입니다

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

안녕하세요 맛비님의 코드 습관?을 보면 매번 reg 데이터를 assign으로 할당하여 wire로 데이터를 내보내는데요(즉, output) 저는 공부할 때 데이터를 내보낼땐 reg 데이터로 내보내는 것이 좋다고 알고 있습니다. 물론 reg 데이터를 바로 assign문에 할달이 되서 로직이 생긴다거나 그러진 않을 것 같지만 (제 눈엔 assign으로 코에서에 o_cnt로 내보내나 cnt로 내보내나 차이가 없다고 보입니다) 어떤 코드 스타일에 습관을 들이는게 좋을지 궁금하여 질문드립니다.(저의 경우는 cnt를 바로 내보내는 스타일입니다) 좀 질문이 횡설수설한거 같아 질문이 이해가 안된다면 제가 다시 질문하겠습니다. 감사합니다

  • fpga
  • 임베디드
  • verilog-hdl
윤동욱 댓글 2 좋아요 1 조회수 359

bit extension

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

추가 설명에서 bit extension이 어떤 의미인지 정확히 이해를 못하겠어요. (4bit signed) 1101 이라고 있다면 8bit로 확장한다면 1 0000 101 이렇게 확장을 한다는 걸까요?? 위는 단순히 제가 8bit로 확장한다고 했을때 생각한것입니다. 정확히 0으로 bit extension과 msb bit extension을 이해하지 못하겠어요

  • verilog-hdl
  • 임베디드
  • fpga
윤동욱 댓글 2 좋아요 1 조회수 1093

빌드 에러

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

- 강의 내용외의 개인 질문은 받지 않아요. (개인 과제, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..) - 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!) - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 제가 직접 작성한 테스트벤치를 빌드하려는데 에러가 뜹니다. 어떻게 해야 할까요?

  • verilog-hdl
  • 임베디드
  • fpga
su7100 댓글 1 좋아요 1 조회수 1922

FPGA21장 - fully connected layer 설계 - 코드 리뷰 편에서 질문 있습니다

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

https://www.inflearn.com/questions/330774 FPGA21장에서, FC layer에 대한 의문이 있어서 질문을 찾아본 결과, 위 링크의 질문자와 비슷한 질문이 생겼습니다. 위의 test.c 코드대로라면, 입력 노드는 4096 x 4 = 16384개가 된다고 생각하였습니다. 그러면 input = 16384, weight = 16384, output = 4개에 대하여 drop out 기법? 을 사용한 듯한 형태가 되는데, 이것을 의도하신 건지 여쭤보고 싶습니다. 아니라면, 위 링크의 질문에 답변 해주신 것처럼 node 0~4 의 값이 모두 동일해야 한다는 생각이 듭니다. 또, 오해의 소지가 있다고도 답변해주셨는데, 읽어봐도 어떠한 오해가 생긴건지 잘 이해가 안됩니다. 어떠한 오해가 있었던 것인지 간단하게라도 말씀해주시면 정말 감사하겠습니다. 이틀 뒤면 주말이네요! 오늘도 좋은 하루 되세요 맛비님.

  • 임베디드
  • fpga
태엽 댓글 1 좋아요 1 조회수 708

true_sync_dpbram.v

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요. (너무나도 상세하고 친절한 질의응답 늘 감사드립니다.) Lecture Resource로 제공받았던 Source Code File을 조금 더 직접 구현하는 방향에서 분석해보고 있습니다. 그런데 그 와중에, 어, 내가 BRAM을 사용하고자 하는데, 이 BRAM은 어디서 불러오지? 를 보다가 2가지 궁금증이 생겼습니다. [1] true_sync_dpbram.v 파일 이 파일은 '수업을 통해 제공받았었'는데, 만약 제공받지 않았었으면, 어떻게 접근해서 이 파일을 생성했어야 하나요? 코드를 살펴보니 'sync sram의 구조랑 같구나' 싶으면서도, 그렇다고 모든 코드를 작성할 수 있었을 것 같지 않습니다. 즉, 실습 파일이 없었으면, 이걸 어떻게 처리했어야 하는지가 궁금합니다. 어디서 이 파일을 구하셨나요? [2] 오개념 점검 여기서 bram을 검색했다가, bram이 없는 것을 확인하였습니다. 그래서, 어? ip로 불러올 수 있는게 ps영역만이었나? 하면서 이 부분 개념을 점검하고 있는데 [2]는 독립적 질문이 아닌, [1]과 연관된 질문으로 봐주시면 좋을 것 같습니다. 왜 add IP에서 BRAM을 호출할 수 없나요? 감사합니다.

  • 임베디드
  • fpga
강협 댓글 2 좋아요 1 조회수 325

8장 오류 발생

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요. 강의 재미있게 잘 듣고 있습니다. 이런 소중한 강의 만들어주셔서 감사합니다. 8장 build 과정에서 error가 발생하는데, 그 에러가 극복이 안되어서 여쭙습니다. --- 현재 저는 Vivado 2022.1 ver을 사용하고 있습니다. 그래서 [FPGA 8장 실습 개정]에 따라 실습을 진행하고 있었습니다. 하지만 build가 정상적으로 마무리 되지 않았습니다. 이때 발생하는 에러 메시지는 다음과 같습니다. (빌드전에는 sw>...>xparameters.h 가 정상적으로 존재했는데 빌드후에는 platform Out-of-date 문제가 발생하며 해당 파일류들이 삭제(?!) 됩니다.) 09:24:16 **** Build of configuration Debug for project lab08_app **** make all make --no-print-directory pre-build a9-linaro-pre-build-step ' ' make --no-print-directory main-build 'Building file: ../src/main.c' 'Invoking: ARM v7 gcc compiler' arm-none-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/main.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -IC:/dev/fpga_proj/lab08_vitis/design_1_wrapper/export/design_1_wrapper/sw/design_1_wrapper/standalone_ps7_cortexa9_0/bspinclude/include -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/main.o" "../src/main.c" ../src/main.c:21:10: fatal error: xparameters.h: No such file or directory 21 | #include "xparameters.h" | ^~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [src/subdir.mk:23: src/main.o] Error 1 make: *** [makefile:34: all] Error 2 09:24:16 Build Finished (took 287ms) 헤더의 절대경로로 바꾸어본다거나, makefile txt도 갈아끼워본다거나, 결국 프로젝트를 처음부터 재생성한다거나, 여러가지 조치를 10번 이상 해보았는데 그럼에도 불구하고 계속해서 같은 상황을 벗어날 수가 없습니다. --- 현재 상황에서 어떻게 문제를 해결하면 좋을지 여쭤봅니다. 감사합니다. --- 추가로 vivado 화면도 첨부합니다. 추가로 로컬 파일 디렉토리도 첨부합니다.

  • fpga
  • 임베디드
강협 댓글 2 좋아요 1 조회수 1646

reg 이해확인? 질문입니다!

미해결

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

"조합논리에서 wire선언과 reg선언 시의 시뮬레이션 차이는 없다"가 결론이지만 학부생때는 reg를 거의 임시저장용으로 사용하였어서 딜레이 차이가 있을것이라고 생각했습니다. (컴파일 및 rtl 변환 시 왠지 차이가 생길 것 같다...!라는 생각으로 말이죠) 하지만 아래 링크를 참고해보니 결국에는 이 저장은 설명하신대로 물리적 저장이 아니라 Verilog의 SW적 저장이고 실제는 wire와 같게 구현된다로 이해했는데 이 개념이 맞는지 궁금합니다..! * 참고한 링크입니다! https://stackoverflow.com/questions/33459048/what-is-the-difference-between-reg-and-wire-in-a-verilog-module * 5:54경에 나오는 문서와 비슷한 링크입니다. 혹여나 찾으시려는 수강생분들을 위해 올려봅니다 :) https://inst.eecs.berkeley.edu/~cs150/Documents/Nets.pdf

  • verilog-hdl
  • fpga
  • 임베디드
Jihun Noh 댓글 1 좋아요 0 조회수 308

설치 질문입니다

해결됨

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

- 강의 내용외의 개인 질문은 받지 않아요 (개별 과제, 고민 상담 등..) - 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!) - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 거의 다 온 거 같아서 오히려 마음이 급해지네요 ㅎㅎ.. ./Xilinx_Unified_2020.2_1118_1232_Lin64.bin -- -a 3rdPartyEULA,WebTalkTerms,XilinxEULA -b Install -c /root/.Xilinx/install_config.txt 이 명령만 입력하면 끝나는 거 같은데 자꾸 에러가 발생하네요 sudo apt install gcc 로 gcc를 설치하는 과정에서 gcc 보다는 command 모드로 설치하는게 좋다고 하셔서 gcc모드는 설치중에 오류발생해서 그냥 넘어갔습니다. 이후 에는 영상이랑 가이드북 따라가면서 설치를 하고 있는데 마지막 명령어에서 에러가 발생해서 설치를 못하네요.. 어떻게 하면 좋을까요..?

  • 임베디드
  • verilog-hdl
  • fpga
김종현 댓글 6 좋아요 2 조회수 708

인기 태그

인프런 TOP Writers

주간 인기글