Giới thiệu công cụ Xlinx System Generator
- Xilinx là nhà phát triển hàng đầu hiện nay trong lĩnh vực chip khả trình. Được thành lập bởi Ross Freeman, Bernie Vonderschmitt, và Jim Barnett, và có trụ sở tại thung lũng Silicon. Trụ sở chính hiện nay ở San Jose , California. Là thành viên của nhóm 100 công ty hàng đầu thế giới hiện nay do tạp chí Fortune bình chọn.
- Xilinx là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong những ứng dụng truyền thông, tự động hóa, mật mã...và các lĩnh vực khác. Các sản phẩm phần cứng của Xilin gồm có các dòng CPLD: CoolRunner, các họ FPGA như Spartans, Virtex...
1. Xilinx System Generator
- Xilinx System Generator (XSG) [1] [3] là công cụ phát triển hệ thống cho FPGA, cho phép thiết kế hệ thống ở dạng các khối, và hỗ trợ mô phỏng, debug, tạo code để nạp vào FPGA hoặc kết hợp vào những ứng dụng lớn hơn.
Hình 1 mô tả quy trình chung cho việc thiết kế trên XSG.
- XSG được xây dựng như một Blockset của Simulink trong Matlab. Do đó, XSG thừa hưởng tất cả các ưu điểm của Simulink trong việc xây dựng hệ thống và mô phỏng. XSG còn sử dụng thư viện của Logic Core để xây dựng các block của mình. Trong thư viện của XSG có tất cả các khối thực hiện các chức năng từ cơ bản như cộng, trừ, nhân, các khối logic,...cho đến những thiết kế phức tạp hơn như các DSP, bộ lọc số, nhân chập, UART..., các bộ nhớ tích hợp: Single Port, DualPort Ram, FIFOs, các thanh ghi...
- XSG còn cho phép người thiết kế tạo ra các khối để thực hiện những nhiệm vụ riêng bằng khối Black Box, tại đây người thiết kế sẽ tạo ra các entity và cài mã của nó vào Black Box để tạo ra các thiết kế riêng của mình. Những thiết kế của XSG có thể được dịch ra nhiều kiểu dữ liệu, có thể thành file *.bit để nạp ngay vào phần cứng, hoặc thành các thiết kế để ghép vào một hệ thống lớn hơn. Với việc kết hợp với Mathwork để xây dựng XSG, Xilinx đã làm cho việc thiết kế hệ thống trên nền FPGA của mình trở nên thuận tiện và đơn giản hơn rất nhiều đối với người làm kỹ thuật. Trong đồ án này, chúng tôi đã sử dụng XSG để xây dựng toàn bộ phần thuật toán xử lý ảnh tách biên cho thiết kế của mình.
- XSG cung cấp 3 dạng dữ liệu số học được sử dụng nhiều nhất trong DSP: số phẩy động, số phẩy tĩnh có dấu và không dấu.
- Thư viện Simulink của XSG chứa 2 thư viện: Xilinx Blocksets và Xilinx Reference Blocksets. Trong đó thư viện “Xilinx Blocksets” chứa các khối chức năng đơn giản như: thanh ghi, bộ cộng, delay, các hàm toán học đơn giản, ROM, các bộ lọc FIR, bộ nhớ đệm FIFO, …. Thư viện “Xilinx Reference Blocksets” chứa các khối chuẩn, các khối này tương đối phức tạp và có thể sử dụng với các mục đích xác định khác nhau như: các bộ tính FFT, DFT, … các khối này đưa ra các sự trừu tượng số học, logic, bộ nhớ và xử lý tín hiệu phù hợp cho thực hiện các hệ thống DSP trong FPGA. Bổ sung vào thư viện này XSG còn cung cấp sự thực hiện từng hàm và phần mềm tạo mã dịch các hệ thống con mà đã kết hợp các khối XSG vào mô tả phần cứng của mô hình.
- XSG có 2 loại khối:
+ Khối bit-accurate: tạo ra giá trị trong Simulink phù hợp với giá trị chúng tạo ra trong phần cứng.
+ Khối cycle-accurate: tạo ra giá trị trong Simulink tương ứng tại các thời điểm tương ứng.
Hình 2 là một ví dụ về việc xây dựng module thực hiện hàm trị tuyệt đối trong Xilinx System Generator.
- Xilinx là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong những ứng dụng truyền thông, tự động hóa, mật mã...và các lĩnh vực khác. Các sản phẩm phần cứng của Xilin gồm có các dòng CPLD: CoolRunner, các họ FPGA như Spartans, Virtex...
1. Xilinx System Generator
- Xilinx System Generator (XSG) [1] [3] là công cụ phát triển hệ thống cho FPGA, cho phép thiết kế hệ thống ở dạng các khối, và hỗ trợ mô phỏng, debug, tạo code để nạp vào FPGA hoặc kết hợp vào những ứng dụng lớn hơn.
Hình 1 mô tả quy trình chung cho việc thiết kế trên XSG.
- XSG được xây dựng như một Blockset của Simulink trong Matlab. Do đó, XSG thừa hưởng tất cả các ưu điểm của Simulink trong việc xây dựng hệ thống và mô phỏng. XSG còn sử dụng thư viện của Logic Core để xây dựng các block của mình. Trong thư viện của XSG có tất cả các khối thực hiện các chức năng từ cơ bản như cộng, trừ, nhân, các khối logic,...cho đến những thiết kế phức tạp hơn như các DSP, bộ lọc số, nhân chập, UART..., các bộ nhớ tích hợp: Single Port, DualPort Ram, FIFOs, các thanh ghi...
- XSG còn cho phép người thiết kế tạo ra các khối để thực hiện những nhiệm vụ riêng bằng khối Black Box, tại đây người thiết kế sẽ tạo ra các entity và cài mã của nó vào Black Box để tạo ra các thiết kế riêng của mình. Những thiết kế của XSG có thể được dịch ra nhiều kiểu dữ liệu, có thể thành file *.bit để nạp ngay vào phần cứng, hoặc thành các thiết kế để ghép vào một hệ thống lớn hơn. Với việc kết hợp với Mathwork để xây dựng XSG, Xilinx đã làm cho việc thiết kế hệ thống trên nền FPGA của mình trở nên thuận tiện và đơn giản hơn rất nhiều đối với người làm kỹ thuật. Trong đồ án này, chúng tôi đã sử dụng XSG để xây dựng toàn bộ phần thuật toán xử lý ảnh tách biên cho thiết kế của mình.
- XSG cung cấp 3 dạng dữ liệu số học được sử dụng nhiều nhất trong DSP: số phẩy động, số phẩy tĩnh có dấu và không dấu.
- Thư viện Simulink của XSG chứa 2 thư viện: Xilinx Blocksets và Xilinx Reference Blocksets. Trong đó thư viện “Xilinx Blocksets” chứa các khối chức năng đơn giản như: thanh ghi, bộ cộng, delay, các hàm toán học đơn giản, ROM, các bộ lọc FIR, bộ nhớ đệm FIFO, …. Thư viện “Xilinx Reference Blocksets” chứa các khối chuẩn, các khối này tương đối phức tạp và có thể sử dụng với các mục đích xác định khác nhau như: các bộ tính FFT, DFT, … các khối này đưa ra các sự trừu tượng số học, logic, bộ nhớ và xử lý tín hiệu phù hợp cho thực hiện các hệ thống DSP trong FPGA. Bổ sung vào thư viện này XSG còn cung cấp sự thực hiện từng hàm và phần mềm tạo mã dịch các hệ thống con mà đã kết hợp các khối XSG vào mô tả phần cứng của mô hình.
- XSG có 2 loại khối:
+ Khối bit-accurate: tạo ra giá trị trong Simulink phù hợp với giá trị chúng tạo ra trong phần cứng.
+ Khối cycle-accurate: tạo ra giá trị trong Simulink tương ứng tại các thời điểm tương ứng.
Hình 2 là một ví dụ về việc xây dựng module thực hiện hàm trị tuyệt đối trong Xilinx System Generator.
Nhận xét
Đăng nhận xét