FPGA làm việc như thế nào??

Print

LogicCell.gif*Cấu trúc cơ bản của FPGA
- Fpga đươc cấu tạo cơ bản từ những khối logic (logic blocks), tùy vào loại FPGA mà nó có thể chứa từ hang tram đến hàng chục nghìn khối logic đươc bố trí dưới dạng ma trận. Mối khối logic chứa các LUT, 1 D-flipflop và 1 khối chọn kênh từ 2 sang một 2-to-1 mux.


- LUT giống như một bố nhớ nhỏ,nó có thể thực hiện nhiều hàm logic khác nhau. Về bản chất cấu trúc này cũng giống như một bộ chọn kênh cỡ lớn. Trong FPGA thường sử dụng các LUT có 4 đến 6 bit đầu vào và 1 bit đầu ra.

** Interconnect
- Như ta đã biết, FPGA được tạo nên từ hang nghìn khối logic cơ bản. Mỗi khối logic được kết nối với nhiều khối khác nhờ các dây nối nguồn ( wire/mux nằm xung quanh các khối logic).Hệ thống kết nối của FPGA được thiết kế cân bằng giữa yếu tố linh động và tốc độ làm việc ( giảm độ trễ do đường truyền gây ra).Một khối logic thực hiện những hàm logic cơ bản và khi kết nối chúng có thể thực hiện một hàm logic phức tạp.
LogicCells.gif

** IO-cells
- Là các khối điều khiển phân bố ở biên trong FPGA.Nó thực hiện việc giao tiếp giữa các chân vào ra của FPGA với các khối logic bên trong hỗ trợ nhiều dạnh tín hiệu khác nhau.
[​IMG]
** Internal RAM
- Một thành phần quan trọng của FPGA là khối ram.Trong FPGA được bố trí nằm giữa và được điều khiển bởi các khối logic cơ bản
[​IMG]
** Internal RAM operation
- Có rất nhiều tham số tác động đến hoạt động RAM. Các tham số chính là số lượng tác nhân có thể truy cập vào bộ nhớ RAM.
- "single-port" RAMs: chỉ một tác nhân có thể đọc/ghi bộ nhớ RAM.
- "dual-port" or "quad-port" RAMs: 2 hoặc 4 tác nhân có thể đọc/ghi. Mỗi tác nhân có thể sử dụng clock khác nhau, điều này rất quan trọng khi ta cần chuyển dữ liệu từ miền clock này sang miền clock kia.
[​IMG]
- Để tính xem có bao nhiêu tác nhân có thể truy cập RAM thì ta đếm số bus địa chỉ. Mỗi tác nhân có một bus địa chỉ riêng, một bus đọc dữ liệu và một bus ghi dữ liệu.
Việc ghi vào RAM luôn luôn được thực hiện đồng bộ. Việc đọc cũng vậy nhưng có đôi khi được thực hiện bất đồng bộ.

** Blockram và Distributed RAM
- Có hai loại RAM nội trong FPGA là Blockramvà Distributed RAM. Kích thước RAM dùng để xác định loại được sử dụng.
- Các khối RAM lớn gọi là Blockram, nó được đặt trong các vùng chuyên biệt trong RAM. Mỗi FPGA có một số giới hạn loại RAM này và chúng chỉ có chức năng là RAM chứ không thể dùng cho bất cứ chức năng nào khác.
- Các khối RAM nhỏ đặt trong các “smaller blockrams” (Altera) hoặc dưới dạng “Distributed RAM” (Xilinx). “Distributed RAM” dùng các logic-cell của FPGA như là các RAM cực nhỏ, loại RAM này phân bố linh động trong FPGA mà không gom chung trong một vùng (một logic-cell giống như một RAM cực nhỏ). Altera thì lại thích xây dựng các “Blockram” với kích thước khác nhau trên các thiết bị hơn về phạm vi hiệu quả nhưng độ linh động vẫn không bằng “Distributed RAM”.

** FPGA pins
- FPGA thường có rất nhiều chân ... Vì vậy, để làm nó đơn giản dễ hiểu, chúng ta hãy đặt chúng vào hai ngăn: " user pins “ (chân người dùng) và " dedicated pins “ (chân chuyên dụng).

** User pins
- User pins có tên gọi khác như "IOs", hay "I/Os", hay "user I/Os", hay "user IOs", hay "IO pins",…
IO là viết tắt của "đầu vào-đầu ra".
• Chúng ta có toàn quyền sử dụng IOs. Chung ta có thể lập trình để được đầu vào, đầu ra, hoặc cả đầu vào-ra.
• Mỗi pin IO được kết nối với một "IO cells" bên trong FPGA. Các " IO cells" được cấp bởi các chân VCCIO (IO power pins).

** Dedicated pins
- Các " dedicated pins " được mã hóa cứng với một chức năng cụ thể. Chúng có ba loại như sau.
+ Power pins.
+ Configuration pins: được sử dụng để "tải" các FPGA.
+ Dedicated inputs, hay clock pins: đây là khả năng điều khiển mạng lưới lớn bên trong FPGA, thích hợp cho clocks hoặc tín hiệu với lượng lớn fan-outs.
- Các chân điện được chia thành hai loại: "core voltage" và "IO voltage".
• Core voltage có tên "VCC" với Xilinx và "VCCINT" với Altera. Nó là cố định (thiết lập bởi model của FPGA mà bạn đang sử dụng). Nó sử dụng để cấp nguồn cho các cổng logic và flip-flops bên trong FPGA. Điện áp là 5V cho các thế hệ cũ FPGA, và đang xuống trong thế hệ mới (3.3V, 2.5V, 1.8V, 1.5V, 1.2V).
• Điện áp IO có tên "VCCO" cho Xilinx và "VCCIO" cho Altera. Nó được sử dụng để cấp nguồn cho các khối I / O (= chân) của FPGA. Điện áp đó phải phù hợp với các thiết bị kết nối với FPGA.
- Một FPGA có nhiều chân VCCIO có thể hỗ trợ tất cả các điện áp như nhau. Nhưng những thế hệ mới của FPGA có một khái niệm mới là " user IO banks ": các IOs được chia thành các nhóm, mỗi cái có chân VCCIO riêng của mình. Điều đó cho phép sử dụng FPGA như một thiết bị điện áp dịch.

                       

Hướng dẫn thiết kế, nạp và chạy UART trên FPGA

 

 


 

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 Ms Duyên

 

Last Updated ( Friday, 07 August 2015 19:19 )