Nghĩa và vai trò của FPGA

Một phần của tài liệu Công nghệ xử lí tín hiệu số DSP và công nghệ FPGA (Trang 37)

Như ta đã biết, FPGA là một họ của Asic lập trình. Trước khi FPGA ra đời thì các họ thuộc Asic lập trình được đã xuất hiện từ lâu, nó có vai trò không nhiều vì số lượng cổng trên chip rất ít, dẫn tới chức năng của các họ thuộc Asic này cũng nghèo nàn và thường chỉ sử dụng với những nhiệm vụ rất hạn chế trong toàn hệ thống. Đến năm 1980, FPGA ra đời và nhanh chóng cho ra các thế hệ FPGA với số lượng cổng và tốc độ ngày càng cao. Các FPGA hiện nay có số lượng cổng đủ lớn để có thể thay thế cả một hệ thống bao gồm lõi CPU, bộ điều khiển, bộ nhớ (Memory Controllen) các ngoại vi như SPI, Timer, 12C, GPIO, PWM, Video/ Audio Controllen, … (nghĩa là tương đương với các Soc hiện đại). Tuy nhiên, FPGA không thể nào so sánh được với các họ trước: Asic và Soc về kinh tế, số lần tốc độ hoạt động. Nhưng bù lại, với khả năng tái cấu hình mạnh FPGA đóng một vai trò vô cùng to lớn trong việc giảm giá thành và thời gian chế tạo Asic bằng cách sử dụng FPGA trong quá trình thiết kế luận lý trước khi đưa ra sản xuất các Asic mẫu. Quy trình sản xuất chip Asic bằng cách này gọi là Fabless và rất phổ biến hiện nay trên thế giới, Giúp các Công ty nhỏ và vừa, đặc biệt là các nước yếu về công nghệ như Việt Nam tham gia vào thế giới IC.

Đối với mỗi sản phẩm điện tử, yêu cầu xử lí khác nhau nên việc dùng các con chip đa dạng sẽ không đem lại tốc độ xử lí như mong muốn nhất là trong lĩnh vực xử lí hình ảnh, âm thanh. Cũng giống như bạn dùng Core 2 Duo, mạnh nhất cũng cần có card màn hình nếu muốn chơi Game. Vì vậy, người ta có nhu cầu thiết kế chung, thiết kế logic, Test logic đem đi sản xuất mẫu tại công ty bán dẫn, rồi Test mẫu, …, đến khi cảm thấy ổn. Nhưng các công ty bán dẫn lại rất bận rộn, có khi mấy tháng mới nhận được mẫu mong muốn. Như vậy, thiết kế chạy thử trên FPGA xong, đem sản xuất hàng loạt

tiết kiệm được nhiều thời gian, công sức. Hoặc dùng luôn FPGA (thường giá đắt hơn so với chíp được sản xuất hàng loạt)

Để giải thích cho các bạn hiểu rõ hơn sự quan trọng rất lớn của FPGA, chúng ta xem một ví dụ sau:

Trước đây, khi muốn chế tạo ra một con chip xử lí, người ta phải thiết kế chip ở mức logic sử dụng các ngôn ngữ mô tả phần cứng, để kiểm tra công đoạn này người ta sử dụng phần mềm mô phỏng. Sau đó, thiết kế phải được tổng hợp dựa trên các thư viện cấp thấp của hãng mà bạn sẽ sản xuất con chip của bạn, sẽ hoạt động ở tần số yêu cầu. Tất cả các công đoạn này chỉ có thể kiểm tra bằng phần mềm mô phỏng (điều này dẫn tới nguy cơ xảy ra sai sót rất lớn, khi chuyển sang môi trường thiết kế thực). Sau đó, bạn sẽ gửi thiết kế của mình tới công ty sản xuất chip và phó mặc số phận, một con chip mẫu giá vài triệu đô la sẽ được chuyển cho bạn và sau đó bạn bắt đầu quá trình test chip trong môi trường thực. Nếu bạn thất bại, khả năng lớn bạn sẽ phải thực hiện lại quy trình thiết kế như đã nêu trên. Và cứ mỗi lần như vậy, bạn sẽ phải bỏ sọt rác nhiều triệu đô la và khoảng thời gian nghiên cứu rất lớn. Quy trình này làm cho đất nước nghèo như Việt Nam không thể tham gia vào cuộc chơi của các đất nước giàu có trong thế giới Asic. Nhưng với FPGA, bạn không những có thể rút ngắn thời gian thực hiện quá trình thiết kế trước khi sản xuất các Asic mà còn giảm chi phí nghiên cứu tối đa, do quá trình kiểm tra thiết kế không những được kiểm tra bằng phần mềm mô phỏng, mà giờ đây còn có thể chạy thử trên các chip thực trên môi trường, có thể nói là gần với môi trường Asic thực nhất. Khả năng tái cấu hình cho phép sửa đi sửa lại thiết kế cho đến khi đạt yêu cầu mà không tốn một xu ngoài tiền điện phải trả. 2.2. Ứng dụng của FPGA

