semisgdh
@semisgdh
Học viên
4,315
Đánh giá khóa học
373
Đánh giá khóa học
5.0
안녕하세요. 설계독학의 맛비입니다.
현) Global Top5 Fabless기업에서 HW IP 설계하고 있습니다.
세상에 없던 그리고 여러분들의 현업 생활에 도움이 되는, "진짜 반도체 설계 실무 강의"를 만들고 있습니다.
설계독학 로드맵과 함께 여러분들의 실력을 키워보아요.
여러분들과 소통하기 위한 설계독학 커뮤니티 를 운영하고 있습니다.
(커뮤니티에 가입하셔서, 15% 할인쿠폰도 받아보아요.)
함께 즐공하고 성장해요!
Khóa học
Đánh giá khóa học
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)- Verilog HDL thực tế của 설계독학맛비 Mùa 1 (Từ Clock đến Internal Memory)
achieve123455556
·
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ế)
Bài viết
Hỏi & Đáp
[HDL 32장-2부] 참고 링크 관련
안녕하세요 🙂RESP 관련링크 : https://developer.arm.com/documentation/ihi0022/eAXI VIP 관련링크 : https://docs.amd.com/r/en-US/pg267-axi-vip/Introduction참고하시면 되겠습니다.즐공하세요!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 29
Hỏi & Đáp
[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가 일어난다)를 아주 정확하게 이해하고 계셨기 때문에 가질 수 있었던 훌륭한 의문이라 생각이 드네요.좋은 질문이었습니다.감사합니다 🙂
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 42
Hỏi & Đáp
UART0, 1 중 선택
안녕하세요 🙂질문주신대로 회로도를 보시면 아실 수 있어요.https://digilent.com/reference/programmable-logic/zybo-z7/start?srsltid=AfmBOopbzr-WaxYmidUKBL0TTgxN9tOz1dW82Qezlv9W1DtB-7LUOxbI위 홈페이지에서, 갖고계신 보드의 회로도를 보시면 되고요.(사진)MIO 48, 49 가 연결되어 있었고, 영상에서 사용한 UART1 이에요.(사진) 즐공하세요 🙂
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 43
Hỏi & Đáp
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에 반영됩니다. 둘 다 플립플롭을 딱 한 번 거치는 구조이기 때문에 완벽하게 정렬된 상태로 파이프라인을 타게 된다고 보시면 됩니다.이렇게 코드를 보며 타이밍 다이어그램을 머릿속으로 그려보는 연습이 나중에 설계하실 때 정말 큰 자산이 될 거예요. 궁금하셨던 부분이 잘 해결되셨기를 바랍니다.남은 강의도 화이팅입니다. 즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 59
Hỏi & Đáp
latency 개념 구현
(일반적인 Behavioral 시뮬레이션을 돌리셨다는 가정하에 말씀드립니다.)tool 마다 다른 simulation 결과가 나온다는게.. 이해하기 힘든 상황이기때문에, tool 문제라는 생각은 안드는데요.코드를 수정하신게 없는데, 제 영상과 다른 결과를 보인다는 말씀이실까요?매번 시뮬레이션을 실행할때 마다 결과가 달라지시는건지도 궁금합니다.
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 79
Hỏi & Đáp
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초 지점이 아니었을 거라는 생각이 드네요.즐공하세요 🙂
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 79
Hỏi & Đáp
13강에 언급된 강의 내용 질문
안녕하세요 🙂FPGA Season1 강의에서 다루었어요. 이론 -> 실제로 FPGA 올려서 동작까지 확인하는 과정까지 다루어 드렸습니다. 즐공하세요 🙂(사진)
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 60
Hỏi & Đáp
비바도 all os버전
안녕하세요 🙂 결론부터 말씀드리면, "따로 설치를 하셔야 합니다."비바도 홈페이지의 'All OS' 인스톨러는 윈도우용 설치 파일과 리눅스용 설치 파일이 하나로 합쳐져 있는 것일 뿐, 설치 과정 없이 바로 실행되는 '무설치 판'이 아닙니다.설치 과정 필수: 리눅스(또는 WSL) 터미널에서 해당 파일을 실행하여 리눅스용 Vivado를 해당 경로에 설치하는 과정이 반드시 필요합니다.OS 간 호환 불가: 말씀하신 대로, 윈도우에 설치된 Vivado와 리눅스에 설치된 Vivado는 실행 바이너리 자체가 다릅니다. 따라서 각 환경에 맞춰 각각 설치해주셔야 해요.즐공하세요 🙂
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 64
Hỏi & Đáp
초기화를 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 을 선호하는게 맞는 것 같습니다.즐공하세요.
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 65
Hỏi & Đáp
다운로드용량
안녕하세요 🙂좋은 시도입니다. 울트라스케일은 FPGA Chip set 의 종류에요. 개인이 소유하기에는 가격이 있는 칩셋인지라, 승혁님이 갖고계신 FPGA 만 선택하셔도 충분합니다.즐공하세요!
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 67






