안녕하세요. 이번에 Testbench와 UVM 강의를 신청하게 된 수강생입니다. 제가 본업이 있다보니 강의를 수강을 못하고 있는데, UVM 강의의 경우 유효기간이 존재하더라고요 혹시 추후에 기간을 늘려주실 계획이 있으실지 문의드립니다. 다른 하나는 SV 기초 강의는 신청하지 않았는데, 따로 수강하지 않고 바로 TB강의로 넘어가도 될지 문의드립니다. (NPU 설계 및 Gate 10,000개 미만 프로젝트에서 IO PAD Insertion부터 Synthesis, Scan, ATPG, DA와 STA를 해본 경험은 보유하고 있습니다.) 인프런에 로드맵 기능이 있는것으로 아는데 그걸 열어주시면 더 좋을 것 같습니다. 더욱 양질의 강의가 올라오길 기대하겠습니다. 감사합니다.
설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
수강 전 문의를 드리고 싶어 불가피하게 여기에 질문글을 작성하게 되었습니다. 안녕하세요. 현재 대학원 석사과정에서 디지털 칩 설계를 하고 있는 학생입니다. 강의 수강 전에 여쭤보고 싶은 부분이 있어서 문의드립니다. Season2 코딩테스트에서 혹시 구비하고 있어야 할 FPGA가 따로 있을까요? 또 현재 칩 설계에 있어서 SPI, GPIO와 같이 칩 구동 전 데이터를 넣는 부분의 설계가 좀 어려워 AI의 도움을 받으면서 하고 있는데, 이 강의가 도움이 될 지 여쭤봅니다. 감사합니다.
설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ================== L0-P5번 문항에서 4to1 mux에서 모범 답안과 조금 다르게 전부 삼항 연산자로 할당해서 해결했는데 유의미한 차이가 있나요? 일단 schematic을 봤을 떈 4:1먹스 1개와 2:1먹스 3개로 구현되는 차이가 있었습니다.
설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
안녕하세요 🙂 [1. 질문 챕터] : Vivado 2022.2 설치 영상 중 4분 25초 [2. 질문 내용] : Window Home 버전이라 Hyper-V 기능이 따로 없는데, 기능을 켜지 않아도 충분히 따라갈 수 있나요? [3. 시도했던 내용, 그렇게 생각하는 이유] :
설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
안녕하세요 🙂 [L1-P02] 멀티플렉서 관련 질문이 있어서 문의 드립니다. 지금 vivado 2024.2를 다운로드 해서 사용하고 있습니다. 모듈을 작성하고 맞는지 ./build를 해보고 있는데 이게 시간이 너무 많이 걸려서 결과를 확인 못하고 있습니다. 1시간 넘게 돌아 갔는데도 결과를 확인 할 수 없습니다. 이게 정상인가요? 더 빠르게 확인 할 수 있는 방법이 없을까요? ==================
설계독학'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돼서 나오는지 궁금합니다. 감사합니다.
설계독학'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개로 축소시켜 작성하였습니다. 간단하게 리뷰 부탁드립니다!
설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)
안녕하세요, 이번 강의 처음으로 수강하는 수강생인데 이전 버전의 환경 설정하는 영상이나 글 따라해도 계속 막힙니다. build시 자꾸 에러가 나오거나 vivado가 제대로 실행되지 않는데 이 부분이 해결이 되지 않습니다. 이전 가이드는 꽤 오래되었고, 무료 강의도 아니고 유료 강의인데 그냥 이전 영상을 참고하라고 할 게 아닌 해당 강의의 업로드 시점에서 최신화 된 환경 설정 영상/guide는 당연히 있어야된다고 생각합니다. 최신화 된 내용으로 자세한 guide를 부탁드립니다. 감사합니다.
설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
안녕하세요 🙂 [1. 질문 챕터] : 01-03 환경 소개 및 설치 가이드 [2. 질문 내용] : 안녕하세요 이제 막 베릴로그를 배워보려고하는 입문자입니다. 환경설정에서 말씀하신 Ubuntu version으로 설치 하려고했는데 아래 그림 처럼 20년도 버전부터 24년도 버전까지 다운받을수없다고 뜨네요 다른 툴을 다운 받아서 진행하면 되는지 궁금해서 질문 남겨봅니다..! [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ==================
안녕하세요, 강의 수강 중 문의드립니다. * 저는 아직 이해가 부족한 부분이 많아 질문 내용을 AI의 도움을 받아 정리하였습니다. Zybo Z7-20 보드로 실습을 진행하던 중 UART 보드 검증 단계에서 문제가 발생했습니다. 강의에서는 IO Planning에서 uart_tx/rx 핀을 매핑한 후 PuTTY로 Loopback 테스트를 진행하셨는데, Zybo Z7-20은 온보드 USB-UART 브리지(FT2232HQ)가 PS MIO 핀에만 연결된 구조여서 순수 PL RTL 설계에서는 해당 핀에 접근이 불가능한 것으로 파악했습니다. (첨부 이미지 Figure 7.1 참고) 강의 기준 보드는 uart_tx/rx가 PL 핀에 직접 연결되어 XDC에서 바로 매핑이 가능한 것으로 보입니다. 제가 파악한 내용이 맞는지 확인 부탁드립니다. (AI는 USB-to-UART 변환 모듈을 별도 구매하면 해결 가능하다고 설명하고 있습니다. 다만 우선은 제가 파악한 내용이 맞는지 확인이 먼저라 생각되어 문의드리게 되었습니다. 확인 후 여유가 된다면 해당 방법도 시도해볼 예정입니다.) 감사합니다.
안녕하세요. queue 예제 관련 문의드립니다. int q[$] = {0,1,3,6}; int b[$] = {4,5}; 다음과 같이 초기값 선언 시 assignment pattern을 하지않는데 array type에서 이렇게 선언 시 systerm verilog 문법에서는 에러로 생각되는데 예제 의도에 대한 문의드립니다. 감사합니다. ] = {0,1,3,6}
안녕하세요. Mission 5를 수행하면서 인프런_SVTB_Mission_5.PDF 를 참고하여 코드를 작성하던 중, scoreboard 에 cov_done 이 선언되어 있지 않아 아래 구문에서 에러가 발생하는 것을 확인했습니다. scb.cov_done = cov_done; PDF 내용에는 scoreboard 파일에 coverage 관련 내용을 추가하라는 안내가 없어, 우선 해당 구문을 삭제한 뒤 시뮬레이션을 진행해 보니 정상 동작하는 것을 확인했습니다. 혹시 현재 업로드되어 있는 PDF 파일이 최신 버전이 맞는지 확인 부탁드립니다. 또한 비교 및 참고를 위해 최종 작성된 testbench 파일들 ( environment.sv , generator.sv , scoreboard.sv 등 tb 폴더 내 전체 파일)도 공유해 주실 수 있을지 문의 드립니다. 감사합니다.
안녕하세요. 유익한 강의 올려주셔서 많은 배움 얻고 있습니다. 다름이 아니라 LED Blinking 프로젝트 관련하여 문의 드립니다. 제가 사용 중인 FPGA 보드(Zybo Z7-20)의 경우 125MHz single-ended 클럭만 지원하여, 아래와 같이 수정하여 진행하고 있습니다. IBUFDS 제거 (differential 클럭 미지원) MAX_COUNT를 125,000,000으로 변경 counter 비트폭을 28bit → 27bit로 축소 이렇게 진행해도 문제가 없는지 확인 부탁드립니다. 감사합니다.