Khối điều chỉnh xung nhịp đồng bộ

Một phần của tài liệu tìm hiểu và xây dựng ứng dụng trên kit fpga (Trang 30)

Digital Clock Manager (DCM) là một khối đặc biệt trong FPGA có nhiệm vụ điều chỉnh và tạo ra xung nhịp đồng bộ (Clock) theo những yêu cầu cụ thể của bài toán. DCM có cấu tạo không đơn giản và có số lượng hạn chế (2-4 DCM trong Spartan 3E). 3 thao tác chính mà khối DCM có thể thực hiện là:

- Loại bỏ độ trễ giữa các xung Clock ở các vị trí khác nhau (Clock Skew Elimination). Xung đồng bộ gửi tới các thành phần khác nhau trong FPGA có thể không đến đồng thời do sự khác biệt về tải đường truyền. DCM có khả năng tăng các giá trị Thold, Tsetup của xung đồng bộ và thời gian từ điểm kích hoạt cho tới khi đầu ra ổn định Tclk_q để ―đồng nhất‖ các xung đồng bộ. Trong các bài toán đòi hỏi làm việc với tần số cao thì đây là một trong những thao tác không thể bỏ qua.

- Tổng hợp tần số (Frequency Synthesis): Tổng hợp tần số ở đây bao gồm nhân và chia tần số, với tần số cố định đầu vào DCM có thể thực hiện thao tác nhân tần số với 1 số M, chia cho một số D hoặc đồng thời nhân và chia M/D. Đây là một khả năng đặc biệt quan trọng cho những bài toán yêu cầu tần số làm việc là cố định như điều khiển VGA, DAC, ADC, LCD…

31 - Dịch pha (Phase shifting) Dịch pha của xung nhịp đồng bộ đi 0, 90, 180, hoặc

270 độ.

Hình 2.22. Sơ đồ khối DCM

Khối DCM được cấu tạo từ 4 khối chính, khối dịch pha PhS (Phase shifter), khối lặp khóa pha DLL (Delay Locked Loop), khối tổng hợp tần số DFS (digital Frequency Synthesis) và khối Trạng thái logic của DCM.

32

Chương 3: Quy trình thiết kế bằng ISE

Một trong những yếu tố góp phần vào sự thành công của FPGA phải kể đến là có một quy trình thiết kế đơn giản, hoàn thiện được thực hiện bằng các bộ phần mềm chuyên dụng. Các phần mềm này được tích hợp nhiều các thuật toán xử lý tối ưu khác nhau nhằm tăng tính tự động hóa cho quy trình thiết kế. Trong đề tài này tập trung tìm hiểu phần mềm thiết kế FPGA băng Xilinx ISE (Integrated Software Enviroments).

Có một số điểm khác nhau cho từng loại FPGA hay cho FPGA của từng hãng nhưng quy trình thiết kế IC số sử dụng FPGA chung đều có thể chia thành năm bước thể hiện ở sơ đồ dưới đây:

33 3.1 Idea Design

Để thiết kế một con chip, người thiết kế cần có ý tưởng một cách chính xác những gì con chip đó sẽ hoạt động. Tất cả các bước thiết kế tiếp theo luôn phải đảm bảo ý tưởng thiết kế đúng như ban đầu.

3.2 Specifications – Sự chỉ định rõ

Đây là bước đầu tiên để biến ý tưởng vào trong một con chip. Specifications chỉ ra những mục đích cụ thể của thiết kế:

 Mục đích và những ràng buộc của thiết kế.  Chức năng của chip.

 Hiệu suất của chip như tốc độ và năng lượng tiêu thụ.  Những ràng buộc về công nghệ như kích thước (ASIC)  Công nghệ sản xuất và kĩ thuật thiết kế (ASIC)

