Monday, July 9, 2018


TÀI LIỆU VÀ MÔ PHỎNG

Khi xây dựng một danh mục tùy chỉnh IP, cho sử dụng cá nhân hoặc thương mại, điều quan trọng là phải đảm bảo rằng mỗi mô-đun hoạt động chính xác; điều cuối cùng bạn không mong muốn là một trong những khách hàng của bạn liên hệ với bạn để thông báo cho bạn biết rằng IP bạn bán chúng không hoạt động ,vì vậy nó cần phải thông qua mô phỏng mở rộng.
Điều quan trọng là mỗi mô-đun IP được ghi lại đúng cách để khi một khách hàng muốn đưa IP của bạn vào một thiết kế. Điều này, tất nhiên cũng áp dụng cho bạn bằng cách sử dụng IP của riêng bạn một vài năm tiếp theo. Tài liệu kỹ lưỡng như một hoạt động trợ giúp tốt để nhắc nhở bạn làm thế nào IP của riêng bạn hoạt động.
Trong phần này, chúng tôi sẽ giới thiệu mô phỏng tài liệu về IP với các công cụ có sẵn trong Vivado Design Suite, cũng như các công cụ của bên thứ 3 liên quan.

1. Mô phỏng

Mô phỏng IP của bạn là việc cực kỳ quan trọng tại điểm khác nhau của các con số trong giai đoạn thiết kế. Nếu IP của bạn được tạo từ nguồn không phải RTL, trước tiên bạn phải đảm bảo rằng nguồn thiết kế của bạn hoạt động chính xác. Tất nhiên quá trình mô phỏng sẽ khác nhau tùy thuộc vào nguồn IP của bạn.
Mô phỏng RTL
Có một số tùy chọn có sẵn cho bạn khi mô phỏng các tệp RTL, đầu tiên trong số đó là sử dụng trình mô phỏng tích hợp trong Vivado. IDE Vivado bao gồm một bộ mô phỏng HDL cho phép bạn mô phỏng thiết kế của mình tại các điểm khác nhau dòng thiết kế Zynq-7000.
Trình mô phỏng Vivado hỗ trợ các ngôn ngữ sau:
·             Verilog IEEE-STD-1364-2001
·              VHDL IEEE-STD-1076-1993
·              Phiên bản định dạng trì hoãn chuẩn (SDF) version 2.1.
·             VITAL-2000
Mô phỏng các tệp SystemC không có sẵn trong IDE Vivado, nhưng thay vào đó có thể được thực hiện bởi các sản phẩm mô phỏng RTL của bên thức ba hoặc công cụ Vivado HLS sẽ được hỗ trợ riêng trong phần Vivado HLS.
Các tính năng sau được hỗ trợ bởi trình mô phỏng Vivado.
·             Source code debugging
·            Value Change Dump (VCD) file dumping
·            SAIF dumping for power analysis and optimisation
·            Multi-threaded compilation
·            Mixed language simulation (VHDL and Verilog)
·            Real-time waveform update
·            Built-in Xilinx simulation libraries
Cũng như trình mô phỏng Vivado tích hợp, Xilinx hỗ trợ các trình mô phỏng tiếp theo cho bên thư ba:
·           Mentor Graphics QuestaSim/ModelSim (được tích hợp trong Vivado IDE)
·           Cadence® Incisive® Enterprize Simulator (IES)
·           Synopsys VCS® and VCS MX
·        Aldec Active-HDL and Rivera-PRO (tương thích nhưng không được hỗ trợ chính thức bởi Xilinx)
Một ví dụ về dòng mô phỏng RTL được cung cấp trong hình 1:


Hình 1: Mô phỏng RTL

