inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

always문을 나누는 기준이 궁금합니다

미해결

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

always문을 사용하실 때 어떤 기준으로 always문을 나누시는지 궁금합니다. 가령 예를 들면 올려주신 chapter_11에 있는 count 코드를 보면 always 문 2개를 사용해서 모듈을 구성하셨고 그밖에 강의를 보면 다양하게 always문을 나누시는데 같은 동작을 하는 모듈을 always문 하나로 만들 수 있을텐데 나누시는 기준이 어떤건지 궁금합니다. 그리고 작성한 verilog 코드의 가독성을 높히기 위한 팁이나 관련 추천 서적이나 참고 자료가 있으실까요! 제가 이 부분에 대해서 부족한게 많아서 알려주신다면 앞으로 설계를 할 때 도움이 많이 될 것 같습니다. 감사합니다.

  • fpga
  • 임베디드
  • verilog-hdl
dontknow 댓글 1 좋아요 1 조회수 2564

level sensitive @에 대한 질문

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 맛비님 안녕하세요. 질문 있습니다. Verilog 문법적인 부분은 왠만하면 따로 서칭하여 공부하고 있는데 오늘 실습 내용을 보니, @(posedge clk); 와 @(negedge clk);를 따로 사용하더라구요. 항상 always @() 이런 것만 봐와서 @가 always의 조건으로만 사용되는 줄로만 이해하고 있었습니다. 서칭을 해보니까 level sensitive라고하여 @ 뒤 괄호 안에 있는 신호가 변할 때 실행?된다고 나오더군요. 여기서 질문이 생깁니다. 1. 아래의 내용은 tb_power_of_8.v 내 49번째 줄부터 61번째 줄입니다. # 10 @(posedge clk); $display("Start! [%d]", $time); for(i=0; i<100; i = i+1) begin @(negedge clk); i_valid = 1; i_value = i; @(posedge clk); end @(negedge clk); i_valid = 0; i_value = 0; # 100 10ns 딜레이 후 @(posedge clk);이 나오는데 이걸 해석하면 clk의 rising edge가 발생되기 전까지 polling하는 것인가요? 2. 따로 Verilog HDL의 문법적인 스킬이라고 해야할까요? 뭔가 많은 모듈을 디자인을 하려면 문법적인 내용을 알고 있으면 유리할 것 같은데, 이런 것을 따로 공부하고 싶다면 전 강의에 추천해주신 책으로 공부하는 것이 좋을까요? 그런데 저는 책으로 공부하는 것보다 문제를 풀면서(모듈 설계) 공부를 하고 싶다는 생각이 더 드는데, 이를 보충해줄만한 참고 자료 같은 것이 있을까요?

  • 임베디드
  • verilog-hdl
  • fpga
김상현 댓글 2 좋아요 3 조회수 656

simple bram ctrl 질문입니다 !

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 맛비선생님의 BRAM Ctrl 설계를 학습하였는데 아래 맛비님의 코드 n_state = c_state를 case문 안에 default 문으로 넣었는데 시뮬레이션이 동작하지 않았습니다. 혹시 이유를 간략히 알 수 있을까요? always @(*) begin n_state = c_state; case (c_state) S_IDLE : if(i_run) n_state = S_WRITE; S_WRITE : if(is_write_done) n_state = S_READ; S_READ : if(is_read_done) n_state = S_DONE; S_DONE : n_state = S_IDLE; endcase end

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

vaild신호 Concatenation문법 질문이요

미해결

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

Conacatenation 에서 비트를 묶는다는게 (reset) r_vaild=0,0,0, i_vaild=0 (posedge clk) r_vaild[1:0]=0,0 + i_vaild=1 -> r_vaild=[0,0,1] o_vaild=r_vaild[2]=0 (posedge clk) r_vaild[1:0]=0,1 + i_vaild=1 -> r_vaild=[0,1,1] o_vaild=r_vaild[2]=0 (posedge clk) r_vaild[1:0]=1,1 + i_vaild=1 -> r_vaild=[1,1,1] o_vaild=r_vaild[2]=1 . . . 요런 연산을 하는건가요..?

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

