안녕하세요. 설계독학의 맛비입니다.
현) Global Top5 Fabless기업에서 HW IP 설계하고 있습니다.
세상에 없던 그리고 여러분들의 현업 생활에 도움이 되는, "진짜 반도체 설계 실무 강의"를 만들고 있습니다.
설계독학과 함께할 수 있는 링크입니다. 함께 즐공하고 성장해요!
Khóa học
Đánh giá khóa học
202111282280
·
thiết kế tự học's Verilog 마스터 Season 1 (hoàn thiện sự nghiệp nhảy vọt của kỹ sư thiết kế số qua bài Test 코딩 thực chiến)thiết kế tự học's Verilog 마스터 Season 1 (hoàn thiện sự nghiệp nhảy vọt của kỹ sư thiết kế số qua bài Test 코딩 thực chiến)onsaemiro1
·
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)onsaemiro1
·
설계독학맛비's Thiết kế gia tốc HW thực tế bằng FPGA (từ điều khiển LED đến thiết kế gia tốc Fully Connected Layer)설계독학맛비's Thiết kế gia tốc HW thực tế bằng FPGA (từ điều khiển LED đến thiết kế gia tốc Fully Connected Layer)thsalswo8792272
·
thiết kế tự học's Verilog 마스터 Season 1 (hoàn thiện sự nghiệp nhảy vọt của kỹ sư thiết kế số qua bài Test 코딩 thực chiến)thiết kế tự học's Verilog 마스터 Season 1 (hoàn thiện sự nghiệp nhảy vọt của kỹ sư thiết kế số qua bài Test 코딩 thực chiến)sdfkk3
·
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)
Bài viết
Hỏi & Đáp
Vitis 코드 작성
안녕하세요 :)Vitis에서 header file은 말씀하신 것처럼 툴이 자동으로 만들어주는데, 그 안에 있는 함수들은 결국 Xilinx에서 제공하는 드라이버 API들이라서, 제가 직접 따로 구현한 건 아닙니다. 제가 한 일은 그 함수들의 역할을 이해하고, 제 main.c 코드 안에서 적절히 불러다 쓰는 것이죠.그럼 그 함수들의 기능은 어디서 배우느냐 하면, 기본적으로는 Xilinx 공식 문서를 참고했습니다. 예를 들어 각 IP별로 xparameters.h, xil_io.h, 그리고 x.h 같은 헤더가 생성되는데, 거기에 대응되는 드라이버 설명이 Vitis Document나 Xilinx Wiki에 잘 정리되어 있습니다. https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841745/Baremetal+Drivers+and+Libraries 처음엔 데이터시트와 드라이버 예제 코드를 그대로 따라 해보고, 함수 이름과 동작을 연결하면서 자연스럽게 익히게 됐습니다.즉, 의 cin, cout을 배우듯이, Xilinx에서 제공하는 예제 코드와 API 문서를 보면서 함수의 역할을 익혔다고 보시면 됩니다. 직접 다 외우기보다는 필요한 기능이 있을 때 예제를 찾아보고, 반복해서 사용하면서 몸에 익히는 식으로 공부했습니다.즐공하세요!
- 1
- 2
- 16
Hỏi & Đáp
Ubuntu 에서 옆에 라인 수 보는 방법
안녕하세요 🙂vim editor의 라인 넘버는 vim 내부 키워드로 확인할 수 있습니다.vim editor 사용방법은 별도로 책이 나올 정도로 방대하긴 한데요. 저도 자주 쓰는것만 알아요. 하핫 일반적으로 :set number 명령어를 입력하면 왼쪽에 줄 번호가 표시되고, :set nonumber로 다시 끌 수 있습니다. 만약 상대적인 라인 번호가 필요하다면 :set relativenumber를 쓰면 현재 커서를 기준으로 위아래 줄의 상대적 위치가 표시됩니다. 이 두 옵션은 같이 쓸 수도 있어서, 절대 번호와 상대 번호를 동시에 확인하는 것도 가능합니다. 자주 쓰신다면 .vimrc에 set number를 추가해두면 vim을 열 때마다 기본으로 라인 넘버가 켜지게 됩니다. 즐공하세요!
- 1
- 1
- 36
Hỏi & Đáp
o_done만 reg type으로 선언한 이유
안녕하세요 🙂코딩 스타일의 차이 이고요.여러가지 코딩 스타일을 보여드리려고 했어요. 유사 질문이 있어서 남겨드려요.즐공하세요!(사진)
- 1
- 2
- 33
Hỏi & Đáp
vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.
안녕하세요 🙂FPGA 를 리눅스에서 사용하시지 않으실꺼라면, vivado 만 있으셔도 됩니다. 그리고 리눅스 용으로 설치하시면 됩니다. 리눅스 상에서는 Vivado sim 을 위주로 사용해요. 다만 Xilinx 에서 설치 파일을 Vitis 를 super set 으로 제공하고 있어서 vitis 를 설치했습니다. (나중에 확장성이 있을 수 있고요) 리눅스 환경에 적응하시는 것을 적극 추천드릴께요. 추가질문의 답은FPGA 강의를 제작할 당시에 WSL 에서 진행하면 좋았으나, 설치시 드라이버 이슈로 인하여 Windows 를 선택하였습니다. 이런 상황에서 WSL 에서 드라이버 이슈를 해결하고 FPGA 강의를 진행하신 분도 계시는데요. 필요하시면 다음링크 확인해보시면 좋을 것 같아요. https://inf.run/zC27f 즐공하세요 🙂
- 1
- 3
- 76
Hỏi & Đáp
21강의 DUT 질문 있습니다.
안녕하세요 🙂그림에서 보시면, (사진)캡쳐해주신 코드는 Combinational Logic 파트입니다. (파란색 부분)코드에서 1 cycle 변경 부분은, 다음 그림에서 빨간색 부분이 되겠습니다.빨간색 박스 내의 코드를 보시면, clk edge 에 맞추서, c_state 이것이 1 cycle delay 를 만들어 냅니다.따라서 "S_DONE일 경우 n_state를 S_IDLE 로 바꾸는데요" 이 반영된 내용은 1 cycle 뒤에 c_state 로 반영됩니다. 따라서 질문주신"wave form에서는 바로 바뀌지 않고, 1cycle 정도 후에 바뀌나요?"이것은 코드에서 의도한 동작입니다.즐공하세요 🙂
- 1
- 1
- 29
Hỏi & Đáp
파일 제거 방법
안녕하세요 🙂AI 가 답변을 잘 달아준 것 같아요. Tool 이 설치되어 있는 폴더를rm -rf 으로 지우시면 되겠습니다.즐공하세요!
- 1
- 2
- 51
Hỏi & Đáp
[AI HW Lab2] CNN Verilog HDL Practice 1 (Simulation) - 문제설명편 ppt
안녕하세요.강의자료에 있는 주어진 변수값을 먼저 확인해보겠습니다.ACI_BW 는 22 bit 이고, bias 는 8bit 입니다. AB_BW = ACI_BW + bias 입니다. 질문은 왜 AB_BW 가 23 bit 이냐였고, 최대값 만을 놓고 23 bit 이면 충분한지 계산해 보겠습니다. "2 의 23 승" 은 "2의 22승 더하기 2의 8승" 값 보다 큽니다.즉, 22 bit + 8 bit 에서 overflow 를 방지하는 bit width 는 23 bit 이면 충분합니다.따라서 AB_BW 를 23 bit 정하였고, overflow 는 발생하지 않을 것으로 예상됩니다.즐공하세요.
- 1
- 2
- 37
Hỏi & Đáp
[AI HW Lab1] CNN Core C 코딩 (Golden Model 만들기)
안녕하세요.차근차근 순서대로 살펴보겠습니다.위 그림, 아래 그림, 이렇게 불러보겠습니다.위 그림의 KX, KY 는 kernel 2-D 의 size 이고, 아래 그림의 S 와 R 에 해당됩니다.위 그림의 CI, CO 는 아래그림의 C 와 M 에 맵핑됩니다.위 그림, 아래그림의 차이라고 한다면,위 그림은 순서가, Input feature map * Weight 순이었다면,아래 그림은 순서가, Weight * Input feature map 순 입니다.제가 생각하기로는 위, 아래 그림의 Input feature map 과 Weight 의 곱하기 순서만 바뀌었을 뿐, 두개의 그림은 같은 연산을 설명하는 것으로 이해됩니다.(사진)
- 1
- 2
- 32
Hỏi & Đáp
14장 실습코드에서 valid 신호에 대해
안녕하세요 🙂의외로, AI 가 답변을 제대로 적어준 것 같은데요.휴먼의 입장에서 적어보겠습니다. 해당 코드는 1bit 의 F/F 3 개가 cascade 로 연결되어 있는 구조로 회로가 완성이 되는 코드입니다. 즉 3 bit shift register 로 합성이 됩니다.그림으로 그려보면 이런 느낌? (사진) (사진) Verilog 문법을 알고계시다면 이 말이 어떤 뜻인줄 아실 것 같으신데요.reg [2:0] r_valid;r_valid r_valid [2:0] 이것은 input i_valid 를 매 사이클 마다 1 bit 씩 shift 하는 내용을 기술한 것입니다.즐공하세요!
- 1
- 2
- 37
Hỏi & Đáp
spartan7 fgga484보드
안녕하세요.Spartan-7 보드는 Zynq처럼 PS(Processing System)이 내장된 구조가 아니기 때문에, IP Integrator에서 Zynq PS 블록을 추가해서 사용하는 방식은 불가능합니다. 대신에 전체를 PL 영역만으로 설계해야 하고, 필요하다면 MicroBlaze 같은 소프트 프로세서를 추가해 활용할 수 있습니다. 따라서 CNN 구현도 순수 RTL 기반 또는 MicroBlaze + PL 구조로 접근하셔야 합니다.결론적으로, Zynq PS 대신 뭔가를 대체하는 개념은 없고, Spartan-7은 순수 FPGA 보드이기 때문에 직접 하드웨어 설계와 필요시 MicroBlaze를 통한 소프트 프로세서 구성을 고려하시면 됩니다.즐공하세요.
- 1
- 1
- 35