Monday, June 11, 2018


IP BLOCK DESIGN (PHẦN 2)

1. Xu hướng và triết lý ngành.

Trong những năm gần đây, với nhu cầu các SOC phức tạp tăng trưởng đều đặn, các nhà thiết kế hệ thống đang buộc phải kết hợp ngày càng nhiều IP vào sản phẩm của họ . Với các hệ thống phức tạp hơn, điều này có thể làm gia tăng hàng trăm lõi IP riêng lẻ. Với nhiều phần IP riêng biệt này trong sản phẩm, khả năng quản lý từng khối riêng lẻ trở nên khó khăn hơn nhiều. Giải pháp cho vấn đề này là kết hợp các lõi IP của một chức năng quan trọng để tạo ra một hệ thống IP con duy nhất.
Hình 1: Hệ thống IP con Video
Một ví dụ điển hình về một hệ thống IP con là một kênh xử lý video riêng lẻ - video vào, chỉnh sửa pixel, khối giảm tiếng ồn – được kết hợp với nhau để tạo ra một hệ thống IP video con duy nhất có thể tích hợp vào thiết kế  hệ thống nhúng dưới dạng một khối IP đơn riêng lẻ thay vì 6 lõi IP riêng.

2. Phương pháp thiết kế lõi IP
Bây giờ chúng ta đã giới thiệu khái niệm về các lõi IP và các kiểu IP có sẵn, chúng ta sẽ xem xét các cách khác nhau mà chúng ta có thể tạo ra IP của riêng mình. Xilinx cung cấp một số công cụ cho phép tạo các khối IP tùy chỉnh để sử dụng các thiết kế hệ thống nhúng của riêng bạn.

2.1. HDL
Các ngôn ngữ mô tả phần cứng, chẳng hạn như VHDL và Verilog, là các ngôn ngữ lập trình chuyên dụng được sử dụng để mô tả hoạt động và cấu trúc các mạch điện tử kỹ thuật số. Khả năng tạo lõi IP trong HDL cho phép bạn kiểm soát tối đa các chức năng của thiết bị ngoại vi. Nếu bạn đã có thiết kế HDL hiện tại, khả năng biến nó thành lõi IP cho phép bạn tận dụng lợi thế của các lợi ích của mô-dun IP mà không phải thiết kế lại hoặc sử dụng tương ứng của bên thứ ba.

Khi thiế kế các lõi IP trong HDL để giao tiếp thông qua giao diện AXI, phải cẩn thận để tuân thủ các quy ước đặt tên tín hiệu ngoại vi IP Xagerx. Tệp HDL cấp cao nhất cho lõi IP xác định giao diện thiết kế, liệt kê các kết nối và cổng mặc định cho giao diện bus. Nó cũng liệt kê bất kỳ generics nào và chỉ định các giá trị mặc định của chúng.

Một ví dụ về phân cấp file nguồn ngoại vi HDL:
<peripheral> là tên của IP được tạo.
<Version> là phiên bản hiện tại, tức là v1_0
<AXI_instance> ví dụ như giao diện AXI4 chủ(M) hoặc tớ(S) tức là M00_AXI hoặc S00_AXI.
(Có thể có nhiều trường hợp khác trên mỗi thiết bị ngoại vi)

Hạn chế lớn nhất để tạo IP trong HDL, là các thiết kế phức tạp đòi hỏi kỹ sư có kinh nghiệm để tạo ra một giải pháp tối ưu. Quá trình này có thể rất tốn thời gian tiếp cận thị trường lớn hơn. Tuy nhiên, khi tìm kiếm IP yêu cầu thời gian hoặc hạn chế phần cứng rất chặt chẽ, hoặc nếu chức năng phức tạp, HDL thường là lựa chọn tốt nhất.

2.2 Trình tạo hệ thống (System Generator)
System Generator, thường được sử dụng cho thiết kế DSP, là một công cụ thiết kế sử dụng Mathworks Simulink nền tảng cho thiết kế hệ thống FPGA. Nó cung cấp một môi trường dựa trên mô hình cao cấp để tạo ra phần cứng.

Với sự ra đời của Vivado Design Suite vào danh mục sản phẩm Xilinx, một sản phẩm mới mục tiêu biên dịch đã được giới thiệu với System Generator. Trình biên dịch IP Packager cho phép bạn đóng gói thiết kế System Generator thành một mô-đun IP có thể được đưa vào danh mục IP của Vivado. Sau đó, thiết kế System Generator có thể được sử dụng như bất kỳ mô-đun nào khác từ danh mục IP và được đưa vào thiết kế người dùng Vivado. Hơn nữa, System Generator được tích hợp hoàn toàn vào dòng thiết kế Vivado, cho phép tạo khối IP tích hợp IP trực tiếp từ Vivado.

Trước tiên, System Generator sẽ tạo một HDL Netlist từ mô hình được người dùng thiết kế . Bất kỳ mô đun IP Vivado  sẽ tự động sao chép sang thư mục con có tên “IP”, trước khi tất cả các tệp thiết kế RTL và tệp thiết kế Vivado IP được đóng gói thành tệp ZIP, được đặt trong thư mục con có tên “ip_packager”.

Các file tài liệu Testbench và HTML cũng có thể tạo tự động bởi công cụ biên dịch danh mục IP.File Testbench cho phép IP được mô phỏng đầy đủ từ một dự án IDE Vivado. File tài liệu bao gồm thông tin về IP và cách nó giao tiếp trong Vivado.

System Generator cung cấp một môi trường trực quan cho việc thiết kế IP, nơi các khối có thể được kết nối với nhau để tạo ra các thiết kế một cách nhanh chóng và dễ dàng. Một số lượng lớn các khối có sẵn từ các toán tử toán học đơn giản đến các phép toán DSP phức tạp. Chức năng không phải lúc nào cũng được triển khai ở dạng dễ đọc nhất trong mã HDL và điều này có thế làm cho một số thiết kế khó theo dõi. Tùy thuộc vào các tùy chọn được chọn trong thiết kế System Generator, việc triển khai IP có thể không hiệu quả như khi mã hóa bằng tay trong HDL.

2.3 HDL Coder
HDL coder là một công cụ từ MathWorks cho phép tổng hợp code HDL (cả VHDL và Verilog) từ các hàm MATLAB/Simulink và tự động chuyển đổi hệ thống từ điểm động thành điểm cố định, cung cấp mức trừu tượng cao. Điều này cho phép người dùng tập trung vào việc phát triển các thuật toán và mô hình mà không có sự phức tạp cấp thấp hơn của thiết kế HDL.

Dòng công việc HDL Coder cũng cung cấp các công cụ để xác minh code HDL, cho phép code HDL được tạo ra và kiểm tra cùng với mô hình gốc MATLAB/Simulink. Điều này cho phép bất kỳ lỗi nào có thể có trong code HDL dễ dàng xác minh và sửa chữa.

Tối ưu hóa code HDL được cung cấp trong luồng công việc chỉ định tùy chọn các thiết bị FPGA nhằm kiểm soát số lượng hơn việc thực hiện cho phép bạn làm nổi bật các đường dẫn quan trọng, kiểm soát kiến trúc HDL và tạo ra dự toán sử dụng tài nguyên phần cứng.

Khi được tạo bởi HDL Coder, mã HDL có thể được sử dụng để tạo lõi IP theo cách tương tự như được nêu chi tiết trong Phần 2.1.

Hình 3: HDL Coder
Trong khi HDL Coder cho phép bạn tạo IP từ các mô hình MATLAB/Simulink hiện có một cách nhanh chóng và với những thay đổi thiết kế tối thiểu, có một số nhược điểm. Hiện tại, không phải tất cả các chức năng MATLAB và các khối Simulink đều hỗ trợ việc tạo HDL. Điều này có nghĩa là một số chức năng có thể phải được làm lại với các chức năng hoặc khối được hỗ trợ. Một điểm đáng lưu ý nữa là, mặc dù một số lượng tùy chỉnh về triển khai phần cứng và tối ưu hóa, nhưng mã HDL được tạo có thể không hiệu quả như được tạo từ HDL được mã hóa bằng tay. Mã được tạo đôi khi có thể phức tạp để theo dõi về khả năng đọc và trong một số trường hợp khó tùy chỉnh.

Post a Comment: