Học liệu

Quy trình thiết kế CPLD của hãng Xilinx

  • 18/05/2019
  • Học liệu

Gii thiệu:

Xilinx là hãng chuyên sản xuất các họ FPGA và CPLD, trong bài này tập trung vào việc lập trình trên CPLD của hãng Xilinx. Do đó, cần được trang bị những kiến thức cần thiết trong việc lựa chọn linh kiện sao cho phù hợp với yêu cầu, các qui trình để cấu hình và đổ chương trình vào CPLD của hãng Xilinx.

Mục tiêu:

-         Lựa chọn phương án thiết kế dùng CPLD và FPGA của Xilinx

-         Trình bày qui trình thiết kế cho CPLD của Xilinx

 Nội dung chính:

 1.     Phương án lựa chọn CPLD và FPGA

Mục tiêu: trình bày cho người học nắm rõ phương pháp phân tích để lựa chọn CPLD và FPGA phù hợp với từng ứng dụng cụ thể.

Khi phát triển các hệ thống số sử dụng CPLD/FPGA bước đầu tiên cần được thực hiện là phân tích bài toán, lựa chọn vi mạch CPLD hoặc FPGA phù hợp. Việc chọn được vi mạch, công nghệ phù hợp nhất cho các tiêu chuẩn thiết kế, được tiến hành theo các yêu cầu sau:

Mật độ: là mật độ logic dự tính của linh kiện, đặc trưng bởi khái niệm "số lượng cổng".

Số lượng thanh ghi: Phải tính được số thanh ghi cần cho bộ đếm, máy trạng thái, thanh ghi và bộ chốt. Số lượng macrocell trong vi mạch tối thiểu phải bằng số thanh ghi cần có.

Số lượng chân vào/ra: phải xác định vi mạch thiết kế cần bao nhiêu đầu vào, bao nhiêu chân đầu ra.

Yêu cầu về tốc độ: Tuyến tổ hợp nhanh nhất sẽ xác định tpd (trễ truyền trong vi mạch, tính theo ns). Mạch tuần tự nhanh nhất sẽ xác định tần số tối đa của vi mạch (fMax).

Đóng gói: Phải xác định vi mạch cần gọn nhất hay chỉ sử dụng dạng thông thường. Hoặc vi mạch thiết kế thuộc dạng có lắp chân cắm.

Công suất thấp: Phải xác định sản phẩm sẽ sử dụng nguồn pin hay năng lượng mặt trời,… thiết kế có yêu cầu công suất tiêu thụ thấp hay không, vấn đề tổn hao nhiệt có quan trọng hay không?

Chức năng cấp hệ thống: Phải xác định bo mạch có bao gồm nhiều vi mạch đa mức điện áp hay không, giữa các vi mạch có phải chuyển mức hay không, có yêu cầu sửa dạng xung clock hay không, có yêu cầu giao tiếp giữa bộ nhớ và bộ vi xử lý hay không?

2.     Qui trình thiết kế cho CPLD của hãng Xilinx:

Mục tiêu: trình bày cho người học nắm rõ qui trình thiết kế sử dụng CPLD của hãng Xilinx.

Quá trình thiết kế cho CPLD chủ yếu là thực hiện trên các công cụ phần mềm, lưu đồ thiết kế chung cho CPLD như hình 4.1 (sử  dụng phần mềm ISE), bao gồm các bước như sau:

Nhập thiết kế (Design Entry): Đây là bước đầu tiên và quan trọng nhất của quá trình thiết kế cho CPLD. Các công cụ thiết kế cho phép nhập thiết kế theo các cách sau:

  • Nhập thiết kế theo sơ đồ nguyên lý Schematic: người thiết kế sử dụng các module đã có sẵn trong thư viện Schematic để ghép nối chúng với nhau tạo thành bản thiết kế theo yêu cầu, cách này có thể thực hiện thiết kế nhanh nhưng sẽ rất khó khăn và không tối ưu tài nguyên của CPLD khi thiết kế phức tạp, và thiết kế không sử dụng sang công cụ thiết kế CPLD của các hãng khác. Từ sơ đồ nguyên lý thiết kế được công cụ phần mềm chuyển thành file ngôn ngữ mô tả phần cứng HDL, mà phổ biến là VHDL và Verilog HDL.
  • Nhập thiết kế sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL, Verilog, ABEL,…): người thiết kế có thể sử dụng chương trình soạn thảo để thực hiện việc mô tả toàn bộ bản thiết kế của mình dưới dạng ngôn ngữ HDL nào đó mà công cụ thiết kế có thể tổng hợp được. Có rất nhiều phương pháp mô tả, mức độ trừu tượng khác nhau khi thiết kế, mỗi cách mô tả khác nhau có thể tạo ra một cấu trúc mạch khác nhau trong CPLD mặc dù chúng có cùng chức năng.

Do đó, người thiết kế cần thực hiện phân tích bài toán, tìm hiểu tài nguyên, cấu trúc của CPLD, yêu cầu về thời gian thiết kế để sử dụng kiểu mô tả. Mức độ trừu tượng trong khi mô tả phù hợp vừa đảm bảo yêu cầu về thời gian thiết kế vừa tối ưu được việc sử dụng tài nguyên của CPLD.

  • Nhập thiết kế dưới dạng sơ đồ: Công cụ thiết kế còn cho phép nhập thiết kế vào dưới dạng sơ đồ, mà điển hình là đồ hình trạng thái, sau đó chúng cũng được chuyển sang HDL

Kiểm tra, mô phỏng thiết kế (Design Verification): thực hiện kiểm tra, mô phỏng chức năng hoạt động của thiết kế HDL đã được tạo ra ở trên. Các công cụ thiết kế đều hỗ trợ việc mô phỏng chức năng hoạt động của thiết kế HDL theo mô hình hoạt động, mô phỏng này độc lập với loại CPLD đã được lựa chọn. Bước này có thể không cần phải thực hiện trong khi thiết kế.

Tổng hợp thiết kế (Design Synthesis): sau khi hoàn thành mô phỏng thiết kế, bước tổng hợp tiếp theo có nhiệm vụ chuyển thiết kế dưới dạng file văn bản HDL thành dạng file nestlist thực hiện mô tả mạch thực ở mức thấp dưới dạng cổng logic và kết nối giữa chúng với nhau. Có thể sử dụng các công cụ tổng hợp của các hãng khác nhau.

Mỗi công cụ có thể tạo ra file netlist theo định dạng riêng, nhưng có thể đặt lựa chọn để tạo ra file netlist dưới dạng định dạng chuẩn EDIF (Electronic Digital Interchange Format) mà tất cả các công cụ có thể hiểu được.

undefined

Hình 1: Lưu đồ thiết kế cho CPLD của hãng Xilinx

