inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

L2_P12_priority_data_controller 코드 리뷰 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

안녕하세요, 강의 잘 수강 중에 있습니다. L2_P12_priority_data_controller 코드 리뷰와 질문 몇가지만 받아주시면 감사합니다. `timescale 1ns / 1ps module priority_data_controller ( // input stream input logic clk, input logic reset, input logic [31:0] stream_a, input logic [31:0] stream_b, input logic [31:0] stream_c, input logic valid_a, input logic valid_b, input logic valid_c, // Output stream output logic [31:0] output_data, output logic valid ); localparam P_ABC = 2'b00; localparam P_BCA = 2'b01; localparam P_CAB = 2'b10; logic [1:0] state, n_state; // 1. Combi logic & Output logic always_comb begin case(state) P_ABC : begin if(valid_a) begin output_data = stream_a; valid = 1'b1; n_state = P_BCA; end else if(valid_b) begin output_data = stream_b; valid = 1'b1; n_state = P_CAB; end else if(valid_c) begin output_data = stream_c; valid = 1'b1; n_state = P_ABC; end else begin output_data = 32'b0; valid = 1'b0; n_state = P_ABC; end end P_BCA : begin if(valid_b) begin output_data = stream_b; valid = 1'b1; n_state = P_CAB; end else if(valid_c) begin output_data = stream_c; valid = 1'b1; n_state = P_ABC; end else if(valid_a) begin output_data = stream_a; valid = 1'b1; n_state = P_BCA; end else begin output_data = 32'b0; valid = 1'b0; n_state = P_BCA; end end P_CAB : begin if(valid_c) begin output_data = stream_c; valid = 1'b1; n_state = P_ABC; end else if(valid_a) begin output_data = stream_a; valid = 1'b1; n_state = P_BCA; end else if(valid_b) begin output_data = stream_b; valid = 1'b1; n_state = P_CAB; end else begin output_data = 32'b0; valid = 1'b0; n_state = P_CAB; end end default : begin output_data = 32'b0; valid = 1'b0; n_state = P_ABC; end endcase end // 2. Seq logic always_ff @(posedge clk or posedge reset) begin if(reset) begin state <= P_ABC; end else begin state <= n_state; end end endmodule Q1) 위처럼 FSM 방식으로 작성해도 문제없는지 궁금합니다. Q2) 이건 좀 추상적인 질문인데, 저 같은 경우는 위처럼 간단한 로직이라도 FSM을 사용해 combinational logic/sequential logic/output logic 이 세가지로 분리해서 작성하는게 편한 것 같습니다. 그런데 실무에서 rtl을 보면 모든 ip가 FSM으로만 설계되지는 않는 것 같고, 사용된다하더라도 윗 처럼 FSM logic을 세 부분으로 분리해서 작성하지는 더더욱 않더라구요. 학부 때는 FSM으로 로직을 짜는 것이 많은 장점이 있다고 배운 것 같은데, logic의 복잡도와 무관하게 위와 같은 코딩스타일을 고집하는게 좋지 않은 습관인지 궁금합니다. 또한, logic을 설계함에 있어 FSM을 사용할지 말지에 대한 기준이 궁금합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 43

카페 등업신청

해결됨

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

안녕하세요. 디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기 강의를 수강하고 구글폼도 신청했는데 네이버카페 자료 접근이 안됩니다.(새싹3단계) 등업 될 수 있을까요? (네이버 카페 아이디 유칸트 입니다.)

  • 컴퓨터-구조
  • verilog-hdl
  • fpga
  • 임베디드
  • amba
신입개발자응애 댓글 1 좋아요 0 조회수 48

fpga

미해결

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

안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) 수고하십니다 맛비님 님이 제공해주신 시계 프로젝트를 진행하고 fpga 강의를 구매하려고 하는데 fpga 보드가 없어서 중고로 구매하려고 합니다.. 예전에는 중고 보드 구매시 정상동작을 검증하는 영상이 있었는데 지금은 볼 수가 없더라고요. 혹시 중고 보드를 검증할 수 있는 코드와 같은 것도 fpga 강의에서 제공되는지 궁금합니다

  • verilog-hdl
  • fpga
  • 임베디드
bj K 댓글 2 좋아요 1 조회수 67

FPGA 연결 확인 방법

미해결

Verilog FPGA Program 4 (MCU Porting, HIL-A35T)

강사님 안녕하세요, 자료를 보며 CODEX와 함께 작업을 진행하려고 했으나 연결이 잘 되지 않는 것 같아 문의드립니다. JTAG 케이블은 인식되지만 FPGA가 검색되지 않아 문의드립니다. 사용 환경 보드: HIL A35T v1.0, FPGA XC7A35T JTAG: Platform Cable USB II, 본체 표기 DLC10 PC: Windows 11 Home 25H2 프로그램: 강의 버전 Vivado 2018.3 및 추가 비교용 Vivado Lab 2026.1 JTAG USB는 허브를 통해 PC에 연결하고, 보드 USB-C 전원은 휴대폰 충전기로도 별도 공급해봤습니다. 현재 증상 Windows에서 Xilinx USB Cable 이 오류 없이 인식됩니다. JTAG 케이블의 STATUS LED는 녹색입니다. Vivado에서도 케이블은 인식되지만 FPGA 장치 목록이 비어 있습니다. 다음 오류가 발생합니다. Labtools 27-2269: No devices detected on target XSDB로 JTAG 응답을 직접 확인하면 다음 상태가 나옵니다. DR shift through all zeroes 입력 데이터를 0 또는 1로 바꿔도 읽어오는 256비트가 모두 0입니다. 확인한 사항 UART 어댑터와 외부 W5500 모듈을 분리한 최소 연결에서도 동일합니다. 보드 전원을 USB 허브에서 휴대폰 충전기로 변경해도 동일합니다. JTAG 속도 750kHz와 6MHz 모두 FPGA가 검색되지 않습니다. Vivado 2018.3과 Vivado Lab 2026.1에서 같은 증상이 재현됩니다. 현재 JTAG 연결 단계에서 막힌 상태이며, 케이블·보드 전원·보드 자체 중 어느 부분이 원인인지는 확인하지 못했습니다. 문의드리고 싶은 사항 이 보드에서 이런 증상이 나타날 때 우선 의심하는 원인은 무엇인가요? PC·드라이버 / JTAG 프로그래머·리본 / 보드 전원 / FPGA 상태 를 구분하는 권장 검사 순서가 있나요? 각 검사에서 정상이면 어떤 결과가 나와야 하고, 실패하면 어느 부분을 의심해야 하는지 알려주실 수 있나요? 감사합니다.

  • verilog-hdl
  • fpga
jjjj 댓글 1 좋아요 0 조회수 62

Arty z7 -20 보드의 경우

해결됨

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

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

  • fpga
  • 임베디드
mas 댓글 2 좋아요 1 조회수 69

RVALID/RREADY 핸드셰이크 발생 시 RDATA 전이가 발생해도 문제가 없는 이유?

해결됨

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

안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ================== 안녕하세요. 맛비님. 강의 잘 보고 있습니다. RVALID/RREADY 핸드셰이크 발생 시 RDATA 전이가 발생해도 왜 문제가 없는건가요? 캡쳐한 이미지의 노란색 커서부분을 보시면 RVALID와 RREADY가 Rising 되는 시점에 RDATA가 변하는 것을 확인할 수 있는데요. RDATA는 핸드셰이크가 발생할 때 Transition이 되는게 아니라 핸드셰이크가 발생하기 전에 Transition이 되어야하는거 아닌가요? RDATA는 슬레이브에서 준비?되어야하는 거고 마스터에게 VALID를 띄우기 전에 먼저 데이터를 준비해야하는거 아닌가? 라는 의문이 들었습니다. 확인 부탁드립니다.

  • fpga
  • 임베디드
김상현 댓글 4 좋아요 1 조회수 95

강의노트는 어디서 받을 수 있나요?

미해결

FPGA 구현을 위한 RISC-V CPU 설계 ① Python으로 배우는 RV32I 명령어 구조와 실행 원리

내용이 빨라서 필기를 하면서 보려고하는 데 강의노트를 못 찾았습니다. 혹시 어디에 있을까요?

  • 컴퓨터-구조
  • fpga
  • cpu-architecture
  • riscv
정경화 댓글 2 좋아요 0 조회수 75

lwip 실험중 오류 상황

미해결

Verilog FPGA Program 2 (MicroBlaze1)

lwip를 이용해 첫 시작을 하고 있는데 다음과 같은 오류 메세지가 발견이 되어 진행을 못하고 있습니다. 도움을 요청 드립니다. 1:1 문의하기를 이용해주세요.

  • verilog-hdl
  • fpga
  • MicroBlaze
윤호근 - 에푸리 댓글 2 좋아요 0 조회수 71

이 강의 zboz7보드에서도 실행 가능한가요?

해결됨

FPGA로 만드는 MNIST NPU — 실제 손글씨 숫자를 인식하는 인공지능 완성

안녕하세요. 제가 가지고 있는 보드가 zo=bo z7 보드입니다. 이보드로 진행 중인 강의에 코드를 올려서 실제로 동작하는지 확인이 가능한가요?

  • 인공신경망
  • 컴퓨터-비전
  • verilog-hdl
  • fpga
  • rtl
서윤 댓글 1 좋아요 1 조회수 74

Chapter 16 FSM 관련 질문

미해결

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

Chapter 16 코드 중 Step1 과 2를 아래 그림과 같이 합쳐서 사용하는 방식은 잘 쓰지 않나요? Localparam을 따로 설정하지 않고 직관적으로 state가 바뀌는게 더 잘 보이는 방식으로 따로 만들었는데 이러한 방식 잘 사용하지 않나요?(상세 문법 같은 건 틀렸을수도 있으니 흐름만 봐주십쇼) 두 질문 모두 모듈이 많아지거나 코드가 복잡해지면 검토(추적성)시에 힘들어서 그런건지 궁금합니다.

  • verilog-hdl
  • fpga
  • 임베디드
백승민 댓글 2 좋아요 1 조회수 96

강의 환경(linux) 관련 질문

미해결

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

회로설계 3년차 현업자입니다. 회로설계를 하다보니 주 업무는 아니지만 같은 HW에 속하는 FPGA 로직 관련 업무는 간접적으로 많이 접하였고 이번기회에 자세히 배워보려고 강의 신청하였습니다. 저희사는 업무를 주로 윈도우 환경에서 2022.2 버전을 주로 사용하여 설계합니다. 실제 기능면에서는 다르지 않을 것 같은데 꼭 리눅스에서 진행할 필요가 있는지 질문 드립니다.

  • verilog-hdl
  • fpga
  • 임베디드
백승민 댓글 2 좋아요 1 조회수 110

L2_P08 SRAM 코드 리뷰 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module sync_sram_ctrl #( parameter ADDR_WIDTH = 8, parameter DATA_WIDTH = 16 )( input logic clk, input logic rst_n, input logic [ADDR_WIDTH-1:0] addr, input logic [DATA_WIDTH-1:0] data_in, output logic [DATA_WIDTH-1:0] data_out, input logic rd_req, input logic wr_req, output logic ready, // SRAM I/F output logic [ADDR_WIDTH-1:0] sram_addr, output logic [DATA_WIDTH-1:0] sram_data_out, input logic [DATA_WIDTH-1:0] sram_data_in, output logic sram_ce_n, output logic sram_we_n ); // FSM states localparam IDLE = 2'd0; localparam WRITE_REQ = 2'd1; localparam READ_REQ = 2'd2; localparam READ = 2'd3; logic [1:0] state, n_state; // 1. Comb part always_comb begin case(state) IDLE : begin if(rd_req == 1) begin n_state = READ_REQ; end else if(wr_req == 1) begin n_state = WRITE_REQ; end else begin n_state = IDLE; end end WRITE_REQ : begin n_state = IDLE; end READ_REQ : begin n_state = READ; end READ : begin n_state = IDLE; end default : begin n_state = IDLE; end endcase end // 2. Seq part always_ff @(posedge clk or negedge rst_n) begin if(!rst_n) begin state <= IDLE; end else begin state <= n_state; end end // 3. Output part always_comb begin case(state) IDLE : begin ready = 1; sram_ce_n = 1; data_out = sram_data_in; end WRITE_REQ : begin ready = 0; sram_addr = addr; sram_data_out = data_in; sram_ce_n = 0; sram_we_n = 0; end READ_REQ : begin ready = 0; sram_addr = addr; sram_ce_n = 0; sram_we_n = 1; end READ : begin ready = 0; sram_addr = addr; sram_ce_n = 1; sram_we_n = 1; end default : begin ready = 1; end endcase end endmodule 안녕하세요, 강의 잘 수강하고 있습니다. 우선 main 로직부분에서 f/f을 활용해서 초기화를 하셨고, write, read state에서 바로 ce_n, we_n을 1로 만드셨는데 제가 구현한 방식과는 조금 달라서 리뷰 부탁드립니다. 감사합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 88

Arty Z10 관련 문의

미해결

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

안녕하세요. 수업을 잘 듣고 있습니다. 이후 FPGA session 1, session 2, 설계독학의 임베디드 리눅스 & FPGA: 반도체 설계 완성편에 관심이 있는데, Arty Z10 보드를 구매해도 될까요? 설계독학의 임베디드 리눅스 & FPGA에는 Arty 보드에 대한 내용을 못찾아서 문의드립니다. 감사합니다.

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

수강 순서 질문 있습니다

해결됨

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

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

  • fpga
  • 임베디드
  • verilog
mas 댓글 2 좋아요 1 조회수 100

cache에서 data miss가 나고 메모리에서 read data할때 이해가 안가는 신호가 있어서 질문 드립니다.

미해결

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

wire mem_rd = miss & ~i_cpu_write; 이 코드를 보면 miss (N+1 clk)이고 ~i_cpu_write은 (N clk)인데 ~i_cpu_write 신호는 1 클락을 기다리게 됩니다. 이거에 대해서 AI한테 물어보니 cpu가 pipeline 이면 엄청난 문제가 되고 Handshake / Stall 구조이면 문제가 되지 않는다고 답을 주었습니다. cpu는 pipeline으로 설계한다고 강의 커리큘럼에 나와 있는데 저희가 설계하는 cpu를 cache와 연결 하는 거면 이건 오류가 아닌가요?

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

13장 파이프라인 질문 드립니다.

미해결

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

안녕하세요 🙂 [1. 질문 챕터] : 13장 3:40~ [2. 질문 내용] : timing violation이 발생하는 case에 대해서 어떤 이유에서 violation이 발생하는지 잘 모르겠습니다. [3. 시도했던 내용, 그렇게 생각하는 이유] : 그림에서처럼 각 딜레이 이후, 레지스터를 달아주게 되면 t_CLK 보다 딜레이 값이 모두 작거나 같기 때문에 violation이 발생하지 않는다는 내용은 이해가 됩니다. 그런데 그 전에 설명하신 worst path의 시간이 45이기 때문에 25에 해당하는 clock speed를 감당할 수 없다는 게, 어떤 설명인지 이해가 안 되어 질문 드렸습니다. (4분 30초 부근)

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

UART의 역할이 PC와 PS를 연결해 주는 역할로 알고 있습니다.

해결됨

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

안녕하세요 🙂 [1. 질문 챕터] : FPGA 4장, 5장 [2. 질문 내용] : FPGA 4장에서는 PS IP 블록의 UART1을 활성화 시키셨고, FPGA 5장에서는 PS IP 블록에서 UART1을 비활성화 시키셨습니다. 아마 4장에서는 printf와 scanf를 이용하여 Vitis Serial Terminal에 결과값을 띄워야 하기 때문에 UART가 필요했고, 5장에서는 Vitis Serial Terminal로 결과값을 볼 필요 없이 FPGA 보드로 LED 점등 속도만 확인하면 되기 때문에 UART를 쓰지 않으신 것으로 이해했습니다. 그럼 혹시 UART는 Vitis Serial Terminal이 필요할 때만 활성화 시켜서 사용하는 것인가요? UART의 역할이 정확히 무엇인지 확실한 개념이 잡히지 않아 질문 남깁니다! [3. 시도했던 내용, 그렇게 생각하는 이유] :

  • fpga
  • 임베디드
dlrwo0904 댓글 2 좋아요 1 조회수 103

L2_P4 data_average 코드 리뷰 및 waveform 질문 드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module data_avg ( input logic clk, input logic rstn, input logic [7:0] i_data, input logic i_valid, output logic [7:0] o_data, output logic o_valid ); //TODO logic [7:0] recent_data [0:3]; logic [9:0] sum; logic [1:0] valid_count; // store recent 4 data when i_valid == 1 always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin for(integer i = 0; i < 4; i++) begin recent_data[i] <= 8'b0; end end else if(i_valid) begin // store data only when i_valid == 1 recent_data[0] <= i_data; for(integer i = 1; i < 4; i++) begin recent_data[i] <= recent_data[i-1]; end end else begin // remain data when i_valid == 0 recent_data[0:3] <= recent_data[0:3]; end end // o_valid is high when valid_count == 4 always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin o_valid <= 1'b0; valid_count <= 2'b0; end else if(i_valid) begin if(valid_count == 3) begin o_valid <= 1'b1; end else if(valid_count < 3) begin o_valid <= 1'b0; valid_count <= valid_count + 1; end end else begin o_valid <= 1'b0; end end always_comb sum = recent_data[0] + recent_data[1] + recent_data[2] + recent_data[3]; always_comb o_data = o_valid ? ( sum[1] == 1 ? (sum[9:2] + 1) : sum[9:2] ) : 8'b0; endmodule 안녕하세요, 강의 잘 수강하고 있습니다. Q1. 작성하신 부분과 꽤 다르게 counter로 설계하였는데 간단하게 리뷰 부탁드리며 counter로 설계할 때와 fsm으로 설계할 때의 장단점이 궁금합니다. Q2. waveform에서 네번째 data가 들어온 바로 다음 rising edge 이후 valid와 average 값이 나와야 할 것 같은데 파형의 expected_data는 왜 한cycle이 더 delay돼서 나오는지 궁금합니다. 감사합니다.

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 2 좋아요 1 조회수 105

Ubuntu 20.04.5 설치관련 문의드립니다

미해결

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

안녕하세요 설치단계에서 막히게 되어 도움이 필요합니다 ㅜㅜ Ubuntu 20.04.5버전이 찾아보니 2025년 5월에 지원종료되었다고 해서 구글에 아무리 뒤져봐도 beta버전이나 arm이나 risc-V버전들만 있고 amd64버전은 찾을수가 없습니다. 이보다 상위버전을 받으면 Vivado 2022.2를 지원하지 않는다는데 각각 무슨 버전을 다운받아야하나요? microsoft store에도 WSL검색하면 최신버전 Ubuntu 하나만 나옵니다

  • verilog-hdl
  • fpga
  • 임베디드
야훼 댓글 2 좋아요 1 조회수 139

LV2-2 Patter Detector code review 부탁드립니다.

미해결

설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)

`timescale 1ns / 1ps module pattern_detector_no_fsm ( input logic clk, input logic rstn, input logic i_in, output logic o_flag ); //TODO logic [2:0] recent_data; logic before_flag; // store recent 4-bit always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin recent_data <= 3'b0; end else begin recent_data[0] <= i_in; for(int i = 1; i < 3; i++) begin recent_data[i] <= recent_data[i-1]; end end end always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin before_flag <= 1'b0; end else if(recent_data == 3'b101) begin before_flag <= 1'b1; end else begin before_flag <= 1'b0; end end always_comb o_flag = before_flag & i_in ? 1'b1 : 1'b0; endmodule module pattern_detector_fsm ( input logic clk, input logic rstn, input logic i_in, output logic o_flag ); //TODO `define INIT 1'b0 `define TARGET 1'b1 logic [2:0] recent_data; logic state; logic next_state; // store recent 4-bit always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin recent_data <= 3'b0; end else begin recent_data[0] <= i_in; for(int i = 1; i < 3; i++) begin recent_data[i] <= recent_data[i-1]; end end end // FSM // 1. comb part always_comb begin case(state) `INIT : if(recent_data == 3'b101) begin next_state = `TARGET; end else begin next_state = `INIT; end `TARGET : if(recent_data == 3'b101) begin next_state = `TARGET; end else begin next_state = `INIT; end default : next_state = `INIT; endcase end // 2. seq part always_ff @(posedge clk or negedge rstn) begin if(!rstn) begin state <= `INIT; end else begin state <= next_state; end end // 3. output part always_comb o_flag = (state == `TARGET) & (i_in == 1'b1) ? 1'b1 : 1'b0; endmodule 안녕하세요, 코드 리뷰 원할 경우 남기면 리뷰 해주신다고 하셔서 질문 드립니다. 1) no fsm 1011이 됐을 때 다음 rising edge가 아닌 바로 1이 나와야 하기 때문에 101만 저장하여 비교한 후, 최종 출력에 i_in을 and 처리하여 101 + 1 일 경우만 o_flag가 나오도록 했습니다. 2) fsm 1과 비슷한 방법으로 하였는데 강의처럼 fsm의 input을 1이 아닌 3bit(101 target)로 하여, 상태를 2개로 축소시켜 작성하였습니다. 간단하게 리뷰 부탁드립니다!

  • verilog-hdl
  • fpga
  • system-verilog
  • rtl
정회운 댓글 1 좋아요 1 조회수 75

인기 태그

인프런 TOP Writers

주간 인기글