묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)
L2_P4 data_average 코드 리뷰 및 waveform 질문 드립니다.
`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 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)
LV2-2 Patter Detector code review 부탁드립니다.
`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 fsm1011이 됐을 때 다음 rising edge가 아닌 바로 1이 나와야 하기 때문에 101만 저장하여 비교한 후, 최종 출력에 i_in을 and 처리하여 101 + 1 일 경우만 o_flag가 나오도록 했습니다.2) fsm1과 비슷한 방법으로 하였는데 강의처럼 fsm의 input을 1이 아닌 3bit(101 target)로 하여,상태를 2개로 축소시켜 작성하였습니다.간단하게 리뷰 부탁드립니다!
-
미해결설계독학's Verilog 마스터 Season 2 (실전 코테 끝판왕: 고난도 문제로 완성하는 이직 프리패스)
환경 설정하는 guide 최신화 부탁드립니다.
안녕하세요,이번 강의 처음으로 수강하는 수강생인데 이전 버전의 환경 설정하는 영상이나 글 따라해도 계속 막힙니다.build시 자꾸 에러가 나오거나 vivado가 제대로 실행되지 않는데 이 부분이 해결이 되지 않습니다.이전 가이드는 꽤 오래되었고, 무료 강의도 아니고 유료 강의인데 그냥 이전 영상을 참고하라고 할 게 아닌 해당 강의의 업로드 시점에서 최신화 된 환경 설정 영상/guide는 당연히 있어야된다고 생각합니다.최신화 된 내용으로 자세한 guide를 부탁드립니다.감사합니다.
-
미해결설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
환경설정 문
안녕하세요 🙂[1. 질문 챕터] : 01-03 환경 소개 및 설치 가이드[2. 질문 내용] : 안녕하세요 이제 막 베릴로그를 배워보려고하는 입문자입니다. 환경설정에서 말씀하신 Ubuntu version으로 설치 하려고했는데 아래 그림 처럼 20년도 버전부터 24년도 버전까지 다운받을수없다고 뜨네요다른 툴을 다운 받아서 진행하면 되는지 궁금해서 질문 남겨봅니다..![3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ==================
-
해결됨FPGA에 UART 구현하기
Zybo 환경에서 PL RTL UART 보드 검증 방법
안녕하세요, 강의 수강 중 문의드립니다. * 저는 아직 이해가 부족한 부분이 많아 질문 내용을 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 변환 모듈을 별도 구매하면 해결 가능하다고 설명하고 있습니다. 다만 우선은 제가 파악한 내용이 맞는지 확인이 먼저라 생각되어 문의드리게 되었습니다. 확인 후 여유가 된다면 해당 방법도 시도해볼 예정입니다.) 감사합니다.
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
queue assignment pattern 문의 건
안녕하세요.queue 예제 관련 문의드립니다.int q[$] = {0,1,3,6};int b[$] = {4,5};다음과 같이 초기값 선언 시 assignment pattern을 하지않는데 array type에서 이렇게 선언 시 systerm verilog 문법에서는 에러로 생각되는데 예제 의도에 대한 문의드립니다. 감사합니다.] = {0,1,3,6}
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
Mission 5 문의 건
안녕하세요.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 폴더 내 전체 파일)도 공유해 주실 수 있을지 문의 드립니다.감사합니다.
-
해결됨FPGA의 기초
Zynq z7 FPGA single-ended 관련
안녕하세요. 유익한 강의 올려주셔서 많은 배움 얻고 있습니다. 다름이 아니라 LED Blinking 프로젝트 관련하여 문의 드립니다. 제가 사용 중인 FPGA 보드(Zybo Z7-20)의 경우 125MHz single-ended 클럭만 지원하여, 아래와 같이 수정하여 진행하고 있습니다.IBUFDS 제거 (differential 클럭 미지원)MAX_COUNT를 125,000,000으로 변경counter 비트폭을 28bit → 27bit로 축소이렇게 진행해도 문제가 없는지 확인 부탁드립니다. 감사합니다.
-
해결됨Basic UVM Testbench ( 회로 설계 검증 )
강의자료 PDF 어떻게받나요?
확인부탁드립니다.
-
해결됨FPGA의 기초
fpga 개발보드
led blinking 하는 fpga 개발보드 어디서 살 수 있나요?
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
강의 ppt 자료 요청건
강의시간때 설명하시는 ppt 자료를 받아볼수 있을까요?
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
미션tree
강의중 이런 디렉토리는 어느것을 다운받아야 되는건가요? 어떻게 하면 저런 디렉토리가 생기나요?강의9에서 다운받은 pr_example_n_mission_4fe1dc57.tgz 는 무슨파일이고 어떻프로그램에서 열어야 할까요? .tgz 확장자가 뭐가요?질문이 많아 죄송합니다.
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
강의7 질문
잘 작성한거 같은데 왜 ./run.sh: 허가 거부.....발생하는건가요?
-
미해결AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증
AI 실무활용가이드 PDF 비밀번호
AI 실무활용가이드 PDF파일들의 p/w 는 어디서 참고하면 될까요?
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
mission1 질문
mission1 는 몇번 강의까지 듣고 할수 있는건가요? EDA 를 하다가 갑자기 APB 가 나와서 당황스럽습니다.미션1을 verilog style 로 작성하라는게 EDA 에서 작성하라는건가요?대체적으로 강의가 자세하지 않아 이해하기 어렵습니다. SystemVerilog_TB_EDAPlayground_사용방법 처럼 절차적으로 설명이 되면 잘 따라갈수 있을것 같습니다.
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
Verilog Testbench DB 원본
DB 를 다운받아서 보라고 하셨는데 DB 는 어디에 있나요?
-
해결됨AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증
quartus timing constraint slack관련 질문
학습 진행도중 제공된 sv파일들과 sdc를 사용해서 report를 보았는데 강의와 다르게 negative slack이 발생하질 않습니다 slack을 해결하는 것까지 시도해보고싶은데 어떻게 하면 될까요?
-
미해결설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
환불 문의
안녕하세요 설계독학맛비님. 강의 너무 잘 수강하고 있습니다.다름이 아니라 제가 어제 하루동안 1. 설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)2. 설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)3. 설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)이 세가지 강의를 모두 구매한 상태입니다. 당시 1번 강의 즉 Season2 강의에서 Season1 강의를 수강해야 수월하다는 이야기를 듣고 2번인 마스터 버전을 구매하였습니다. 하지만 강의에서 말한 Season 1은 2번 강의가 아닌 3번 강의로 2번 강의를 수강중 알게 되었습니다. 현재 2번 강의 수강률이 8.7%이며 첫번째 강의 자료를 다운받아 환불할 수 없는 상태이지만, 혹시나마 환불이 가능할까 여쭈고 싶습니다. 감사합니다.
-
해결됨AI 기반 아날로그/디지털 회로설계 자동화 실무 - 현업 LDO/AXI-Lite IP 설계와 검증
16.임베디드보드 schemetic 설계 setup질문
symbol,footprint library에서 mixed signal로 지정한 파일은 어디서 다운받을수있나요?
-
해결됨Basic SystemVerilog Testbench ( 회로설계 검증 )
Inline constraints 관련 질문
안녕하세요, 좋은 강의 잘 수강하고 있습니다.inline constraints 설명에 있는 예제 코드에서,obj_a.randomize() with {x > 3 && x < 10} 관련하여 몇 가지 질문이 있습니다.(1) 위와 같이 적용되는 randomize는 class demo 자체가 아닌, obj_a에 할당된 object memory에만 적용되는 것으로 이해했는데, 이해한 내용이 맞는지 궁금합니다.(2) class에 정의된 x > 0; x <= 5;의 constraint와, inline constraint x>3 && x<10;이 같이 적용되는 경우, 최종적으로 x>3 && x<=5로 solve 되는 것이 맞는지 궁금합니다.(3) 마지막으로 local::y에 대해 언급하신 건, constraint 조건을 걸 때, class의 y와 program block에 있는 y의 충돌을 피하기 위한 것인지 궁금합니다.질문 읽어주셔서 감사합니다.