source ./tools/Xilinx/에서 막혔습니다..

미해결

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

source ./tools/Xilinx/를 치면 계속 bash라고 나오고 동영상처럼 나오지 않습니다...

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

pipeline 관련 질문입니다.

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://drive.google.com/file/d/1bg2zOcgteYXHaAhuwsGsy7zQtwcDCiea/view?usp=sharing 안녕하세요 맛비님. pipe line 복습하다가 pipeline을 사용하지 않으면 clk의 1cycle이 아닌 3cycle 마다 결과값이 한번씩 출력이 되어야하는 것으로 알고 있습니다. flip flop을 단순히 제거하여서 결과값을 도출하였는데 아마 test bench의 @(posedge clk) 마다 i_value 값을 1씩 증가시키는 문법 때문인지 1cycle 마다 결과값이 도출되었습니다. 파이프라인이 test bench의 for 루프 문에 적용된 것인지 DUT의 flip flop에 의해 적용된건지 궁금합니다! - 아니면 dalay를 주기위해 flip flop을 사용하는 것인가요?

  • 임베디드
  • verilog-hdl
  • fpga
Taiwan 댓글 1 좋아요 1 조회수 354

FSM 관련 질문 좀 드리겠습니다!

해결됨

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

안녕하세요! 좋은 강의 늘 감사드립니다 !! FSM always @(*) 구문에서 처음에 n_state = S_IDLE; 로 초기화 구문을 넣어주는거랑 default문을 추가해서 n_state = S_IDLE을 넣어주는거랑 완전히 같은 역할을 한다고 생각하면 될까요? 혹시 그렇다면 전자로 코딩 하시는 이유를 알 수 있을까요?? 그리고 Verilog에서 저런식으로 특정 상수로 값을 초기화해도 합성 과정에서 별 문제 없이 잘 합성이 되나요 ?? 조합회로라 상관 없을 것 같다는 생각이 들었는데 순차회로의 경우에는 저런식으로 초기화 구문을 사용하면 합성이 되는지 안되는지도 궁금합니다!!

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

Pipeline 실습 관련 질문드립니다

해결됨

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

안녕하세요 양질의 강의 영상 감사합니다! Pipeline 실습에서는 Valid 신호를 3개의 Flip Flop을 죽 늘어선 형태로 사용하셨는데 이게 혹시 실제로도 이렇게 코딩하여 합성하면 Hold Time 위반이 발생하는게 맞나요? Flip Flop 사이에 아무런 조합회로가 안붙고 플립플롭의 출력이 입력으로 바로 들어가면 Hold Time 위반이라고 학교에서 얼핏 배운 기억이 났습니다 만약 Hold Time 위반이 맞다면 실제 합성시에는 사이에 Buffer를 사용하여 해결하면 될까요? 또한 실무에서 그렇게 Buffer를 추가하는 것은 RTL 엔지니어가 Hold Time 위반 나겠다 싶은 곳에다가 Verilog 코드에 추가해주는 식으로 해결하는지 아니면 합성 이후 Back End쪽(??)단계에서 버퍼를 추가시켜서 해결하는지 궁금합니다

  • verilog-hdl
  • 임베디드
  • fpga
wpdltms8765 댓글 1 좋아요 5 조회수 690

build 문의 드립니다.

미해결

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

wsl 에서 build 가 안되서 문의 드립니다. (8:55부분) 아래 링크의 유튜브 내용 보고 wsl / vivado 설치했고, vivado 까지 잘 동작 하는데, build가 되지 않는데요.. 조치사항 알 수 있을까요?? https://www.youtube.com/watch?v=BdtaSQs0RLQ https://www.youtube.com/watch?v=4qwAEJ_3-8o

  • 임베디드
  • fpga
Junho Kim 댓글 3 좋아요 1 조회수 674

