강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Semiconductor

Chương trình Verilog FPGA 1 (Arty A7-35T)

Triển khai FPGA bằng Verilog

(5.0) 14 đánh giá

189 học viên

  • alex
베릴로그
fpga
verilog
hdl
Verilog HDL
FPGA

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

Dịch cái này sang tiếng Việt

  • Thiết kế RTL Verilog

  • Thiết kế FPGA

Bạn có quan tâm tới FPGA không?
Vậy thì hãy làm Verilog! 😁

Verilog là gì?

Verilog, có cú pháp tương tự như ngôn ngữ C, là ngôn ngữ mô tả phần cứng (HDL) được sử dụng trong các mạch và hệ thống điện tử. Nó được sử dụng cho nhiều mục đích khác nhau như thiết kế mạch, xác minh và triển khai.

Thiết kế FPGA bởi người có hơn 20 năm kinh nghiệm 📑

Có nhiều nhà phát triển quan tâm đến việc triển khai FPGA bằng Verilog, phải không? Tuy nhiên, rất khó để tìm được bài giảng nào giải thích chi tiết về điều này. Bây giờ, hãy xem các bài giảng được biên soạn bởi các chuyên gia có hơn 20 năm kinh nghiệm trong lĩnh vực phát triển! Nội dung bài giảng có vẻ khó, nhưng nếu bạn đọc kỹ và thực hành 3-4 lần, đây sẽ là cẩm nang hữu ích giúp bạn phát triển bản thân với tư cách là một nhà phát triển FPGA.

Bài giảng này trình bày chi tiết về việc triển khai FPGA bằng Verilog HDL. Bạn sẽ học toàn bộ quá trình triển khai mã Verilog , xác minh kết quả thông qua mô phỏng và cuối cùng tải mã triển khai xuống bo mạch Arty A7 để xác minh kết quả . Chúng tôi cũng đề cập đến IP (liên quan đến xung nhịp, liên quan đến bộ nhớ) do Xilinx cung cấp . Nếu bạn hiểu nội dung được giải thích trong bài giảng này và học được phương pháp lập trình của riêng mình, bạn sẽ trở thành một nhà phát triển có năng lực trong thiết kế FPGA.

📢 Hãy nhớ kiểm tra trước khi tham gia lớp học!

  • Bài giảng này là bài giảng dạng văn bản dưới dạng tài liệu điện tử . Đối với những người tham gia khóa học, chúng tôi cung cấp tất cả các tệp nguồn được giải thích trong khóa học. Bài giảng sẽ được sản xuất dưới dạng video trong tương lai.
  • Công cụ được sử dụng là vivado 2018.3 và ván dùng để thực hành là Arty A7-35T (100T).
  • Tài liệu bài giảng có thể tải xuống từ 'Mục 0 - Liên kết chia sẻ tài liệu - Tệp đính kèm'.

Học những điều như thế này 📚

Cách sử dụng công cụ vivado

Mã hóa Verilog

Tạo một băng ghế công nghệ
Thực hiện mô phỏng

Kết quả trên bảng
Tải xuống và kiểm tra


Một lời từ người chia sẻ kiến ​​thức 🙋‍♀️

Tôi đã phát triển ứng dụng bằng FPGA trong khoảng 20 năm. Chúng tôi cũng có kinh nghiệm trong sản xuất và phát hành ASIC. Tuy nhiên, tôi vẫn chưa hiểu hết về thế giới FPGA. Thế giới FPGA rộng lớn như vậy đấy. Bạn cần biết nhiều về các công cụ, khía cạnh phần cứng, Verilog, v.v. Điều tôi cảm nhận được khi làm việc cho đến nay là để xử lý Verilog hoặc FPGA tốt, bạn cần phải có định dạng chương trình riêng (quy tắc mã hóa) . Bài giảng này sẽ giải thích chi tiết về vấn đề này. Tôi hy vọng bạn sẽ học được nội dung được giải thích trong bài giảng và tạo ra định dạng của riêng mình.

Khóa học này dành cho những người có một số kiến ​​thức về ngữ pháp Verilog và hiểu nội dung liên quan đến bài tập về nhà . Vì Verilog HDL tương tự như ngôn ngữ C nên việc biết ngôn ngữ C rất hữu ích. Ngoài ra, bài giảng này sẽ tải kết quả cuối cùng xuống bảng (Arty A7, Digilent) và kiểm tra kết quả. Verilog HDL không nên kết thúc bằng việc xác minh kết quả trong mô phỏng. Verilog HDL phải được tải xuống bo mạch FPGA để xác minh hoạt động. Những người tham gia khóa học này được khuyên nên xem lại nội dung và mua bảng thực hành để kiểm tra kết quả.