System Generator
Khi System Generator dựa trên nền tảng mô hình Simulink, mô phỏng của System Generator là một thủ tục tương đối đơn giản. Một khi tất cả các khối được kết nối và các thông số thời gian đã được thiết lập, một mô phỏng có thể được thực hiện bằng cách nhấp nút “run”.  Dữ liệu mô phỏng có thể được trình bày theo nhiều cách khác nhau, chẳng hạn như các khối Scope có thể hiện thị các ô miền thời gian và tần số. Dữ liệu cũng có thể được xuất sang khung MATLAB cơ bản để phân tích và hiện thị thêm bằng các công cụ vẽ đồ thị mạnh mẽ.
Khi code RTL cho IP của bạn được tạo, các công cụ System Generator cung cấp khả năng thực hiện đồng mô phỏng phần cứng để xác thực thiết kế. Điều này cho phép bạn kết hợp một thiết kế chạy trên FPGA trực tiếp vào một mô phỏng System Generator và mã RTL được triển khai đồng thời. Ngõ ra của cả mô phỏng và đồng mô phỏng phần cứng có thể được thu thập so sánh, cho phép bạn kiểm tra tính hợp lệ của thiết kế RTL được triển khai.
HDL Coder
Khi HDL Coder hoạt động trong MATLAB/Simulink, mô phỏng tất cả các thiết kế IP giống hệt với quá trình quá trình mô phỏng file M-code hoặc mô hình Simulink. Điều này cho phép bạn trình bày các kết quả mô phỏng của bạn theo cách tương tự như bất kỳ mô phỏng nào khác, sử dụng các công cụ vẽ mở rộng.
Với mã RTL được tạo bởi HDL Coder, chức năng có thể được so sánh với mô hình IP ban đầu bằng công cụ HDL Verification. Nhiều công cụ được hỗ trợ để xác minh, bao gồm đồng mô phỏng thiết kế bằng cách giao tiếp với bộ mô phỏng HDL (như ModelSim và QuestaSim từ Mentor Graphics và Incisive from Cadence) cũng như cung cấp phần cứng mô phỏng qua FPGA-in-the-loop. Mô phỏng FPGA-in-the-loop đươc thực hiện bằng cách tự động hóa một quá trình tạo và chạy một triển khai FPGA trên một bo mạch phát triển. Quá trình xác minh FPGA-in-the-loop tương tụ như quá trình mô tả trong phần mô phỏng system generator.
Sử dụng HDL verifier HDL đồng mô phỏng và phần cứng đồng mô phỏng cho phép bạn cung cấp cả mô hình MATLAB/Simulink và mã RTL được tạo ra với cùng kích thích đầu vào. Các đầu ra từ cả hai thiết kế có thể được so sánh để xác thực thiết kế và xác định bất kỳ lỗi nào.
Vivado HLS
HLS tự động tạo các tập lệnh được yêu cầu để thực hiện đồng mô phỏng thiết kế được tạo ra với file testbech C gốc. Điều này cho phép cả hai thiết kế được tạo ra sẽ được kiểm tra với cùng các kích thước đầu vào và so các kết quả đầu ra tương ứng để tìm ra bất kỳ sự khác biệt nào. Điều này loại bỏ sự cần thiết phải tạo ra một file testbech RTL.
Các trình mô phỏng RTL sau được hỗ trợ bởi HLS:
·        ModelSim
·        VCS
·        Open SystemC Initiative (OSCI)
·        NCSim
·        XSim
·        ISim
·        Riviera
Các bộ mô phỏng VCS, NCSim và Riviera HDL chỉ được hỗ trợ trên hệ điều hành Linux. Nếu mã System C được tạo, nhân tích hợp của System C được sử dụng để xác minh.
Các kiểu dữ liệu điểm cố định được hỗ trợ bởi các mô phỏng C++ và System C và khi các kết quả mô phỏng được sử dụng sẽ khớp với các tệp RTL được triển khai. Điều này cho phép các hiệu ứng của độ chính xác bit, lượng tử, tràn được phân tích với mô phỏng nhanh cấp C.
Là một phần của quá trình đồng mô phỏng RTL, HLS tạo ra một trình bao bọc System C để tạo các bộ điều hợp xung quanh các mô-đun RTL. Trình bao bọc mã C sau đó được khởi tạo vào file testbench C hiện có. VD hình 2.

Hình  2: Mô phỏng Wrapper

2. Tài liệu

