inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Verilog 코딩 스타일

미해결

Verilog FPGA Program 1

안녕하세요 강의자님, 현재 FPGA Program 1 을 수강하고 있습니다. 수강을 하다가 Verilog 코딩 스타일에 궁금증과 조언을 듣고 싶어서 질문하게 되었습니다. 저도 이 강의를 들으면서 강의자님의 코딩 스타일을 배우고 싶어서 노력해왔고 현재는 익숙해진 상태입니다. 그런데 강의자님과 조금 다른 코딩 스타일을 접하게 되었는데 어떤 걸 구현하느냐에 따라 다르겠지만 어떤 경우에는 다른 코딩 스타일이 좀 더 한 번에 이해가 된 경우가 있었습니다. 예를 들어, state machine 에서 next_state = present_state; done = 1'b0; case (present_state) IDLE: begin if (start) next_state = BUSY; // 조건 end BUSY: begin next_state = FINISH; end FINISH: begin done = 1'b1; 이런 식으로 각 상태에서 모든 변수를 처리하는 방식입니다. 저도 강의자님 스타일에 익숙해져서 하던 방식대로 짜보려고 했지만 어려움이 있었습니다. 강의자님은 어떻게 코딩 스타일을 정하셨는지 저도 강의자님 처럼 일관된 스타일로 어려운 코드를 어떻게 구현하기 위해 어떤 점을 중점적으로 연습하면 좋을지 조언 부탁드립니다. 감사합니다.

  • verilog-hdl
  • fpga
ljkrhs3025 댓글 2 좋아요 0 조회수 147

L0-P03 design에 예제 코드가 그대로 실려있습니다.

미해결

설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)

안녕하세요 🙂 [1. 질문 챕터] : L0-P03_vector [2. 질문 내용] : 제공해주신 Lecture/Practical_interview_student/LEVEL_0/L0_P3_vector/design/vector.v에서 TODO 아래에 정답 코드가 삭제되어있지 않습니다. [3. 시도했던 내용, 그렇게 생각하는 이유] : 자료 수정 부탁드립니다!

  • verilog-hdl
  • system-verilog
flowingsunset 댓글 2 좋아요 2 조회수 97

CDC 메타스태빌리티 질문

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

26강 4:30에서 Ds가 0 또는 1로 간다고 하셨는데, 메타스태빌리티에서 캡처했기 때문에 값의 상태를 보장할 수 없다 로 이해했습니다. 클럭 도메인을 건널 때마다 동기화기를 써서 안정 상태로 보낼 수는 있겠지만, 그 값이 어떻게 변할지 알 수 없다면 어떻게 제어를 할 수 있는지 이해가 잘 안갑니다.

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
apex737 댓글 1 좋아요 0 조회수 86

[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?

미해결

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

안녕하세요 맛비님 🙂 정말 하나부터 열까지 많이 배우고 있습니다 ! 맛비님께서 공사가 다망하시고 강의 방향성과 좀 다른 것 같아 답변을 바란다기보단 bug의심 report라고 봐주시면 감사하겠습니다. 늘 많이 배우고 있습니다 *^^* [1. 질문 챕터] : HDL 39장(WMDA) [2. 질문 내용] : 맛비님 코드를 이용하며 이것 저것 바꿔보고 실험도 해보고 있는데요. 실험 중 write_timeout error가 report 되었습니다. 해당 Test case를 dump해보니 다음과 같은 issue가 있었는데요. (아래 그림 참고 부탁 드립니다.) 문제 상황: r_burst_len_aw가 1인 경우 아직 fifo를 거치지 않아 AWLEN_w의 값이 업데이트 되지 않았는데 그 기간 동안 w_hs가 발생하여 is_burst_done_w가 1'b1로 toggle되지 않고 이에 last b chanel transaction이 일어나지 않음.

  • verilog-hdl
  • fpga
  • 임베디드
  • amba
  • axi
댓글 2 좋아요 1 조회수 103

수업자료 관련 질문드립니다.

해결됨

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

안녕하세요 맛비님! 항상 좋은 강의 감사합니다. 다름이 아니라 맛비님이 강의하시고 있는 ppt파일 혹은 pdf파일을 통해 강의를 들으면서 필기를 하고 싶은데 혹시 수강생들이 다운 받을수 있을까요?

  • verilog-hdl
  • fpga
  • 임베디드
  • cnn
김준호 댓글 2 좋아요 1 조회수 92

system verilog 사용이유.

해결됨

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

안녕하세요! 해당 모듈에 대한 테스트벤치 코드를 system verilog 코드로 구현하셨는데 특별히 이유가 있는지 여쭤보고 싶습니다! .v 로 테스트벤치 만들고 싶은데, 다른 수업때처럼 tb_모듈명.v 만들어서 vivado 시뮬레이션 돌려도 무관한지 궁금합니다. 제가 오랜만에 해당 부분(axi4 stream)을 다시 듣는 중입니다. 혹시 이전 수업들에서 설명하셨던 내용이라면 죄송합니다..

  • verilog-hdl
  • fpga
  • 임베디드
  • amba
info 댓글 2 좋아요 1 조회수 170

AXI_VIP 사용 시 glitch 발생

미해결

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

안녕하세요 🙂 안녕하세요, 맛비님 강의 잘 듣고 AXI 프로토콜 실습 중인 대학원생입니다. 현재 Xilinx AXI VIP를 사용해 DUT(Master)를 검증하고 있는데, WREADY 신호가 시스템 클록(ap_clk)과 맞지 않게 토글되는 현상을 관찰했습니다. 현상 요약: AXI VIP 환경에서 슬레이브 측 WREADY 신호 생성을 RANDOM 모드를 사용하고 있습니다. " rgen.set_ready_policy(XIL_AXI_READY_GEN_RANDOM);" 이 설정을 사용하자, VIP가 생성하는 m00_axi_wready 신호가 저희 DUT의 시스템 클럭(ap_clk)과 동기화되지 않은 상태로 토글되는 것을 확인했습니다. 즉, WREADY가 클럭 엣지에 맞지 않게 변경되면서, 의도치 않은 시점에 WVALID && WREADY 조건이 만족되어 w_hs (write handshake)가 발생하게 됩니다. 결과적으로 클록 엣지 기준으로는 WREADY = 0이어야 하는데, δ‑사이클(글리치) 동안 1로 인식되는 문제가 생깁니다. 질문: 위와 같은 상황에서 2가지 질문이 있는데요, 1. PS(혹은 PL)의 DRAM 데이터를 AXI를 통해 PL영역(제가 설계한 DMA)으로 전송할 때, 위와 같은 WREADY 글리치가 FPGA 상 혹은 실제 ASIC 칩을 찍는다고 했을 때 실제로 발생하는 현상인가요? 2. 현업에서는 이러한 경우가 발생한 경우에 어떻게 해결하는지 궁금합니다. (AXI4 protocol 사용 혹은 일반적인 signal) (추가로 좀 찾아보니 synchronizer를 사용해 latch한다고 하는데 AXI4 protocol에는 적합하지 않다고 판단됩니다.)

  • verilog-hdl
  • fpga
  • 임베디드
  • amba
pjhyun0546 댓글 1 좋아요 1 조회수 144

FPGA 기반 ASIC 설계 검증 시 다차원 배열 처리 방식 및 강의 수강 순서 고민

해결됨

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

안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 안녕하세요 디지탈 회로설계 관심많은 학부생인데 우연히 강의를 접하게 되어 정말 많은 도움 받고 있습니다. 현재 해당 강의는 실습까지 완료하였는데 실습 중 궁금한 점이 몇가지 생겨 문의드립니다. ASIC 설계를 진행할 때, RTL 시뮬레이션은 주로 Cadence사의 Xcelium 시뮬레이터를 사용하고 있으며, 이 툴은 SystemVerilog의 다차원 배열을 지원하는 것으로 알고 있습니다. 실제로 저도 CNN core를 구현하면서 Xcelium을 통해 다차원 배열을 사용하여 RTL 시뮬레이션까지는 성공적으로 수행했습니다. 하지만 FPGA 타겟 합성을 위해 Vivado를 사용하려 하니, Vivado는 SystemVerilog의 다차원 배열을 지원하지 않아 합성이 불가능하다는 점에 부딪혔습니다. 궁금한 점은 다음과 같습니다: ASIC을 타겟으로 하는 칩 개발에서도 FPGA 기반의 프로토타이핑이나 검증 단계를 거치는 것으로 알고 있습니다. 그런데 이 경우, 다차원 배열을 사용한 RTL 코드를 Vivado에서 합성하려면 어떻게 처리하나요? xcelium을 사용하더라도 다차원 배열은 모두 일차원 벡터로 평탄화(flatten)해서 작성해야 하는 건가요? 혹은 FPGA용 합성을 위해 별도로 변환된 RTL을 따로 관리하는지, 일반적인 업계의 방법이 궁금합니다. 2.현재 시즌 2부터 수강할지, 시즌 1부터 수강할지 고민하고 있습니다. 저는 학부 수업에서 vivado 및 Verilog를 사용하여 16bit 기반의 non-pipelined CPU를 직접 설계하고, RTL 시뮬레이션까지 수행한 경험이 있습니다. 카운터, FSM 등 기본적인 디지털 회로 모듈을 RTL로 구현할 수 있는 수준의 기본 지식도 있습니다. 다만 FPGA 실습에 필요한 배경 지식(BRAM, Vivado를 이용한 시뮬레이션 이후 합성 및 구현 흐름 등)은 거의 없는 상태입니다. 관련해서는 alinx 사의 fpga인 ax7035b 모델에 카운터 정도 구현해서 올려봤습니다. 이런 경우, 시즌 1부터 수강하는 것이 좋을까요? 아니면 어느정도 RTL 설계 경험이 있으니 시즌 2부터 들어도 괜찮을까요?

  • verilog-hdl
  • fpga
  • 임베디드
  • cnn
김현수 댓글 2 좋아요 1 조회수 132

Ubuntu 실행시 에러 발생

미해결

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

안녕하세요 🙂 [1. 질문 챕터] : Xilink Vivado 설치 강의에서 3분 53초 , [2. 질문 내용] : 재설치하는 중입니다 설정->앱 들어가서 ubuntu 삭제하고 시작했습니다. 설치한 우분투(20.04.6 LTS) 실행 시 위와 같은 에러가 발생했습니다. 삭제 후, 다른 버전(2022.04.5) 설치해도 같은 에러가 발생햇습니다. [3. 시도했던 내용, 그렇게 생각하는 이유] : 구글링 통해 링크: https://velog.io/@ukja2/Ubuntu-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%A7%80%EC%A0%95%ED%8C%8C%EC%9D%BC-%EC%98%A4%EB%A5%98 시도해봤고 설치되었는데도 위 링크 해결방법을 따라하면 제공된 이름의 배포가 없다고 나옵니다ㅜㅜ

  • verilog-hdl
  • fpga
  • 임베디드
이은지 댓글 2 좋아요 1 조회수 339

왜 배속이 안되요?

미해결

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

막아 놓으신건가요? *인프런 운영에도 질문 넣었습니다.

  • verilog-hdl
  • fpga
  • 임베디드
  • amba
영듀카피바라 댓글 2 좋아요 1 조회수 157

설치에 문제가 있어요.

미해결

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

설치는 완료되었다고 뜨는데 step 3 부터 명령어를 적으면 오류가 나요. 어떻게 해야 할까요?

  • verilog-hdl
  • fpga
  • 임베디드
은성 댓글 2 좋아요 1 조회수 159

output o_신호와 reg r_신호

미해결

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

모듈 내 레지스터 q신호를 output reg로 선언한 o_*신호로 기술하기보다는 reg r_*로 선언하고 output o_*로 선언한 신호에 assign하는 식으로 쓰는게 가독성때문에 그러실까요? 예를 들어 simple_bram_ctrl.v에서 assign o_valid = r_valid;대신 레지스터에서 기술하는 건 별로일까요? always @(posedge clkr or negedge reset_n) begin ... o_valid <= o_read; ...

  • verilog-hdl
  • fpga
  • 임베디드
운칠기삼 댓글 2 좋아요 1 조회수 60

SRAM module RTL viewer 이상

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

rtl viewer를 열면 mux모양 로직 (dout ~0 부터 dout ~ 31이라고 쓰여있음) 이게 책처럼 겹쳐야 하는데 죄다 병렬 회로로 늘어져서 엄청 공간 차지를 많이 합니다. 코드 문제는 아닌 것 같은데 어떻게 해야하나요? rtl viewer에서 netlist navigator 수정이 안되나요? netlist navigator를 보면 always0과 dout~0부터 dout~31까지가 동시에 logic이라는 폴더에 들어 있습니다. 그래서 벡터를 책처럼 못 묶는 것 같습니다.

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
임효진 댓글 2 좋아요 0 조회수 119

Fpga에 ai 가속기를 사용하는 이유

해결됨

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

안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) 초반까지 듣다가 질문 남겨요! 결국엔 fpga기반 ai 가속기를 쓰는 이유는 학습+추론을 하는데에 많은 연산과 리소스가 드니 그 연산을 가속화하는 가속기를 만들어 hw상에서 계산을 처리하게 만드는것인가요? 아니면 단순 추론만을 위한 것인가요?

  • verilog-hdl
  • fpga
  • 임베디드
  • cnn
