Đất nước ta đang trong thời kỳ đổi mới, công nghiệp hoá, hiện đại hoá, với xu thế hội nhập kinh tế quốc tế. Sự phát triển của các doanh nghiệp, các ngành nghề là hết sức quan trọng, đóng vai trò tiên quyết cho sự vững bưước đi lên của đất nưước.
Ngành Điện tử ư Viễn Thông Việt Nam, một trong những ngành có vai trò quan trọng trong kết cấu hạ tầng cơ sở của nền kinh tế quốc dân cũng đang có sự đóng góp lớn lao cho sự lớn mạnh của nền kinh tế, ổn định chính trị và an ninh quốc phòng nưước nhà.
Bởi định hưướng đi tắt đón đầu của đất nưước, công nghệ Điện tử nói chung và công nghệ FPGA nói riêng ngày càng lớn mạnh ở Việt Nam chúng ta. Tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết 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 cao, 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. Những ứng dụng trong thực tế của FPGA rất rộng rãi, bao gồm: 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. Đặc biệt, với khả năng tái lập trình, người sử dụng có thể thay đổi lại thiết kế của mình chỉ trong vài giờ.
Nhờ những đặc điểm mạnh mẽ và ứng dụng thực tiễn của FPGA tôi đã chọn đề tài “Điều khiển tín hiệu bàn phím chuẩn PS2 và tín hiệu VGA dựa trên công nghệ FPGA ”.
Tôi xin chân thành cảm ơn các thầy cô giáo đặc biệt là KS. Lê Đình Công đã tận tình hướng dẫn, giúp đỡ tôi, xin cảm ơn gia đình, bạn bè đã động viên để tôi có thể hoàn thành đồ án này một cách tốt đẹp.
95 trang |
Chia sẻ: ngtr9097 | Lượt xem: 3170 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển tín hiệu bàn phím chuẩn PS2 và tín hiệu VGA dựa trên công nghệ FPGA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Mục Lục
DANH MỤC HÌNH VẼ
Hình 1.1 Kiến trúc tổng quan của FPGA 8
Hình 1.2 Khối logic lập trình được của FPGA 9
Hình 1.3 Chênh lệch giá thành của FPGA và ASIC 11
Hình 1.4 Trình tự thiết kế chip 13
Hình 1.5 Kiến trúc thực một thể Entity 20
Hình 1.6 Thí dụ của một mô hình VHDL có thứ bậc 21
Hình 1.7 Kiến trúc thực thể Tesstbench 22
Hình 1.8 Quy trình thiết kế chip dựa trên VHDL 23
Hình 2.1 Cấu trúc các thành phần của Spartan 3E 25
Hình 2.2 Spartan-3E Starter Kit Board nhìn từ mặt trên. 27
Hình 2.3 Một số cổng của Spartan-3E Kit Board. 27
Hình 2.4 Chíp Spartan-3E Xilink với các thông số 27
Hình 2.5 Giao diện chính của môi truờng lập trình ISE 9.2i 31
Hình 2.6 Tạo một Project mới 32
Hình 2.7 Lựa chọn thiết bị cho đề án. 32
Hình 2.8 Thêm module vào đề án thiết kế 33
Hình 2.9 Lựa chọn các cổng vào ra 33
Hình 3.1 Cách xác định số dòng quét trên mỗi hình 37
Hình 3.2 Cách quét xen kẽ trong kỹ thuật truyền hình 38
Hình 3.3 Dòng quét ngang có dạng răng cưa tuyến tính theo chiều ngang 39
Hình 3.4 Một dòng quét AB của tín hiệu hình được điều chế biên độ âm 40
Hình 3.5 VGA port 43
Hình 3.6 Đầu nối DB15 VGA (nhìn mặt trước) 43
Hình 3.7 Đầu nối VGA trong Spartan-3E Starter Kit Board 45
Hình 3.8 Ví dụ về CRT Display Timing 46
Hình 3.9 Biểu đồ thời gian tín hiệu VGA 47
Hình 3.10 Biểu đồ thời gian tín hiệu VGA 51
Hình 3.11 Tín hiệu vào/ra cổng PS2 52
Hình 3.12 Bảng mã scancode với các phím tương ứng 52
Hình 4.1 Xây dựng SRAM từ CORE Generator 72
Hình 4.2 Thông số khởi tạo SRAM 73
DANH MỤC BẢNG
Bảng 2.1 Một số sản phẩm của dòng Spartan-3E 27
Bảng 3.1 Mô tả các chân của DB-15 45
Bảng 3.2 Mã hiển thị màu 46
Bảng 3.3 Các tham số cho chế độ 640 * 480 48
Bảng 3.4 Các chân tín hiệu PS2 52
Bảng 3.5 Tham số nhận được từ cổng PS2 53
Bảng 3.6 Các lệnh điều khiển gửi đến bàn phím PS2 54
Lời nói đầu
Đất nước ta đang trong thời kỳ đổi mới, công nghiệp hoá, hiện đại hoá, với xu thế hội nhập kinh tế quốc tế. Sự phát triển của các doanh nghiệp, các ngành nghề là hết sức quan trọng, đóng vai trò tiên quyết cho sự vững bước đi lên của đất nước.
Ngành Điện tử - Viễn Thông Việt Nam, một trong những ngành có vai trò quan trọng trong kết cấu hạ tầng cơ sở của nền kinh tế quốc dân cũng đang có sự đóng góp lớn lao cho sự lớn mạnh của nền kinh tế, ổn định chính trị và an ninh quốc phòng nước nhà.
Bởi định hướng đi tắt đón đầu của đất nước, công nghệ Điện tử nói chung và công nghệ FPGA nói riêng ngày càng lớn mạnh ở Việt Nam chúng ta. Tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết 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 cao, 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. Những ứng dụng trong thực tế của FPGA rất rộng rãi, bao gồm: 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... Đặc biệt, với khả năng tái lập trình, người sử dụng có thể thay đổi lại thiết kế của mình chỉ trong vài giờ..
Nhờ những đặc điểm mạnh mẽ và ứng dụng thực tiễn của FPGA tôi đã chọn đề tài “Điều khiển tín hiệu bàn phím chuẩn PS2 và tín hiệu VGA dựa trên công nghệ FPGA ”.
Tôi xin chân thành cảm ơn các thầy cô giáo đặc biệt là KS. Lê Đình Công đã tận tình hướng dẫn, giúp đỡ tôi, xin cảm ơn gia đình, bạn bè đã động viên để tôi có thể hoàn thành đồ án này một cách tốt đẹp.
Vinh, ngày 10 tháng 05 năm 2009
Giáo viên hướng dẫn Sinh viên thực hiện
Thuật Ngữ Tiếng Anh
Ký Hiệu
Diễn Giải
ASIC
Application Specific Integrated Circuit
ALU
Arithmetic Logic Unit
CPLD
Complex Programmable Logic Device
CPU
Central Processing Unit
CLB
Configurable Logic Blocks
DSP
Digital Signal Processing
DCM
Digital Clock Manager
DAC
Digital to Analog Converter
FPGA
Field Programmable Gate Array
HDL
Hardware Description Language
IC
Integrated Circuit
IEEE
Institute of Electrical and Electronics Engineers
IOBs
Input/Output Blocks
JTAG
Joint Test Action Group
LED
Light Emitting Diode
LUT
Look Up Table
PAL
Programmable Array Logic
PLA
Programmable Logic Array
PS2
Personal System/2
RAM
Random Access Memory
ROM
Read Only Memory
RS232
Recommended Standard 232
SoC
System on chip
SRAM
Static Random Access Memory
SPLD
Simple Programable Logic Device
USB
Universal Serial Bus
VHDL
VHSIC Hardware Description Language
VHSIC
Very High Speed Itergrated Circuit
CHƯƠNG I - TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VHDL
1.1 Tổng quan về FPGA
1.1.1. Lịch sử ra đời của 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 một 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 logic device) 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, mỗi khối này 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 nữa với CPLD là trong những FPGA hiện đại được tích hợp nhiều bộ logic số học đã được tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao, hay các bộ nhân, cộng dùng cho những ứng dụng xử lý tín hiệu số.
Ngoài khả năng cấu trúc lại vi mạch ở mức toàn cục, một số FPGA hiện đại còn hỗ trợ cấu trúc lại ở mức cục bộ, tức là khả năng cấu trúc lại 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.1.2. Khái niệm cơ bản và cấu trúc của FPGA
FPGA (Field Programable Gate Arrays - Ma trận cổng lập trình được theo hàng) là một thiết bị bán dẫn bao gồm các khối logic lập trình được gọi là "Logic Block", và các kết nối khả trình. Các khối logic có thể được lập trình để thực hiện các chức năng của các khối logic cơ bản như AND, XOR, hoặc các chức năng kết hợp
phức tạp hơn như decoder hoặc các phép tính toán học. Trong hầu hết các kiến trúc FPGA, các khối logic cũng bao gồm cả các phần tử nhớ. Đó có thể là các Flip-Flop hoặc những bộ nhớ hoàn chỉnh hơn.
Kiến trúc tổng quan về FPGA được mô tả như hình 1:
I/O Blocks
Programmable Interconnects
Configurable Logic Blocks
Hình 1.1 Kiến trúc tổng quan của FPGA
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)
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. 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.
Khối logic được mô tả như hình 2:
4
F[4:1] A[4:1] D
F-LUT
FFX
X
XQ
4
G[4:1] A[4:1] D
G-LUT
FFY
Y
YQ
Hình 1.2 Khối logic lập trình được của FPGA
Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng khái niệm SLICE, 1 Slice gồm 4 khối logic tạo thành, số lượng các Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA.
Hệ thống mạch liên kết lập trình được
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.
Khối vào/ra (IO Pads)
Khối vào/ra nhiều hay ít là tuỳ thuộc vào từng loại FPGA. Chúng có thể được kết nối với các thiết bị bên ngoài như LED, USB, RS232, RAM....tuỳ theo mục đích sử dụng
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 xử lý PowerPC, hay cho những ứng dụng xử lý tín hiệu số trong FPGA được tích hợp các DSP Slice 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.1.3. Các ứng dụng của FPGA
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số, 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.1.4 Ý nghĩa và vai trò của FPGA
ASIC lập trình được đã xuất hiện từ lâu dưới dạng PLD (Programmable Logic Device), nhưng vai trò của các dạng ASIC này là 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 PLD 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.
Kể từ năm 1980,Các công ty sản xuất PLD hàng đầu đã đẩy mạnh quá trình nghiên cứu về FPGA 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 Controller), các ngoại vi như SPI,Timer, I2C, GPIO, PWM, Video/Audio Controller… (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 ASIC và SoC cả về kinh tế 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 rất phổ biến hiện nay trên thế giới, giúp các công ty nhỏ và vừa và đặ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 sản xuất IC. Để giải thích cho sự quan trọng rất lớn của FPGA, sẽ có một ví dụ cụ thể sau:
Trước đây, khi muốn chế tạo ra một con chip “Vi 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 cần phải sử dụng nhữ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 sản xuất con Chip sau này, sau đó là quá trình kiểm tra timing (định thời) cho toàn bộ thiết kế để đảm bảo thiết kế đó sẽ hoạt động ở tần số yêu cầu. Tất cả các công đoạn này đều chỉ có thể kiểm tra bằng các 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 thiết kế sang môi trường Chip thực ).
Quy trình tiếp theo là gởi thiết kế của mình tới công ty sản xuất Chip và phó mặc cho số phận, một chip mẫu giá vài triệu đô la sẽ được chuyển trả về, sau đó là bắt đầu quá trình test chip trong môi trường thực, nếu thất bại, khả năng lớn là chúng ta sẽ phải thực hiện lại hoàn toàn qui trình thiết kế như đã nói ở trên, và cứ mỗi lần như vậy, phải thanh toán vài triệu đô la cộng với khỏang thời gian nghiên cứu rất lớn. Quy trình này làm cho các đất nước nghèo như Việt Nam không thể tham gia vào các cuộc chơi của các đất nước giàu có trong thế giới của ASIC.
Nhưng với FPGA,chúng ta không những có thể rút ngắn thời gian thực hiện 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 các phần mềm mô phỏng mà giờ đây còn có thể chạy trên các Chip thực trong 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 bản thiết kế cho đến khi đạt yêu cầu mà không phải trả khoản chi phí nào ngoài tiền điện tiêu thụ.
Sau đây là biểu đồ thể hiện sự chênh lệch về giá thành của FPGA và ASIC đối với số lượng sản xuất. Dựa vào biểu đồ này, khi muốn sản xuất với số lượng dự kiến, các công ty sẽ tính toán để sử dụng công nghệ nào thì tối ưu và có lợi hơn.
Hình 1.3 Chênh lệch giá thành của FPGA và ASIC
* Kết luận khi so sánh FPGA với ASIC
FPGAs có tính mềm dẻo hơn vì có khả năng tái cấu hình
FPGAs hiệu quả hơn về kinh tế nếu sản xuất với số lượng vừa và nhỏ.
ASICs có mật độ ứng dụng nhiều hơn.
1.1.5 So sánh FPGA với một số mạch lập trình được
1.1.5.1 FPGA với CPLD
FPGA
CPLD
Khối logic
Logic cell nằm ngoài, chia chung nguồn tài nguyên
Logic cell nằm giữa các nguồn tài nguyên
Kết nối
Phức tạp
Đơn giản hơn
Công nghệ lập trình
SRAM
EPROM, EEPROM
Cấu trúc logic
LUT
Mảng AND-OR, PAL-like
Ứng dụng
Vừa và lớn
Nhỏ
Một kiến trúc khác tương tự nhưng đơn giản hơn FPGA, là CPLD (Complex Programable Logic Device ). Thực chất đây là tiền thân của FPGA. FPGA và CPLD đều bao gồm một số lượng khá lớn các phần tử logic khả trình. Mật độ cổng logic (Logic Gate) của CPLD nhỏ hơn rất nhiều lần so với FPGA.
Khác biệt cơ bản giữa FPGA và CPLD là ở kiến trúc của chúng. CPLD có một kiến trúc bị giới hạn trong một hoặc một vài dãy logic khả trình cùng với một lượng nhỏ thanh ghi định thời. Do đó nó kém linh hoạt hơn, nhưng lại có ưu điểm là khả năng dự đoán trễ lớn hơn và tỉ lệ logic-kết nối cao hơn.
1.1.5.2 FPGA với SoC
SoC đề cập đến tất cả các thành phần tích hợp của một máy tính hoặc các hệ thống điện tử tích hợp thành một vi mạch (chip). SoC có thể là một hệ thống mạch số, mạch analog, mạch mixed-tín hiệu, hoặc hệ thống mạch chức năng về radio-frequency được tích hợp tất cả trên một chip. Một ứng dụng điển hình của SoC là trong lĩnh vực hệ thống nhúng.
Khả năng của SoC vượt trội hơn FPGA cả về hai khía cạnh kinh tế lẫn tốc độ bởi mật độ tích hợp rất cao của SoC đến hàng triệu cổng. Trên thực tế, SoC là kết quả sau khi kết hợp các FPGA chuyên biệt lại với nhau để tạo nên một hệ thống hoàn chỉnh. FPGA có ưu thế hơn SoC ở tính mềm dẻo, khả năng tái cấu hình mạnh nên FPGA phù hợp với nhu cầu nghiên cứu hơn là SoC.
1.1.6 Trình tự thiết kế chip dựa vào FPGA
Trình tự thiết kế một hệ thống trên nền FPGA bao gồm các bước sau:
Hình 1.4 Trình tự thiết kế chip
Ghi các đặc điểm kĩ thuật
Tầm quan trọng của các đặc điểm kĩ thuật (specification) không thể phóng đại quá. Nó chỉ tuyệt đối cần đặc biệt khi là một hướng dẫn để chọn công nghệ phù hợp và tạo những yêu cầu của bạn cho các nhà sản xuất chip. Và các đặc điểm kĩ thuật cho phép mỗi kĩ sư hiểu về thiết kế hệ thống chung và công việc của họ trong hệ thống đó là gì. Và nó cũng cho phép các kĩ sư thiết kế giao diện đúng cho một loạt các phần của chip. Các đặc điểm kĩ thuật cũng giúp tiết kiệm thời gian và sự hiểu lầm. Sẽ không làm gì được nếu không có các bảng ghi các đặc điểm kĩ thuật. Chi tiết kĩ thuật nên bao gồm các thông tin sau đây:
Sơ đồ khối bên ngoài để chỉ ra chip đó được đặt vào trong hệ thống như thế nào.
Sơ đồ khối bên trong chỉ rõ mỗi chức năng của các thành phần.
Miêu tả các chân vào ra bao gồm khả năng lái đầu ra, mức ngưỡng đầu vào.
Thời gian ước lượng bao gồm thời gian thiết lập và giữ ở các chân vào, thời gian lan truyền ra các cổng ra và thời gian chu kì clock.
Đếm xấp xỉ số gate
Dạng đóng gói
Tiêu thụ nguồn
Giá cả
Các thủ tục để kiểm tra
Một điều rất quan trọng nữa là đó là các tài liệu trực tuyến. Rất nhiều phần sẽ được dự đoán tốt nhất ở trong đó, nhưng sẽ thay đổi trong quá trình chip được thiết kế.
Chọn công nghệ
Mỗi khi một chi tiết miêu tả kĩ thuật được xuất bản, nó có thể được dùng để chọn nhà sản xuất chip tốt nhất với công nghệ và cấu trúc giá cả là tốt nhất đáp ứng được yêu cầu của bạn.
Chọn một hướng tiếp cận thiết kế
Tại thời điểm này bạn phải quyết định cách thực hiện thiết kế mà bạn mong muốn. Đối với các chip nhỏ thì cách tiếp cận bằng sơ đồ nguyên lý (schematic) thường được chọn, đặc biệt là khi các kĩ sư thiết kế đã quen thuộc với các công cụ này. Thế nhưng đối với các thiết kế lớn hơn, nguôn ngữ miêu tả phần cứng (hardware description language) HDL như Verilog và VHDL được dùng bởi khả năng mềm dẻo, dễ đọc, dễ chuyển giao. Khi dùng ngôn ngữ cấp cao, phần mềm tổng hợp (synthesis software) sẽ được yêu cầu tổng hợp (synthesize) thiết kế. Có nghĩa rằng phần mềm này sẽ tạo ra các cổng ở cấp thấp từ miêu tả ở cấp cao hơn.
Chọn công cụ tổng hợp
Tại điểm này, bạn phải quyết định chọn phần mềm tổng hợp nào sẽ được dùng nếu bạn có kế hoạch thiết kế FPGA với HDL. Điều đó rất quan trọng kể từ khi mỗi công cụ tổng hợp được khuyên dùng và sự ủy thác của cách thiết kế phần cứng nên nó có thể hoạt động tổng hợp đúng hơn.
Thiết kế chip
Có một số cách để thiết kế chip
Top-down design (Thiết kế từ trên xuống dưới)
Macros
Synchronous design
Protect against metastability
Avoid floating nodes
Avoid bus contention
Mô phỏng – cái nhìn tổng quan về thiết kế
Mô phỏng là một quá trình liên tục khi mà thiết kế xong. Từng phần nhỏ của thiết kế nên được mô phỏng trước khi kết hợp chúng thành các phần lớn hơn. Điều này rất là cần thiết và sự mô phỏng theo thứ tự sẽ kiểm tra chức năng hoạt động đúng của từng phần. Mỗi khi thiết kế và mô phỏng hoàn thành, dẫn đến một cái nhìn tổng quan khác về thiết kế vì thế thiết kế có thể được kiểm tra lại. Thật là quan trọng để nhận các kết quả khác cho phép nhìn qua các mô phỏng và chắc chắn rằng không có điều gì bị quên và không sự tổn hao nào gặp phải. Đó là một trong những khái quát quan trọng nhất bởi vì khi mô phỏng đúng và thành công thì bạn sẽ biết được chip của bạn sẽ hoạt động đúng trong hệ thống.
Tổng hợp
Nếu thiết kế dùng HDL, bước tiếp theo là tổng hợp chip, bao gồm việc dùng phần mềm tổng hợp để chuyển đổi thật tối ưu từ thiết kế mức RTL (register transfer level) sang thiết kế mức gate mà có thể gắn vào các khối logic trong FPGA.
Place and Route
Bước tiếp theo là sắp đặt chip, kết quả trong việc thiết kế vật lý cho chip thực. Điều này bao gồm các công cụ của nhà sản xuất đẻ tối ưu lập trình cho chip để thực hiện thiết kế. Sau đó, thiết kế được lập trình vào cho chip.
Mô phỏng lại – tổng quan cuối cùng
Sau khi sắp đặt xong, thì chip phải được mô phỏng lại với các con số về thời gian tạo ra bởi các layout thực tế. Nếu mọi thứ đều tốt đến thời điểm này, thì một kết quả mô phỏng mới sẽ đúng với các kết quả dự đoán.
Kiểm tra
Đối với các thiết bị lập trình được, đơn giản là lập trình thiết bị đó và ngay lập tức có mẫu thử. Sau đó bạn có trách nhiệm đặt mấu thử này vào trong hệ thống và xem xem hệ thống có làm việc đúng không. Nếu bạn làm lần lượt các bước ở bên trên thì đa phần là hệ thống sẽ hoạt động đúng chỉ với một vài lỗi rất nhỏ. Các lỗi này thường được làm việc xung quanh với việc thay đổi hệ thống và thay đổi phần mềm hệ thống. Các lỗi này cần được kiểm tra và trích dẫn lại để có thể được sửa chữa trong phiên bản tiếp theo của chip. Kiểm tra hệ thống nhúng là cần thiết tại thời điểm này để đưa ra kết quả rằng mọi phần của hệ thống đều hoạt động đúng khi kết hợp với nhau.
Khi các chíp được đưa vào sản xuất, rất cần thiết có một vài kiểm tra để có một vài kiểm tra burn-in trong hệ thống để test thường xuyên hệ thống qua thời gian dài. Nếu một chip được thiết kế đúng, thì nó chỉ bị hỏng khi lỗi điện học hoặc lỗi cơ học sẽ thường xuyên xảy ra với loại kiểm tra khắc nghiệt này.
1.2 Ngôn ngữ mô tả phần cứng - VHDL
Tóm tắt: Hiện nay VHDL là một ngôn ngữ mô tả phần cứng đang được sử d
Các file đính kèm theo tài liệu này:
- Do an tot nghiep Kip 2009 FPGA small.doc
- Doantotnghiep.rar