Trong bước này cũng chỉ rõ kiểu kiến trúc mà người thiết kế mong muốn như RISC/CISC, ALU, pipelining… để dễ dàng cho việc thiết kế một hệ thống phức tạp, người ta thường chia nhỏ thiết kế thành nhiều khối nhỏ. Chức năng của các khối này cũng được chỉ định rõ. Đồng thời, mối quan hệ giữa các khối với nhau và với toàn bộ hệ thống cũng được xác định cụ thể.

3.3 RTL

Khi toàn bộ hệ thống đã được chỉ định rõ, thiết kế cần phải được thực thi. Thiết kế được thực thi bằng diễn tả logic (Boolean Expressions), máy biến trạng thái (Finite State Machines), mạch tổ hợp (Combinational), mạch tuần tự ( Sequencial), Schematic… Bước này được gọi là Logic Design/RTL Design (Register Transfer Level). RTL về cơ bản mô tả các khối nhỏ trong hệ thống. RTL thường được miêu tả bằng Verilog hoặc VHDL, được gọi là ngôn ngữ mô tả phần cứng (Hardware Description Languages). HDL được dùng để mô tả hệ thống số như một vi xử lý, bộ nhớ hay một flip flop đơn giản. Điều này có nghĩa là, bằng cách sử dụng ngôn ngữ mô tả phần cứng, ta có thể mô tả một phần cứng (digital) bất kì, tại bất kì mức nào. Funtional/ Logical Verification là công đoạn để dảm bảo rằng RTL design đúng với mục đích thiết kế ban đầu.

Bên cạnh dạng mô tả HDL của người dùng thì có dạng mô tả HDL thứ hai sử dụng các khối thiết kế có sẵn. Loại mô tả này có hai dạng, thứ nhất là các khối thiết kế được định nghĩa trong thư viện UNISIM của Xilinx. Khi muốn cài đặt các khối này thì phải khai báo thêm thư viện Unisim ở đầu thiết kế:

library UNISIM;

34 Một số khối thiết kế điển hình là các LUT, thanh ghi dịch, Block RAM, ROM, DCM…có thể tìm thấy trong Language template của ISE, các khối này gọi chung là các phần tử cơ bản của FPGA (FPGA primitives), đặc điểm của các khối này là phụ thuộc vào đối tượng FPGA cụ thể.

Hình 3.2. Các dạng mô tả thiết kế trên FPGA

Ngoài FPGA primitives thì ISE cho phép người dùng sử dụng một số khối thiết kế sẵn ở dạng IPCore (Intellectual Property core). IP core là các khối thiết kế sẵn có đăng ký sở hữu trí tuệ và thường là các thiết kế khá phức tạp ví dụ như các khối FIFO, khối làm việc với số thực (Floating Point Unit), khối chia, các khối CORDIC, các khối giao tiếp Ethernet, PCI EXPRESS, SPI, các khối xử lý số tín hiệu… Trong khuôn khổ chương trình học thì việc sử dụng này là được phép tuy vậy nếu muốn sử dụng các khối này với mục đích tạo ra sản phẩm ứng dụng thì cần xem xét kỹ vấn đề bản quyền. Với sự hỗ trợ phong phú của các IP Cores này cho phép thực hiện những thiết kế lớn và hữu dụng trên FPGA. Lưu ý là khi sử dụng các khối này thì phần thiết kế HDL thực sự cũng bị ―giấu đi‖ mà chương trình chỉ cung cấp các mã đã biên dịch và mô tả giao diện (wrapper file) của IPCore được sử dụng.

3.4 Synthesis

Công cụ Synthesis lấy file RTL cùng với thư viện chuẩn để tạo ra một file neslist. Quá trình tổng hợp FPGA (FPGA Synthesis) bằng chương trình ISE bao

35 Hình 3.3. Tổng hợp thiết kế FPGA trên Xilinx ISE

