IP BLOCK DESIGN (PHẦN 3)
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:
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.
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: