설계독학맛비
@semisgdh
Lead 레벨·
HW_임베디드 엔지니어
외국계 비메모리 반도체설계
수강생
4,322
수강평
373
강의 평점
5.0
멘토링 신청
9
멘토링 리뷰
2
멘토링 평점
5.0
안녕하세요. 설계독학의 맛비입니다.
현) Global Top5 Fabless기업에서 HW IP 설계하고 있습니다.
세상에 없던 그리고 여러분들의 현업 생활에 도움이 되는, "진짜 반도체 설계 실무 강의"를 만들고 있습니다.
설계독학 로드맵과 함께 여러분들의 실력을 키워보아요.
여러분들과 소통하기 위한 설계독학 커뮤니티 를 운영하고 있습니다.
(커뮤니티에 가입하셔서, 15% 할인쿠폰도 받아보아요.)
함께 즐공하고 성장해요!
📜신규강의 준비로 인하여 휴무입니다!
🙋♂️소개
안녕하세요. 👋 설계독학 맛비입니다.
저는 현재 Global Top3비메모리 반도체 설계 회사에 재직중인 13년차 엔지니어 입니다.
- 대기업, 중소기업, 스타트업, 외국계 까지 모두 경험해 보았습니다.
- Team lead 경험 및 다수의 엔지니어 분들의 면접 경험도 있습니다.
- 그외 합격했지만 선택하지 않은 대기업들도 다수 있습니다.
- 유튜브의 라이브 방송 및 다수의 커리어 상담이력이 있습니다.
제가 생각하는 멘토링은 단순히 지식을 한방향으로 전달하는 것이 아닙니다. (그것은 강의!!)
제가 가진 경험을 바탕으로 멘토링을 요청하신 분의 고민을 듣고 같이 이야기 하면서 더 나은 방향, 새로운 방법을 제시하면서 소통하는 것, 그것이 멘토링이라 생각합니다.
멘티분들의 원하는 목표를 달성하기 위해서 어떤 부분을 채워야할지, 커리어를 어떻게 관리해야 할지 등등 조언 해드리고자 합니다.
👩🏻💻 비메모리 반도체 회로 설계엔지니어 살아남기
불경기인 요즘 비메모리 반도체 회로 설계 이직/취업 힘듭니다.
해당분야는 수박 겉핥기로 취업하는 쉬운 분야가 아닙니다.
체계적인 커리어 관리가 중요합니다.
이런 고민이 있다면 상담을 진행해보는 건 어떨까요?
- 경력자 혹은 신입 이직 및 취업 상담. (면접 전, 모의면접 진행 가능)
- 학업 및 반도체 설계 커리어 관리 (석사, 박사 진학? 취업?)
- 맛비랑 비메모리 설계엔지니어의 삶에 대해 이야기 해보고 싶다..?
🔎 가능한 멘토링 분야
- 비메모리 반도체 설계 엔지니어로 성장하는 방법
- 비메모리 반도체 설계 엔지니어로 취직하기 / 이직하기
- 비메모리 반도체 설계 분야 학습 방법
- 기타 개발자로서 진로에 대한 고민 모두
🕗일주일에 한번만 진행하는 1:1 상담
토요일 오전 8시에서 9시, 일주일에 딱 한분만 모시고 1시간동안 진행합니다.
한시간 지났다고 해서, 땡치고 bye 하는가? 도 아닙니다.
제 성격상 만족할만한 결론은 꼭 내드립니다.
1:1 로 이야기 해보면서 맞춤 전략을 짜봅시다.
✅ 상담 결과물을 드려요
여러분의 현재 상황을 듣고 실시간으로 내용을 정리합니다.
상담이 끝난 후 정리된 상담 내용은 이메일로 전달드립니다.
🗓진행은 구글 Meet 에서
진행 순서
- (구매자) 결제를 해주세요.
- (판매자) 제가 메일을 보내드립니다. (시간 및 구글 meet 링크 공유)
- (구매자) 메일 확인해주시고, 답장주세요.
- 구글 meet 을 통해 만나서 1:1 상담을 진행합니다.
● 진행방식
- Google meets을 이용한 1:1 화상회의 방식 (카메라 OFF)
- 예약이 되면 기재하신 연락처(e-mail)를 통해 접속주소를 알려드립니다.
- 상호 원활한 대화를 위해 "이어폰과 마이크 혹은 헤드셋" 을 준비해 주세요!
- 마이크가 없을 경우 채팅창으로 대화를 나눠야하는데 시간 Loss가 발생할 수 있습니다.
● 준 비 물
- 질문할 내용 list (사전 공유 필수)
- 마이크+스피커 혹은 헤드셋 (상호 원활한 커뮤니케이션을 위해 필수)
강의
로드맵
전체 1수강평
- 설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
- 설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
- 설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
- 설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
- 설계독학's Verilog 마스터 Season 1 (실전 코딩 테스트 문제로 완성하는 디지털 설계 엔지니어의 커리어 도약)
게시글
질문&답변
[HDL 32장-2부] 참고 링크 관련
안녕하세요 🙂RESP 관련링크 : https://developer.arm.com/documentation/ihi0022/eAXI VIP 관련링크 : https://docs.amd.com/r/en-US/pg267-axi-vip/Introduction참고하시면 되겠습니다.즐공하세요!
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 39
질문&답변
[HDL 22장] F/F CE 관련 질문
안녕하세요 🙂(사진) 결론부터 말씀드리면, 질문자님께서 분석하신 대로 s_valid == 0이고 s_ready == 1일 때 현재의 s_data 값이 F/F을 통과해서 m_data로 전달되는 현상이 발생하는 것이 맞습니다. 그럼에도 불구하고 s_ready & s_valid를 CE에 연결하여 데이터를 완벽하게 차단하지 않고 s_ready만 연결한 설계 의도는 다음과 같습니다.Valid 신호에 의한 수신단 제어 (Don't Care의 활용)블록도를 잘 보시면, 데이터를 저장하는 아래쪽 F/F뿐만 아니라 Valid 신호를 전달하는 위쪽 F/F의 CE에도 동일하게 s_ready가 연결되어 있습니다. 만약 s_valid == 0인 상태에서 s_ready == 1이 되어 아래쪽 데이터 F/F이 무의미한 값을 캡처하더라도, 동시에 위쪽 F/F도 동작하여 m_valid 출력으로 0을 내보내게 됩니다. 데이터를 받는 다음 단(Master)의 입장에서는 m_valid == 1일 때만 m_data를 유의미한 값으로 취급합니다. 즉, m_valid == 0인 상태라면 m_data 선에 어떤 쓰레기 값(Garbage Data)이 흘러가고 있든 전혀 신경 쓰지 않고 무시하게 됩니다. 결과적으로 시스템 오동작을 유발하는 잘못된 Data Transfer는 발생하지 않습니다.하드웨어 최적화 (Area 및 Timing 이점) 기능적으로 다음 단에서 무시될 데이터라면, 굳이 F/F의 CE 단에 s_valid와 s_ready를 묶는 AND 게이트 로직을 추가해서 입구를 꽉 막을 필요가 없습니다. 하드웨어 설계에서는 불필요한 조합 회로(AND 게이트 등)를 하나라도 줄이는 것이 칩의 면적(Area)을 아끼고 Timing Delay를 줄이는 데 유리합니다. Data Path는 'Valid'라는 확실한 제어 신호가 지켜주고 있기 때문에, Data F/F 자체의 조건은 유연하게 열어두어 최적화를 챙긴 설계 방식입니다. 질문자님께서 Handshake의 기본 대전제(Valid와 Ready가 모두 1일 때만 의미 있는 Transfer가 일어난다)를 아주 정확하게 이해하고 계셨기 때문에 가질 수 있었던 훌륭한 의문이라 생각이 드네요.좋은 질문이었습니다.감사합니다 🙂
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 47
질문&답변
UART0, 1 중 선택
안녕하세요 🙂질문주신대로 회로도를 보시면 아실 수 있어요.https://digilent.com/reference/programmable-logic/zybo-z7/start?srsltid=AfmBOopbzr-WaxYmidUKBL0TTgxN9tOz1dW82Qezlv9W1DtB-7LUOxbI위 홈페이지에서, 갖고계신 보드의 회로도를 보시면 되고요.(사진)MIO 48, 49 가 연결되어 있었고, 영상에서 사용한 UART1 이에요.(사진) 즐공하세요 🙂
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 57
질문&답변
datamoverbram모듈질문
안녕하세요! 질문 남겨주셔서 감사합니다.올려주신 내용을 읽어보니 파이프라인 타이밍에 대해 아주 꼼꼼하게 분석하셨네요! 흐름을 직접 따라가며 고민하시는 모습이 정말 훌륭합니다. 결론부터 말씀드리면, data와 valid는 1 cycle 어긋나지 않고 정확히 같은 cycle로 정렬되어 넘어갑니다.정확히 이해하신 대로, BRAM의 read latency 때문에 mem_data와 r_valid는 동일한 cycle에 유효해집니다. 그리고 그 다음 파이프라인 스테이지로 넘어갈 때 코드를 보면, r_core_data[0]에는 mem_data가 들어가고 동시에 r_core_delay에는 r_valid가 시프트되면서 들어가게 됩니다.이 두 동작은 모두 동일한 클럭 엣지(posedge clk)에서 일어납니다. 즉, 같은 cycle에 유효했던 mem_data와 r_valid가 클럭 엣지를 만나 다음 cycle에 각각 r_core_data[0]과 r_core_delay의 첫 번째 비트(LSB)에 동시에 저장되는 구조입니다.따라서 r_core_delay가 r_valid를 한 번 더 거쳐서 N+2에 반영되는 것이 아니라, mem_data가 r_core_data[0]에 저장되는 타이밍과 완전히 동일하게 N+1에 반영됩니다. 둘 다 플립플롭을 딱 한 번 거치는 구조이기 때문에 완벽하게 정렬된 상태로 파이프라인을 타게 된다고 보시면 됩니다.이렇게 코드를 보며 타이밍 다이어그램을 머릿속으로 그려보는 연습이 나중에 설계하실 때 정말 큰 자산이 될 거예요. 궁금하셨던 부분이 잘 해결되셨기를 바랍니다.남은 강의도 화이팅입니다. 즐공하세요!
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 65
질문&답변
latency 개념 구현
(일반적인 Behavioral 시뮬레이션을 돌리셨다는 가정하에 말씀드립니다.)tool 마다 다른 simulation 결과가 나온다는게.. 이해하기 힘든 상황이기때문에, tool 문제라는 생각은 안드는데요.코드를 수정하신게 없는데, 제 영상과 다른 결과를 보인다는 말씀이실까요?매번 시뮬레이션을 실행할때 마다 결과가 달라지시는건지도 궁금합니다.
- 좋아요수
- 1
- 댓글수
- 3
- 조회수
- 85
질문&답변
latency 개념 구현
안녕하세요. 맛비입니다. 질문을 정확하게 이해를 했는지 모르겠는데요. 원하시는 답변이 아니면 Waveform 그림을 같이 올려서 설명해주시면 더 명확할 것 같아요.이해한 내용으로 답변을 드려볼께요. 결론부터 말씀드리면, 질문자님이 생각하신 "Latency로 인한 회로적 지연"은 아닙니다. (일반적인 Behavioral 시뮬레이션을 돌리셨다는 가정하에 말씀드립니다.)올려주신 코드를 보면 (Non-blocking assignment)를 사용하고 있습니다. 플립플롭의 특성상 r_counter == i_freq - 1 이라는 조건이 만족되면, 그 다음 클락(1 clock 뒤)에 값이 업데이트 되어 o_one_sec_tick이 1로 올라옵니다. 즉, 100번을 카운트했다면 101번째 클락 엣지에서 반응하는 것이 정상적인 RTL 동작입니다.그런데 웨이브폼 상에서 101번째가 아닌 110번째 쯤에서 올라왔다면, 이건 코드가 느려서가 아니라 Testbench(TB)의 초기 동작 조건 때문일 확률이 매우 높습니다.아마 아래 두 가지 케이스 중 하나일 것입니다.Reset 유지 시간: 시뮬레이션 시작(0ns) 후 Reset 신호가 완전히 풀릴 때까지 대략 10 클락 정도의 시간이 소요되었을 수 있습니다. 카운터는 Reset이 풀린 이후부터 동작하니까요.Enable 신호 인가 시점:i_run_en 신호가 0초부터 바로 1로 들어온 것이 아니라, 시뮬레이션 시작 후 약 10클락이 지난 뒤에 Testbench에서 1로 인가되었을 수 있습니다.즉, 코드가 늦게 동작한 것이 아니라 카운터가 "실제로 숫자를 세기 시작한 시점"이 시뮬레이션 0초 지점이 아니었을 거라는 생각이 드네요.즐공하세요 🙂
- 좋아요수
- 1
- 댓글수
- 3
- 조회수
- 85
질문&답변
13강에 언급된 강의 내용 질문
안녕하세요 🙂FPGA Season1 강의에서 다루었어요. 이론 -> 실제로 FPGA 올려서 동작까지 확인하는 과정까지 다루어 드렸습니다. 즐공하세요 🙂(사진)
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 62
질문&답변
비바도 all os버전
안녕하세요 🙂 결론부터 말씀드리면, "따로 설치를 하셔야 합니다."비바도 홈페이지의 'All OS' 인스톨러는 윈도우용 설치 파일과 리눅스용 설치 파일이 하나로 합쳐져 있는 것일 뿐, 설치 과정 없이 바로 실행되는 '무설치 판'이 아닙니다.설치 과정 필수: 리눅스(또는 WSL) 터미널에서 해당 파일을 실행하여 리눅스용 Vivado를 해당 경로에 설치하는 과정이 반드시 필요합니다.OS 간 호환 불가: 말씀하신 대로, 윈도우에 설치된 Vivado와 리눅스에 설치된 Vivado는 실행 바이너리 자체가 다릅니다. 따라서 각 환경에 맞춰 각각 설치해주셔야 해요.즐공하세요 🙂
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 71
질문&답변
초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문
안녕하세요 🙂HW reset 에는 1 혹은 0 을 보고 reset 을 하도록 설계할 수 있습니다.보통 현업에서는 ASIC 은 n (negative) 인 0 을 기준으로 reset 을 하도록 하고요, FPGA 는 1 을 기준으로 reset 을 하도록 설계합니다. (출처는 잘 기어나지 않지만, Xilinx FPGA 의 reset 관련 내용에서 1 (high) 을 기억해요) 적어주신 외부요인에 의해서 1 혹은 0 신호를 바꿀 수 있겠죠.AI 가 적은 것 처럼, Active Low Reset 의 안정성, 노이즈 면역성 등의 요인이 커보입니다.일상 생활에서 확률적으로, 순간적으로 전압을 올리는 케이스 (1) 가 더 많을 것 같아요. 그래서 0 reset 을 선호하는게 맞는 것 같습니다.즐공하세요.
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 71
질문&답변
다운로드용량
안녕하세요 🙂좋은 시도입니다. 울트라스케일은 FPGA Chip set 의 종류에요. 개인이 소유하기에는 가격이 있는 칩셋인지라, 승혁님이 갖고계신 FPGA 만 선택하셔도 충분합니다.즐공하세요!
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 71