Check Syntax & Synthesis: Trước khi thiết kế được tổng hợp thì mã nguồn VHDL được biên dịch và kiểm tra trước. Nếu xuất hiện lỗi cú pháp ở mã nguồn thì qua trình tổng hợp sẽ dừng lại. Nếu mô tả VHDL không có lỗi thì chuyển sang bước thứ hai là tổng hợp (synthesis). Tổng hợp thiết kế là chuyển mô tả tử mức trừu tượng cao (con người có thể đọc hiểu) xuống mức trừu tượng thấp hơn (máy tính mới có khả năng đọc hiểu). Đối với FPGA quá trình tổng hợp logic là quá trình biên dịch từ mô tả chức năng sang mô tả cổng (netlist). Mô tả cổng bản chất vẫn là các mô tả VHDL nhưng sử dụng các phần tử của FPGA, hiểu một cách khác nếu mô tả chức năng là sơ đồ nguyên lý thì mô tả netlist là sự chi tiết hóa sơ đồ nguyên lý. Có thể so sánh mã dưới dạng Netlist như mã Assembly của chương trình gốc mô tả bằng các ngôn ngữ lập trình bậc cao C/C++, Pascal, Basic...

Các mã nguồn VHDL đƣợc chia thành hai dạng là tổng hợp được (Synthesizable code) và không tổng hợp được (Simulation-only code), việc phân biệt hai dạng mã nguồn này được ISE làm tự động. Khi cố tình tổng hợp một cấu trúc chỉ dùng cho mô phỏng thì sẽ gây ra lỗi. Người thiết kế vì vậy ngoài việc đảm bảo chức năng làm việc đúng cho mạch còn luôn phải đảm bảo rằng những cấu trúc viết ra là những cấu trúc có thể tạo thành mạch thật nghĩa là tổng hợp được. (adsbygoogle = window.adsbygoogle || []).push({});

Kết xuất mô tả netlist: mô tả netlist là mô tả VHDL của thiết kế nhưng được ánh xạ lên thư viện phần tử logic của FPGA. Mô tả netlist là dạng mô tả ở mức cổng vì vậy không mô tả trực quan được chức năng của vi mạch mà chỉ thể hiện được cấu trúc của mạch, trong đó các khối con (components) là các phần tử cơ bản được mô tả trong thư viện UNISIM của FPGA.

Netlist có thể không phản ánh đúng bản chất thực tế của mạch mà mô tả này này chỉ sử dụng để kiểm tra lại chức năng của vi mạch sau khi ánh xạ lên thư viện phần tử FPGA. Việc kiểm tra này được thực hiện giống như kiểm tra mô tả VHDL ban đầu, tức là có thể dùng bất kỳ chương trình mô phỏng logic nào mà hỗ trợ thư viện UNISIM.

36 Create Technology schematic (Sơ đồ công nghệ chi tiết) Sau khi tổng hợp chương trình cũng cho phép kết xuất sơ đồ công nghệ chi tiết của thiết kế mà bản chất là mô tả trực quan bằng hình ảnh của netlist, ví dụ một sơ đồ công nghệ chi tiết ở hình sau:

Hình 3.4. Schematic tổng hợp được trên ISE

Việc so sánh sơ đồ này với sơ đồ nguyên lý ở bước ban đầu cho phép kiểm tra trực quan sơ bộ việc thực hiện đúng sơ đồ nguyên lý của mô tả VHDL.

Create RTL schematic (Sơ đồ logic chi tiết) Sơ đồ logic chi tiết là sơ đồ thể hiện chức năng của thiết kế sử dụng các cổng logic chuẩn như AND, OR, NOT, FFD thay vì sử dụng các phần tử chuẩn của FPGA, sơ đồ này vì thế không phụ thuộc vào đối tượng công nghệ cụ thể.

37 3.5 Physical Implementation – Hiện thực hóa thiết kế

File neslist được chuyển thành dạng mô tả hình học. Physical Implementation gồm có 3 bước: Floor planning->Placement->Routing.

Place and Routing

