Thông báo

Collapse
No announcement yet.

Thiết kế FPGA với các phần mềm cơ bản (ISE và Quartus)

Collapse
X
Collapse
 

  • Thiết kế FPGA với các phần mềm cơ bản (ISE và Quartus)

    Trước tiên xin tóm tắt toàn bộ quá trình thiết kế FPGA như sau:
    1) Xác định các đặc tính kĩ thuật (Requirements/Specifications Capture):
    - Quá trình này, các yêu cầu của thiết kế được xác định ví dụ như yêu cầu về thời gian, tốc độ của thiết kế, yêu cầu về tài nguyên v.v

    2) Bước thiết kế (design):
    - Trong bước thiết kế, các khối của toàn bộ thiết kế được xác định nhằm thực hiện được các yêu cầu đề ra ở trên, thiết kế bao gồm thiết kế mức cao (high-level design) và thiết kế chi tiết (detailed design). Thiết kế mức cao chỉ thiết kế kiến trúc (architecture) của hệ thống. Thiết kế mức cao thường là bước đầu tiên để chia nhỏ một thiết kế lớn ra thành nhiều thiết kế nhỏ. Từ thiết kế mức cao, các khối tiếp tục được chia nhỏ đến khi có thể tiến hành việc coding được (thiết kế từ trên xuống: top-down approach). Qua kinh nghiệm, rất nhiều hệ thống thiết kế kiểu này.

    3) Bước coding (VHDL/Verilog) và mô phỏng, kiểm tra (simulation, verification)
    Khi các thiết kế chi tiết đủ để thực hiện coding, các block nhỏ sẽ được code bằng ngôn ngữ mô tả phần cứng (Hardware description language - HDL) ví dụ như Verilog, VHDL, SystemVerilog, SystemC ...
    Các bạn có thể tham khảo ứng dụng, điểm mạnh yếu của các ngôn ngữ ở các thread khác.
    Bước mô phỏng và kiểm tra là 2 bước không thể thiếu trong quá trình thiết kế. 2 bước này giúp phát hiện và sửa các lỗi trong thiết kế và lỗi trong quá trình coding mà không qua bước biên dịch (bước biên dịch đôi khi mất hàng giờ đồng hồ).

    4) Bước biên dịch (compilation)
    Ở bước biên dịch, các công cụ (tools) sẽ đọc các thiết kế được mô tả bằng HDL và tạo ra mạch số (digital circuit) như đã mô tả. Để tool tạo ra được mạch như mong muốn người thiết kế số (digital designer) và đặc biệt thiết kế FPGA, phải tuân thủ một số quy đinh về cách viết code (HDL coding style).
    Các công cụ biên dịch sẽ tạo ra một hoặc nhiều files gọi là netlist. Mỗi file netlist hoàn toàn là một tập hợp các block rất cơ bản được kết nối với nhau. Một số file ở dạng nhị phân (binary, nghĩa là người dùng không đọc hiểu được) một số file ở dạng text, chúng ta có thể đọc và hiểu được.
    Ở cuối cùng của bước biện dịch, một file binary sẽ được tao ra dùng để cấu hình (configure) FPGA.
    **Lưu ý là configure được dùng thay vì programme. Khái niệm lập trình cho FPGA dẫn đến một số lỗi và cần tránh.
    ==================================================

    Quá trình biên dịch FPGA gồm:
    0) Chỉ định các điều kiện và ràng buộc cho trình dịch:
    - a) Chỉ định điều kiện về thời gian: ít nhất là chỉ định tần số hoạt động của thiết kế
    - b) Chỉ định điều kiện về không gian: tối thiểu là chỉ định cho các input/output.

    1) Tổng hợp (Synthesis)
    Ở quá trình này, trình biên dịch sẽ đọc các file thiết kế và cất vào thư viện (mặc định là work).
    2) Thực hiện (Implementation)
    Ở quá trình này trình biên dịch sẽ gom tất cả các module đã thiết kế lại thành 1 thiết kế duy nhất, sau đó sẽ xếp đặt lên FPGA và cho ra:
    - Thứ nhất là timing-report (Báo cáo thời gian, báo cáo này dựa trên những ràng buộc mà người thiết kế đã chỉ ra, báo cáo cho biết điều kiện đã đề ra có thỏa mãn được không)
    - Thứ hai là file binary dùng để cấu hình cho FPGA

    Đề hiểu rõ và hình dung được, xin giới thiệu một ví dụ đơn giản.

    Trong ví dụ này, một bộ định thời (timer), sẽ được thiết kế. Các yêu cầu của timer như sau:
    - 1 đầu vào En dùng để kích hoạt và dừng timer. Khi En = 1, bộ timer hoạt động, En = 0, timer dừng.
    - 1 đầu vào reset dùng để trả timer về giá trị 0.
    - 1 đầu vào Auto dùng đề cho phép timer tự động trả về 0 khi đầy. Auto = 1, timer tự reset trở lại 0 khi đầy, Auto = 0. Timer dừng ở vị trí đầy cho đến khi có tín hiệu reset.
    - 1 đầu vào chứa giá trị đầy.
    - 1 đầu ra báo hiệu timer đầy.
    - Bộ timer dự kiến phải chạy với clock ở tần số 50MHz.
    =================================================
    Biên dịch với ISE.
    - Giao diện của ISE khá dễ hiểu. Cơ bản gồm có:
    1) Cửa sổ source chứa các source file và sự phân cấp của thiết kế (design hierarchy).
    2) Cửa sổ quá trình, chứa các quá trình trong quy trình biên dịch. Gồm có:
    Synthesis
    Implement
    Generate programming file
    Trong mỗi quá trình lại có nhiều bước nhỏ. Cửa sổ này được liên kết với cửa sổ source. Cho mỗi source file, cửa sổ quá trình sẽ liệt kê các bước có thể thực hiện với source file mà bạn đã high-light.
    Muốn thực hiện bước thiết kế nào, chỉ việc chọn source file, và double-click bước thiết kế.



    - Đầu tiên, chúng ta cần tạo 1 project mới (File - New Project)
    - Sau đó sẽ tạo mới các file source, trong trường hợp có sẵn source code thì dùng chức năng "add source"

    • koool
      #1
      koool commented
      Editing a comment
      cccc afsfsdsdf à

    • hslcnps1900
      #2
      hslcnps1900 commented
      Editing a comment
      A cho e hoi mach power signal protect clip mac day vao mach cong suat loai btl. Minh ko biet cau day nho a giup dum
    You must be logged in to post a comment.

Về tác giả

Collapse

jefflieu Email minh trực tiếp nếu bạn cần download tài liệu gấp Tìm hiểu thêm về jefflieu

Bài viết mới nhất

Collapse

Đang tải...
X