Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin Tóm Tắt Nội Dung Khóa Luận Máy hiển thị sóng hay còn gọi là máy dao động số có nhớ (DSO) là một thiết bị không thể thiếu trong đo lường điều khiển. Cùng với sự phát triển của khoa khọc công nghệ mà ngày nay chúng ta có những máy hiện sóng có tính năng rất phong phú và kích thước cũng được giảm xuống đáng kể, bớt cồng kềnh và đặc biệt giá thành lại hạ xuống rất nhiều. Ngày nay công nghệ sản xuất FPGA rất phát triển nên khóa luận này em xin trình bày về cách thiết kế một máy dao động số có nhớ dựa trên công nghệ FPGA. Khóa luận được chia làm hai phần: Phần lý thuyết em xin trình bày một cách tổng quan nhất về công nghệ FPGA, giới thiệu sơ qua về các bước thực hiện trong FPGA. Phần thứ hai em xin trình bày về các loại máy dao động số có nhớ, cấu tạo và nguyên tắc hoạt động của máy dao động tương tự và máy dao động số có nhớ. Cuối cùng là phần em trình bày về các bước thiết kế một máy dao động số trên FPGA và một số kết quá thu được. i Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Mục lục Mở đầu........................................................................................................................................1 Chương 1.....................................................................................................................................2 TỔNG QUAN VỀ FPGA.........................................................................................................2 1.1 FPGA LÀ GÌ?.................................................................................................................2 1.2. LỊCH SỬ RA ĐỜI FPGA...............................................................................................3 1.3. ỨNG DỤNG...................................................................................................................3 1.4. CẤU TRÚC MỘT FPGA...............................................................................................4 1.4.1 Khối logic FPGA......................................................................................................4 1.4.2 Các phần tử tích hợp sẵn...........................................................................................5 1.4.3 Quy trình thiết kế FPGA tổng quát...........................................................................5 1.4.3.1 Mô tả ban đầu về thiết kế...................................................................................6 1.4.3.2 Thực thi.............................................................................................................8 1.4.3.3 Quá trình Nạp (download) và lập trình (program)........................................10 1.5 TỔNG QUAN VỀ VHDL..............................................................................................10 1.5.1 Giới thiệu về ngôn ngữ mô tả phần cứng VHDL....................................................10 1.5.2 Cấu trúc một mô hình hệ thống mô tả bằng VHDL................................................12 1.5.2.1 Thực thế (entity) của mô hình .........................................................................12 1.5.2.2 Kiến trúc của mô hình.....................................................................................13 TỔNG QUAN VỀ OSCILLOSCOP........................................................................................14 2.1 . DAO ĐỘNG KÍ ĐIỆN TỬ...........................................................................................14 2.2 PHÂN LOẠI OSCILLOSCOP......................................................................................15 2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ TƯƠNG TỰ......................................16 2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ SỐ.......................................................17 CÁC BƯỚC THIẾT KẾ MỘT OSCILLOSCOP SỐ CÓ NHỚ...............................................22 3.1 CÁC THÀNH PHẦN TRONG THIẾT KẾ...................................................................23 3.1.1.Bộ nhớ.....................................................................................................................23 3.1.2 Bộ biến đổi tương tự - số ADC..............................................................................25 ..........................................................................................................................................25 3.1.3 Bộ khuếch đại đệm .................................................................................................27 3.1.4 Điều khiển logic......................................................................................................29 3.2 THIẾT KẾ CHI TIẾT....................................................................................................32 3.2.1 Cấu hình để nạp vào FPGA....................................................................................32 3.2.2 Chế độ tiền trigger...................................................................................................33 3.2.3 Dò điểm trigger.......................................................................................................34 3.3.4 Bộ tạo xung.............................................................................................................36 3.3.6 Giao diện logic cổng song song..............................................................................37 3.3.7 Điều khiển ADC .....................................................................................................38 Chương 4...................................................................................................................................39 CHƯƠNG TRÌNH VÀ MÔ PHỎNG TRÊN KIT DE2...........................................................39 4.1 TỔNG QUAN VỀ KIT DE2 VÀ CHIP CYCLONE II.................................................39 Nguyễn Văn Thông K49ĐB ii Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA 4.2 CHƯƠNG TRÌNH VÀ MÔ PHỎNG............................................................................44 4.2.1. Chương trình chính điểu khiển DSO......................................................................44 4.2.2 Chương trình điểu khiển logic cổng song song.......................................................46 4.2.3 Chương trình điểu khiển FIFO................................................................................47 4.2.4 Chương trình tạo dạng xung chia theo tỉ lệ 12, 14, 18, 116, 132......................49 4.2.4 Chương trình dò điểm trigger..................................................................................50 ..........................................................................................................................................50 Kết luận.....................................................................................................................................52 PHỤ LỤC..................................................................................................................................53 Tài liệu tham khảo.....................................................................................................................70 Nguyễn Văn Thông K49ĐB iii Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA CÁC TỪ VIẾT TẮT ADC : Analog -to- Digital Converter ASIC : Application-Specific Integrated Circuit CPLD : Complex Programmable Logic Device DAC : Digital-to-Analog Converter DRAM : Dynamic Random Access Memory . DSO : Digital Storage Oscilloscop DSP : Digital Signal Processing. E2 : EEPROM. EEPROM : Electrically Erasable Programmable Read-Only Memory. FIFO : First In First Out FPGA : Field-Programmable Gate Array HDL : Hardware Description Language IO : InputOutput LAB : Logic Array Block. LE : logic Element. LUT : Look Up Table MAC : Multication and accumulation PC : Personal Computer PLA : Programmable Logic Array RAM : Random Access Memory ROM : Read-Only Memory SPLD : Simple Programable Devices. SRAM : Static Random Access Memory. Nguyễn Văn Thông K49ĐB iv Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA VHDL : VHSIC hardware description language VHSIC : Very High Speed Itergrated Circuit WCLK : Write Clock. WE : Write Enable. WRST : Write Reset. Nguyễn Văn Thông K49ĐB v Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Lời cảm ơn Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo khoa Điện tử - Viễn thông trường Đại học Công Nghệ- ĐHQG Hà Nội, những người đã tận tình dạy dỗ, chỉ bảo em trong suốt bốn năm học vừa qua tại nhà trường. Tiếp theo em xin gửi lời cảm ơn sâu sắc đến TS Nguyễn Thăng Long và CN Phan Văn Minh , những người đã trực tiếp hướng dẫn em trong suốt quá trình học tập và nghiên cứu tại trường, các thầy đã truyền cho em cách tư duy có hệ thống, phương pháp nghiên cứu, tiếp cận thực tế - những điều rất quý báu với em khi ra trường làm việc thực tế. Em xin cảm ơn tới toàn thể cán bộ bộ môn Vi cơ điện tử - vi hệ thống những người đã dẫn dắt và định hướng nghiên cứu cho em trong suốt hai năm qua. Em xin gửi lời cảm ơn tới Ths. Nguyễn Kiêm Hùng cùng toàn thể cán bộ làm việc trong phòng ” các hệ thống tích hợp thông minh” đã chỉ bào và tạo điện kiện cho em trong suốt quá trình học tập và nghiên cứu FPGA trong phòng. Em xin tỏ lòng biết ơn chân thành tới cha mẹ, gia đình em những người đã sinh thành, nuôi nấng, tin tưởng động viên em. Xin gửi lời cảm ơn tới tất cả bạn bè, đặc biệt là tập thể lớp K49ĐB, những người đã cổ vũ, động viên, chia sẻ với em trong suốt những năm qua. Hà nội, ngày 27 tháng 5 năm 2008 Sinh viên thực hiện Nguyễn Văn Thông Nguyễn Văn Thông K49ĐB vi Mở đầu Dao động kí (Oscilloscop) là một thiết bị đo lường điện tử phổ biến nhất hiện nay, không giống như các loại máy đo khác chỉ cho ta các thông số của tín hiệu, Oscilloscop còn cho phép ta quan sát tức thời dạng của tín hiệu. Nhiệm vụ chính của một Oscilloscop là hiển thị một cách thật chính xác, chi tiết dạng tín hiệu dưới dạng hàm số của điện áp và thời gian. Ngoài ra một nhiệm vụ không kém phần quan trọng khác của oscilloscop là so sánh các dạng sóng khác nhau và đo lường mối quan hệ về thời gian và pha giữa chúng. Có thể nói quá trình phát triển của oscillscop gắn liền với quá trình phát triển của kĩ thuật điện tử. Mở đầu là oscilloscop tương tự, một vài thập niên gần đây là oscilloscop số, gần đây nhất là một số công ty đo lường hàng đầu thế giới vừa cho ra đời oscilloscop hỗn hợp giữa số và tương tự được tính hợp với các tính năng mạnh mẽ nhất thừa hưởng từ ngành công nghiệp máy tính. Thế kỉ 21 là thế kỉ của thông tin và kĩ thuật số với sự phát triển và ứng dụng rộng rãi của các bộ vi xử lý. Bằng việc đưa sức mạnh kĩ thuật số vào thực tiễn, các bộ vi xử lý ngày một thay đổi cách sống của xã hội loài người. Khóa điện tử, máy điện thoại, nồi cơm điện…..của chúng ta đang ngày một thông minh hơn, mạnh mẽ và nhanh nhờ các bộ vi xử lý. Tất cả các ngành công nghiệp lớn như: viễn thông, điều khiển công nghiệp, sản xuất hàng tiêu dùng… đều ý thức được và sử dụng triệt để công nghệ mới và họ cũng vấp phải những vần đề mới cần giải quyết đó là các vấn đề liên quan tới tín hiệu và điều khiển số và tương tự của thế giới thực. Oscilloscop với vai trò là một thiết bị giám sát, đo kiểm phải đáp ứng được các yêu cầu ngày càng khắt khe do các ngành công nghiệp này đắt ra. Với mục đích là tìm hiểu và thiết kế một oscilloscop số, khóa luận này trình bày và phân tính cấu tạo, nguyên lí hoạt động của các loại oscilloscop, các tính năng tiến tiến của chúng, đặc biệt là cách thiết kế một oscilloscop kĩ thuật số có nhớ dùng chip FPGA làm trung tâm điều khiển. 1 Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Chương 1 TỔNG QUAN VỀ FPGA 1.1 FPGA LÀ GÌ? FPGA (Field-Programmable Gate Array) là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. Vi mạch FPGA được cấu thành từ các bộ phận: Các khối logic cơ bản lập trình được (logic block) Hệ thống mạch liên kết lập trình được Khối vàora (IO Pads) Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý... So sánh FPGA với ASIC và các vi mạch bán dẫn khác: ASIC (Application-Specific Integrated Circuit) là một vi mạch IC được thiết kế dành cho một ứng dụng cụ thể. FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng. Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: Tác vụ tái lập trình của FPGA thực hiện đơn giản hơn. Khả năng lập trình linh động hơn Kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Nguyễn Văn Thông K49ĐB 2 Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL). 1.2. LỊCH SỬ RA ĐỜI FPGA FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tương đối lớn các phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD. FPGA có khả năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA còn thấp hơn nữa chỉ đạt vài nghìn đến 10.000. CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simple programable devices, thuật ngữ chung chỉ PAL, PLA). SPLD thường là một mảng logic ANDOR lập trình được có kích thước xác định...
Trang 1Tóm Tắt Nội Dung Khóa Luận
Máy hiển thị sóng hay còn gọi là máy dao động số có nhớ (DSO) là một thiết bị không thể thiếu trong đo lường điều khiển Cùng với sự phát triển của khoa khọc công nghệ mà ngày nay chúng ta có những máy hiện sóng có tính năng rất phong phú và kích thước cũng được giảm xuống đáng kể, bớt cồng kềnh và đặc biệt giá thành lại hạ xuống rất nhiều Ngày nay công nghệ sản xuất FPGA rất phát triển nên khóa luận này
em xin trình bày về cách thiết kế một máy dao động số có nhớ dựa trên công nghệ FPGA
Khóa luận được chia làm hai phần: Phần lý thuyết em xin trình bày một cách tổng quan nhất về công nghệ FPGA, giới thiệu sơ qua về các bước thực hiện trong FPGA Phần thứ hai em xin trình bày về các loại máy dao động số có nhớ, cấu tạo và nguyên tắc hoạt động của máy dao động tương tự và máy dao động số có nhớ Cuối cùng là phần em trình bày về các bước thiết kế một máy dao động số trên FPGA và một số kết quá thu được
i
Trang 2Mục lục
Mở đầu 1
Chương 1 2
TỔNG QUAN VỀ FPGA 2
1.1 FPGA LÀ GÌ? 2
1.2 LỊCH SỬ RA ĐỜI FPGA 3
1.3 ỨNG DỤNG 3
1.4 CẤU TRÚC MỘT FPGA 4
1.4.1 Khối logic FPGA 4
1.4.2 Các phần tử tích hợp sẵn 5
1.4.3 Quy trình thiết kế FPGA tổng quát 5
1.4.3.1 Mô tả ban đầu về thiết kế 6
1.4.3.2 Thực thi 8
1.4.3.3 Quá trình Nạp (download) và lập trình (program) 10
1.5 TỔNG QUAN VỀ VHDL 10
1.5.1 Giới thiệu về ngôn ngữ mô tả phần cứng VHDL 10
1.5.2 Cấu trúc một mô hình hệ thống mô tả bằng VHDL 12
1.5.2.1 Thực thế (entity) của mô hình 12
1.5.2.2 Kiến trúc của mô hình 13
TỔNG QUAN VỀ OSCILLOSCOP 14
2.1 DAO ĐỘNG KÍ ĐIỆN TỬ 14
2.2 PHÂN LOẠI OSCILLOSCOP 15
2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ TƯƠNG TỰ 16
2.3 CẤU TRÚC CỦA OSCILLOSCOP ĐIỆN TỬ SỐ 17
CÁC BƯỚC THIẾT KẾ MỘT OSCILLOSCOP SỐ CÓ NHỚ 22
3.1 CÁC THÀNH PHẦN TRONG THIẾT KẾ 23
3.1.1.Bộ nhớ 23
3.1.2 Bộ biến đổi tương tự - số ADC 25
25
3.1.3 Bộ khuếch đại đệm 27
3.1.4 Điều khiển logic 29
3.2 THIẾT KẾ CHI TIẾT 32
3.2.1 Cấu hình để nạp vào FPGA 32
3.2.2 Chế độ tiền trigger 33
3.2.3 Dò điểm trigger 34
3.3.4 Bộ tạo xung 36
3.3.6 Giao diện logic cổng song song 37
3.3.7 Điều khiển ADC 38
Chương 4 39
CHƯƠNG TRÌNH VÀ MÔ PHỎNG TRÊN KIT DE2 39
4.1 TỔNG QUAN VỀ KIT DE2 VÀ CHIP CYCLONE II 39
Trang 3Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
4.2 CHƯƠNG TRÌNH VÀ MÔ PHỎNG 44
4.2.1 Chương trình chính điểu khiển DSO 44
4.2.2 Chương trình điểu khiển logic cổng song song 46
4.2.3 Chương trình điểu khiển FIFO 47
4.2.4 Chương trình tạo dạng xung chia theo tỉ lệ 1/2, 1/4, 1/8, 1/16, 1/32 49
4.2.4 Chương trình dò điểm trigger 50
50
Kết luận 52
PHỤ LỤC 53
Tài liệu tham khảo 70
Nguyễn Văn Thông K49ĐB iii
Trang 4CÁC TỪ VIẾT TẮT
ADC : Analog -to- Digital Converter ASIC : Application-Specific Integrated Circuit CPLD : Complex Programmable Logic Device DAC : Digital-to-Analog Converter
DSO : Digital Storage Oscilloscop DSP : Digital Signal Processing.
Memory.
FPGA : Field-Programmable Gate Array
MAC : Multication and accumulation
SPLD : Simple Programable Devices.
Trang 5Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
VHDL : VHSIC hardware description language
VHSIC : Very High Speed Itergrated Circuit
Nguyễn Văn Thông K49ĐB v
Trang 6Lời cảm ơn
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo khoa Điện tử - Viễn thông trường Đại học Công Nghệ- ĐHQG Hà Nội, những người đã tận tình dạy
dỗ, chỉ bảo em trong suốt bốn năm học vừa qua tại nhà trường
Tiếp theo em xin gửi lời cảm ơn sâu sắc đến TS Nguyễn Thăng Long và
CN Phan Văn Minh , những người đã trực tiếp hướng dẫn em trong suốt quá trình học tập và nghiên cứu tại trường, các thầy đã truyền cho em cách tư duy có hệ thống, phương pháp nghiên cứu, tiếp cận thực tế - những điều rất quý báu với em khi ra trường làm việc thực tế
Em xin cảm ơn tới toàn thể cán bộ bộ môn Vi cơ điện tử - vi hệ thống những người đã dẫn dắt và định hướng nghiên cứu cho em trong suốt hai năm qua
Em xin gửi lời cảm ơn tới Ths Nguyễn Kiêm Hùng cùng toàn thể cán bộ làm việc trong phòng ” các hệ thống tích hợp thông minh” đã chỉ bào và tạo điện kiện cho
em trong suốt quá trình học tập và nghiên cứu FPGA trong phòng
Em xin tỏ lòng biết ơn chân thành tới cha mẹ, gia đình em những người đã sinh thành, nuôi nấng, tin tưởng động viên em Xin gửi lời cảm ơn tới tất cả bạn bè, đặc biệt
là tập thể lớp K49ĐB, những người đã cổ vũ, động viên, chia sẻ với em trong suốt
những năm qua
Hà nội, ngày 27 tháng 5 năm 2008
Sinh viên thực hiện
Nguyễn Văn Thông
Trang 7Mở đầu
Dao động kí (Oscilloscop) là một thiết bị đo lường điện tử phổ biến nhất hiện nay, không giống như các loại máy đo khác chỉ cho ta các thông số của tín hiệu, Oscilloscop còn cho phép ta quan sát tức thời dạng của tín hiệu Nhiệm vụ chính của một Oscilloscop là hiển thị một cách thật chính xác, chi tiết dạng tín hiệu dưới dạng hàm số của điện áp và thời gian Ngoài ra một nhiệm vụ không kém phần quan trọng khác của oscilloscop là so sánh các dạng sóng khác nhau và đo lường mối quan hệ về thời gian và pha giữa chúng
Có thể nói quá trình phát triển của oscillscop gắn liền với quá trình phát triển của
kĩ thuật điện tử Mở đầu là oscilloscop tương tự, một vài thập niên gần đây là oscilloscop số, gần đây nhất là một số công ty đo lường hàng đầu thế giới vừa cho ra đời oscilloscop hỗn hợp giữa số và tương tự được tính hợp với các tính năng mạnh mẽ nhất thừa hưởng từ ngành công nghiệp máy tính
Thế kỉ 21 là thế kỉ của thông tin và kĩ thuật số với sự phát triển và ứng dụng rộng rãi của các bộ vi xử lý Bằng việc đưa sức mạnh kĩ thuật số vào thực tiễn, các bộ vi xử
lý ngày một thay đổi cách sống của xã hội loài người Khóa điện tử, máy điện thoại, nồi cơm điện… của chúng ta đang ngày một thông minh hơn, mạnh mẽ và nhanh nhờ các bộ vi xử lý Tất cả các ngành công nghiệp lớn như: viễn thông, điều khiển công nghiệp, sản xuất hàng tiêu dùng… đều ý thức được và sử dụng triệt để công nghệ mới
và họ cũng vấp phải những vần đề mới cần giải quyết đó là các vấn đề liên quan tới tín hiệu và điều khiển số và tương tự của thế giới thực Oscilloscop với vai trò là một thiết bị giám sát, đo kiểm phải đáp ứng được các yêu cầu ngày càng khắt khe do các ngành công nghiệp này đắt ra
Với mục đích là tìm hiểu và thiết kế một oscilloscop số, khóa luận này trình bày
và phân tính cấu tạo, nguyên lí hoạt động của các loại oscilloscop, các tính năng tiến tiến của chúng, đặc biệt là cách thiết kế một oscilloscop kĩ thuật số có nhớ dùng chip FPGA làm trung tâm điều khiển
1
Trang 8Chương 1
TỔNG QUAN VỀ FPGA
1.1 FPGA LÀ GÌ?
FPGA (Field-Programmable Gate Array) là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được Vi mạch FPGA được cấu thành từ các bộ phận:
Các khối logic cơ bản lập trình được (logic block)
Hệ thống mạch liên kết lập trình được
Khối vào/ra (IO Pads)
Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý
So sánh FPGA với ASIC và các vi mạch bán dẫn khác:
ASIC (Application-Specific Integrated Circuit) là một vi mạch IC được thiết kế dành cho một ứng dụng cụ thể
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ
có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm:
Tác vụ tái lập trình của FPGA thực hiện đơn giản hơn
Khả năng lập trình linh động hơn
Kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô
tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như
Trang 9Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là
mã RTL)
1.2 LỊCH SỬ RA ĐỜI FPGA
FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tương đối lớn các phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD FPGA có khả năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA còn thấp hơn nữa chỉ đạt vài nghìn đến 10.000
CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simple programable devices, thuật ngữ chung chỉ PAL, PLA) SPLD thường là một mảng logic AND/OR lập trình được có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ đồng bộ (clocked register) Cấu trúc này hạn chế khả năng thực hiện những hàm phức tạp và thông thường hiệu suất làm việc của vi mạch phụ thuộc vào cấu trúc cụ thể của
vi mạch hơn là vào yêu cầu bài toán
Kiến trúc của FPGA là kiến trúc mảng các khối logic, khối logic, nhỏ hơn nhiều nếu đem so sánh với một khối SPLD, ưu điểm này giúp FPGA có thể chứa nhiều hơn các phần tử logic và phát huy tối đa khả năng lập trình của các phần tử logic và hệ thống mạch kết nối, để đạt được mục đích này thì kiến trúc của FPGA phức tạp hơn nhiều so với CPLD
Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợp nhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao, hay các bộ nhân cộng (multication and accumulation, MAC), thuật ngữ tiếng Anh là DSP slice dùng cho những ứng dụng xử lý tín hiệu số DSP
Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hộ trợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi vẫn đảm bảo hoạt động bình thường cho các bộ phận khác
1.3 ỨNG DỤNG
Nguyễn Văn Thông K49ĐB 3
Trang 10Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng không,
vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính
Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực
1.4 CẤU TRÚC MỘT FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau
1.4.1 Khối logic FPGA
Phần tử chính của FPGA là các khối logic (logic block) Khối logic được cấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop
Trang 11Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
LUT (Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4 đầu
vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số đầu vào của LUT lên 6 chân Cấu trúc này là nhằm tăng tốc các bộ số học logic
Hệ thống mạch liên kết là khối chuyển mạch của FPGA Mạng liên kết trong
FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài và rất dài Các đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được (programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau
1.4.2 Các phần tử tích hợp sẵn
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của Xilinx có chứa nhân sử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit
1.4.3 Quy trình thiết kế FPGA tổng quát.
Nguyễn Văn Thông K49ĐB 5
Trang 12Hình 3: Quy trình thiết kế FPGA
1.4.3.1 Mô tả ban đầu về thiết kế
Khi xây dựng một chip khả trình (FPGA) với ý nghĩa dành cho một ứng dụng riêng biệt, vì xuất phát từ mỗi ứng dụng trong thực tiễn cuộc sống, sẽ đặt ra yêu cầu phải thiết kế IC thực hiện tối ưu nhất những ứng dụng đó Bước đầu tiên của quy trình thiết kế này có nhiệm vụ tiếp nhận các yêu cầu của thiết kế và xây dựng nên kiến trúc tổng quát của thiết kế
* Mô tả thiết kế: Trong bước này, từ những yêu cầu của thiết kế và dựa trên khả
năng của công nghệ hiện có, người thiết kế kiến trúc sẽ xây dựng nên toàn bộ kiến trúc tổng quan cho thiết kế Nghĩa là trong bước này người thiết kế kiến trúc phải mô tả được những vấn đề sau:
Thiết kế có những khối nào?
Mỗi khối có chức năng gì?
Hoạt động của thiết kế và của mỗi khối ra sao ?
Trang 13Khóa luận tốt nghiệp Thử nghiệm thiết kế dao động ký số trên FPGA
Phân tích các kỹ thuật sử dụng trong thiết kế và các công cụ, phần mềm
hỗ trợ thiết kế
Một thiết kế có thể được mô tả sử dụng ngôn ngữ mô tả phần cứng, như VHDL hay Verilog HDL hoặc có thể mô tả qua bản vẽ mạch (schematic capture) Một thiết kế
có thể vừa bao gồm bản vẽ mạch mô tả sơ đồ khối chung, vừa có thể dùng ngôn ngữ HDL để mô tả chi tiết cho các khối trong sơ đồ
* Mô phỏng chức năng (Function simulation): sau khi mô tả thiết kế, người thiết
kế cần mô phỏng tổng thể thiết kế về mặt chức năng để kiểm tra thiết kế có hoạt động đúng với các chức năng yêu cầu
* Tổng hợp logic (Logic Synthesis): tổng hợp logic là quá trình tổng hợp các mô
tả thiết kế thành sơ đồ bố trí mạch (netlist) Quá trình chia thành 2 bước: chuyển đổi các mã RTL, mã HDL thành mô tả dưới dạng các biểu thức đại số Boolean và dựa trên các biểu thức này kết hợp với thư viện tế bào chuẩn sẵn có để tổng hợp nên một thiết
kế tối ưu
* Hiệu chỉnh các kết nối (Datapath Schematic): nhập netlist và các ràng buộc về
thời gian vào một công cụ phân tích thời gian (timing analysic) Công cụ phân tích này
sẽ tách rời tất cả các kết nối của thiết kế, tính thời gian trễ của các kết nối dựa trên các ràng buộc Dựa trên kết quả phân tích (report) của công cụ phân tích, xác định các kết nối không thỏa mãn về thời gian Tùy theo nguyên nhân dẫn đến không thỏa mãn mà
ta có thể viết lại mã và tiến hành lại tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc
Hình 4: Logic Synthesis
Nguyễn Văn Thông K49ĐB 7