Nếu có bất kỳ điều gì bạn không hiểu trong bài giảng, vui lòng đăng câu hỏi thông qua cộng đồng Inflearn hoặc quán cà phê tôi điều hành và tôi sẽ trả lời.


Tính năng bài giảng ✨

Cấu trúc của bài giảng này như sau.

  • Thực hiện mã
  • Xác minh mô phỏng bằng cách sử dụng băng thử nghiệm
  • Xác minh Hội đồng quản trị

Chúng tôi sẽ giải thích chi tiết cách thực hiện từng quy trình thông qua phiên bản vivado 2018.3.

Nội dung thực hành như sau.

  1. Bật/tắt đèn LED bằng bộ đếm
  2. Triển khai SPI Master
  3. Triển khai SPI Slave
  4. Triển khai giao tiếp SPI Master/Slave và xác minh bo mạch
  5. Xilinx IP -1 (Bộ tạo xung nhịp)
  6. Xilinx IP - 2 (Bộ tạo bộ nhớ)
  7. Triển khai bộ điều khiển UART
  8. Triển khai bộ điều khiển I2C
  9. Triển khai bộ giải mã NRZL
  10. Triển khai giao diện FMC
  11. Tốc độ bộ nhớ khối

Bài tập thực hành đầu tiên là phản công. Counter là một module đơn giản nhưng thực tế được sử dụng rộng rãi. Chúng tôi thiết kế một bộ đếm, tạo ra một băng ghế thử nghiệm, chạy mô phỏng để xem mã được triển khai có hoạt động bình thường hay không và cuối cùng áp dụng vào bảng để kiểm tra kết quả bằng cách bật/tắt đèn LED.

Chủ đề thực tế thứ hai là giao tiếp SPI. Lý do tôi chọn SPI là vì đây là giao diện tương đối dễ triển khai giữa nhiều giao diện khác nhau và thực sự được sử dụng rộng rãi. Đầu tiên, triển khai SPI Master, sau đó triển khai SPI Slave. Và thực hiện giao tiếp giữa Master và Slave và kiểm tra xem nó có hoạt động bình thường trên bo mạch không.

Nội dung thứ ba giải thích về Đồng hồ và Bộ nhớ, đây là những IP được sử dụng rộng rãi và dễ truy cập do Xilinx cung cấp.

Nội dung thứ tư là giao tiếp UART. Chúng tôi sẽ triển khai Bộ điều khiển Uart và xác minh nó thông qua giao tiếp với PC.

Chủ đề thực hành thứ năm là giao tiếp I2C. Giao tiếp I2C có vẻ đơn giản, nhưng việc triển khai nó vào mã lệnh không bao giờ là dễ dàng. Nó khó hơn SPI 2-3 lần. Nếu bạn triển khai I2C Master, Slave trong mã, bạn có thể triển khai các giao diện khác mà không gặp khó khăn. Chúng tôi sẽ trình bày chi tiết cách thiết lập thông số kỹ thuật trước khi triển khai mã và cách thiết kế SM (Máy trạng thái). Bộ điều khiển I2C được triển khai được xác minh là hoạt động trên bo mạch.

Nội dung thứ sáu là nội dung mới trong v2.1. Triển khai bộ giải mã NRZL (Mức không trả về). Đặc biệt, tài liệu này trình bày chi tiết cách thiết kế và sử dụng FIFO. FIFO là một IP rất quan trọng được sử dụng trong nhiều lĩnh vực. Qua chương này, bạn sẽ hiểu cách thiết kế và triển khai FIFO.

Nội dung thứ bảy đã được thêm vào trong v2.3. Triển khai Giao diện FMC (Bộ điều khiển bộ nhớ linh hoạt). Tài liệu này bao gồm thông tin về cách giải quyết tình trạng Vi phạm thời gian, thường xảy ra khi sử dụng nhiều hơn hai đồng hồ.

Nội dung thứ tám đã được thêm vào trong v2.4. Đây là quá trình kiểm tra tốc độ (hiệu suất) của Bộ nhớ khối bên trong FPGA và xác định tốc độ phù hợp nhất.

Bạn có tò mò về chương trình giảng dạy chi tiết không?
  1. phác thảo
  2. Cấu hình phần cứng
    1. Phương pháp sử dụng USB-JTAG
    2. Phương pháp sử dụng JTAG-HS3
  3. Điều khiển LED bằng bộ đếm
    1. Định nghĩa hàm
    2. Tạo một dự án
    3. Cấu hình màn hình dự án
    4. Thêm mã nguồn
    5. Cài đặt trình soạn thảo văn bản
    6. Thực hiện mã
    7. Triển khai XDC
    8. Tạo luồng bit
    9. Tải xuống Bitstream
    10. Kiểm tra kết quả
  4. Mô phỏng
    1. Thêm tệp nguồn mô phỏng
    2. Triển khai mã tb_led_counter.v
    3. Đang tiến hành mô phỏng
    4. Kết quả mô phỏng
  5. Triển khai Spi Master
    1. Thông số kỹ thuật
    2. Tạo một dự án
    3. Thêm mã nguồn
    4. Thực hiện mã
      1. Định nghĩa cổng
      2. Định nghĩa nhà nước
      3. Thực hiện mã
      4. Biểu đồ thời gian
    5. Mô phỏng
      1. Triển khai thử nghiệm
      2. Kiểm tra kết quả mô phỏng
  6. Triển khai Spi Slave
    1. Thông số kỹ thuật
    2. Thêm mã nguồn
    3. Thực hiện mã
      1. Định nghĩa cổng
      2. Định nghĩa nhà nước
      3. Thực hiện mã
    4. Mô phỏng
      1. Triển khai thử nghiệm
      2. Kiểm tra kết quả mô phỏng
  7. Triển khai truyền thông Spi
    1. Loại bỏ tiếng ồn của nút
      1. Mạch nút
      2. Thực hiện mã
      3. Mô phỏng
    2. Triển khai nhiệm vụ SPI
      1. Định nghĩa cổng
      2. Loại bỏ tiếng ồn của nút
      3. Định nghĩa nhà nước
      4. Thực hiện mã
    3. Mô phỏng
      1. Triển khai thử nghiệm
      2. Kiểm tra kết quả mô phỏng
    4. Tạo và tải xuống luồng bit
  8. Sử dụng Xilinx IP
    1. Tạo một chiếc đồng hồ
    2. Kiểm tra IP đồng hồ
      1. Thông số kỹ thuật
      2. Thực hiện mã
      3. tập tin xdc
      4. Tạo và tải xuống luồng bit
    3. Tạo bộ nhớ
      1. Bộ tạo bộ nhớ khối
    4. Kiểm tra trí nhớ
      1. RAM cổng đơn
      2. RAM cổng kép đơn giản
      3. Bộ nhớ khác
  9. Triển khai bộ điều khiển UART
    1. Triển khai Uart Tx
      1. Thực hiện mã
      2. Mô phỏng
    2. Triển khai Uart Rx
      1. Tạo FIFO
      2. Thực hiện mã
      3. Mô phỏng
    3. Triển khai bộ điều khiển UART
    4. Triển khai LoopBack
      1. thành phần
      2. Thực hiện mã
      3. Mô phỏng
      4. Tạo luồng bit
      5. Kiểm tra kết quả
  10. Triển khai bộ điều khiển I2C
    1. Thông số kỹ thuật bộ điều khiển I2C
      1. Bắt đầu, dừng điều kiện
      2. Truyền dữ liệu 8 bit
      3. ID nô lệ
      4. Cấu trúc dữ liệu ghi I2C
      5. Cấu trúc dữ liệu đọc I2C
    2. Triển khai I2C Master
      1. phân tích tín hiệu ghi i2c_master
      2. i2c_master đọc phân tích tín hiệu
      3. Triển khai mã i2c_master
      4. mô phỏng i2c_master
      5. Kiểm tra kết quả
      6. triển khai i2c_master8x8
      7. Mô phỏng i2c_master8x8
    3. Triển khai I2C Slave
      1. Phân tích tín hiệu I2C Slave
      2. triển khai mã i2c_slave8x8
      3. triển khai i2c_reg8x8
      4. mô phỏng i2c_slave8x8, i2c_reg8x8
    4. NHIỆM VỤ I2C
      1. Triển khai mã i2c_task
      2. Kiểm tra kết quả
  11. Triển khai bộ giải mã NRZL
    1. Tổng quan hệ thống
    2. Thực hiện mã
      1. Tạo một dự án
      2. Thực hiện mã
      3. triển khai data_counter
      4. triển khai giảm tiếng ồn
      5. triển khai data_encoder
      6. triển khai nrzlDecTop
      7. xdc thực hiện
      8. Tạo Bitstream & Tải xuống, Xác minh
      9. Phần kết luận
  12. Triển khai giao diện FMC
    1. Thời gian FMC
    2. Thực hiện mã
      1. Tạo một dự án
      2. fmc_model.v
      3. mô phỏng fmc_model
      4. Giao diện fmc_v
      5. sys_host.v
      6. spram_32x8192
      7. mô phỏng fmc_interface
      8. fmc_top.v
      9. fmc_top.xdc
    3. Tạo luồng bit
    4. Xử lý lỗi thời gian
    5. Tải xuống bảng và kiểm tra kết quả
    6. Tải xuống bảng và kiểm tra kết quả
  13. Tốc độ bộ nhớ khối
    1. Kịch bản hành động
    2. Khối triển khai RAM
    3. Thực hiện mã
    4. Mô phỏng
    5. tập tin xdc
    6. Cấu trúc tập tin
    7. Kiểm tra kết quả
    8. Phần kết luận
  14. Lịch sử sửa đổi

