semisgdh
@semisgdh
Học viên
4,453
Đánh giá khóa học
388
Đánh giá khóa học
5.0
안녕하세요. 설계독학의 맛비입니다.
현) Global Top5 Fabless기업에서 HW IP 설계하고 있습니다.
세상에 없던 그리고 여러분들의 현업 생활에 도움이 되는, "진짜 반도체 설계 실무 강의"를 만들고 있습니다.
설계독학 로드맵과 함께 여러분들의 실력을 키워보아요.
여러분들과 소통하기 위한 설계독학 커뮤니티 를 운영하고 있습니다.
(커뮤니티에 가입하셔서, 15% 할인쿠폰도 받아보아요.)
함께 즐공하고 성장해요!
Khóa học
Đánh giá khóa học
- Verilog HDL thực tế của 설계독학맛비 Mùa 1 (Từ Clock đến Internal Memory)
mini9136
·
Tự học thiết kế Kinh thánh của Matbi về thiết kế AI CTNH thực tế, chinh phục hoàn toàn phép tính CNN (thực hành tăng tốc sử dụng Verilog HDL + FPGA)Tự học thiết kế Kinh thánh của Matbi về thiết kế AI CTNH thực tế, chinh phục hoàn toàn phép tính CNN (thực hành tăng tốc sử dụng Verilog HDL + FPGA)jinzhen72284
·
Tự học thiết kế Kinh thánh của Matbi về thiết kế AI CTNH thực tế, chinh phục hoàn toàn phép tính CNN (thực hành tăng tốc sử dụng Verilog HDL + FPGA)Tự học thiết kế Kinh thánh của Matbi về thiết kế AI CTNH thực tế, chinh phục hoàn toàn phép tính CNN (thực hành tăng tốc sử dụng Verilog HDL + FPGA)jinzhen72284
·
Verilog Master Season 1 của 설계독학 (Tự học thiết kế) (Bước nhảy vọt trong sự nghiệp kỹ sư thiết kế kỹ thuật số hoàn thiện thông qua các bài toán kiểm tra lập trình thực tế)Verilog Master Season 1 của 설계독학 (Tự học thiết kế) (Bước nhảy vọt trong sự nghiệp kỹ sư thiết kế kỹ thuật số hoàn thiện thông qua các bài toán kiểm tra lập trình thực tế)jinzhen72284
·
Thiết kế bộ tăng tốc HW sử dụng FPGA thực tế của Seolgye Dokhak Matbi (Từ điều khiển LED đến thiết kế bộ tăng tốc Fully Connected Layer)Thiết kế bộ tăng tốc HW sử dụng FPGA thực tế của Seolgye Dokhak Matbi (Từ điều khiển LED đến thiết kế bộ tăng tốc Fully Connected Layer)
Bài viết
Hỏi & Đáp
13장 파이프라인 질문 드립니다.
안녕하세요, 반갑습니다.(사진)질문해주신 내용을 보니 파이프라인을 적용하기 전과 후의 개념에서 "왜 이전 상태에서는 Clock Speed(주기)가 25일 때 감당이 안 되는가?"에 대해 헷갈리시는 것 같네요. 차분하게 핵심만 짚어서 설명해 드릴게요.결론부터 말씀드리면, 데이터가 가야 하는 길(Path)의 실제 물리적인 시간과 우리가 강제로 인가하는 클럭의 주기(Clock Period)를 비교해 보시면 바로 이해가 가실 겁니다.1. 파이프라인 적용 전 (왼쪽 그림)실제 데이터가 통과해야 하는 시간 (Worst Path):입력 $X$에서 출력 $P(X)$까지 가려면 가장 긴 경로를 거쳐야 합니다. 위쪽 길은 $15 + 25 = 40$이고, 아래쪽 길은 $20 + 25 = 45$이죠. 즉, 물리적으로 아무리 빨라도 데이터가 끝까지 도달하는 데 최소 45라는 시간이 필요합니다.인가하고자 하는 클럭 주기 ($t_{CLK}$):우리가 시스템에 25라는 주기를 가진 클럭을 주었다고 가정해 봅시다.여기서 모순이 발생합니다.클럭 주기가 25라는 것은, 매 25마다 새로운 데이터를 받아들이고 처리해서 내보내겠다는 뜻입니다. 하지만 실제 회로(Combinational Logic)는 결과를 내는 데 45가 걸립니다.25라는 시간이 흘렀을 때, 데이터는 아직 목적지에 도달하지 못하고 길 중간(대략 25 위치)에 머물러 있겠죠? 이 상태에서 다음 클럭 엣지가 쳐버리면 제대로 된 데이터를 캡처하지 못하므로 Timing Violation이 발생하는 것입니다.즉, 파이프라인 레지스터가 없는 상태에서는 반드시 가장 느린 경로인 45보다 클럭 주기가 길어야만($t_{CLK} \ge 45$) 정상 동작합니다.2. 파이프라인 적용 후 (오른쪽 그림)경로의 분할:중간에 레지스터를 콕 집어넣어 주면서, 이제 데이터가 한 번에 가야 하는 길이 두 단계로 쪼개졌습니다.Stage 1: 입력에서 중간 레지스터까지 (최대 20)Stage 2: 중간 레지스터에서 출력 레지스터까지 (최대 25)클럭 주기 ($t_{CLK} = 25$):이제 각 Stage에서 가장 긴 시간은 25입니다. 클럭 주기를 25로 주더라도, Stage 1(20 소요)과 Stage 2(25 소요) 모두 클럭 주기인 25 이내에 데이터 도달을 완료할 수 있습니다.따라서 이때는 Violation 없이 정상적으로 동작하게 되는 것이죠. (전체 처리 시간인 Latency는 50으로 늘어나지만, 더 빠른 클럭을 쓸 수 있게 됩니다.)요약하자면, 레지스터가 없을 때는 처음부터 끝까지 한 번에 가야 해서 45가 필요한데, 클럭 주기를 25로 줘버리니 시간이 부족해서 터지는(Violation) 상황이라고 이해하시면 됩니다.즐공하세요!!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 46
Hỏi & Đáp
UART의 역할이 PC와 PS를 연결해 주는 역할로 알고 있습니다.
안녕하세요. 🙂결론부터 말씀드리면, 작성해주신 내용이 정확히 맞습니다. 완벽하게 이해하고 계십니다.UART(Universal Asynchronous Receiver-Transmitter)의 역할 UART는 두 하드웨어 장치 간에 데이터를 직렬(Serial)로 주고받기 위한 표준 통신 방식입니다.우리가 사용하는 Zynq 보드 환경에서는 주로 보드의 PS(Processing System)와 호스트 PC 간에 텍스트나 데이터를 주고받는 통로 역할을 합니다.4장의 경우: C 코드로 작성한 printf 문자열을 PC 화면(Vitis Serial Terminal)에 출력하거나, PC에서 입력한 값(scanf)을 보드로 전달해야 했기 때문에 UART 통신이 필수적이었습니다.5장의 경우: 보드 내부의 HW/SW 동작만으로 LED를 제어하고 눈으로 점멸 상태만 확인하는 실습이었으므로, PC 쪽으로 데이터를 보낼 필요가 없었습니다. 따라서 UART를 비활성화해도 실습에 전혀 문제가 없었던 것입니다.UART는 터미널이 필요할 때만 사용하는가?현재 진행하시는 강의와 같은 기초 개발/디버깅 환경에서는 "동작 상태 확인을 위한 로그(printf) 출력 및 명령어 입력" 목적이 가장 크기 때문에, 말씀하신 대로 시리얼 터미널을 사용할 때 주로 활성화합니다.하지만 그 외에도 실무에서는 PC뿐만 아니라 블루투스 모듈, GPS 센서, 또는 다른 외부 마이크로컨트롤러(MCU) 등 UART 통신 인터페이스를 지원하는 다양한 외부 장치와 데이터를 주고받을 때범용적으로 아주 많이 사용됩니다.RX/TX 두 선만 가지고 통신할 수 있는 저속의 통신 방법이고요.저희가 사용해본 UART 는 하나의 예라고 생각하시면 될 것 같아요.즐공하세요.
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 53
Hỏi & Đáp
Ubuntu 20.04.5 설치관련 문의드립니다
안녕하세요.최신 wsl 에서도 vivado2022 를 지원할 수 있을 것 같아서요. 2024.1 에서 성공한 경험이 있고요. 혹시 2024.1 에서도 최신 우분투 버전에서 지원이 불가능한지 알 수 있을까요? 설치하시려는 최신 wsl 버전을 알려주셔도 괜찮습니다.
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 76
Hỏi & Đáp
환경 설정하는 guide 최신화 부탁드립니다.
안녕하세요 수강 감사드립니다.https://wikidocs.net/277541 다음링크에서 설치 관련 내용을 찾아보실 수 있는데요.(사진)강의 업로드 시점과 촬영 시점의 갭이 있고, 영상에서 사용한 버전을 사용하셔도 강의를 따라오시는데 문제없다고 판단이 되는데요. 툴 버전이 중요한 요소는 아니라고 판단되는데, 급하시다면 다음링크를 통해서 2022.2 를 설치해주시면 감사하겠습니다.https://www.xilinx.com/support/download.html/content/xilinx/en/downloadNav/vivado-design-tools/archive.html 여기에 보시면 2022.2 를 설치하실 수 있습니다.(사진)물론!! 피드백 해주신 최신 툴 설치는 지금 저도 해보려고 하고있고요. 다음주 주말쯤에 올려보도록 하겠습니다.감사합니다. 즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 70
Hỏi & Đáp
git hub 404 error 도움 부탁드립니다.
안녕하세요 :)AI 답변처럼, Git 대신 모든 실습코드를 .zip 파일로 전달해드리고 있습니다.Git 하고 내용이 전혀 다르지 않으니, 참고 부탁드릴께요.감사합니다. 즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 53
Hỏi & Đáp
보드 관련 질문 드립니다.
안녕하세요 🙂보드도 인플레이션이 와버려서 많이 비싸더라고요 ㅠ당연히 가능하고요. 두 보드들의 차이는 resource 차이인데요. 그 말인 즉슨 연산 로직을 가볍게 하면 들어간다는 뜻입니다.정확도 보다는 경험에 초점을 두신다면, 보드의 차이로 인해서 얻으실 수 있는 경험에는 큰 차이 없어보여요.즐공하세요 🙂
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 68
Hỏi & Đáp
34장의 맛비 패턴 generator 관련 질문입니다!
안녕하세요 🙂질문하신 tuser, tlast 발생 로직의 핵심은 딱 두 가지, 가로(H)와 세로(V) 카운터입니다.tlast (End of Line): 가로 카운터가 width - 1이 되는 시점, 즉 한 줄의 마지막 픽셀일 때 1을 띄웁니다.tuser (Start of Frame): 가로와 세로 카운터가 모두 0인 시점, 즉 전체 프레임의 첫 번째 픽셀일 때 1을 띄웁니다.올려주신 TB 코드는 이 신호들이 규칙대로 들어오는지 '체크'하는 로직이고요. 실제 TPG(Master) 설계 단에서는 내부 카운터 값에 따라 저 신호들을 생성해서 쏴주게 됩니다.여기 참고하시면 될 것 같아요. 즐공하세요 🙂(사진)
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 67
Hỏi & Đáp
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의 핵심 로직이 되는 겁니다.즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 66
Hỏi & Đáp
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 가속기를 쓰는구나!" 하고 무릎을 탁 치실 순간이 올 겁니다.즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 72
Hỏi & Đáp
환경설정 문
안녕하세요! 강의 수강해주셔서 감사합니다.gui기반 설치 같은데요. 다음 링크 참고해서 cli 기반으로 설치 해보실 수 있을까요? ai 답변과 유사한 방법이에요.https://wikidocs.net/309825확인해보시고 알려주세요!
- Lượt thích
- 2
- Số bình luận
- 2
- Lượt xem
- 78