Tài liệu là một thành phần quan trọng của bất kì IP nào, dù cho đó là thương mại, nguồn mở hay nội bộ. Tài liệu IP tốt nên cho phép người dùng chưa bao giờ sử dụng một mô-đun IP cụ thể để hiểu, kết nối và triển khai nó trong thiết kế của riêng họ mà không cần trợ giúp thêm. Tài liệu cũng hoạt động như một lời nhắc nhở tốt cho người dùng, ngay cả khi học tự tạo IP.
Tài liệu các tính năng của các công cụ IP và các phương pháp đã được chi tiết trong chương này sẽ được xem xét.
System Generator
System Generator có một tùy chọn để tạo giao diện tài liệu khi tạo IP. Đây là tài liệu HTML chỉ định giao diện cho thiết kế IP được tạo và bao gồm các phần sau:
·        Giới thiệu – cung cấp giới thiệu ngắn gọn về tài liệu.
·        Giao diện cổng – phần này trình bày chi tiết giao diện cổng của IP được tạo. bảng liệt kê tất cả các cổng đầu vào và đầu ra của thiết kế với các chi tiết sau:
o   Tên cổng cấp cao nhất
o   Hướng cổng, ví dụ: inout, input hoặc output.
o   Loại cổng HDL, ví dụ: std_logic, std_logic_vector.
o   Loại tín hiệu được kết nối, ví dụ: data , clock, clock enable.
o   Loại trình tạo hệ thống – Tín hiệu trong bộ tạo hệ thống, ví dụ ufix16_15, sfix 12_11,…
o   Khoảng thời gian lấy mẫu của tín hiệu đã cho. Thông tin về việc thưc hiện đa tỷ lệ được cung cấp trong một phần khác của tài liệu HTML
o   Các nhận xét thêm được cung cấp ở đây nếu bao gồm thiết kế trong trình tạo hệ thống.
·        Đa tốc độ - Nếu một thiết kế đa tốc độ được tạo ra, phần này sẽ được điền thông tin về mạng tín hiệu cho phép xung clock được tạo ra để điều khiển các tín hiệu có xung nhịp khác nhau trong suốt thiết kê. Một biểu đồ thời gian chung cũng tạo ra để giúp giải thích việc thực hiện các miền clock khác nhau.
·        Thiết kế Files – Phần này cung cấp danh sách tất cả các tệp HDL được tạo bởi trình tạo hệ thống trong quá trình tạo IP. Danh sách được hiển thị theo thứ tự của mô-đun cấp cao nhất xuông mức thấp nhấp, để hỗ trợ biên dịch thiết kế. Một mô tả ngắn gọn về mỗi file HDL cũng được cung cấp, cùng với một sơ đồ đơn giản của thiết kế.
·        Thống kê thiết kế -Một bảng được trình bày trong phần này có chức các thiết lập được chỉ định trong khối System Generator để thiết kế kế thừa. Các cài đặt bao gồm:
o   Mục tiêu tổng hợp, cho việc biên soạn. Ví dụ: danh sách IP, HDL Netlist hoặc Hardware Co-simulatiuon.
o   Một phần mục tiêu Xinlix FPGA/Zynq
o   Công cụ tổng hợp – ví dụ: Vivado hoặc ISE
o   Triển khai đa phương thức – Phương pháp triển khai đa ngôn ngữ, ví dụ: clock enable
·        Công cụ: Danh sách các công cụ và các phiên bản của chúng được sử dụng để tạo ra thiết kế được cung cấp tại đây.
HDL Coder
Khi tạo ra một lõi IP từ một thuật toán MATLAB hoặc mô hình Simulink. HDL Coder cung cấp tùy chọn để tạo ra một báo cáo tạo mã HDL. Đây là một báo cáo của HTML bao gồm các phần sau:
·        Tóm tắt – Cung cấp ngắn gọn tổng quan về các cài đặt cơ bản sử dụng để tạo IP và thông tin trên IP được tạo. Thông tin được cung cấp ở đây bao gồm:
o   Tên và phiên bản lõi IP.
o   Thư mục mục tiêu .
o   Ngôn ngữ đích, ví dụ: VHDL, Verilog
o   Tên và phiên source model.

·        Cấu hình giao diện đích: Phần này chứa thông tin Chế độ đồng bộ hóa/ xử lý FPGA ( hoặc chạy tự do hoặc chạy đồng bộ ) và các giao diện khác nhau được chỉ định để tạo IP.
o   Port name – Tên của các cổng đầu vào, đầu ra của IP.
o   Loại Port. ví dụ: đầu vào, đầu ra.
o   Loại dữ liệu cổng – Loại dữ liệu này được sử dụng trong MATLAB/Simulink, ví dụ: ufix16_15, sfix12_11,…
o   Loại giao diện dựa trên nền tảng mục tiêu.  Ví dụ: AXI14-Lite, AXI4-Stream hoặc port ngoài.
o   Bit Range / Address / FPGA pin – Tùy thuộc vào lựa chọn cho các giao diện nền tảng đích, phần này chứa dải bit, địa chỉ của thanh ghi có thể truy cập bộ xử lý hoặc pin FPGA được chỉ định cho các cổng bên ngoài.

·        Ánh xạ địa chỉ thanh ghi – Tùy thuộc vào giao diện được chỉ định cho mô-đun IP, phần này chứa các chi tiết của bất kỳ thanh ghi có thể truy cập bộ xử lý nhúng nào trong thiết kế. Phần này bao gồm bất kì tên thanh ghi, số bù địa chỉ tương ứng của chúng từ địa chỉ cơ sở và mô tả ngắn gọn về hoạt động của chúng.

·        Hướng dẫn sử dụng lõi IP – Phần này cung cấp tổng quan ngắn gọn về hoạt động và kết nối của IP được tạo. Nó bao gồm 3 phần con:
o   Lý thuyết họat động – Cung cấp một cái nhìn tổng quan ngắn gọn về hoạt động của thiết bị, bao gồm điều khiển chủ- tớ của IP và các tín hiệu cho phép reset.
o   Processor / FPGA Synchronization - Một mô tả về chế độ đồng bộ hóa FPGA (chạy tự do hoặc đồng xử lý) được cung cấp ở đây, cũng như thủ tục đọc / ghi dữ liệu giữa lõi IP và bộ xử lý.
o   Môi trường tích hợp - Thông tin về cách tích hợp IP mới được tạo vào môi trường phát triển Xilinx được cung cấp tại đây.

·        Danh sách file lõi IP: Siêu liên kết đến các file khác nhau được tạo bởi HDL Coder được cung cấp ở đây cùng với siêu liên kết đến thư mục lõi IP.

Post a Comment: