Chức năng đầu tiên đó chính là định nghĩa và tạo ra phần cứng hệ thống. SoPC Builder cho phép người thiết kế dễ dàng tạo ra các SoPC nhờ giao diện thân thiện và gần gũi. Với giao diện này, người thiết kế có thể thêm, cấu hình và kết nối các các thành phần với nhau để tạo thành hệ thống hoàn chỉnh. Sau khi đã được thiết lập thông số và thêm các thành phần vào hệ thống, SoPC Builder sẽ tạo ra các đường kết nối bên trong giữa các thành phần và xuất ra tập tin HDL. Trong quá trình tạo ra hệ thống, SoPC Builder sẽ tạo ra các tập tin sau :
Tập tin HDL cho top-level của hệ thống SoPC Tập tin Synopsis Design Constraints (.sdc)
Block Symbol File (.bsf) và Block Diagram File (.bdf)
Tập tin định địa chỉ vùng nhớ và tập tin driver cho vi xử lý Nios
Tập tin testbench của Nios và tập tin project dùng cho mô phỏng trên ModelSim
Tập tin chứa thông tin về hệ thống SoPC (.sopcinfo) chứa tất cả các dữ liệu về thành phần cũng như các kết nối trong hệ thống. Tập tin này là sự mô tả về hệ thống hoàn chỉnh nhất.
Sau khi đã tạo ra một SoPC, người thiết kế có thể biên dịch tất cả bằng phần mềm Quartus II trước khi cấu hình xuống chip FPGA.
Chức năng kế tiếp đó chính là định địa chỉ vùng nhớ và các thành phần trong hệ thống. Một khi hệ thống SoPC có cả vi xử lý Nios, SoPC Builder sẽ tạo ra một tập tin header để cung cấp địa chỉ cho mỗi giao tiếp Avalon của các thành phần trong hệ thống. Người thiết kế có thể tùy chọn giữa giải mã địa chỉ tự động hay
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
giải mã địa chỉ bằng tay. Hình 2.4 là một ví dụ về khối giải mã địa chỉ với 1 thành phần đóng vai trò master và 2 thành phần đóng vai trò slave.
Hình 2.4 : Giải mã địa chỉ với 1 master và 2 slave
Hình 2.5 là giao diện của SoPC Builder khi giải mã địa chỉ. Địa chỉ gốc (base address) sẽ được hiển thị ở cột Base. Vùng địa chỉ được phân cho một thành phần trong hệ thống SoPC được hiển thị ở hai cột Base và End với Base là địa chỉ đầu và End là địa chỉ cuối.
Hình 2.5 : Giao diện của SoPC Builder trong giải mã địa chỉ
Khi thiết kế SoPC đòi hỏi phải có vùng nhớ để chứa mã lệnh và dữ liệu để cho vi xử lý hoạt động. Trong các hệ thống xử lý ảnh, vùng nhớ dành cho dữ liệu ảnh cần phải rất lớn. Ví dụ để xử lý 1 ảnh gray-scale có độ lớn 320 x 240 pixel với mỗi pixel cần 8 bit, như vậy ta phải cần một vùng nhớ khoảng 77 Kilo Byte chỉ để lưu trữ 1 ảnh. Mà ta phải có một ảnh đầu vào và một ảnh sau khi xử lý xong, vậy hệ thống xử lý ảnh cần phải có tối thiểu 77 Kilo Byte x 2 = 154 Kilo
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
Byte bộ nhớ để xử lý. Trong xử lý video thì vùng nhớ này càng cần phải lớn hơn nữa. Điều này đòi hỏi cần phải có một bộ nhớ dung lượng lớn để chứa dữ liệu ảnh. Mà bộ nhớ on-chip không thể đáp ứng được yêu cầu này, do đó cần phải sử dụng các bộ nhớ off-chip (SRAM - SDRAM).
Để giao tiếp với bộ nhớ off-chip ta cần phải có các bộ điều khiển bộ nhớ (memory controller). Hình 2.6 là mô hình giao tiếp giữa Avalon Bus và một bộ nhớ bất đồng bộ. Sau đây là sự so sánh giữa 2 loại bộ nhớ :
Đặc tính của on-chip memory: • - Tốc độ xử lý nhanh hơn off-chip • - Giá thành cao, khó cải tiến.
Đặc tính của off-chip memory: • - Giá thành rẻ
• - Tốc độ xử lý chậm hơn on-chip
• - Là nơi chứa dữ liệu tạm thời của các thành phần xử lý
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
Chức năng cuối cùng đó là tạo ra mô hình mô phỏng và tập tin testbench. Việc này giúp cho việc thiết kế hệ thống dễ dàng hơn khi chạy mô phỏng để tìm lỗi và khắc phục. Với tập tin testbench, người thiết kế có thể chạy mô phỏng trên phần mềm ModelSim của hãng Mentor Graphics một cách dễ dàng.