Chương trình FPGA Verilog 2 (MicroBlaze1)

Đây là nội dung về việc triển khai MicroBlaze trên Xilinx FPGA.

(5.0) 5 đánh giá

204 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Verilog HDL
Verilog HDL
FPGA
FPGA
MicroBlaze
MicroBlaze
Verilog HDL
Verilog HDL
FPGA
FPGA
MicroBlaze
MicroBlaze

Đánh giá từ những học viên đầu tiên

5.0

5.0

withuman

52% đã tham gia

Nó rất hữu ích trong thực tế. Cảm ơn bạn vì bài giảng tuyệt vời!!

5.0

베릴로그응애

100% đã tham gia

Trừ khi có ARM tích hợp sẵn như Zybo, nếu không sẽ rất thuận tiện khi phát triển với Microblaze. Tuy nhiên, các phương pháp sử dụng Microblaze tràn lan trên Internet nên bạn phải google để tìm hiểu, và nếu người mới bắt đầu học như vậy thì có vẻ như họ sẽ không thể phân biệt được nội dung nào thực sự cần thiết. Tuy nhiên, bài giảng này phát triển những kiến ​​thức cơ bản để sử dụng Microblaze. Chỉ cần áp dụng một chút nội dung bài giảng này, bạn sẽ có thể vận dụng triệt để nó vào thực tế. Và điều tuyệt vời nhất là bạn có thể tìm và xem lại nó ngay lập tức bất cứ khi nào bạn cần.

5.0

balmont

26% đã tham gia

Lần này, tôi đang thực hiện một dự án sử dụng Microblaze. Không có nhiều thông tin trên internet và rất khó tìm được nội dung thực tế nhưng tôi đã nhận được rất nhiều sự giúp đỡ. Nhìn vào chất liệu bạn đã tạo ra, tôi có thể thấy dấu vết của rất nhiều thời gian và công sức đã bỏ ra. Dù sao thì đó cũng là một bài giảng rất hay. Tôi nghĩ nó sẽ hữu ích cho nhiều người

Bạn sẽ nhận được điều này sau khi học.

  • Sử dụng MicroBlaze trong FPGA

  • Chương trình Verilog

  • Chương trình FPGA

FPGA MicroBlaze thật mông lung khi tự học!
Nhưng nếu có bài giảng này, bạn hoàn toàn có thể chinh phục được nó 💪

Sử dụng MicroBlaze trên Xilinx FPGA!

MicroBlaze là một bộ vi xử lý được cung cấp dưới dạng IP trên FPGA. MicroBlaze có phần lõi xử lý (Processor Core) và các thiết bị ngoại vi (Peripheral) tách biệt, cho phép người dùng cấu hình các thiết bị ngoại vi phù hợp với mục đích sử dụng.

Chủ đề bài giảng 📖

Việc xử lý FPGA gặp rất nhiều khó khăn. Để hiện thực hóa FPGA, ngoài kiến thức về phần cứng, bạn còn cần phải hiểu rõ về các công cụ sử dụng và cú pháp Verilog. Việc porting và sử dụng MCU thậm chí còn đòi hỏi kiến thức sâu hơn nữa. Mặc dù Xilinx cung cấp rất nhiều tài liệu về FPGA, nhưng khi xem một tài liệu, thường có quá nhiều trường hợp yêu cầu tham chiếu đến các tài liệu khác. Do đó, việc đọc và hiểu các tài liệu do Xilinx cung cấp là cực kỳ khó khăn đối với những người không phải là nhà phát triển dày dạn kinh nghiệm.

Khóa học này giải thích chi tiết cách port và sử dụng MicroBlaze trên Xilinx FPGA. Từ quá trình cài đặt công cụ đến cách port và sử dụng MicroBlaze, cũng như việc hiện thực hóa giao tiếp giữa logic người dùng và MCU đều được hướng dẫn một cách chi tiết. Hãy nâng tầm sự nghiệp của bạn với kỹ năng sử dụng MicroBlaze trên FPGA!

Nếu có phần nào trong bài giảng bạn chưa hiểu, vui lòng đặt câu hỏi thông qua cộng đồng Inflearn hoặc cà phê do tôi điều hành, tôi sẽ giải đáp cho bạn.

📢 Hãy nhất định kiểm tra trước khi đăng ký khóa học!

  • Khóa học này là khóa học dạng văn bản được cấu trúc dưới hình thức tài liệu điện tử. Tất cả các tệp mã nguồn được giải thích trong khóa học sẽ được cung cấp cho học viên. Khóa học dự kiến sẽ được sản xuất dưới dạng video trong tương lai.
  • Bài giảng này được giải thích dựa trên phiên bản Vitis 2022.1, là phiên bản sau năm 2019.
  • Tài liệu bài giảng có thể được tải xuống tại 'Phần 0 - Link chia sẻ tài liệu - Tệp đính kèm'.

Đặc điểm nổi bật của bài giảng ✨

Nội dung bài giảng
có thể áp dụng ngay vào thực tế!

Cung cấp mã nguồn mở
đã được kiểm chứng qua thử nghiệm!

Cung cấp chương trình ứng dụng Windows
cần thiết cho việc gỡ lỗi và phát triển!


Khóa học này dành cho những ai 🙋‍♀️

Những người đã có
kinh nghiệm thiết kế FPGA bằng Verilog

Những người đã từng làm
FW bằng ngôn ngữ C

Những người quan tâm đến MicroBlaze nhưng
chưa có kinh nghiệm


Bạn sẽ học được những điều này 📚

Phần 1. Cấu hình HW

Phần 2. Quy trình cài đặt Vitis 2022.1

  • Vitis là một công cụ rất nặng. Tôi sẽ giải thích những điều cần lưu ý khi cài đặt và cách cài đặt để không gây xung đột với Vivado đang sử dụng hiện tại.

Phần 3. Xuất dòng chữ “Hello world” lên màn hình bằng MicroBlaze

  • Trong phần này, chúng tôi sẽ giải thích với mục đích giúp bạn nắm bắt được luồng công việc tổng quát.

Phần 4. Ngoại vi của MicroBlaze

  • Giải thích về các ngoại vi thường được sử dụng như GPIO, Timer, Uart, Interrupt. Vì các ngoại vi do MicroBlaze cung cấp tương tự nhau, nên nếu bạn nắm vững nội dung bài giảng, bạn có thể dễ dàng sử dụng các ngoại vi khác.

Phần 5. Kiến thức có thể áp dụng vào thực tế

  • Hầu hết các tài liệu đều kết thúc ở việc xử lý các ngoại vi (Peripheral). Tuy nhiên, mục đích của việc sử dụng MicroBlaze trong FPGA là để điều khiển các Logic do người dùng thiết kế thông qua MicroBlaze. Mục tiêu cuối cùng là điều khiển các Logic do người dùng thiết kế đó thông qua giao diện người dùng (UI - User Interface).
  • Trong bài giảng, 4 mô-đun PWM đã được thêm vào để cấu trúc User Logic. Chúng tôi thiết lập Register Map để điều khiển User Logic, đồng thời điều khiển User Logic thông qua MicroBlaze và UI. Tất cả quá trình này sẽ được giải thích, triển khai và trình bày kết quả.
  • Nội dung được giải thích trong phần này có thể áp dụng trực tiếp vào thực tế. Sau khi thêm User Logic và Register Map, tất cả các quy trình còn lại có thể được sử dụng nguyên trạng như đã triển khai.

Phần 6. lwIP Echo Server

  • Đây là nội dung về việc triển khai Echo Server sử dụng lwIP. Triển khai DDR Controller để sử dụng Cache (Instruction Cache, Data Cache) trong MicroBlaze.

Phần 7. Ứng dụng lwIP

  • Phần này giải thích quy trình thêm User Logic vào giao tiếp TCP/IP sử dụng lwIP. Nội dung sẽ hướng dẫn cách nhận lệnh từ PC thông qua TCP/IP, sau đó lwIP tiếp nhận lệnh này để User Logic điều khiển LED trên board. Thông qua đó, chúng ta sẽ thực hiện việc thiết lập giao diện kết nối giữa lwIP và User Logic cũng như kiểm tra kết quả thực hiện.