Câu hỏi dự kiến ​​Q&A 💬

H. Đối tượng mục tiêu của bài giảng này là ai?

Bạn nên có một số kiến ​​thức (mới bắt đầu) về ngữ pháp Verilog và kiến ​​thức cơ bản về phần cứng.

H. Tôi có cần chuẩn bị gì để tham dự buổi thuyết trình không?

Bài giảng sẽ được tiến hành trên bảng thực hành (Arty A7 -35T hoặc 100T, sản phẩm Digilent). Tuy nhiên, nếu bạn không có bảng, hãy nghe bài giảng trước, tiến hành như đã giải thích trong bài giảng (mã hóa và mô phỏng), và sau đó thực hành sau khi bảng đã sẵn sàng. Bạn có thể tiếp tục. Ngoài ra, hãy sử dụng JTAG-HS2 (hoặc HS3) để tải xuống bo mạch.

H. Bạn sử dụng những công cụ chương trình nào?

Khóa học này bao gồm các kiến ​​thức về FPGA của Xilinx. Công cụ SW sử dụng phiên bản vivado 2018.3. Không có thông tin nào về việc cài đặt phần mềm. Vui lòng cài đặt công cụ phần mềm (vivado 2018.3 hoặc mới hơn) trước khi tham dự bài giảng.


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

Tôi đã làm việc với vai trò là nhà phát triển trong hơn 20 năm tại các công ty lớn và nhỏ, và hiện tại tôi đang điều hành một doanh nghiệp nhỏ. Chúng tôi đã phát triển một ASIC ISP (Xử lý tín hiệu hình ảnh) cho CCTV và nhiều sản phẩm sử dụng FPGA, chẳng hạn như thiết bị kiểm tra OLED và DAQ (Hệ thống thu thập dữ liệu). Tôi có nhiều kinh nghiệm không chỉ trong FPGA mà còn trong 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?

  • FPGA có quan tâm không

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

  • Verilog muốn nâng cấp

  • FPGA muốn nâng cấp

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

  • VerilogHDL

  • FPGA

Xin chào
Đây là

1,657

Học viên

67

Đánh giá

124

Trả lời

4.8

Xếp hạng

19

Các khóa học

저는 지난 20여년 동안 대기업, 중소기업에서 개발자로 일해왔고

현재는 작은 기업의 대표로 있습니다.

주요 경력사항은

  • Verilog HDL을 이용한 FPGA 설계

    • CCTV용 ISP ASIC 개발 (약 10년)

    • OLED Display 검사장비 개발 (약 3년)

    • FPGA를 이용한 장비 개발

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

입니다.

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

Tất cả

359 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ả

14 đánh giá

5.0

14 đánh giá

  • haneuli님의 프로필 이미지
    haneuli

    Đánh giá 12

    Đánh giá trung bình 5.0

    5

    9% đã tham gia

    백과사전 처럼 사용하고 있습니다~ 스승이 있다는 것이 얼마나 행복한 것인지 다시한번 느낍니다. 감사합니다!

    • alex
      Giảng viên

      과찬의 말씀 감사합니다. 앞으로 계속해서 내용을 추가해서 더욱 도움되고 유익한 강의가 될 수 있도록 하겠습니다. 감사합니다~!!

  • miheungsound님의 프로필 이미지
    miheungsound

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    이강의전에 미리 FPGA 공부를 해보았는데 너무 어렵더라고요. 지금 죽 한번 보는데 이강의 따라가면 신나게 배울것 같습니다. 좋은 강의라고 생각됩니다. 꼭 성공하겠습니다.

    • alex
      Giảng viên

      fpga가 쉽지는 않습니다. 강의 내용에 맞추어 하다보면 실력이 조심씩 쌓이게 됩니다. 화이팅 하시고 응원합니다~ 감사합니다~!!

  • wwe0898님의 프로필 이미지
    wwe0898

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    12% đã tham gia

    수강 완료

    • alex
      Giảng viên

      수고 많으셨습니다~ 적은 양이 아닌데 완강 하셨다니 축하드립니다. 강의 내용을 완전히 이해하셔서 실무에서 훌륭한 개발자 되시길 바랍니다~!! 감사합니다.

  • withuman님의 프로필 이미지
    withuman

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    8% đã tham gia

    많은 도움이 되고 있습니다. 좋은 강의 감사합니다!

    • appleid7133님의 프로필 이미지
      appleid7133

      Đánh giá 4

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      많은 도움이 되었습니다. 감사합니다.

      • alex
        Giảng viên

        많은 도움이 되셨다니 감사합니다~!!

    2.301.854 ₫

    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!