묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
수업질문
맛비님 안녕하세요 어느새 벌써 16장을 수강하고 있습니다 ㅎㅎ다름이 아닌 FSM강의를 들으며 우분투에서 비바도를 열어 직접 코드를 짜보고 실행해보려고 했습니다.하지만 .xpr 파일의 실행권한이 존재하지 않아서 chmod로 권한을 주어도 파일이 실행되지 않았습니다. (윈도우에서 비바도를 이용할때는 클릭으로 .xpr 파일이 열리며 비바도가 열렸습니다.)해당 방법에 대한 조언을 구하고 싶습니다. 좋은 하루 되십시오,
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
counter에 대하여
맛비님 안녕하세요, 10장 counter 강의를 듣고 질문 사항이 생겨 글 남기게 되었습니다.counter를 설계할때 sw 처럼 cnt = cnt + 1; 설계하면 안된다고 Combinational Logic의 정의와 함께 설명해주셨습니다.이때 Combinational Logic은 입력과 동시에 출력이 결정되기 때문에 저장공간 없이 같은 변수 cnt를 사용하면 안된다고 이해하면 될까요 ? 좋은 하루 되세요.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
16장 FSM 강의 Code 질문
module FSM( input clk, input rst_n, input i_run, output reg o_done ); reg[1:0] state; //00:IDLE, 01:RUN, 10:DONE, 11:None wire is_done; always@(posedge clk or negedge rst_n) begin case(state) 2'b00 : // IDLE begin if (rst_n == 1 && i_run == 1) state <= 01; else state <= 00; end 2'b01 : // Run begin if (!rst_n) state <= 00; else if (rst_n == 1 && is_done == 1) state <= 10; else state <= 01; end 2'b10 : // Done begin state <= 00; end dafault : //Deafalt begin state <=00; end endcase end endmodule보이는 그대로 FSM을 state를 case로 나눠서 기술해봤는데, 혹시 위와 같은 방식으로 설계하면 문제 없을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
수업내용
[9장] signed에 대한 질문맛비님 안녕하세요, 9장 강의를 듣고 질문사항이 생겨서 올립니다.signed a= 4'b1000 라는 변수가 있을때 해당 값은 -8이라고 알고 있습니다.이때 궁금한 점은 2의보수를 취할때 MSB도 1->0 or 0->1로 바꿔져야 하는지 의문입니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치 중 java.lang.UnsatisfiedLinkError 질문 드립니다.
제가 2020.1, 2022.2 모두 설치를 시도했으나 실패했습니다.. 설치 폴더 경로도 /tools, /home/wonchan/tools 다르게 해보았습니다. 구글에 java.lang.UnsatisfiedLinkError를 검색해서 시도해보려고 했으나 라이브러리 설치가 잘 안됐는지 여전히 vivado 설치가 잘 되지 않아서 질문 드립니다..
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
수업질문 D F/F
=================강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================HDL 4장 강의를 듣고 질문이 생겨 글 남기게 되었습니다. 마무리에서 D F/F이란 순차회로를 구성하기 위해서 사용되는 로직이다 라고 말씀해주셨습니다.해당 사진을 보면 F/F이 논리 gate들인 combinational logic으로 구성되있기 때문에 D F/F이란 순차회로를 통해 구성된 로직이다 라고 생각하면 틀릴까요 ? 좋은 하루 되십시오. ++ 추가 질문 생겨 같이 올립니다.chapter_5 D F/F 설계 코드에서 여기서 처음에 모듈 input, output을 설정할때 output reg o_value_sync_reset을 설정하면 굳이 r_ff_sync_reset이라는 변수를 사용하지 않아도 되지 않습니까?? 좋으 하루 되십시오.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
베릴로그 코딩 스타일
hdl-bits Mt2015 lfsr - HDLBits (01xz.net) 풀다가 궁금해서 문의 드립니다.문제 풀어나가는 방식 두 가지(1번 vs 2번,3번)중에서 어떤 방식이 더 좋은 방식이고 실제로 현업에서는 어떤 방식을 많이 사용하는지 궁금합니다? //1번 module top_module ( input [2:0] SW, // R input [1:0] KEY, // L and clk output [2:0] LEDR); // Q d_ffs f0 (.i_0(LEDR[2]),.i_1(SW[0]),.clk(KEY[0]),.L(KEY[1]),.q(LEDR[0])); d_ffs f1 (.i_0(LEDR[0]),.i_1(SW[1]),.clk(KEY[0]),.L(KEY[1]),.q(LEDR[1])); d_ffs f2 (.i_0(LEDR[1]^LEDR[2]),.i_1(SW[2]),.clk(KEY[0]),.L(KEY[1]),.q(LEDR[2])); endmodule module d_ffs( input i_0, input i_1, input clk, input L, output q ); always @(posedge clk) begin q <= (L ? i_1 : i_0); end endmodule //2번 module top_module ( input [2:0] SW, // R input [1:0] KEY, // L and clk output [2:0] LEDR); // Q reg [2:0] LEDR_next; always@(*)begin if(KEY[1])begin LEDR_next = SW; end else begin LEDR_next[0] = LEDR[2]; LEDR_next[1] = LEDR[0]; LEDR_next[2] = LEDR[2] ^ LEDR[1]; end end always@(posedge KEY[0])begin LEDR <= LEDR_next; end endmodule //3번 module top_module ( input [2:0] SW, // R input [1:0] KEY, // L and clk output [2:0] LEDR); // Q wire L; wire clk; wire [2:0] R; reg [2:0] Q; assign R = SW; assign clk = KEY[0]; assign L = KEY[1]; always @(posedge clk) begin if(L) Q <= R; else Q <= {Q[2]^Q[1], Q[0], Q[2]}; end assign LEDR = Q; endmodule
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
비쥬얼스튜디오 베릴로그 환경 만드는법
강의 중 비쥬얼스튜디오에서 베릴로그 환경 설정하는 법을 알려주신다고 하였는데 언제 강의를 볼 수 있을지 궁금합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
코드 질문입니다 [AI HW Lab2]
안녕하세요 맛비님.별 다른 질문은 아니고, 예전부터 궁금했던 것인데위 사진에서 40번째줄에 r_valid <= {LATENCY{1'b0}};부분을 왜 저렇게 표현했는지 궁금합니다.r_valid <= 0; 이렇게 해도 LATENCY가 달라짐에 따라 0의 값이 고정이지 않나요??위에서 localparam LATENCY = 2 라고 해서 40번째 줄은 r_valid <= {2{1'b0}}; 와 같습니다. ( 2{1'b0} = 2*1'b0 = 2'b0 인건가요? )
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Lab2 Practice 3 강의 중 genvar 코드 질문입니다.
안녕하세요, Lab2 Practice 3 강의에서 cnn_kernel.v 코드에 3가지 질문이 있습니다. (4분 47초 경) 43번 라인에서 사용된 mul_idx 변수는 genvar 키워드로 선언했는데, 63번 라인에서 사용된 acc_idx 변수는 왜 integer 키워드로 선언된건가요?동일한 generate 구문에서 사용되는데 이유가 궁금합니다. 두번째 궁금증인데요,코드에서 2번째 generate 구문은 왜 generate를 사용한 건가요?반드시 generate 가 있어야 simulation뿐만이 아닌 synthesis에서도 for 문을 사용할 수 있기 때문인가요? 3번째는 위 코드 65~70 라인에서 always @ (*) 구문을 사용하는데, 조합회로(맞나요?)인데도 blocking(=)으로 코드를 기술하면 순차적으로 수행되는것으로 이해하면 되는건가요? 좀 더 구체적으로 말씀드리면 for문에서 반복되는 blocking 대입을 unloop 했을 때 코드들의 순서가 보장이 되는지? 감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
직무 면접에 관한 질문이 있습니다
안녕하세요 맛비님.저는 맛비님 강의를 수강중인 취준생입니다.다름이 아니라 면접과정에서 궁금증이 생겨서 질문을 남기게 되었습니다.저는 전자공학과를 전공으로 했으며 3학년 까지 임베디드 관련 프로젝트를 하고 수상도 했습니다. 그런데 4학년에 rtl 엔지니어에 관심이 생겨서 공부를 시작했습니다. 유튜브나 전공 강의들을 통해서 verilog의 기초 문법을 다지고 디지털 로직에 관한 기초를 쌓았습니다.하지만 기업 면접에서는 3학년때까지 임베디드 관련 활동을 했으면서 왜 1년도 안되는 경험으로 rtl 엔지니어로 지원하느냐는 질문을 받았습니다.그래서 반도체에 관심이 많았고 설계에도 관심이 있어서 rtl에 지원하게 되었다고 말씀드렸습니다. 그리고 추가로 유튜브와 사설강의를 통해서 부족한 부분을 보완하고 있다고 말씀드렸습니다. 면접관님은 이 답변을 들으시고 기업에서는 저런 수준의 공부량으로는 같이 일을 할 수 없다는 말을 들었습니다.그래서 궁금한점이 실제로 회사에서 일을 하기 위해서는 높은 수준의 능력이 필요한지 궁금합니다. 참고로 제가 지원한 회사는 중소기업입니다.설계독학 맛비님의 강의들을 따라해보고 학교 강의인 디지털 집적 회로 강의도 복습하고 있는데 이 수준으로는 택도 없을까요..?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
On-chip vs Off-chip
안녕하세요 맛비님.On-chip memory와 Off-chip memory에 대해서 질문드립니다. Off-Chip memory와 가속기 사이에 On-chip memory가 있는 이유? on-chip memory에 accumulator만 존재하면 되지 않을까요? (dram에서 read되는 data -> On chip의 accumulator -> 가속기). 이런 순서로 데이터가 이동하면 sram read delay가 없어도 되지 않을까요? (On-chip memory가 sram이라는 가정하)병목 현상으로 이 중 가장 느린 device인 DRAM의 속도에 맞춰질 텐데, DRAM에서 주는 data를 accumulator만 거쳐서 바로 가속기에 넣을 수는 없을까요?제가 알기로는, 병목 현상을 방지하기 위해서 빠른 device는 빠른 device 들끼리 묶어서 속도가 빠른 BUS를 사용하고, 느린 device는 느린 device들끼리 묶어서 속도가 느린 BUS를 사용한다고 알고 있는데, 만약 이 말이 맞다면, 빠른 device들과 느린 device들의 연결은 어떻게 해주는지 궁금합니다.Off-chip memory는 chip 외부에 있기 때문에 메모리 내 데이터를 read write 할 때 power 소모가 on-chip 대비 크다라고 말씀하셨는데, 왜인지 잘 모르겠습니다. Chip 내에서만 power 소모가 일어나는 건가요? power 소모의 주체는 누구인지 궁금합니다.감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
can't connect to X11 window server using
질문글은 환영합니다!!! 작성하시기 전에 다음을 확인 부탁드려요 :)============================================================================강의에서 다룬 내용들의 질문들을 부탁드립니다!! (강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요..개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.============================================================================ can't connect to X11 window server using '10.0' 라고 뜨면서 vivado 실행이 갑자기 안되네요 원래 잘됐었는데 뭐가문제인지모르겠습니다.ㅜㅠ
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
강의 내용에 대한 질문입니다. (Lab2 Practice 1)
안녕하세요, 강의 잘 듣고 있습니다.질문이 있는데요, Lab2 Practice 1의 3분 13초 에서 빨간색 네모 박스가 앞선 연산과 동일하다고 말씀하셨어요.앞선 연산은 필터의 크기 (KX, KY)와 동일한 크기를 가지는 CI개 채널 입력에 대한 CO개 만큼의 출력을 생성하는 연산으로 이해됩니다. 그러면 빨간 네모 박스 연산이 위 연산과 동일하려면 첫 번째 라인의 for문이 지금처럼 (y, E: 출력 픽셀 y축 위치) 에 대한 for문이 아니라출력 채널의 수 (m, M: 출력 채널 수) 가 되어야 하는 것 아닌지요? (C코드에서의 m 이 연산 그림에서의 CO로 이해됩니다.) 감사합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
[HDL 14장] HW 가속기의 비밀인 Pipeline 을 이해해보자 (실습편) 코드 이해
강의를 듣던 중 코드에 대한 이해가 부족해서 그런데, 위의 사진에서의 코드를 보면for(i=0; i<100; i = i+1) begin @(negedge clk); i_valid = 1; i_value = i; @(posedge clk); end에서 @(negedge clk);와 @(posedge clk);를 사용하는 이유를 알 수 있을까요?? 추가로 @(posedge clk);, @(negedge clk);에 대한 문법이 이해가 안됩니다. 설명 부탁드립니다 ㅠㅠ
-
해결됨Verilog FPGA Program 1 (Arty A7-35T)
UART, SPI구현
안녕하세요 강의 잘 보고 있습니다!다름이 아니라 저는 zybo 보드를 사용하고 있기 때문에 PS영역에서 PC와 시리얼 통신을 하고 AXI 통신으로 PL영역에서 data를 보내는 방식으로 사용하고 있습니다.제가 궁금한 것은 uart나 SPI 모듈을 따로 구현을 하면 해당 data를 바로 PL영역으로 보낼 수 있는지 궁금합니다!
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
FPGA uart 에러
안녕하세요. 항상 좋은 강의 잘 수강하고 있습니다. CNN을 fpga에 올리는 강의를 따라서 진행하고 있는데 아래와 같이 uart 통신 결과가 출력됩니다.그래서 레퍼런스 문서들을 읽어보면서 이리저리 해보다 아래 사진의 파란색 부분을 qspi와 jtag를 연결하도록 하고나니 정상적으로 작동했습니다.그 후에 몇가지 실험을 해보니 fpga 프로그래밍을 하기 위해서는 sd와 qspi가 연결되어 있어야했고 실제 동작할 때는 qspi와 jtag 연결한 상태이어야만 했습니다. sd, sqpi, jtag에 대한 문서를 읽어봐도 제대로 이해가 가지 않아서 혹시 sd, qspi, jtag에 어떻게 연결하는지가 무엇을 의미하는지 알 수 있을까요?? 감사합니다.zybo z720을 사용하고 있고 강의 영상과 다른 점 없이 잘 진행되었는데 무엇이 문제인지 몰라 질문 드립니다. 감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 오류
안녕하세요.vivado 설치 이후 환경설정까지 완료했고 프로그램 실행이 잘 되는 것 까지 확인했습니다.테스트로 build 파일을 진행하니 다음과 같은 오류가 떠서 xvlog를 확인해봤는데 정상적으로 설치가 된 것 같습니다. 어떤 부분이 문제일까요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
[HDL 5장] D FlipFlop 과 Reset 실습 질문
[HDL 5장] D FlipFlop 과 Reset 실습에서,hierarchy를 보면 reg clk; 이랑 reg clk_enable; 을 AND gate로 연산자로 계산했는데, 코드에서 비트연산자 &가 아님 논리 연산자 &&를 상용한 이유를 알 수 있을까요?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
26분 25초 weights 질문입니다.
안녕하세요 맛비님.26:25초에 weight의 개수에 대해서 질문드립니다.layer1에서 weight가 6개 (2*3) 쓰였고,layer2에서 weight가 6개 (3*2) 쓰였고,layer3에서 weight가 4개 (2:2) 쓰였으면,총 weight의 개수는 6+6+4 = 16개 아닌가요?어떻게 2*3*2*2 = 24개인지 질문드립니다. 감사합니다.