Thực tế là FPGA rất hay được sử dụng trong các hệ thống SDR (Software Defined Radio) vì khả năng tái cấu hình giúp các chức năng của

thiết bị có thể thay đổi nhanh chóng. Bạn có thể hỏi rằng một hệ thống CPU/MCU/DSP cũng có thể làm được việc này, nhưng thực ra thì có nhiều những ứng dụng tốc độ cao mà các MCU, thậm chí cả các CPU/DSP trung bình cũng phải bất lực.

Tại sao phải dùng FPGA trong khi bạn đó nắm trong tay MCU/CPU thậm chí cả các DSP cực mạnh?.

Dưới đây là những lí do giải thích cho câu hỏi trên:

+ MCU/CPU/DSP vẫn cần các phần cứng (Hardware) khác bên trong các ứng dụng chuyên dụng.

+ Để điều khiển hình ảnh (VGA) sử dụng CPU làm điều khiển (Controller) cần CPU với tốc độ 27Mhz hoạt động 100% CPU.

+ Các ứng dụng xử lí hình ảnh/video, các ứng dụng mạng thông minh (Neuron), IA cần tốc độ xử lí rất lớn. Mặc dù các DSP đủ mạnh và các Soc mạnh có thể thực hiện được, nhưng sự lựa chọn còn phụ thuộc vào vấn đề kinh tế.

+ Có bao giờ bạn nghĩ mình sẽ thiết kế ra 1 CPU của chính mình? Với FPGA bạn hoàn toàn có thể thực hiện điều đó.

+ Đến với FPGA, bạn có cơ hội để tiếp cận gần nhất thế giới của IC. + Bạn có thể thực hiện một hệ thống đầy đủ CPU/Peripheral/IO … và kết nối chúng theo ý muốn, hoặc thậm chí một hệ thống đầy đủ không cần cả CPU như các Chip giải mã/ nén Video/ Audio, các Chip xử lí hình ảnh/ giọng nói, các Chip PID Motor Controller, Net Working Chip, …

Sử dụng FPGA trong các ứng dụng thiết kế mạch điện tử bằng phương pháp lập trình trên cơ sở các ngôn ngữ đặc tả phần cứng như VHDL, AHDL, Verilog, … hiện nay được ứng dụng rất nhiều và có nhiều triển vọng. Người thiết kế có thể chỉ cần mô phỏng hoạt động của thiết bị cần thiết kế trên ngôn ngữ HDL, sau đó dịch và nạp xuống FPGA, như vậy là đã có một mạch thực

hiện đúng các chức năng mà ta đã mô phỏng. Để hiểu rõ hơn về các ứng dụng của FPGA chúng ta cùng xem một số ứng dụng cụ thể.

2.2.1. Ứng dụng của FPGA trong bảo mật

Với việc thực hiện AES bằng FPGA hay thực hiện mật mã trên đường elip bằng FPGA cho thấy công nghệ FPGA là thích hợp nhất để cứng hóa mật mã nên được lựa chọn vì công nghệ FPGA có nhiều ưu điểm đó là:

 Tốc độ cao vì nó hoàn toàn dựa trên phần cứng (Hardware).  An toàn mật mã cao.

 Mềm dẻo.  Dễ phát triển.

2.2.1.2. Thực hiện AES bằng FPGA

Tiêu chuẩn mã hóa ASE (Advsncend Encryption Standard) là một thuật toán được nhiều nước ứng dụng, việc thực hiện mã hóa ASE bằng FPGA có nhiều hiệu quả. Tài nguyên chip FPGA là vấn đề đầu tiên cần xem xét khi thiết kế cho AES. Có thể sử dụng nhiều chip FPGA cho thiết kế một thuật toán, tuy nhiên giá thành sẽ tăng. Vì thế người ta thường cố thực hiện toàn bộ thuật toán AES trong một chip FPGA. Khi ấy phải lưu tâm đến các vấn đề tài nguyên của chip. Trước tiên, để đạt được tốc độ cao cần số lượng lớn các chân vào ra I/O nhằm hỗ trợ hoàn toàn luồng Data 128-bit. Cũng không nên dùng giải pháp dồn kênh mà phải tách riêng 128-bit dữ liệu đầu vào và đầu ra để cho phép cấu trúc ống (Pipeline).