Phần 8. Triển khai TCP/IP bằng mô-đun W5500

  • Đây là nội dung được thêm vào trong phiên bản v1.4. Nội dung này hướng dẫn cách triển khai TCP/IP bằng cách sử dụng mô-đun W5500 của hãng Wiznet. Thực hiện truyền nhận dữ liệu thông qua kết nối mạng với PC. Nếu ứng dụng điều này, bạn có thể áp dụng đa dạng vào các lĩnh vực sử dụng TCP/IP.

Phần 9. Block Memory Interface - 1

  • Đây là nội dung được thêm vào trong phiên bản v1.5. Thực hiện triển khai Block Memory Interface được cung cấp mặc định trong Block Design.

Phần 10Block Memory Interface - 2

  • Đây là nội dung được thêm vào trong phiên bản v1.5. Thực hiện giao diện Block Memory Interface bằng cách thêm Block Memory vào User Logic. Ứng dụng điều này để triển khai User Register Map và thực hiện ví dụ điều khiển tần số (frequency) cũng như chu kỳ nhiệm vụ (duty) của PWM.
상세 커리큘럼이 궁금하다면?
  1. Tổng quan (4)
  2. Cấu hình HW (6)
  3. Cài đặt SW (7)
  4. Hello World 구현 (12)
    1. 기본 Template 구현 (12)
      1. Tạo dự án (12)
      2. Create Block Design (15)
      3. Create HDL Wrapper (21)
      4. Triển khai User Logic (22)
      5. Triển khai xdc (27)
      6. Generate Bitstream (30)
      7. Export Hardware (31)
    2. Triển khai SW nhúng (34)
    3. Flash에 프로그램 다운로드 (45)
      1. Tải xuống từ vitis (45)
      2. Thêm tệp elf vào vivado rồi tải xuống (50)
  5. MicroBlaze Peripheral 구현 (59)
    1. Block Design (59)
      1. GPIO : LED_4bits (60)
      2. GPIO : btn0 (Ngắt ngoài-1) (61)
      3. GPIO : btn1 (Ngắt ngoài-2) (62)
      4. GPIO : btn3, 4(Đầu vào chung, Công tắc gạt) (63)
      5. Timer (64)
    2. Application SW (71)
      1. Tệp xparameters.h (72)
      2. Cấu trúc nguồn (75)
      3. Cài đặt mã nguồn (77)
    3. Tải xuống và kiểm tra kết quả (82)
  6. User Logic 인터페이스 구현 (83)
    1. Thiết kế khối (Block Design) (84)
    2. User Logic 구현 (88)
      1. mcu_pwm.v (89)
      2. pwm_top.v (90)
      3. spi_slave.v (91)
        1. Giao thức truyền thông (93)
        2. Bản đồ thanh ghi (93)
        3. Phân tích dạng sóng (94)
        4. Triển khai mã nguồn (96)
        5. Mô phỏng (103)
      4. BlazeTop.v (106)
      5. tạo xdc (109)
    3. Application SW (112)
      1. Sao chép comm_task  (116)
      2. helloworld.c (116)
      3. Giao thức truyền thông (118)
      4. comm_task (119)
    4. Tải xuống và kiểm tra kết quả (120)
    5. Cập nhật HW (124)
  7. lwIP Echo Server 구현 (126)
    1. Cấu hình hệ thống (126)
    2. lwIP HW 구현 (128)
      1. Tạo dự án (128)
      2. Tạo HW Block (130)
      3. HDL Wrapper tạo (152)
      4. Application SW (158)
      5. Xác nhận kết quả (167)
      6. Phân tích mã nguồn (174)
  8. lwIP 활용 (180)
    1. Thiết kế HW (180)
    2. Triển khai User Logic (185)
    3. Triển khai Application SW (192)
  9. W5500을 이용한 TCP/IP 구현 (202)
    1. Tạo dự án (206)
    2. Thiết kế Block (207)
    3. Triển khai Top Module (217)
    4. 응용 SW 구현 (222)
      1. Kích thước bộ nhớ (232)
      2. Cấu trúc file (233)
      3. data_type.h (233)
      4. ax_common.h (234)
      5. w5500.c, w5500.h (234)
      6. w5500_task.c, w5500_task.h (234)
      7. w5500_socket.c, w5500_socket.h (235)
      8. w5500_loopback.c, w5500_loopback.h (235)
      9. helloworld.c (238)
    5. 결과 확인 (240)
      1. Build Project (240)
      2. Thiết lập mạng PC (241)
      3. Tải chương trình và xác nhận kết quả (242)
      4. Tải chương trình xuống Flash ngoài (246)
    6. Kết luận (247)
  10. Block Memory Interface - 1 (248)
    1. Tạo dự án (248)
    2. Block Design (250)
    3. Thêm tệp Constraints (260)
    4. Triển khai SW ứng dụng (263)
  11. Block Memory Interface - 2 (268)
    1. Tạo dự án (269)
    2. Block Design (270)
    3. User Logic Design (279)
    4. Triển khai SW ứng dụng (289)
    5. Tải xuống và kiểm tra kết quả (289)
    6. Chỉnh sửa Linker Script (295)
  12. Tài liệu tham khảo (297)
  13. Lịch sử sửa đổi (298)

Q&A các câu hỏi thường gặp 💬

Q. Đối tượng của bài giảng này là ai?

Khóa học này dành cho những người hiểu về cú pháp Verilog, có kinh nghiệm thiết kế FPGA và có kinh nghiệm phát triển hệ thống nhúng (FW). Tuy nhiên, ngay cả khi bạn chỉ có một chút kinh nghiệm, bạn vẫn có thể hiểu đầy đủ nếu làm theo đúng nội dung hướng dẫn.

Q. Tôi cần chuẩn bị những gì để tham gia bài giảng?

Khóa học này được thực hiện trên board thực hành Arty A7-35T (100T, sản phẩm của hãng Digilent). Nếu bạn chưa chuẩn bị được board, vui lòng xem trước nội dung và sau đó nhất định phải mua board để kiểm tra trực tiếp trên thiết bị. Việc triển khai FPGA không chỉ dừng lại ở mô phỏng (Simulation) mà nhất thiết phải được kiểm chứng trên phần cứng (HW).

Q. Sử dụng công cụ lập trình nào?

Sử dụng phiên bản mới nhất là Vitis 2022.1. Quy trình cài đặt được giới thiệu chi tiết trong bài giảng này.


Giới thiệu về người chia sẻ kiến thức ✒️

Lịch sử kinh nghiệm

Tôi đã làm việc với tư cách là nhà phát triển tại các doanh nghiệp lớn và vừa trong suốt hơn 20 năm, và hiện đang điều hành một doanh nghiệp nhỏ. Tôi đã phát triển ASIC ISP (Image Signal Processing) cho CCTV và phát triển nhiều sản phẩm sử dụng FPGA như thiết bị kiểm tra OLED, DAQ (Data Acquisition System). Tôi có nhiều kinh nghiệm không chỉ về FPGA mà còn về phát triển FW (STM32, PIC32, AVR, ATMEGA, v.v.), thiết kế mạch, chương trình Windows, v.v.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những ai quan tâm đến MicroBlaze

  • Những ai quan tâm đến FPGA

  • Những ai quan tâm đến Verilog

Cần biết trước khi bắt đầu?

  • Ngôn ngữ C

  • Verilog HDL

  • Xilinx FPGA

Xin chào
Đây là alex

Xác minh sự nghiệp

1,791

Học viên

96

Đánh giá

134

Trả lời

4.8

Xếp hạng

17

Các khóa học

Tôi đã làm việc với tư cách là nhà phát triển tại các doanh nghiệp lớn và vừa trong suốt hơn 20 năm qua, và

Hiện tại tôi đang là đại diện của một doanh nghiệp nhỏ.

Các kinh nghiệm làm việc chính là

  • Thiết kế FPGA sử dụng Verilog HDL

    • Phát triển ISP ASIC cho CCTV (khoảng 10 năm)

    • Phát triển thiết bị kiểm tra màn hình OLED (khoảng 3 năm)

    • Phát triển thiết bị sử dụng FPGA

  • Firmware cho MCU

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Chương trình ứng dụng Windows

    • Visual Studio MFC, C++

là.

Thêm