miro11 댓글 2 좋아요 2 조회수 530

다이어그램 이해

미해결

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

안녕하세요 🙂 [1. 질문 챕터] : 4강 1:47분쯤 [2. 질문 내용] : 다이어그램이 잘 이해가 되지 않습니다. 좌측이 master가 되는거고 우측이 slave가 되는건가요? 근데 왜 s_valid는 좌측에서 나오고 m_valid는 우측으로 들어가는건가요? [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ==================

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

slave와 master 시뮬레이션

해결됨

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

안녕하십니까 삼코치님 AXI프로토콜을 시뮬레이션 하는 과정에서 시뮬레이션할 때 마스터,마스터_tb,슬레이브,슬레이브_tb를 모두 결합시켜셔 시뮬레이션해야하는 건가요?

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • amba
윤매 댓글 2 좋아요 0 조회수 90

register output 질문이유

미해결

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

안녕하세요 chapter 16 보면 fsm_test.v 이서 output이 register 로 되어있는데요 이 register output을 wire로 assign 해서 assign 된 놈을 출력시켜도 되나요??? 혹은 현업에서는 어떤 방식을 더 많이 사용하나요

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

diagram을 어떻게 그리시나요?

미해결

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

ppt에 있는 block diagram같은 건 그냥 ppt쓰신 것 같네요. 만약 ppt가 아니거나 평소에 쓰시는 툴? 같은 게 있을까요? gpt에 물어봐서 추천해주는 것들은 디지털 로직 설계에 맞는 것들이 없네요.

  • verilog-hdl
  • fpga
  • 임베디드
운칠기삼 댓글 1 좋아요 1 조회수 90

27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기

미해결

설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)