Thực thi thiết kế (Design Implementation): sau khi có file netlist, bước tiếp theo là thực thi thiết kế, nghĩa là xây dựng cấu hình cho CPLD. Bước này sử dụng file netlist và file ràng buộc “constraints File” (file mô tả các nguyên tắc thiết kế, các ràng buộc về tốc độ, thời gian,…) để tạo thiết kế sử dụng tài nguyên có sẵn của CPLD. Bước này bao gồm các bước: Translate (biên dịch), Map (phân bố bản thiết kế vào chip), Place and Route (Định vị và định tuyến).

  • Translate: Bước này nhằm thực hiện kiểm tra thiết kế và đảm bảo netlist phù hợp với kiến trúc đã chọn, kiểm tra file ràng buộc "constraints File" của người sử dụng để phát hiện các lỗi mâu thuẫn với tham số của chip đã chọn. Biên dịch thường bao gồm các quá trình: tối ưu hoá, biên dịch thành các thành phần vật lý của thiết bị, kiểm tra ràng buộc thiết kế. Khi kết thúc bước biên dịch, sẽ có một bản báo cáo về các chương trình được sử dụng, danh sách các cổng I/O và các thiết bị được sử dụng trong thiết kế, nhờ đó người thiết kế sẽ lựa chọn được phương án thiết kế tối ưu.
  • Map: tạo bản phân bố thiết kế tới các tài nguyên cụ thể trong CPLD. Nếu thiết kế quá lớn so với thiết bị được chọn, quy trình này không thể hoàn thành nhiệm vụ của mình. Quá trình Map có các tham số ràng buộc của thiết kế, ví dụ như tham số tốc độ, thời gian của thiết kế, và đôi khi quyết định gắn thêm các thành phần logic để đáp ứng các yêu cầu  về thời gian. Map có khả năng thay đổi thiết kế xung quanh các bảng ánh xạ để tạo khả năng thực hiện tốt nhất cho thiết kế. Quy trình này được thực hiện hoàn toàn tự động và cần rất ít tác động đầu vào từ người sử dụng.  Bước này nhằm đưa mạch thiết kế vào một thiết bị cụ thể. Bước này cũng tạo ra báo cáo xác nhận các tài nguyên được sử dụng trong chip, mô tả chính xác các phần trong thiết kế được đặt ở vị trí nào trong chip thực tế.
  • Place and Route (PAR - Định vị trí và định tuyến kết nối): Place là quá trình lựa chọn vị trí phù hợp của mỗi khối chức năng trong thiết kế và đưa các cổng logic của phần đó vào các khối logic hay các module cụ thể trong CPLD trên cơ sở tối ưu việc kết nối và đảm bảo các ràng buộc về thời gian. Những phần logic hoạt động tốc độ cao sẽ được xếp cạnh nhau để giảm độ dài đường kết nối. Route là quá trình tạo liên kết vật lý giữa các khối logic. Hầu hết các nhà sản xuất cung cấp công cụ Place and Route tự động cho người sử dụng. Ngoài công cụ tự động, người thiết kế có thể tự Place and Route trong khi thiết kế. Nhà sản xuất cũng cung cấp các công cụ, như “Floorplanner”, để nâng cao hiệu suất quá trình Place and Route do người thiết kế thực hiện so với quá trình tự động.

Place and Route là quá trình phức tạp, do  đó nó chiếm thời gian nhiều nhất. Tuy nhiên, bước này chỉ có thể hoạt động tốt nếu chip đã chọn đáp ứng đủ các tuyến liên kết cho thiết kế. Nếu không, người thiết kế sẽ phải chọn chip có dung lượng lớn hơn.

Timing Simulation (Mô phỏng có tham số thời gian): Sau bước Place and Route người thiết kế có thể thực hiện mô phỏng thiết kế ở mức cổng logic đã được định vị trí và định tuyến trên CPLD, để thực hiên mô phỏng hoạt động của thiết kế mà có tính đến các tham số thời gian trễ, thời gian thiết lập,… của các cổng logic trong CPLD. Bước này rất quan trọng với những thiết kế phức tạp, tốc độ lớn.

Configuration (Cấu hình): Gọi chương trình điều khiển việc nạp cấu hình, thực hiện kết nối thiết bị nạp (cáp nạp) đến CPLD và nạp file cấu hình cho CPLD. Với CPLD của hãng Xilinx, quá trình lập trình có thể thực hiện ngay trong hệ thống nhờ công cụ JTAG, hoặc sử dụng bộ lập trình thiết bị chuyên dụng, ví dụ như công cụ JTAG Data I/O, theo chuẩn IEEE/ANSI 1149.1_1190. Công cụ JTAG là một bộ các nguyên tắc thiết kế, hỗ trợ quá trình kiểm tra, lập trình cho thiết bị và gỡ rối trên chip, trên bo mạch và trên hệ thống. Khả năng lập trình trên hệ thống là ưu điểm của CPLD, cho phép hàn trực tiếp thiết bị lên PCB. Nếu có thay đổi trong thiết kế, sẽ không phải tháo thiết bị ra khỏi bo mạch, mà đơn giản chỉ phải lập trình lại trên hệ thống.

 

Các tin khác