실제 fpga상에서 BRAM을 사용했을때

미해결

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

안녕하세요 맛비님. 항상 좋은 강의 감사드립니다. 오늘 배운 BRAM 사용법을 활용하여 어떤 코드를 작성하고, 그 코드를 실제 FPGA상에서 실행시켰을때, FPGA 보드가 제공하는 BRAM의 area중 현재 몇퍼센트를 사용중인지 vivado tool에서 확인해볼수 있는 방법이 따로 있을까요?

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

Counter 설계관련 질문

해결됨

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

맛비님 counter 설계를 보고 제가 나름대로 찾아서 설계를 생각해봤습니다. 생각하다보니 질문이 있습니다. 1. D flip flop을 설계할 때 맛비님의 경우에는 output port를 wire 상태로 그냥 두시고 reg 변수를 따로 선언하셨습니다. 찾다보니 output port를 output reg 타입으로 선언해서 d flip flop을 설계하는 경우도 있던데 두 차이 점이 무엇인지 궁금합니다 나중에 합성할때 맛비님 방식이 더 유리한 것인가요? `timescale 1ns / 1ps module d_ff (i_D, clk, reset_n, o_Q); input i_D; input clk; input reset_n; output o_Q; always @( posedge clk or negedge reset_n) begin if ( ! reset_n) begin o_Q <= 0 ; end else begin o_Q <= i_D; end end endmodule 2. 맛비님은 counter 설계시 한번에 하셨는데 동기식/비동기식 counter를 찾아보면 여러개의 D flip flop으로 설계한 것들을 찾아볼 수 있었습니다. 여기서 질문이 있습니다. 아래 첨부한 사진을 보시면 4bit 동기식 counter를 설계했을 뿐인데도 truth table의 양이 많은 것을 알 수 있습니다. 만약 제가 16bit 동기식 counter를 설계한다고 하면 훨씬 더 많은 truth table이 요구되고 이 truth table을 가지고 카르노맵을 그리는 것이 훨씬 더 복잡해 질텐데 실무에서는 그럼 어떻게 설계를 하는건가요??? 혹시 이런 복잡함을 줄이려고 맛비님이 counter 설계 설명시 내부에 reg를 선언해서 +1씩 해주신건가요??(훨씬 단순하게 설계를 하기 위해 강의하신 내용대로 하는 것인지 궁금합니다)

  • 임베디드
  • verilog-hdl
  • fpga
움직이는YM 댓글 1 좋아요 1 조회수 371

bram 생성 관련 질문 있습니다.

미해결

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

bram을 통해 데이터 다루는 챕터인데 bram을 vivado hls에서 코드로 변환 시킨건가요? vivado에서 block degine에 bram 생성하는 것도 있긴한데 그건 사용자가 코드를 변환 시킬수가 없네요.designe block말고 vi 에디터로 bram을 관련 코드를 다룬다고 한다면 bram을 어떻게 생성할수있는건가요?

  • 임베디드
  • fpga
김주성 댓글 3 좋아요 1 조회수 995

시뮬레이션에서 클럭 rising edge 순간 판단 대상이 되는 신호도 함께 천이 됩니다. 이런 경우 논리 상태에 대해 궁금합니다.

미해결

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

시뮬레이션 결과를 보시면 클럭 rising edge 순간에 판단 대상이 되는 신호도 함께 천이 됩니다. 이런 경우 시뮬레이션 결과처럼 실제 fpga 구현 되었을 때 문제가 없을까요?

  • 임베디드
  • fpga
  • verilog-hdl
HYUNCHUL JOO 댓글 1 좋아요 1 조회수 560

D ff 질문입니다

미해결

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

8강 10:35에 나오는 d flipflop회로가 어떻게 작동되는지 설명해 주실 수 있나요?̊̈ ?̊̈ ?̊̈

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

BRAM SRAM 공통점 차이점

미해결

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

안녕하세요 맛비님, 강의 다시 복습하면서 궁금한 게 생겼는데, BRAM과 SRAM의 공통점과 차이점이 뭔지 알려주실 수 있나요? 구글에 검색해보면 BRAM 대신 DRAM으로 결과들이 나와서 찾기가 힘드네요

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

Reset 관련 질문입니다.

해결됨

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

안녕하세요! 맛비님! 강의 열심히 따라가며 수강하고 있습니다. 강의를 듣다가 보면 항상 Reset에서 막혀 다시 Reset 강의로 돌아가서 확인하고 있습니다..ㅎㅎ 어느정도 이해가 되었다고 생각했는데 궁금해서 질문 드립니다. reset을 이용해서 처음부터 시작하는 신호와 unknown 상태를 방지하기 위해서 사용하는 것으로 알고 있습니다.(맞나요?) 하지만 코드를 따라가다 보면 reset 값만 0에서 1로 바꾸고 나머지 값에는 영향을 주지 않는거 같은데 reset을 통해서 나머지 변수들에게도 영향을 주는 건가요? 아니면 reset의 출발신호만을 알기위해서 사용하는 건가요??

  • 임베디드
  • verilog-hdl
  • fpga
지루한 까치 댓글 2 좋아요 1 조회수 470

개인공부하다 질문이 생겨 질문합니다!!

미해결

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

VIVADO 사용해서 개인 공부하고 있는데 질문이 생겨 질문합니다!! Behavioral Simulation과 Post Synthesis Functional Simulation의 경우 결과물이 이상적으로 나오는데 Post Syntehsis Timing Simulation을 하는 경우, 입력값에 따라 에러가 발생하는 것 같습니다.. 에러가 처음 발생하는 시점은 찾았는데 이런 경우 어떤식으로 디버깅을 해야할지 조언해주실 수 있나요? Synthesis 하고나면 block구조도 조금씩 바뀌어 있고 wire,port name 도 바뀌어 있어서 Simulation 할 때 뭐가 뭔지 어려운것같습니다.,,, ( Setip/Hold time 은 만족하는것 확인했습니다.)

  • fpga
  • 임베디드
  • verilog-hdl
베릴로그 댓글 1 좋아요 1 조회수 1543

회로설계 직무 취업 관련 질문입니다.

미해결

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

안녕하세요. 인프런 강의 수강 중인 전자공학과 학생입니다. 삼성전자 LSI사업부 같은 대기업의 회로 설계 직무로 취업하는데 있어 석사 이상의 과정이 필수라고 보시나요? 저는 학부만 하고 취업하려고 생각하고 있었는데 유튜브 찾아보니 회로 설계 쪽은 최소 석사는 하고 들어가야 좀 더 나은 성과를 낼 수 있으니 석사 하고 지원하는 게 좋다는 의견이 많은 것 같아요.(어떻게 보면 당연한거지만요..!) 그래서 학부생으로 취업하게 되면 아무래도 할 수 있는 일이 많이 제한적인지 현업에 계시는 맛비님 의견을 듣고 싶습니다^^

  • 회로설계
  • 베릴로그
  • fpga
  • 취업
  • 임베디드
  • verilog-hdl
  • 석사
김준표 댓글 1 좋아요 1 조회수 4146

r_valid 신호의 역활

미해결

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

항상 FPGA가 어떻게 하드웨어 가속에 도움이 될까 궁금 했는데 정말 피가 되고 살이 되는 귀중한 강의 였습니다. 코드작성에 r_valid 신호는 왜 쓰인 건가요? 그냥 인풋에 같이 동기화 되서 작동하는 그냥 잉여의 FF 체인 처럼 보이는데, 이름이 valid 인것 보면 중요한 검증 로직인 것 같기고 하구요. 현업에서도 이런식으로 많이 쓰이나요? 좋은 강의 항상 감사합니다.

  • verilog-hdl
  • 임베디드
  • fpga
Jeongwung Jeong 댓글 5 좋아요 2 조회수 915

인기 태그

인프런 TOP Writers

주간 인기글