안녕하세요 🙂 [1. 질문 챕터] : 29:00 [2. 질문 내용] : idle 조건이 충족하지 않아서 무한 루프에서 break 되지 않고 있습니다. OS Name : Ubuntu 22.04.2 LTS Xilinx version : 2024.02 [3. 시도했던 내용, 그렇게 생각하는 이유] : #define XPAR_MATBI_DMA_IP_TOP_0_BASEADDR 0x40000000 #define XPAR_MATBI_DMA_IP_TOP_0_HIGHADDR 0x40000fff #define ADDR_AP_CTRL 0x00 #define CTRL_DONE_MASK 0x00000002 #define CTRL_IDLE_MASK 0x00000004 void matbi_hw_memcpy(void* dest, const void* source, size_t num){ while(1) { read_data = Xil_In32((XPAR_MATBI_DMA_IP_TOP_0_BASEADDR) + ADDR_AP_CTRL); if( (read_data & CTRL_IDLE_MASK) == CTRL_IDLE_MASK ) // IDLE break; } }

  • verilog-hdl
  • fpga
  • 임베디드
  • amba
2024620043 댓글 2 좋아요 1 조회수 105

20장 MEM_ACCESS/READ 타이밍 관련 질문

해결됨

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

// Assign Memory I/F assign addr0 = addr_cnt; assign ce0 = o_write || o_read; assign we0 = o_write; assign d0 = addr_cnt; // 1 cycle latency to sync mem output always @(posedge clk or negedge reset_n) begin if(!reset_n) begin r_valid <= 0; end else begin r_valid <= o_read; // read data end end assign o_valid = r_valid; assign o_mem_data = q0; // direct assign, bus Matbi recommends you to add a register for timing. 코드에서 요청과 응답에 관한 신호인, chip-enable, write-enable, o_mem_data 은 비동기식으로, read-valid 신호는 동기식으로 작성하셨는데 혹시 이 방법을 사용하면 1클럭 지연을 없앨 수 있는 것인가요? 이번 학기의 MIPS Pipeline 플젝에서도 동기식 메모리(IM/DM)의 1클럭 딜레이가 문제가 되어, 버퍼를 추가하여 7-stage로 구현했었는데, 구조가 복잡해지고 좋은 방법이 아닌것 같아서 이러한 딜레이를 없애거나 숨길 수 있는 테크닉이 있는지도 궁금합니다.

  • verilog-hdl
apex737 댓글 1 좋아요 1 조회수 78

인기 태그

인프런 TOP Writers

주간 인기글