Placing & Routing (PAR) là quá trình ánh xạ những khối logic đã được phân chia ở phần Maping sang những khối logic (LUT, IOBUF…) có vị trí cụ cụ thể trên FPGA và kết nối chúng lại với nhau thông qua khối tài nguyên kết nối. Người thiết kế có thể can thiệp vào quá trình này bằng FPGA editor, một công cụ giao diện đồ họa tích hợp trong ISE, nhưng trên thực tế thì quá trình này thƣờng thực hiện hoàn toàn tự động bằng công cụ PAR (Place and Route).

Hình 3.6. Phân bố và kết nối

Placing: Ở bước này PAR lựa chọn các khối logic chức năng cụ thể phân bố trên FPGA để gán cho các khối chức năng trên mô tả thiết kế, việc lựa chọn dựa trên các tiêu chí như nguồn tài nguyên, độ dài kết nối, điều kiện ràng buộc trong PCF file… Quá trình này thực hiện thông qua một số pha, kết thúc mỗi pha thì thiết kế được tối ưu thêm một mức, kết thúc Placing một kết quả NCD mới được tạo ra.

Routing: là quá trình tiến hành sử dụng các tài nguyên kết nối (interconnects), các kết nối được thực hiện nhằm đạt thời gian trễ thấp nhất có thể, khi kết nối PAR sẽ phải quan tâm tới thông tin trong PCF file. Quá trình này cũng được thực hiện thành

38 nhiều pha, ở mỗi pha một file NCD mới sẽ được lưu lại nếu như có được sự tối ưu về thời gian so với phương án trước đó.

Floorplaning: Là quá trình cho phép người thiết kế sử dụng FPGA editor để can thiệp vào quá trình Placing và Routing, bước này có thể làm trước hoặc sau các bước của PAR.

3.6 FPGA test

Thiết kế trên FPGA có thể được kiểm tra ở nhiều mức khác nhau về cả chức năng lẫn về các yêu cầu khác về mặt tài nguyên hay hiệu suất làm việc.

Hình 3.7. Kiểm tra thiết kế FPGA 3.6.1 Kiểm tra bằng mô phỏng

Các công cụ mô phỏng có thể dùng để mô phỏng chức năng (Functional Simulation) của mạch thiết kế và mô phỏng về mặt thời gian (Timing simulation). Kiểm tra có thể được thực hiện từ bước đầu tiên của quá trình thiết kế (mô tả VHDL) cho tới bước cuối cùng (PAR).

3.6.2 Phân tích tham số thời gian tĩnh

Phân tích thời gian tĩnh (Static timing analysis) cho phép nhanh chóng xác định các tham số về mạch thời gian sau quá trình Place & Routing, kết quả của bước kiểm tra này cho phép xác định có hay không các đường truyền vi phạm các điều kiện ràng buộc về mặt thời gian, chỉ ra các đường gây trễ vi phạm để người thiết kế tiến hành những thay đổi để tối ưu mạch nếu cẩn thiết.

3.6.3 Kiểm tra trực tiếp trên mạch

Kiểm tra trực tiếp trên mạch (On-circuit Testing) là quá trình thực hiện sau khi cấu hình FPGA đã đƣợc nạp vào IC, đối với những thiết kế đơn giản thì mạch đƣợc nạp có thể được kiểm tra một cách trực quan bằng các đối tượng như màn hình, LED, switch, cổng COM.

Với những thiết kế phức tạp Xilinx cung cấp các công cụ phần mềm kiểm tra riêng. ChipScope là một phần mềm cho phép kiểm tra trực tiếp thiết kế bằng cách nhúng thêm

39 vào trong khối thiết kế những khối đặc biệt có khả năng theo dõi giá trị các tín hiệu vào ra hoặc bên trong khi cấu hình được nạp và làm việc. ChipScope sử dụng chính giao thức JTAG để giao tiếp với FPGA. Việc thêm các khối gỡ rối vào trong thiết kế làm tăng kích thước và thời gian tổng hợp thiết kế lên đáng kể. Chi tiết hơn về cách sử dụng Chipscope Pro có thể xem trong tài liệu hướng dẫn của Xilinx.

