설계독학맛비
@semisgdh
Lead 레벨·
HW_임베디드 엔지니어
외국계 비메모리 반도체설계
수강생
4,355
수강평
379
강의 평점
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 실전 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까지)
게시글
질문&답변
보드 관련 질문 드립니다.
안녕하세요 🙂보드도 인플레이션이 와버려서 많이 비싸더라고요 ㅠ당연히 가능하고요. 두 보드들의 차이는 resource 차이인데요. 그 말인 즉슨 연산 로직을 가볍게 하면 들어간다는 뜻입니다.정확도 보다는 경험에 초점을 두신다면, 보드의 차이로 인해서 얻으실 수 있는 경험에는 큰 차이 없어보여요.즐공하세요 🙂
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 53
질문&답변
34장의 맛비 패턴 generator 관련 질문입니다!
안녕하세요 🙂질문하신 tuser, tlast 발생 로직의 핵심은 딱 두 가지, 가로(H)와 세로(V) 카운터입니다.tlast (End of Line): 가로 카운터가 width - 1이 되는 시점, 즉 한 줄의 마지막 픽셀일 때 1을 띄웁니다.tuser (Start of Frame): 가로와 세로 카운터가 모두 0인 시점, 즉 전체 프레임의 첫 번째 픽셀일 때 1을 띄웁니다.올려주신 TB 코드는 이 신호들이 규칙대로 들어오는지 '체크'하는 로직이고요. 실제 TPG(Master) 설계 단에서는 내부 카운터 값에 따라 저 신호들을 생성해서 쏴주게 됩니다.여기 참고하시면 될 것 같아요. 즐공하세요 🙂(사진)
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 52
질문&답변
34장과 35장에서 설계한 IP는 DDI의 구조를 설계한 것인가요?
반갑습니다! 공부 범위를 넓혀가며 스스로 연결고리를 찾는 모습이 아주 보기 좋네요. 🙂결론부터 말씀드리면, 네, 맞습니다. 34장과 35장에서 설계한 AXI4-Stream 기반의 영상 데이터 생성 IP는 기능적으로 보면 DDI(Display Driver IC) 내부의 'T-CON(Timing Controller)'이나 'Source Driver'가 하는 역할의 아주 기초적인 부분을 설계하신 거라고 보셔도 무방합니다.1. DDI와 우리가 만든 IP의 공통점DDI는 크게 T-CON, Source Driver, Gate Driver 등으로 나뉘는데, 우리가 설계한 IP는 그중에서 데이터를 가공하고 화면에 뿌려줄 순서를 정하는 역할을 합니다.데이터 생성 및 전달: DDI는 메모리(프레임 버퍼)로부터 RGB 데이터를 받아 패널에 전달하죠. 우리가 설계한 IP도 AXI4-Stream 규격에 맞춰 RGB(그라데이션) 데이터를 순차적으로 생성해서 쏴주는 역할을 합니다.Timing 제어: 영상 데이터는 단순히 값만 보내는 게 아니라 "어디가 한 줄의 시작(EOL)이고, 어디가 화면의 끝(EOF)인가"가 중요한데, 우리가 쓴 TUSER(SOF), TLAST(EOL) 신호가 바로 DDI에서 화면 규격을 맞출 때 사용하는 싱크 신호들과 같은 개념입니다.2. AXI4-Stream Video 규격의 핵심자일링스(AMD)에서 정의한 이 규격은 결국 표준적인 영상 인터페이스(VGA, HDMI, DisplayPort 등)로 데이터를 넘기기 위한 '약속'입니다.DDI와의 연관성: 실제 제품에서는 우리가 만든 이런 IP 뒤에 Video Out IP(예: HDMI Tx, MIPI DSI Tx)가 붙게 됩니다. 이 MIPI나 HDMI 신호를 최종적으로 받아서 패널을 구동시키는 칩이 바로 DDI입니다.즉, 우리는 DDI가 알아먹을 수 있는 형태로 데이터를 예쁘게 포장해서 보내주는 앞단(Controller 측면)을 설계한 셈이죠.3. 실무적인 관점디스플레이 공학에서 배우시는 DDI는 아날로그 전압 제어(Source Driver 등)까지 포함하는 개념이지만, FPGA나 SoC 설계 직군에서 말하는 "디스플레이 IP 설계"는 지금 하신 것처럼 디지털 영역에서의 데이터 흐름과 타이밍 제어를 의미합니다.지금 배우시는 그라데이션 IP가 단순해 보여도, 여기에 이미지 버퍼(VRAM)를 연결하고 알고리즘만 넣으면 그게 바로 스마트폰이나 TV에 들어가는 Display Controller의 핵심 로직이 되는 겁니다.즐공하세요!
- 좋아요수
- 1
- 댓글수
- 1
- 조회수
- 53
질문&답변
HW가속기 설계에서 더 보완할 수 있는 방법이 있을까요?
반갑습니다! 차분하게 공부하시는 모습이 참 보기 좋네요. 🙂질문 주신 내용에 대해 제가 이어서 답변을 드려볼게요. 아까 적어주신 내용도 맞습니다. 결국은 "어떤 통로로, 어떤 방식으로 몰아서 보내느냐"의 싸움이거든요.1. AXI4-Lite vs AXI4-Standard (Full)네, 질문하신 대로 AXI4-Lite는 주소 하나당 데이터 하나만 보내는 '단발성' 방식이라 너무 느립니다. 반면 AXI4-Full은 'Burst Transfer'를 지원해요. 주소를 한 번만 던지면 데이터 16개, 32개, 많게는 256개까지 한 번에 쭉 밀어 넣을 수 있습니다. 고속도로에서 톨게이트를 한 번만 지나고 쭉 달리는 것과 같다고 보시면 됩니다.2. DMA(Direct Memory Access)의 활용실제로 HW 가속기를 설계할 때는 CPU(PS)가 직접 데이터를 하나하나 복사하지 않습니다. CPU는 너무 바쁘거든요. 대신 DMA라는 비서를 씁니다.CPU: "야, 메모리 몇 번지부터 몇 개 PL로 보내라."라고 명령만 딱 내림.DMA: CPU 대신 PL(가속기)이랑 대화하면서 데이터를 초고속으로 퍼 나름. 이 과정을 통해 CPU는 다른 계산을 할 수 있고, 데이터 전송 효율은 극대화됩니다.3. Synchronous FIFO의 역할FIFO를 설계에 넣으면 확실히 도움이 됩니다. 하지만 단순히 "넣는다고 빨라지는 것"이라기보다는 "병목 현상을 없애주는 역할"을 해요.가속기 내부 로직: 데이터가 들어오면 바로 계산을 시작해야 하는데, 전송 속도랑 계산 속도가 매번 딱딱 맞을 수 없거든요.이때 FIFO가 버퍼 역할을 해주면, 전송단은 전송단대로 계속 밀어 넣고, 연산단은 FIFO에서 꺼내서 자기 속도대로 계산할 수 있습니다. 시스템 전체의 Throughput(처리량)을 끌어올리는 핵심 부품이죠.4. 실무에서의 치트키: Double Buffering가장 중요한 포인트인데, 데이터 전송 시간을 아예 '0'처럼 보이게 만드는 기법이 있습니다. 바로 Double Buffering(또는 Ping-Pong Buffer)입니다.가속기가 Buffer A에 있는 데이터를 계산하는 동안,DMA는 다음 계산할 데이터를 Buffer B에 미리 채워둡니다.계산이 끝나면 바로 스위칭해서 놉니다. 이렇게 설계하면 데이터 이동 시간(Data Movement Latency)이 연산 시간 뒤로 숨겨지게 됩니다.결론적으로, 말씀하신 대로 AXI4-Full과 FIFO를 제대로 다룰 줄 아는 것이 HW 가속기 설계의 '꽃'입니다. 19장에서 배우신 컨셉을 바탕으로, 나중에 DMA를 활용한 설계까지 확장해 보시면 "아, 이래서 HW 가속기를 쓰는구나!" 하고 무릎을 탁 치실 순간이 올 겁니다.즐공하세요!
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 56
질문&답변
환경설정 문
안녕하세요! 강의 수강해주셔서 감사합니다.gui기반 설치 같은데요. 다음 링크 참고해서 cli 기반으로 설치 해보실 수 있을까요? ai 답변과 유사한 방법이에요.https://wikidocs.net/309825확인해보시고 알려주세요!
- 좋아요수
- 2
- 댓글수
- 2
- 조회수
- 65
질문&답변
[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
- 조회수
- 65
질문&답변
[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
- 조회수
- 77
질문&답변
UART0, 1 중 선택
안녕하세요 🙂질문주신대로 회로도를 보시면 아실 수 있어요.https://digilent.com/reference/programmable-logic/zybo-z7/start?srsltid=AfmBOopbzr-WaxYmidUKBL0TTgxN9tOz1dW82Qezlv9W1DtB-7LUOxbI위 홈페이지에서, 갖고계신 보드의 회로도를 보시면 되고요.(사진)MIO 48, 49 가 연결되어 있었고, 영상에서 사용한 UART1 이에요.(사진) 즐공하세요 🙂
- 좋아요수
- 1
- 댓글수
- 2
- 조회수
- 88
질문&답변
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
- 조회수
- 85
질문&답변
latency 개념 구현
(일반적인 Behavioral 시뮬레이션을 돌리셨다는 가정하에 말씀드립니다.)tool 마다 다른 simulation 결과가 나온다는게.. 이해하기 힘든 상황이기때문에, tool 문제라는 생각은 안드는데요.코드를 수정하신게 없는데, 제 영상과 다른 결과를 보인다는 말씀이실까요?매번 시뮬레이션을 실행할때 마다 결과가 달라지시는건지도 궁금합니다.
- 좋아요수
- 1
- 댓글수
- 3
- 조회수
- 126







