Giới thiệu về công nghệ ASIC và lịch sử phát triển : ASIC viết tắt của Application-Specific Integrated Circuit trong tiếng Anh, là một thuật ngữ chỉ một vi mạch tích hợp được sản xuất
Trang 1MỤC LỤC
-o0o-
MỤC LỤC 1
LỜI NÓI ĐẦU 2
PHẦN 1: TÌM HIỂU VỀ ASIC 3
I Giới thiệu về công nghệ ASIC và lịch sử phát triển : 3
II.Các loại ASIC : 5
III.Luồng thiết kế ASIC 5
PHẦN 2: TÌM HIỂU VỀ FPGA 6
I.Giới thiệu về FPGA: 6
II Ý nghĩa và vai trò của FPGA 8
III Lập trình cho FPGA 8
IV Các công cụ lập trình 10
PHẦN 3: MÃ NGUỒN VHDL 11
************************Solution 1***************************** 11
************************Solution 2***************************** 14
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 17
Trang 2LỜI NÓI ĐẦU
Các mạch tích hợp hiện đại ngày càng thực hiện được nhiều chức năng do đó
mà vấn đề thiết kế mạch ngày càng trở nên phức tạp Trước đây khi thiết kế một
hệ thống số người ta thường sử dụng những phương pháp truyền thống như dung phương pháp tối thiểu hóa hàm Boolean hay sử dụng sơ đồ các phần tử logic Nhược điểm lớn nhất của các phương pháp này là chúng chỉ mô tả được hệ thống dưới dạng mạng nối các phần tử với nhau Người thiết kế cần phải đi qua hai bước thực hiện hoàn toàn thủ công : đó là chuyển từ các yêu cầu về chức năng của hệ thống sang biểu diễn theo dạng hàm Boolean, sau các bước tối thiểu hóa hàm này
ta lại phải chuyển từ sơ đồ hàm Boolean sang sơ đồ mạch hệ thống Cũng tương tự khi phân tích một hệ thống người phân tích cần phải phân tích sơ đồ mạch của hệ thống, rồi chuyển nó thành các hàm Boolean, sau đó mới lập lại các chức năng hoạt động của hệ thống Tất cả các bước nói trên hoàn toàn phải thực hiện thủ công không có bất kỳ sự chợ giúp nào của máy tính Người thiết kế chỉ có thể sử dụng máy tính làm công cụ trong việc vẽ sơ đồ mạch của hệ thống và chuyển từ sơ
đồ mạch sang công cụ tổng hợp mạch vật lý dung công cụ Synthesis Một nhược điểm nữa của phương pháp thiết kế truyền thống là sự giới hạn độ phức tạp của hệ thống được thiết kế, chỉ có thể biểu diến được vài trăm hàm
Ngày nay nền công nghiệp bán dẫn đã phát triển và trường thành nhanh chóng
đã tạo ra các IC có độ tích hợp cao Và để tối ưu hóa khả năng ứng dụng của IC, nhà sản suất đã cho ra một loại linh kiện đặc biệt mà chức năng của nó sẽ được người thiết kế quy định chứ không phải do nhà sản xuất nữa Đó là các thiết bị logic lập trình được Đi đến sự ra đời của ngôn ngữ mô tả phần cứng, nổi bật lên với các ưu điểm hơn hẳn và sẽ dần thay thế các phương pháp thiết kế truyền thống, cho phép chúng ta thiết kế một hệ thống lớn, các mạch tích hợp có tốc độ cao Để hiểu rõ hơn về vấn đề này chúng ta đi vào tìm hiểu ngôn ngữ mô tả phần cứng VHDL và công nghệ ứng dụng thiết kế mạch sử dụng VHDL
**********************************
Trang 3PHẦN 1: TÌM HIỂU VỀ ASIC
I Giới thiệu về công nghệ ASIC và lịch sử phát triển :
ASIC viết tắt của Application-Specific Integrated Circuit trong tiếng Anh, là
một thuật ngữ chỉ một vi mạch tích hợp được sản xuất cho một ứng dụng đặc
trưng và nhìn chung chúng có một kích thước tương đối nhỏ
ASIC là một vi mạch IC được thiết kế dành cho một ứng dụng cụ thể ASIC ngày nay được ứng dụng hầu như khắp mọi nơi, ví dụ như vi xử lý của điện thoại
di động, hay chip xử lý trong các máy móc tự động, các phương tiện truyền thông, vận tải, tàu vũ trụ, các hệ thống xử lý, các dây chuyền công nghiệp và ngay cả trong các thiết bị cầm tay PDA
Công nghệ vi điện tử ngày nay đang chứng kiến một sự thay đổi to lớn: từ những vi mạch được thiết kế bởi các chuyên gia vi mạch, sản xuất với số lượng lớn; chuyển sang các mạch chuyên dụng được thiết kế bởi các kỹ sư hệ thống tại các cơ sở ứng dụng, tại đó không nhất thiết phải đầu tư cơ sở vật chất để làm công nghệ bán dẫn và có thể sản xuất với số lượng nhỏ Nhờ công nghệ ASIC (Application-specific Integrated Circuit) nên các mạch tổ hợp lớn trong nhiều trường hợp có thể được “chế tạo” ngay tại các cơ sở ứng dụng Có được sự thay đổi đó là nhờ việc sử dụng các hệ thống tự động thiết kế CAD (Computer-aided Design)
Hiện nay, mạch vi điện tử chuyên dụng đang có nhu cầu thị trường rất cao, chiếm khoảng 42% thị trường IC thế giới, và trong những năm tới sẽ chiếm khoảng 65%
ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt (đối lập với các mạch tích hợp điều khiển các hàm như RAM trong máy tính) ASIC được xây dựng bằng việc kết nối các khối mạch đã được xây dựng theo các phương pháp mới Do các khối mạch sử dụng đã có sẵn nên việc sản xuất một ASIC mới
dễ dàng hơn nhiều so với việc thiết kế một vi mạch từ những phác thảo ban đầu Sau đây là sơ lược quá trình phát triển của mạch tích hợp (IC)
Hình 1(a) cho thấy khuôn dạng một IC bao gồm một mạng lưới chân (viết tắt PGA : pin-grid array) nằm ở mặt trên của IC và cắm vào trong board
mạch in, thường được gọi là gói chíp Hình 1(b), chip silicon (gọi là silicon die) được gắn vào lỗ hổng dưới nắp được bịt kín
Hình 1(a) Sơ đồ chân của IC
(b) chip silicon ở dưới nắp
Trang 4Kích thước vật lý của một silicon die thay đổi từ một milimét đến vài milimét, nhưng thông thường kích cỡ của một IC được đo bằng số cổng logic (cổng NAND hai ngõ vào) hay số lượng transistor chứa trong IC Ví dụ, một IC có 100k cổng tương đương với 100.000 cổng NAND hai ngõ vào
Công nghệ bán dẫn đã ra đời vào những năm 1970 và tiếp tục phát triển cho đến nay Họ IC đầu tiên gồm những linh kiện có mật độ tích hợp nhỏ (SSI) chứa
từ 1 đến 10 cổng logic như cổng NAND, cổng NOR… hơn nữa chỉ vài chục transistor Tiếp đến là thời kỳ của những mạch tích hợp có mật độ trung bình (MSI) và đã mang theo những chức năng ưu việt hơn so với SSI đó là mật độ tích hợp lớn hơn đồng thời các hàm logic chức năng nhiều hơn Chẳng hạn như, số lượng cổng logic, các bộ giải mã, các thanh ghi, bộ đếm được tăng thêm Vào cuối những năm 1970, công nghệ mạch tích hợp tiếp tục phát triển đến mức các mạch tích hợp mật độ cao (LSI) ra đời Lúc này, các bộ vi xử lí đầu tiên trong các chíp đơn ra đời Với sự ra đời của LSI đã tạo nên một bước tiến mới trong công nghệ bán dẫn, đã thu hút được mối quan tâm của các kỹ sư, các hãng cạnh tranh lúc bấy giờ Các hãng như Intel và Motorola bắt đầu sản xuất các chíp vi xử lí đơn và những chíp nhớ đơn RAM và ROM Các chíp hỗ trợ khác cũng bắt đầu xuất hiện như: cổng song song, giao diện nối tiếp (UART) và bộ điều khiển ngắt Vì vậy, nhiều họ chíp LSI mới được sản xuất và sử dụng cho mục đích thiết kế máy vi tính Ngày nay, các mạch tích hợp có mật độ tích hợp rất cao (VLSI) ra đời đưa ra
bộ xử lý 64 bit có bộ nhớ cache, bộ xử lý toán học có dấu chấm động và được tích hợp trên một triệu transistor Khi công nghệ CMOS phát triển, các transistor được sản xuất với diện tích nhỏ hơn, vì thế các transistor được tích hợp ngày càng nhỏ bên trong IC
Trong những năm 1980, với công nghệ VLSI các kỹ sư đã bắt đầu khai thác những ưu điểm thiết kế một IC theo nhu cầu của mình hoặc thiết kế các hệ thống, các ứng dụng đặt biệt một cách tùy tiện hơn so với các IC chuẩn Sau đó, thiết kế
hệ thống vi điện tử trở thành chủ đề cần quan tâm Đến cuối những năm 1980, những ngôn ngữ mô tả phần cứng như VHDL và Verilog được ra đời đã đi sâu vào phong cách thiết kế Các bộ mô phỏng tốc độ cao và các máy mô phỏng đã cho phép các mẫu thiết kế có hiệu lực nhanh chóng Bộ kiểm tra và phân tích tự động
đã loại bỏ những lỗi do con người gây ra trong quá trình xử lý Cuối cùng, những công cụ tổng hợp đã tự động tiến hành phiên dịch hoạt động của mô hình HDL thành một mô hình cấu trúc logic
Một trong những hội nghị đầu tiên dành cho giai đoạn này nổi lên một cách nhanh chóng của công nghệ IC đó là hiệp hội CICC (IEEE Custom Intergrated Circuits Conference), và hôi nghị này được tổ chức hàng năm nhằm giúp cho sự phát triển của các hãng sản xuất IC tùy biến Các loại IC tùy biến khác nhau bắt đầu được đưa ra có những ứng dụng khác nhau Sự ra đời của các loại IC mới này
đã mở ra một thời kỳ mới đó là những IC ứng dụng chuyên biệt hay ASIC Ngày nay, đã có hiệp hội ASIC quốc tế IEEE (IEEE International ASIC conference)
Trang 5II.Các loại ASIC :
ASIC đặc chế hoàn toàn (Full-custom ASIC)
ASIC dựa trên các tế bào chuẩn (Standard-Cell-Based ASIC)
ASIC dựa trên mảng cổng lôgíc (Gate-Array-Based ASIC)
- Mảng cổng được chia kênh (channeled gate-array)
- Mảng cổng không chia kênh (channeless gate-array)
- Mảng cổng có cấu trúc (structured gate-array)
Các vi mạch lập trình được (Programmable Logic Devices hay PLD)
Mảng cổng lôgíc có thể lập trình được theo trường/miền
(Field-Programmable Gate Array)
III.Luồng thiết kế ASIC
Trang 6
1 Nhập thiết kế (design entry):
Sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL hay Verilog)
(VHDL bởi Bộ Quốc phòng trong năm 1980 và tiêu chuẩn
hóa bởi IEEE vào năm 1993 - Verilog được tạo ra bởi Cadence trong năm
1989 và tiêu chuẩn hóa bởi IEEE năm 1995)
2 Tổng hợp logic (logic synthesis):
Dùng HDL và công cụ tổng hợp logic để xây dựng netlist – là sự mô tả các
tế bào (cell), các khối (block) và kết nối (interconnect) giữa chúng
3 Phân chia hệ thống (system partitioning):
Chia hệ thống lớn thành các phần thích hợp
4 Mô phỏng tiền layout (prelayout simulation):
Kiểm tra tính đúng đắn của thiết kế (tiền layout = sơ đồ mạch logic – chỉ
gần đúng với thực tế)
5 Sắp xếp các khối trên chip (floorplanning):
Sắp xếp các khối của netlist trên chip Nên xem xét cả khía cạnh vật lý và
logic khi thiết kế bước này
6 Bố trí cell (placement):
Định vị cell bên trong khối
7 Định đường dẫn hay định tuyến (routing): kết nối giữa các cell và các
khối
8 Kiểm tra tính hợp lý của bước 7 (extraction): tính toán trở kháng và dung
kháng lớp interconnect
9 Mô phỏng hậu layout (postlayout simulation):
Kiểm tra khả năng làm việc ổn định của toàn bộ thiết kế trong trường hợp
có thêm tải từ lớp interconnect (hậu layout = sơ đồ mạch thực tế)
Các bước thiết kế 1 - 5: logic (logical design)
Các bước thiết kế 5 – 9 : vật lý (physical design)
Kết thúc bước kiểm tra, nếu có lỗi xuất hiện ta phải quay lại các bước trên để
thực hiện chỉnh sửa đến khi việc kiểm tra đảm bảo hoàn tất mà không còn lỗi Sau
khi hoàn tất việc biên dịch mà không còn lỗi nào nữa, file biên dịch sẽ được tải
xuống thiết bị (download device)
PHẦN 2: TÌM HIỂU VỀ FPGA
I.Giới thiệu về FPGA:
PLD sản xuất phức tạp gọi là field-programmable gate array ( FPGA ) Là vi
mạch dùng cấu trúc mảng phần tử logic có thể lập trình được dạng trường
(Chữ field ở đây muốn chỉ đến khả năng tái lập trình “bên ngoài” của người sử
dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn)
Có 1 sự khác biệt giữa FPGA và PLD Đó là FPGA lớn và phức tạp hơn PLD
FPGA là thành viên mới trong họ ASIC và đã phát triển rất nhanh chóng, thay thế
TTL trong các hệ thống vi điện tử
Trang 7Các đặc điểm cần thiết của FPGA
- Không có lớp mặt nạ nào được tùy biến
- Có một phương pháp lập trình logic cell cơ bản và interconnect
- Lõi là 1 mảng các logic cell cơ bản có thể lập trình mà có thể tăng cường kết nối như các chuỗi tuần tự ( flip-flop)
- Một ma trận interconnect có thể lập trình bao quanh logic cell cơ bản
- Cell I/O có thể lập trình bao quanh lõi
- Thiết kế chỉ mất vài giờ
Tất cả FPGA chứa cấu trúc là các logic cell có thể lập trình được bao quanh bởi interconnect có thể lập trình Số lượng, kích thước, chủng loại chính xác của logic cell cơ bản có thể lập trình thay đổi rất lớn
A field-programmable gate array (FPGA) die
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; và khác biệt quan trọng nhất là 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ư 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)
Trang 8II Ý nghĩa và vai trò của FPGA
FPGA có ý nghĩa và vai trò quan trọng trong thực tiễn Ứng dụng cho nhiều ngành nghề, đặc biệt là khoa học
Với các ưu điểm về khả năng tái cấu hình, tốc độ hoạt động, thời gian sản xuất, giá thành giảm, FPGA thường được dung trong các lĩnh vực như:
Thiết kế các lõi IP cho các lĩnh vực chuyên dụng:
- Mã hóa (Cryptography)
- Viễn thông (Communication)
- Công nghiệp phát thanh truyền hình số (Broadcast Industry)
- Xử lý ảnh, thiết kế các bộ codec
- SoC thiết kế các Core CPU, bus
Thiết kế các sản phẩm công nghệ cao và số lượng ít, cần độ đặc chế cao Các máy đo, phát và thu sóng viễn thông FPGA đóng vai trò glue-logic, kết nối các con chip chuyên dụng lại và chạy một số chức năng hỗ trợ con CPU nhúng để
hệ thống nhanh hơn, hiệu quả hơn
III Lập trình cho FPGA
Sơ đồ lập trình cho FPGA
Nhập vào thiết
kế
(Schematic hoặc
HDL)
Mô phỏng chức
năng
(Functional
Simulation)
Tổng hợp (Synthesis)
Liệt kê lưới (netlist) Xử lý Implementation
Mô phỏng thời gian (Timing Simulation)
Device Programming
Loading
Trang 9Để sử dụng thiết bị logic lập trình ta phải kết hợp phần cứng và phần mềm với nhau Ta coi thiết bị lập trình được là thiết bị đích Các thiết bị cần thiết để lập trình bao gồm máy tính, phần mềm lập trình, thiết bị logic ( ở đây là FPGA) và thiết bị kết nối máy tính với thiết bị lập trình ( cáp nối và mạch nạp)
1.Cách thiết kế:
Trước tiên ta thiết kế trên máy tính, ta có thể thiết kế bằng sơ đồ Schematic hoặc ngôn ngữ mô tả phần cứng HDL (VHDL hoặc Verilog)
2.Mô phỏng chức năng:
Để đảm bảo thiết kế hoạt động theo yêu cầu ta phải thực hiện bước mô tả dạng sóng bằng cách cung cấp dạng sóng đầu vào và quan sát dạng sóng đầu ra
3.Tổng hợp
Tổng hợp để đảm bảo thiết kế được tối ưu theo các thành phần từ đó có thể giảm được số lượng cổng, loại trừ các thành phần logic thừa, thay thế các thành phần logic khác có cùng chức năng nhưng hiệu quả hơn
4.Liệt kê lưới (Neslist)
Mô tả các thành phần và cách kết nối với nhau Liệt kê lưới chứa các thành phần
và các phần tử được sử dụng Các điểm kết nối là các port và các pin chân)
5 Thi hành
Sau khi thiết kế đã được tổng hợp thì trình biên dịch thi hành thiết kế - Về cơ bản công việc này là xắp xếp thiết kế để nó có thể tương thích với thiết bị lập trình
đã chọn bằng cách dựa vào cấu trúc và cấu hình chân
Quá trình xử lý này gọi là làm cho tương thích (fitting) Để kết thúc công đoạn thi hành của dòng thiết kế thì phần mềm phải biết thiết bị rõ rang và phải có đầy
đủ thông tin chi tiết về các chân Dữ liệu đầy đủ cho tất cả các thiết bị thường được lưu trong thư viện của bộ nhớ và người thiết kế chỉ cần lựa chọn đúng thiết
bị lập trình
6.Mô phỏng thời gian
Thực hiện trước khi nạp vào thiết bị, Mô phỏng theo thời gian để kiểm tra mạch hoạt động tại tần số thiết kế hoặc không có thời gian trễ hoăc các vấn đề thời gian khác làm ảnh hưởng đến hoạt động của mạch
Khi mô phỏng chức năng thì các thông số chỉ định về thiết bị là không cần thiết, nhưng khi mô phỏng về thời gian thì cần phải lựa chọn thiết bị đích Nếu không bị lỗi ta có thể thực hiện bước tiếp theo, nếu gặp sự cố ví dụ như gặp thời gian trễ thì
ta phải lặp lại các bước thiết kế
7.Nạp chương trình cho thiết bị
Sau khi kiểm tra mô phỏng chức năng và mô phỏng theo thời gian và đã hoạt động đúng thì ta có thể tiến hành Download Thiết kế cần được nạp vào FPGA dưới dạng dòng bit (bit stream)
Quá trình nạp thiết kế (download) vào FPGA thường nạp vào bộ nhớ bay hơi,
ví dụ như SRAM Thông tin cấu hình sẽ được nạp vào bộ nhớ Dòng bit được truyền lúc này sẽ mang thông tin định nghĩa các khối logic cũng như kết nối của
Trang 10thiết kế Tuy nhiên, lưu ý rằng, SRAM sẽ mất dữ liệu khi mất nguồn nên thiết kế
sẽ không lưu được đến phiên làm việc kế tiếp
Lập trình (program) là thuật ngữ để mô tả quá trình nạp chương trình cho các
bộ nhớ không bay hơi, ví dụ như PROM Như vậy, thông tin cấu hình vẫn sẽ được lưu trữ khi mất nguồn
IV Các công cụ lập trình
Các thiết bị cần thiết để lập trình bao gồm máy tính, phần mềm lập trình, thiết bị logic ( ở đây là FPGA) và thiết bị kết nối máy tính với thiết bị lập trình ( cáp nối
và mạch nạp)
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, hay có thể sơ đồ mạch (Schematic) hoặc
có thể kết hợp Schematic với HDL
Phần lớn các sản phẩm FPGA trên thị trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera Dòng FPGA cao cấp nhất của Xilinx là Virtex ( Virtex 5), Spartan, SpartanII, SpartanIII còn với Altera
là Stratix 3, FLEX,Cyclone Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục đích chuyên dụng (Atmel, Actel, Lattice, )
Môi trường thiết kế ta có thể sử dụng Altium Designer, hiện nay phiên bản mới Altium Designer Summer 9 có thể lập trình cho FPGA của tất cả các hãng cung cấp, là phần mềm trung lập, thiết kế dễ dàng và trực quan, hỗ trợ nhiều tính năng thuận tiện
Ngoài ra còn sử dụng các phần mềm hỗ trợ khác như:
- Xilinx ISE lập trình cho FPGA của Xilinx
- Altera quatus lập trình cho FPGA của Altera
- Actel libero lập trình cho FPGA của Actel
- Labview lập trình cho FPGA của NI
***************************************************************