Chương trình giảng dạy

Tất cả

290 bài giảng

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

5.0

5 đánh giá

  • park395989962님의 프로필 이미지
    park395989962

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    26% đã tham gia

    Lần này, tôi đang thực hiện một dự án sử dụng Microblaze. Không có nhiều thông tin trên internet và rất khó tìm được nội dung thực tế nhưng tôi đã nhận được rất nhiều sự giúp đỡ. Nhìn vào chất liệu bạn đã tạo ra, tôi có thể thấy dấu vết của rất nhiều thời gian và công sức đã bỏ ra. Dù sao thì đó cũng là một bài giảng rất hay. Tôi nghĩ nó sẽ hữu ích cho nhiều người

    • ihil
      Giảng viên

      Cảm ơn bạn đã xem xét của bạn. Tôi nghe nói bạn đang thực hiện một dự án liên quan đến MicroBlaze. Tôi hy vọng dự án sẽ diễn ra tốt đẹp và bạn sẽ đạt được kết quả tốt. Cảm ơn bạn~!!

  • soi897님의 프로필 이미지
    soi897

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Trừ khi có ARM tích hợp sẵn như Zybo, nếu không sẽ rất thuận tiện khi phát triển với Microblaze. Tuy nhiên, các phương pháp sử dụng Microblaze tràn lan trên Internet nên bạn phải google để tìm hiểu, và nếu người mới bắt đầu học như vậy thì có vẻ như họ sẽ không thể phân biệt được nội dung nào thực sự cần thiết. Tuy nhiên, bài giảng này phát triển những kiến ​​thức cơ bản để sử dụng Microblaze. Chỉ cần áp dụng một chút nội dung bài giảng này, bạn sẽ có thể vận dụng triệt để nó vào thực tế. Và điều tuyệt vời nhất là bạn có thể tìm và xem lại nó ngay lập tức bất cứ khi nào bạn cần.

    • ihil
      Giảng viên

      Cảm ơn bạn rất nhiều vì đánh giá chân thành của bạn. Cảm ơn bạn cũng đã giúp đỡ của bạn. Tôi hy vọng bạn sẽ trở thành một nhà phát triển tuyệt vời trong tương lai. Ngày nay, có rất nhiều tài liệu video nên video có thể trở nên tiện lợi và có nhiều ưu điểm. Tuy nhiên, như bạn đã nói, tôi nghĩ tài liệu rất tốt khi bạn muốn xem lại tài liệu nhiều lần. Điều này là do bạn có thể tìm thấy ngay tài liệu đó là gì và ở đâu. Chúng tôi sẽ tiếp tục tạo ra những tài liệu hữu ích để nhiều người có thể hưởng lợi. Cảm ơn bạn~!!

  • withuman3898님의 프로필 이미지
    withuman3898

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    52% đã tham gia

    Nó rất hữu ích trong thực tế. Cảm ơn bạn vì bài giảng tuyệt vời!!

    • baekga839465님의 프로필 이미지
      baekga839465

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      61% đã tham gia

      Nó đã được giải thích một cách dễ dàng cho đến nay, vì vậy nó không khó. Tôi nghĩ đó là một bài giảng hay. Tôi đang thiết kế logic FPGA và CTNH trong lĩnh vực của mình. Ngày nay, có vẻ như nhiều người đang yêu cầu khả năng xử lý MB hoặc NIOS. Tôi nghĩ nó sẽ là một bước đệm tốt. Tôi hy vọng bạn tiếp tục nhận được sự giáo dục tốt.

      • ihil
        Giảng viên

        Cảm ơn bạn rất nhiều vì đánh giá của bạn. Cảm ơn sự giúp đỡ của bạn. Thế giới dường như đang thay đổi quá nhanh. Công nghệ thay đổi nhanh quá Tôi phải làm điều này, tôi phải làm điều kia, có rất nhiều việc phải làm. Dù sao đi nữa, tôi hy vọng mọi việc sẽ diễn ra tốt đẹp. Cảm ơn bạn~!!

    • neulha님의 프로필 이미지
      neulha

      Đánh giá 15

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Khóa học khác của alex

      Hãy khám phá các khóa học khác của giảng viên!

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!