Tiếp theo, phải có bus riêng để nhập khóa trước khi bắt đầu mã hóa vì không thể thay đổi khóa của các vòng trong khi đã mã. Thêm nữa, để thực hiện kiến trúc Pipeline một cách hoàn toàn cần các tầng Pipeline rộng 128 bit, như thế lại cần rất nhiều thanh ghi. Và nữa, cũng cần nhiều bit ghi trong các khối có thể cấu hình của chip FPGA để sắp xếp các phần tử thiết kế cũng như giảm thiểu số đường dẫn giữa các khối đó. Cuối cùng, cần chuỗi số nhớ

(carry) nhanh giữa các khối có thể cấu hình của FPGA cho các thao tác số học để cực đại hiệu suất thực hiệu các thuật toán AES.

2.2.1.3. Thực hiện mật mã trên đường Elliptic bằng FPGA.

Mật mã trên đường cong Elliptic (ECC) thích hợp với các ứng dụng nhúng vì việc cứng hóa cần ít tài nguyên phần cứng hơn. So với các hệ mật khóa công khai khác như RSA và Logarthm rời rạc thì ECC có độ dài khóa ngắn hơn, độ an toàn cao hơn.

Ví dụ: Dùng VLSL để thực hiện ECC 155 bit chỉ cần 11,0000 transistor, trong khi đó để có độ an toàn tương đương RSA phải 512 bit thực hiện trên 50,000 Transistor.

ECC cũng an toàn hơn RSA. Để phá được ECC 97 bit cần công suất tính toán gấp đôi để phá RSA 512 bit.

Đã có nhiều nghiên cứu cả về lý thuyết lẫn thực hành để cứng hóa ECC trên FPGA: Nghiên cứu ECC trong trường Galois hỗn hợp nghiên cứu bộ nhân Super – serial… Khả năng tiêu thụ tài nguyên phần cứng của ECC là

thuận lợi dáng kể cho việc cứng hóa ECC bằng FPGA so với AES.

2.2.2. Ứng dụng nhúng của FPGA

Vi điều khiển bắt đầu từ các họ 8051 rồi đến PIC, AVR và cao hơn nữa là họ ARM, AVR32 hay PSOC. Ngày nay, vi điều khiển phát triển vượt bậc bằng chứng là sự ra đời của công nghệ FPGA. Với công nghệ này chỉ phát huy sức mạnh tốt nhất khi được ghép nối với vi điều khiển hay nói cách khác công nghệ FPGA làm các vi điều khiển phát huy được hết khả năng của mình. Đó cũng là mục đích và tư tưởng thiết kế của Co – Desing.

Co – Desing kết hợp năng lực về phần cứng của FPGA với ưu thế xử lí phần mềm của vi điều khiển để tạo nên một hệ thống đầy sức mạnh .

Ví dụ: Ta muốn thiết kế một ứng dụng đo nhiệt độ phòng với cảm biến nhiệt có giao tiếp 12C. Nếu chỉ dùng MUC thông thường không có giao tiếp 12C thì sẽ gặp rất nhiều khó khăn (phải lập trình ngắt, bắt sườn, mức của xung, …). Nếu chỉ sử dụng FPGA trong ứng dụng này không ổn vì lúc đó sẽ gặp khó khăn nhất định trong các tính toán số học. Vì cảm biến đo nhiệt độ bằng đơn vị độ F, trong khi ta muốn hiển thị độ C, mà muốn thực hiện được các phép toán cộng, trừ, nhân, chia để chuyển đổi độ F với độ C bằng FPGA là không hề đơn giản.

Trong trường hợp này nếu ta thiết kế theo phương thức Co – Desing. FPGA phụ trách giao tiếp với cảm biến 12C và trả về các số liệu thô để MCU thực hiện các tính toán số học.

Vậy, tại sao không lấy một MCU có sẵn giao tiếp 12C hoặc nối một controlller 12C với MCU?

Câu trả lời là:

Nếu sau này ta tìm thấy một cảm biến khác tốt hơn, chính xác hơn nhưng lại là giao tiếp SPI hoặc CAN, lúc đó ta phải bỏ nhiều công sức để thay đổi nhiều thiết kế (thay một MCU khác có SPI, CAN hoặc thay controller khác) trong khi nếu sử dụng khả năng tùy biến phần cứng của FPGA, ta có thể cấu hình lại giao thức 12C thành SPI hay CAN,…

Tuyệt vời hơn nữa ta có thể lưu cấu hình của FPGA trong thẻ nhớ ngoài (MMC, Compact Flash) và MCU sẽ cấu hình lại FPGA ngay trong quá trình hoạt động mà không phải cần nạp lại trương trình.

Thậm chí nhiều FPGA còn có đặc tính cấu hình lại một phần của FPGA trong khi các phần khác vẫn hoạt động mà không cần phải reset lại FPGA.