40

Chương 4:Thiết kế một số ứng dụng cơ bản

Sơ đồ một khối thiết kế chuẩn trên FPGA có thể chia thành các khối chính nhuw hình vẽ sau:

41 Hình 4.2. Sơ đồ mạch thí nghiệm FPGA

Trong mạch sử dụng IC FPGA Spartan 3E XCS500K, Flash ROM XFC04 với 4M cho lưu trữ cố định cấu hình. Mạch được nạp thông qua giao thức chuẩn JTAG. Các ngoại vi hỗ trợ bao gồm: Khối tạo xung nhịp tần số 48Mhz, Hệ thống các 7 phím ấn đa chức năng, 2 khối Switch 8-bit, 2 khối Led 8-bit, Led 7 đoạn với có khả năng hiển thị 4 ký tự số, 2 cổng giao tiếp PS/2, cổng giao tiếp RS232, cổng giao tiếp USB-RS232, cổng giao tiếp VGA, màn hình LCD1602A hiển thị các ký tự văn bản, cổng giao tiếp CAN, cổng giao tiếp Ethernet, khối AD/DA sử dụng IC PCF8591. Mạch dùng một nguồn ngoài duy nhất 5V với dòng tối thiểu 1A. (adsbygoogle = window.adsbygoogle || []).push({});

Khái niệm về VGA

VGA (hay Video Graphics Array) là một chuẩn hiển thị trên màn hình máy tính được

giới thiệu năm 1987 từ phía IBM cùng với dòng máy tính PS/2. Nó có thể hiểu là thiết bị xuất đồ họa dưới dạng Video thành từng dãy ra màn hình và có thể hiển thị 256 màu biến đổi liên tục cùng một lúc, với độ phân giải 640 dòng chiều ngang và 480 dòng chiều dọc. Chuẩn VGA tương thích lùi với tất cả các chuẩn hiển thị trước đó, như CGA, MDA và EGA.

Chuẩn VGA cao EGA hơn không những chỉ vì độ phân giải cao, mà còn vì công nghệ VGA cho phép giữ vững tỉ lệ co giãn của các hình đồ họa trên màn hình máy tính. Chuẩn VGA cũng dùng công nghệ tín hiệu đầu vào dạng tương tự để tạo ra một số lượng không hạn chế các màu sắc biến đổi theo một dải liên tục, trong khi đó EGA dùng công nghệ màn hình số nên bị giới hạn về số lượng các mức cường độ màu.

4.1 VGA

Chuẩn VGA của IBM được các hãng sản xuất thiết bị nâng lên cao hơn khi đưa ra các bộ điều hợp VGA (Video Graphics Adapter – Card màn hình) có khả năng hiển thị thêm các chế độ đồ họa bổ sung. Đó là chế độ Super VGA có độ phân giải 800 pixel dòng chiều ngang và 600 dòng chiều dọc, và các bộ điều hợp cao cấp hơn cho phép hiển thị độ phân giải 1024 x 768 hoặc cao hơn, ở mức độ tối thiểu 256 màu (8 bit).

42 4.1.1 Những thông số kĩ thuật của VGA

Với khả năng hiển thị hình ảnh động trên màn hình Analog CRT, chuẩn VGA có các thông số tiêu chuẩn sau :

 256 KB Video RAM

 Các chế độ 16-màu và 256-màu

 262144-giá trị trong bảng màu (sáu bit cho mỗi màu Red, Green và Blue

 Có thể lựa chọn giữa tần số 25.2 MHz hoặc 28.3 MHz

 Số điểm ảnh ngang lớn nhất : 720 điểm

 Số hàng 480 hàng

 Tần số làm tươi lên đến 70 Hz

Với khả năng hiển thị hình ảnh động trên màn hình Analog CRT, chuẩn VGA có

Một phần của tài liệu tìm hiểu và xây dựng ứng dụng trên kit fpga (Trang 30)