Bài viết này chỉ đưa ra những khái niệm thật sự đơn giản về chip khả trình FPGA.
Từ trước, ta chỉ làm quen với các IC vi điều khiển “cứng”. Khái niệm cứng tức là, bạn đã có sẵn nền phần cứng của IC (chẳng hạn, bộ nhớ, thanh ghi, cổng IO...), và bạn viết mã lập trình cho nó. Phần mà bạn thay đổi cho IC, chỉ là phần mềm. Điều này có hạn chế là, ko có sự linh hoạt khi bạn phải thay đổi ứng dụng.
Nhưng khi bạn muốn chế tạo 1 IC mới, chi phí chế tạo rất lớn, đồng thời việc thiết kế gặp nhiều khó khăn và thường được thực hiện ở các phòng thí nghiệm lớn.
ASIC ra đời, cho phép các mạch IC có thể được chế tạo ngay tại các cơ sở ứng dụng. ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt. ASIC sử dụng các công cụ thiết kế tự động để tạo sẵn các khối mạch phần cứng (bộ nhớ, lõi vi xử lý, các giao tiếp ngoài...). Tùy thuộc yêu cầu của từng ứng dụng mà các khối này được thêm vào IC. Đây là quá trình thực hiện IC ở mức thiết kế, logic và vật lý. Thiết kế logic sẽ mô tả IC trên cơ sở quan hệ logic của tất cả các khối, các thành phần trong IC. Ngôn ngữ được dùng là ngôn ngữ mô tả phần cứng HDL, gồm VHDL, và Verilog HDL, gần đây là sự ra đời của System C. Thiết kế vật lý liên quan đến sắp xếp các đường kết nối vật lý giữa các khối, các đơn vị trong khối, nguồn...
Sau khi thực hiện IC ở mức thiết kế, các thiết kế này sẽ được chế tạo để tạo thành sản phầm hoàn chỉnh.
FPGA là một loại ASIC, ra đời sau nhưng đã phát triển rất nhanh chóng.
FPGA kế thừa khá nhiều tính năng của ASIC như, khả năng thiết kế phần cứng bằng ngôn ngữ... Tuy nhiên, có khác biệt lớn nhất là, với FPGA không cần phải chế tạo IC giống như ASIC. Có thể nói, FPGA là giải pháp trung gian giữa IC vi điều khiển và ASIC. Về cấu tạo, hãy hình dung, phần cứng FPGA được chế tạo trước, nhưng chỉ là tập hợp rất nhiều các cổng logic. Kết nối giữa các cổng logic này là mềm, tức khả trình. Khi bạn viết mô tả phần cứng dùng ngôn ngữ HDL, phần mềm biên dịch của hãng sẽ chuyển file HDL thành dạng ảnh gồm các khối logic và kết nối, rồi nạp vào IC. Chi tiết hơn, ta sẽ xét trong phần sau.
Từ trước, ta chỉ làm quen với các IC vi điều khiển “cứng”. Khái niệm cứng tức là, bạn đã có sẵn nền phần cứng của IC (chẳng hạn, bộ nhớ, thanh ghi, cổng IO...), và bạn viết mã lập trình cho nó. Phần mà bạn thay đổi cho IC, chỉ là phần mềm. Điều này có hạn chế là, ko có sự linh hoạt khi bạn phải thay đổi ứng dụng.
Nhưng khi bạn muốn chế tạo 1 IC mới, chi phí chế tạo rất lớn, đồng thời việc thiết kế gặp nhiều khó khăn và thường được thực hiện ở các phòng thí nghiệm lớn.
ASIC ra đời, cho phép các mạch IC có thể được chế tạo ngay tại các cơ sở ứng dụng. ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt. ASIC sử dụng các công cụ thiết kế tự động để tạo sẵn các khối mạch phần cứng (bộ nhớ, lõi vi xử lý, các giao tiếp ngoài...). Tùy thuộc yêu cầu của từng ứng dụng mà các khối này được thêm vào IC. Đây là quá trình thực hiện IC ở mức thiết kế, logic và vật lý. Thiết kế logic sẽ mô tả IC trên cơ sở quan hệ logic của tất cả các khối, các thành phần trong IC. Ngôn ngữ được dùng là ngôn ngữ mô tả phần cứng HDL, gồm VHDL, và Verilog HDL, gần đây là sự ra đời của System C. Thiết kế vật lý liên quan đến sắp xếp các đường kết nối vật lý giữa các khối, các đơn vị trong khối, nguồn...
Sau khi thực hiện IC ở mức thiết kế, các thiết kế này sẽ được chế tạo để tạo thành sản phầm hoàn chỉnh.
FPGA là một loại ASIC, ra đời sau nhưng đã phát triển rất nhanh chóng.
FPGA kế thừa khá nhiều tính năng của ASIC như, khả năng thiết kế phần cứng bằng ngôn ngữ... Tuy nhiên, có khác biệt lớn nhất là, với FPGA không cần phải chế tạo IC giống như ASIC. Có thể nói, FPGA là giải pháp trung gian giữa IC vi điều khiển và ASIC. Về cấu tạo, hãy hình dung, phần cứng FPGA được chế tạo trước, nhưng chỉ là tập hợp rất nhiều các cổng logic. Kết nối giữa các cổng logic này là mềm, tức khả trình. Khi bạn viết mô tả phần cứng dùng ngôn ngữ HDL, phần mềm biên dịch của hãng sẽ chuyển file HDL thành dạng ảnh gồm các khối logic và kết nối, rồi nạp vào IC. Chi tiết hơn, ta sẽ xét trong phần sau.
Comment