Trong thực tế, có thể ghép nối FPGA với MCU ngoài bằng các chân giao tiếp thông thường. Một cách khác là sử dụng MCU nhúng có sẵn trong FPGA một hoặc nhiều MCU cứng hoặc mềm. Với Altera là Nios, Nios ll (MCU mềm) hay Excanlibur (MCU cứng với lõi ARM922T). Còn trong các FPGA của Xilinx là Picoblaze, Microblaze (MCU mềm) hay PowerPC (cứng). MCU cứng được thiết kế sẵn trong FPGA, còn MCU mềm thực chất là một IP thường bằng VHDL và công cụ thiết kế sẽ triển khai IP đó xuống FPGA.

Chính vì vậy MCU mềm sẽ tốn một phần tài nguyên của FPGA, nhưng bù lại nó có thể cập nhật, thay đổi tùy biến theo các phiên bản khác nhau.

2.3. Giới thiệu một số KIT FPGA

2.3.1. Kit Stratix EP 1S25 (Altera) của hãng Parallax.

2.3.2. Kit UP2 của Altera

Kit Stratix EP 1S25 (Altera)

của hãng Parallax:

+ 144 chân I/O.

+ Bộ dao động xung Clock 50MHz.

+ Nguồn 3.3V cho I/O và 1.5V cho lõi FPGA.

+ Cổng nối tiếp chuẩn 9 chân. + Các chân nối JTAG.

Kit UP2 của Altera:

+ Chip EPM 7128S họ Max7000. + Chip EPF 10K70 họ FLEX10K. + Hỗ trợ 2 led 7 đoạn.

+ 16 led.

+ JTAG Chain, cáp tải Byte Blaster II. + Cổng giao tiếp P/S2, VGA.

2.3.3. Kit Digilab 2E của Digilent

2.3.4. Virtex-4 ML401 Development Board

Kit Digilab 2E của Digilent:

+ Spartan 2E XC2S200E của Xilinx. + 143 chân I/O người dùng.

+ Nguồn điều chỉnh 1,5A (2,5 và 3,3V).

+ Bộ dao động 50MHz. + Cổng JTAG.

+ Cổng RS-232.

Virtex-4 ML401 Development Board:

+ Linh kiện: XC4VLX25-FF668-10C. + Tần số: 100 MHz Oscillator.

+ Bộ nhớ: 64 MB DDR SDRAM, 8Mb ZBT SRAM, 64 Mb Flash, 4 kb I2C EEPROM.

+ Hiển thị: 16x2 Character LCD.

+ Các giao tiếp: 4SMA (Differential Clocks), 2PS/2 (Keyboard /Mouse), 4 Audio Jacks (Line In/Out), Microphone, Head Phone), RS-232 Serial Port, 3USB Ports, JTAG, VGA.

PHẦN III. KẾT LUẬN

Ngày nay, công nghệ xử lí tín hiệu số DSP và công nghệ FPGA đã và đang được phát triển. Nó được ứng rộng rãi trong nhiều lĩnh vực đời sống, xã hội. Khóa luận của chúng tôi đi vào tìm hiểu tổng quan và một số ứng dụng của nó trong thực tiễn.

Sau quá trình nghiên cứu và hoàn thành khóa luận chúng tôi đã thu được một số kết quả như sau:

- Nắm được cách thức làm một nghiên cứu khoa học.

- Nắm được tổng quan về công nghệ xử lí tín hiệu số DSP cụ thể là sự ra đời, cấu tạo, ý nghĩa và vai trò trong đời sống xã hội.

- nắm được cấu tạo công nghệ FPGA và một số ứng dụng trong thực tiễn.

Luận văn sẽ thực sự hữu ích hơn nếu được bổ xung thêm phần thực nghiệm. Cuối cùng, chúng tôi rất mong được sự giúp đỡ đóng góp ý kiến để đề tài thực sự có ý nghĩa và ứng dụng trong cuộc sống.

TÀI LIỆU THAM KHẢO

1. Nguyễn Quốc Trung. “Xử lí tín hiệu và lọc số” – Tập 1, Tập 2, Nhà xuất bản khoa học và kĩ thuật, Hà Nội 2001.

2. Nguyễn Xuân Quỳnh. “Cơ sở toán rời rạc và ứng dụng”, Nhà xuất bản Giáo dục, Hà nội 1995.

3. Jonh G.Proakis and Dimitris G.Mamolakis. “Digital Signal Processing: Princingles Algaorithms, and Application” Macimillan Publishing Company, Printed The Republic Ò Singapore, 1992.

4. Phạm Ngọc Nam. “Thiết kế hệ thống số dùng vi mạch logic khả trình”, Đại học Bách khoa, 2007.

5. http://www.dientu.net 6. http://www.toitim.net 7. http://ptithcm.org

Một phần của tài liệu Công nghệ xử lí tín hiệu số DSP và công nghệ FPGA (Trang 37)

Tải bản đầy đủ (PDF)

(49 trang)