Luận văn: Nghiên cứu & Triển khai Vi xử lý MicroBlaze trên FPGA

Luận văn thạc sĩ: Nghiên cứu & triển khai hệ vi xử lý Microblaze trên FPGA. Ứng dụng thử nghiệm, tối ưu hiệu năng, khám phá tiềm năng phần cứng.

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2010

84
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

DANH MỤC BẢNG BIỂU

DANH MỤC HÌNH VẼ

LỜI MỞ ĐẦU

1. Chƣơng 1 Tổng quan về hệ vi xử lý và hệ thống trên một chip

1.1. Tổng quan về hệ vi xử lý

1.2. Kiến trúc một hệ vi xử lý

1.3. Kiến trúc bên trong của một vi xử lý

1.4. Hệ thống trên một chip

1.5. Giới thiệu về hệ thống trên chip

1.6. Hạn chế của Hệ thống trên chip

1.7. Phƣơng pháp thiết kế vi mạch tích hợp VLSI

1.8. Giới thiệu về công nghệ và phƣơng pháp thiết kế vi mạch tích hợp VLSI

1.9. Công nghệ FPGA và quy trình thiết kế VLSI với công nghệ FPGA

1.10. Giới thiệu về ngôn ngữ mô tả phần cứng VHDL và ứng dụng của VHDL trong thiết kế VLSI

2. Chƣơng 2 Lõi vi xử lý mềm MicroBlaze

2.1. Giới thiệu về MicroBlaze

2.2. Kiến trúc cơ bản của MicroBlaze

2.3. Kiến trúc lõi MicroBlaze

2.4. Kiến trúc bộ nhớ

2.5. Cấu trúc đƣờng ống

2.6. Các thanh ghi trong MicroBlaze

2.7. Kiểu dữ liệu trong MicroBlaze

2.8. Hoạt động ngắt trong MicroBlaze

2.9. Các giao tiếp tín hiệu của MicroBlaze

2.10. Giới thiệu chung

2.11. Bus xử lý nội PLB

2.12. Bus nhớ nội LMB (LMB: Local Memory Bus)

2.13. Bus ngoại vi on-chip OPB (On-chip Peripheral Bus)

2.14. Giao diện nhị phân ứng dụng

2.15. Các kiểu dữ liệu

2.16. Các quy ƣớc sử dụng ngăn xếp và thanh ghi

2.17. Tập lệnh của MicroBlaze

2.18. Khuôn dạng lệnh

3. Chƣơng 3 Triển khai hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze

3.1. Thực thi hệ thống vi xử lý trên kit FPGA sử dụng phần mềm EDK

3.2. Ý tƣởng xây dựng hệ vi xử lý sử dụng lõi xử lý MicroBlaze

3.3. Thực thi thiết kế

3.4. Kết nối giữa MicroBlaze và hệ thống bus PLB

3.5. Kết nối giữa hệ thống bus PLB và các khối ngoại vi

3.6. Bộ giao tiếp truyền thông nối tiếp UART Lite

3.7. Giao tiếp ngoại vi nối tiếp SPI (Serial Peripheral Interface)

3.8. Bộ chuyển đổi tín hiệu số -tƣơng tự DAC

3.9. Thực thi trên công cụ EDK

3.10. Một số kết quả thực thi phần cứng

4. Chƣơng 4 Kiểm thực hệ thống với một số ứng dụng minh hoạ

4.1. Thực hiện truyền thông dữ liệu hai chiều giữa hệ vi xử lý và máy tính qua cổng nối tiếp RS232

4.2. Thực hiện chuyển đổi dữ liệu dạng số sang dạng tƣơng tự qua bộ chuyển đổi tín hiệu DAC

4.3. Kết hợp dùng máy tính để điều khiển hệ thống chuyển đổi dữ liệu qua DAC

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan MicroBlaze trên FPGA Tìm Hiểu Kiến Trúc Ứng Dụng

Thiết kế và phát triển các vi mạch tích hợp (IC) và các hệ thống điện tử là lĩnh vực then chốt trong công nghiệp hóa, hiện đại hóa. Sự ra đời của công nghệ FPGA (Field-Programmable Gate Array) tạo điều kiện cho các nước mới bắt đầu làm quen với thiết kế vi mạch. Công nghệ FPGA cho phép chế tạo thử hoặc triển khai các ứng dụng quy mô vừa phải với chi phí hợp lý. Trước đây, một hệ thống điện tử thường bao gồm nhiều vi mạch ghép nối với nhau. Ngày nay, nhờ công nghệ bán dẫn và kỹ thuật thiết kế mạch tích hợp, có thể tích hợp cả hệ thống lên một vi mạch đơn, gọi là Hệ thống trên một chip (SoC). Hầu hết SoC đều chứa ít nhất một vi xử lý và ứng dụng của chúng được xây dựng như một hệ vi xử lý. Trong khuôn khổ đề tài “Nghiên cứu và triển khai hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze, thử nghiệm ứng dụng trên FPGA”, một hệ vi xử lý tương đối đơn giản được xây dựng trên cơ sở lõi vi xử lý MicroBlaze của hãng Xilinx. Các ứng dụng được thực hiện trên kit phát triển FPGA Spartan-3E của hãng Xilinx, tạo tiền đề cho việc thiết kế các hệ thống trên chip và triển khai các ứng dụng cụ thể của hệ vi xử lý về sau. Báo cáo luận văn trình bày gồm 4 chương: Chương 1. Tổng quan về hệ vi xử lý và hệ thống trên một chip: Chương này giới thiệu chung về vi xử lý, hệ vi xử lý, hệ thống trên một vi mạch, phương pháp và công nghệ thiết kế vi mạch VLSI và ngôn ngữ VHDL. Lõi vi xử lý mềm MicroBlaze: Chương này nghiên cứu, tìm hiểu cụ thể về lõi xử lý mềm MicroBlaze như kiến trúc bộ nhớ, các thanh ghi và các giao tiếp tín hiệu cũng như tập lệnh của MicroBlaze.

1.1. Giới Thiệu Tổng Quan về Hệ Vi Xử Lý và Vai Trò Của FPGA

Một hệ vi xử lý hoàn chỉnh bao gồm bộ vi xử lý (µP: MicroProcessor) kết hợp với các bộ phận điện tử khác như các mạch nhớ để lưu trữ chương trình và dữ liệu cho vi xử lý thực hiện, các mạch ngoại vi giúp con người làm việc, giao tiếp với vi xử lý, hệ thống các bus địa chỉ, bus dữ liệu, bus điều khiển để kết nối các mạch trên. Bộ vi xử lý là thành phần rất cơ bản không thể thiếu được để tạo nên các hệ vi xử lý. Phần trung tâm của hệ vi xử lý là bộ vi xử lý (µP), đóng vai trò chủ đạo trong mọi hoạt động hệ vi xử lý. Đây là một vi mạch số có độ tích hợp cực lớn, bên trong nó bao gồm nhiều khối chức năng khác nhau như đơn vị số học và logic để thực hiện các thao tác và tính toán, các thanh ghi, khối điều khiển. Ngoài ra bên trong vi xử lý còn có hệ thống mạch điện tử rất phức tạp để giải mã và tạo ra các xung điều khiển cho toàn hệ thống. Vi xử lý hoạt động theo một chuỗi các lệnh máy có sẵn gọi là chương trình, do người lập trình tạo ra. Khi hoạt động, nó đọc mã lệnh (được ghi dưới dạng các chuỗi bit 0, 1) từ bộ nhớ đưa vào bên trong vi xử lý để giải mã thành các vi lệnh sau đó điều khiển các khối thực hiện lệnh. Vi xử lý chính là nơi thực hiện các thao tác tính toán, xử lý dữ liệu, đưa ra các tín hiệu điều khiển cho toàn bộ hệ thống.

1.2. Tìm Hiểu Lợi Ích Khi Sử Dụng Vi Xử Lý MicroBlaze Trên FPGA

Để giao tiếp với bên ngoài, hệ vi xử lý được trang bị các khối vào/ra (Input port và Output port). Mỗi cổng vào/ra có một địa chỉ cố định để có thể đọc dữ liệu vào hoặc ghi dữ liệu ra cổng. Cổng vào để lấy thông tin từ ngoài vào và cổng ra để đưa thông tin từ trong hệ ra ngoài. Các cổng vào ra giúp cho vi xử lý theo dõi và đưa tín hiệu điều khiển thích hợp với các quá trình được điều khiển bên ngoài hệ vi xử lý. Chúng còn giúp con người dễ dàng can thiệp, tác động điều khiển, thu nhận kết quả hoặc kiểm tra hoạt động của hệ vi xử lý. Các đường Bus là một nhóm các đường dây dẫn điện để truyền tín hiệu giữa các khối trong hệ. Các đường dây này còn được gọi chung là bus hệ thống. Bus hệ thống gồm có ba bus thành phần: bus địa chỉ chuyển tải tín hiệu địa chỉ, bus dữ liệu chuyển tải tín hiệu dữ liệu và bus điều khiển chuyển tải tín hiệu điều khiển.

II. Phân Tích Chi Tiết Kiến Trúc và Cấu Trúc Lõi MicroBlaze

Chương trước cung cấp các kiến thức cơ bản nhất về hệ vi xử lý, hệ thống SoC, công nghệ FPGA và phương pháp thiết kế VLSI. Chương này trình bày cụ thể về vi xử lý MicoBlaze, là vi xử lý được sử dụng để triển khai hệ vi xử lý về sau. MicroBlaze là lõi vi xử lý mềm 32 bit phát triển bởi hãng Xilinx. Đây là bộ vi xử lý được tích hợp trong các kit phát triển FPGA của Xilinx như Spartan-II, Spartan-III, Virtex. Chúng ta có thể thiết lập các thông số cho MicroBlaze và kết nối với các ngoại vi (UART, GPIO, Erthenet MAC…) thông qua phần mềm EDK. Hiện nay, MicroBlaze đã có phiên bản 9.0 sử dụng phần mềm EDK 10.1 Lõi vi xử lý MicroBlaze được xây dựng theo kiến trúc Harvard, với tập lệnh thu gọn RISC (Reduced Instruction Set Computer). Nó được trang bị các bus riêng biệt để truy xuất dữ liệu và lệnh từ bộ nhớ on-chip và bộ nhớ ngoài tại cùng một thời điểm. Sau đây là những đặc điểm chính của vi xử lý MicroBlaze: Có 32 thanh ghi mục đích chung có độ rộng 32 bit (General Purpose Registers, còn gọi là các thanh ghi đa năng), 14 thanh ghi dùng cho các mục đích đặc biệt. Lệnh của MicroBlaze có 32 bit với 3 toán hạng và 2 chế độ địa chỉ. Bus địa chỉ 32 bit. Sử dụng cấu trúc đường ống (Pipeline).

2.1. Nghiên Cứu Kiến Trúc Cơ Bản của MicroBlaze và Các Thành Phần Chính

Lõi xử lý MicroBlaze gồm: 32 thanh ghi mục đích chung kích thước 32 bit (Register File 32 x 32-bit), các thanh ghi mục đích đặc biệt kích thước 32 bit (Special Purpose Registers), bộ đệm lệnh (Instruction Buffer), bộ giải mã lệnh (Instruction Decoder), khối quản lý bộ nhớ MMU (Memory Manage Unit), bộ đếm chương trình (Program Counter), giao tiếp Bus (Bus interface), các khối xử lý: Đơn vị dấu phẩy động FPU (Float Point Unit), bộ chia (Divider), bộ nhân (Multiplier), các module dịch (Shift, Barrel shift) và khối logic và số học ALU (Arithmetic Logic Unit) thực hiện các phép toán số học và logic. Các giao tiếp bus gồm giao tiếp bus lệnh (Instruction-side bus interface) và giao tiếp bus dữ liệu (Data-side bus interface). Trong đó có bộ đệm lệnh I-Cache, bộ đệm dữ liệu D-Cache. Để giao tiếp với các thành phần bên ngoài lõi, MicroBlaze sử dụng các loại bus: Bus xử lý nội PLB (Processor Local Bus), bus giao tiếp dữ liệu theo chuẩn bus xử lý nội DPLB (Data interface, Processor Local Bus), bus giao tiếp lệnh theo chuẩn bus xử lý nội IPLB (Instruction interface, Processor Local Bus)… Vi xử lý MicroBlaze là một vi xử lý tương đối mạnh, được xây dựng nhằm hướng tới các ứng dụng dạng SoC có yêu cầu khả năng xử lý cao.

2.2. Khám Phá Chi Tiết Cấu Trúc Bộ Nhớ Trong MicroBlaze

Bộ xử lý MicroBlaze được xây dựng theo kiến trúc Harvard. Trong kiến trúc Harvard, sự truy xuất lệnh và truy xuất dữ liệu được tách riêng biệt với nhau trong vùng không gian địa chỉ. Mỗi không gian địa chỉ là 32 bit (MicroBlaze cung cấp tới 232 byte=4GByte địa chỉ truy xuất lệnh và dữ liệu). Vùng nhớ lệnh và vùng nhớ địa chỉ được ánh xạ tới cùng một ô nhớ vật lý. Cả giao tiếp lệnh và giao tiếp dữ liệu của MicroBlaze đều rộng 32 bit, sử dụng kiểu định dạng dữ liệu “big endian, bit reversed”. MicroBlaze cho phép cung cấp các kiểu truy xuất theo từ, nửa từ hay theo byte đối với vùng nhớ dữ liệu. MicroBlaze không phân biệt truy cập dữ liệu tới thiết bị ngoại vi và tới bộ nhớ. MicroBlaze dùng 3 loại bus để truy xuất bộ nhớ: Bus nhớ nội LMB (Local Memory Bus): giao tiếp với các khối RAM. Bus ngoại vi on-chip OPB (On-Chip Peripheral Bus) hay bus xử lý nội PLB (Processor Local Bus): giao tiếp với các bộ nhớ trên chip và bộ nhớ của thiết bị ngoại vi. XCL (Xilinx Cache Link): được sử dụng để MicroBlaze giao tiếp trực tiếp với bộ đệm tích hợp trong khối điều khiển bộ nhớ chuyên dụng.

2.3. Tìm Hiểu Hoạt Động Ngắt và Các Giao Tiếp Tín Hiệu Trong MicroBlaze

MicroBlaze hỗ trợ một nguồn ngắt ngoài 32 bit (được kết nối với cổng vào ngắt Interrupt) vì vậy nếu cần dùng nhiều ngắt ngoài, phải sử dụng một bộ điều khiển ngắt để quản lý các yêu cầu ngắt tới MicroBlaze. Bộ xử lý chỉ đáp ứng với các ngắt nếu bit cho phép ngắt IE trong thanh ghi trạng thái máy MSR được thiết lập giá trị bằng „1‟. Trong một ngắt, giai đoạn thực hiện lệnh hoàn thành trong khi giai đoạn giải mã lệnh được thay thế bằng một nhánh tới véc-tơ ngắt (địa chỉ 0x10). Địa chỉ trả về của ngắt được tự động nạp vào thanh ghi mục đích chung R14. Các ngắt được che bởi bộ vi xử lý nếu bit tạm dừng trong tiến trình (BIP) hoặc bit đang thực hiện tiến trình (EIP) trong thanh khi MSR được thiết lập bằng „1‟. Lõi MicroBlaze được tổ chức cấu trúc phần cứng với các khối giao tiếp bus riêng biệt cho quá trình truy nhập lệnh và truy nhập dữ liệu. MicroBlaze cung cấp 3 kiểu giao tiếp bộ nhớ: Bus nhớ nội LMB (Local Memory Bus), bus xử lý nội PLB (Processor Local Bus), bus ngoại vi on-chip OPB (On-Chip Peripheral Bus) và liên kết bộ nhớ đệm Xilink XCL (Xilink Cache Link), liên kết đơn tốc độ cao FSL (Fast Simplex Link). Giao tiếp LMB cung cấp truy nhập chu kỳ xung nhịp đơn tới khối RAM cổng đôi trên chip. Giao tiếp PLBOPB cung cấp kết nối tới cả bộ nhớ và ngoại vi trên chip và ngoài chip.

III. Hướng Dẫn Triển Khai Hệ Vi Xử Lý MicroBlaze Trên FPGA Xilinx

Để xây dựng một hệ vi xử lý trên cơ sở lõi vi xử lý MicroBlaze thì trước tiên ta phải nghiên cứu một cách khái quát các bước thực thi một hệ thống sau đó phải đưa ra ý tưởng xây dựng, sơ đồ khối, các thành phần của hệ vi xử lý. Trên cơ sở đó tiến hành các bước triển khai hệ vi xử lý. Chương này trình bày về quá trình thiết kế hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze từ ý tưởng xây dựng hệ vi xử lý đến các bước dùng phần mềm EDK để kết nối các thành phần trong hệ và thực thi hệ trên kit FPGA Spartan-3E của hãng Xilinx. EDK là công cụ phần mềm hữu ích dùng để thiết kế hệ thống vi xử lý nhúng trên kit phát triển FPGA của hãng Xilinx. Đây là một công cụ khá thân thiện với người sử dụng, cho phép ta thiết kế một hệ thống phức tạp chỉ với những thao tác tương đối đơn giản. Thực chất EDK sử dụng các chương trình viết sẵn bằng ngôn ngữ mô tả phần cứng VHDL (gọi là các IP - Intellectual Property), thường được biên dịch và tổng hợp sẵn. Người sử dụng có thể dùng các IP đó, xây dựng các mạch logic kết nối và viết phần mềm để điều khiển chúng. EDK bao gồm hai thành phần chính là công cụ thiết kế phần cứng của hệ thống xử lý nhúng XPS (Xilinx Platform Studio) và môi trường phát triển tích hợp SDK (Software Development Kit). SDK là công cụ hỗ trợ cho XPS, được sử dụng để xây dựng, biên dịch và kiểm chứng các ứng dụng phần mềm nhúng viết bằng ngôn ngữ C/C++. SDK được xây dựng trên Eclipse™ open- source framework. Ngoài ra EDK còn bao gồm một số thành phần khác như các thư viện, các trình điều khiển, các chỉ dẫn và một số ví dụ.

3.1. Quy Trình Thiết Kế Hệ Thống Trên FPGA với Phần Mềm EDK

Việc thực thi một hệ thống xử lý trên kit FPGA sử dụng phần mềm EDK bao gồm nhiều công đoạn khác nhau từ việc mô tả yêu cầu thiết kế hệ thống, tạo project, kết nối các thành phần của hệ thống, tổng hợp phần cứng/phần mềm cho đến việc mô phỏng và cuối cùng là thực thi hệ thống trên kit FPGA. Các công đoạn thiết kế hệ thống xử lý trên kit FPGA cơ bản được minh hoạ như sau: Quy trình thiết kế một hệ thống vi xử lý trên kit FPGA sử dụng EDK bao gồm: Bước 1: Trước tiên để xây dựng một hệ vi xử lý ta cần xây dựng bài toán thiết kế. Tại bước này, người thiết kế mô tả ý tưởng và mục đích xây dựng hệ vi xử lý (gồm sơ đồ khối hệ thống, các thành phần để triển khai hệ thống, các kết nối của hệ.

3.2. Hướng Dẫn Kết Nối MicroBlaze Với Các Thành Phần Khác

Quá trình tổng hợp logic (Synthesis) là quá trình dịch từ các ngôn ngữ mô tả sang dạng mạch điện hoàn chỉnh, còn gọi là dạng netlist. Nếu trong thiết kế có sử dụng các bản thiết kế các linh kiện phụ trợ thì quá trình tổng hợp cũng tạo ra dạng netlist của các thành phần con này. Quá trình tổng hợp cũng thực hiện kiểm tra lỗi cú pháp trong file mã nguồn mô tả và phân tích thứ bậc trong thiết kế nhằm đảm bảo tối ưu hóa kiến trúc của bản thiết kế. Quá trình thực thi (Implementation) thường bao gồm ba bước: dịch (Translate), gắn kết với thư viện phần cứng (Map), đặt chỗ và định tuyến (Place and Route). Bước dịch tổng hợp tất cả các netlist thành một thiết kế logic, gán các cổng vào ra của thiết kế với linh kiện phần cứng thực tế (là các linh kiện trong vi mạch FPGA). Bước gắn kết với thư viện phần cứng thực hiện việc phân chia bản thiết kế thành từng phần nhỏ tương ứng với các khối cơ bản (block) của FPGA. Bước đặt chỗ và định tuyến thực hiện việc định vị trí các block trên chip thực tế và tạo các đường kết nối giữa các khối này (còn được gọi là thực thi layout). Lúc này bản thiết kế hoàn chỉnh, tương ứng với FPGA được tạo ra.

IV. Ứng Dụng Thực Tế Truyền Thông Dữ Liệu và Chuyển Đổi DAC

Đại học quốc gia Hà Nội trường đại học công nghệ vũ thị kim nhung nghiên cứu và triển khai hệ vi xử lý trên cơ sở lõi xử lý microblaze, thử nghiệm ứng dụng trên fpga luận văn thạc sĩ Hà Nội - 2010 tieu luan moi download : skknchat@gmail.com đại học quốc gia Hà Nội trường đại học công nghệ vũ thị kim nhung nghiên cứu và triển khai hệ vi xử lý trên cơ sở lõi xử lý microblaze, thử nghiệm ứng dụng trên fpga ngành: Công nghệ Điện tử - Viễn thông Chuyên ngành: Kỹ thuật điện tử Mã số: 60 52 70 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Trần Xuân Tú Hà Nội - 2010 tieu luan moi download : skknchat@gmail.com i LỜI CẢM ƠN Trƣớc tiên tôi xin bày tỏ lời cảm ơn sâu sắc tới Tiến sĩ Trần Xuân Tú, ngƣời đã tận tình chỉ bảo, hƣớng dẫn tôi trong suốt quá trình thực hiện luận văn tại Phòng thí nghiệm mục tiêu Hệ thống tích hợp thông minh (PTN SIS), thuộc trƣờng Đại học Công nghệ, Đại học Quốc gia Hà Nội. Thầy đã định hƣớng, gợi mở và trang bị cho tôi nhiều kiến thức và kinh nghiệm về thiết kế hệ thống xử lý trên chip dựa trên công nghệ FPGA, một lĩnh vực mà trƣớc khi thực hiện luận văn tôi chƣa đƣợc biết đến.

4.1. Thực Hiện Truyền Thông Dữ Liệu Hai Chiều Với Cổng RS232

Bộ nhớ trong (internal memory) là bộ phận rất quan trọng của hệ vi xử lý dùng để lƣu trữ dữ liệu và các chƣơng trình cần thực thi. Bộ nhớ trong đƣợc tổ chức thành các ô nhớ có độ dài (số bit) bằng nhau, mỗi ô nhớ đƣợc gán một địa chỉ cố định và duy nhất để vi xử lý quản lý. Tùy theo kiến trúc của vi xử lý mà có thể phân chia bộ nhớ thành các loại khác nhau. Đối với những vi xử lý có kiến trúc Von Neumann, vùng nhớ dữ liệu và vùng nhớ chƣơng trình không đƣợc phân chia độc lập và cùng đƣợc truy nhập theo một đƣờng địa chỉ. Điều này cho phép đƣa dữ liệu vào vùng mã chƣơng trình và đƣa mã chƣơng trình vào vùng nhớ dữ liệu rồi thực hiện lệnh từ đó. Ngƣợc lại, với những vi xử lý có kiến trúc Harvard, vùng nhớ cho chƣơng trình và vùng nhớ cho dữ liệu đƣợc phân biệt rõ ràng. Mã chƣơng trình chỉ có thể đƣợc lƣu và đọc ra từ vùng nhớ chƣơng trình (thƣờng là bộ nhớ chỉ đọc ROM: Read Only Memory). Các dữ liệu cũng chỉ có thể đƣợc lƣu và trao đổi với vi xử lý từ bộ nhớ dữ liệu RAM (RAM: Random Access Memory). Nhƣ vậy, kiến trúc Harvard có ƣu điểm nổi bật hơn kiến trúc Von Neumann là vùng nhớ dữ liệu và vùng nhớ chƣơng trình đƣợc vi xử lý truy nhập qua hai kênh riêng biệt, nhờ vậy vi xử lý có thể truy nhập đồng thời cả hai vùng nhớ, làm tăng tốc độ trao đổi với vi xử lý.

4.2. Chuyển Đổi Dữ Liệu Số Sang Tương Tự Qua Bộ Chuyển Đổi DAC

Để giao tiếp với bên ngoài, hệ vi xử lý đƣợc trang bị các khối vào/ra (Input port và Output port). Mỗi cổng vào/ra có một địa chỉ cố định để có thể đọc dữ liệu vào hoặc ghi dữ liệu ra cổng. Cổng vào để lấy thông tin từ ngoài vào và cổng ra để đƣa thông tin từ trong hệ ra ngoài. Các cổng vào ra giúp cho vi xử lý theo dõi và đƣa tín hiệu điều khiển thích hợp với các quá trình đƣợc điều khiển bên ngoài hệ vi xử lý. Chúng còn giúp con ngƣời dễ dàng can thiệp, tác động điều khiển, thu nhận kết quả hoặc kiểm tra hoạt động của hệ vi xử lý. Các đƣờng Bus là một nhóm các đƣờng dây dẫn điện để truyền tín hiệu giữa các khối trong hệ. Các đƣờng dây này còn đƣợc gọi chung là bus hệ thống. Bus hệ thống gồm có ba bus thành phần: bus địa chỉ chuyển tải tín hiệu địa chỉ, bus dữ liệu chuyển tải tín hiệu dữ liệu và bus điều khiển chuyển tải tín hiệu điều khiển.

V. Đánh Giá Hiệu Năng và Tối Ưu Hóa Hệ Thống MicroBlaze Trên FPGA

Để thiết kế và xây dựng các hệ thống trên chip có thể sử dụng các công nghệ nhƣ công nghệ chế tạo ASIC hay công nghệ FPGA. Mặc dù hệ thống trên chip (SoC) có nhiều ƣu điểm nhƣng do hệ thống phức tạp, tích hợp nhiều lõi IP dẫn đến SoC cũng gặp phải không ít những hạn chế về độ trễ lan truyền, năng lƣợng tiêu thụ, đồng bộ… Hạn chế về độ trễ: công nghệ thiết kế vi mạch ngày càng phát triển, kích thƣớc ngày càng tăng, độ tích hợp ngày càng cao. Khi thiết kế với công nghệ nhỏ hơn micro (DSM: deep submicron) thì vấn đề về độ trễ đặc biệt quan trọng, khi đó ngƣời thiết kế cần phải giải quyết các vấn đề liên quan đến độ trễ đáp ứng của dây dẫn cục bộ, dây dẫn toàn cục và của các cổng logic. Với các công nghệ mới, độ trễ đáp ứng giữa đầu ra và đầu vào của cổng logic rất nhỏ đặc biệt khi so với độ trễ dây dẫn. Ngoài ra, độ trễ trên dây dẫn cục bộ trong các lõi IP (Intellectual Property) cũng có sự chênh lệch khá lớn đối với độ trễ trên các dây dẫn nối giữa các lõi với nhau. Ngay cả độ trễ trên các dây dẫn toàn cục cũng có sự khác nhau, khác nhau giữa các dây nối các lõi IP ở gần với các dây nối các lõi IP ở xa.

5.1. Phân tích các yếu tố ảnh hưởng đến hiệu năng hệ thống

Sự phát triển không ngừng của công nghệ tạo ra yêu cầu giảm thời gian thiết kế. Thêm nữa, kích thƣớc chip ngày càng tăng, việc thu gọn hình dạng và tăng số lớp kim loại khiến độ phức tạp của thiết kế tăng tới 50 lần trong một chu kỳ. Do đó việc tái sử dụng các IP trong thiết kế là cần thiết.

5.2. Các phương pháp tối ưu hóa hiệu năng cho MicroBlaze

Mô phỏng chức năng (Functional Simulation) được thực hiện sau bước dịch, dùng để kiểm chứng chức năng logic của mạch. Nếu mạch thực hiện chƣa đúng chức năng mong muốn, ngƣời thiết kế có thể quay lại sửa bản mã mô tả. Bước phân tích thời gian (Timing Analysis) được thực hiện sau khi đã thực hiện việc đặt chỗ và định tuyến (Place and Route) các phần tử trong mạch. Bước này cho biết các thông số về thời gian thực hiện mạch, thời gian trễ trên đƣờng truyền và tốc độ hoạt động tối đa của mạch. Cũng giống nhƣ quy trình thiết kế VLSI tổng quát, bƣớc đầu tiên của quy trình thiết kế FPGA là mô tả bản thiết kế bằng sơ đồ mạch hoặc bằng ngôn ngữ mô tả phần cứng (Design Entry). Điểm khác nhau cơ bản nhất giữa quy trình thiết kế FPGA và quy trình thiết kế VLSI cổ điển là ở những bƣớc cuối cùng (back-end). Trong thiết kế FPGA thì các bƣớc này khá đơn giản, không cần phải quyết định các giá trị điện trở và điện dung cho mạch (bƣớc Circuit extraction trong thiết kế VLSI cổ điển) do bƣớc này đã đƣợc thực hiện trƣớc trong quá trình sản xuất vi mạch FPGA.

VI. Kết Luận và Hướng Phát Triển Vi Xử Lý MicroBlaze Trên FPGA

Ngôn ngữ VHDL giúp ngƣời lập trình dễ dàng hơn khi sử dụng phƣơng pháp thiết kế từ trên xuống, không mất thời gian cho mức cổng và cho phép mô tả những vi mạch phức tạp hơn nhiều.

6.1. Tổng kết các kết quả đạt được

Thƣ viện (Library), thực thể (Entity), kiến trúc (Architecture), cấu hình (Configuration) và gói (Package). Trong đó 3 phần không thể thiếu đƣợc trong một chƣơng trình VHDL đó là: Thƣ viện, thực thể và kiến trúc, phần cấu hình và gói thƣờng đƣợc sử dụng khi thiết kế các mạch phức tạp.

6.2. Đề xuất các hướng nghiên cứu và ứng dụng tiềm năng

Phần thƣ viện (Library) là nơi chứa các mô tả về các hàm và linh kiện cơ bản nhất đƣợc sử dụng trong thiết kế. Khi thực hiện mô phỏng hay tổng hợp, các chƣơng trình sẽ tham chiếu tới các mô tả này trong thƣ viện. Do VHDL đƣợc chuẩn hóa bởi Hiệp hội các kỹ sƣ điện-điện tử (IEEE) nên thƣ viện thƣờng đƣợc sử dụng là thƣ viện IEEE.

6.3. Nhận định về tương lai của công nghệ MicroBlaze

Thực thể (Entity) là danh sách mô tả các chân vào/ra (các Port) và các tham số chung (Generic) có thể thay đổi của mạch điện. Kiến trúc (Architecture) mô tả chi tiết hoạt động hoặc cấu trúc bên trong của thực thể. Trong phần này ngƣời thiết kế có thể khai báo các tín hiệu, các quá trình và các linh kiện sử dụng trong mạch. Một architecture thể hiện một chức năng của thực thể gắn với nó. VHDL cho phép xây dựng nhiều architecture cho một thực thể.

24/09/2025

Trích đoạn nội dung tài liệu

mở đầu cho thời kỳ hoàng kim của vi mạch điện tử [13]. Vi mạch tích hợp là các mạch điện bao gồm các linh kiện bán dẫn nhƣ transistor và các linh kiện điện tử thụ động nhƣ điện trở đƣợc tích hợp trên cùng một phiến silicon. Kích thƣớc của phiến silicon rất nhỏ, chỉ cỡ vài milimet cho tới 1 inch (cỡ 2,54 cm) theo mỗi chiều. Tiêu chuẩn để đánh giá độ tích hợp của một vi mạch tích hợp là số lƣợng các transistor trên vi mạch.

Đến thập niên 60 cùng thế kỷ, ngành công nghiệp bán dẫn bắt đầu phát triển với các vi mạch cỡ nhỏ (SSI: Small Scale Integration), gồm khoảng từ 1 đến vài chục cổng logic nhƣ cổng NAND, NOR, OR, XOR… Các thế hệ phát triển vi mạch tích hợp tiếp theo là vi mạch tích hợp cỡ vừa MSI (MSI: Medium Scale Integration) có khoảng từ 100 tới 3000 cổng logic, vi mạch tích hợp cỡ lớn (LSI: Large Scale Integration) tích hợp từ 30000 tới 100000 cổng trên một vi mạch. Hiện nay thế hệ vi mạch tích hợp cỡ rất lớn (VLSI: Very Large Scale Integration) đã ra đời tích hợp từ 100000 tới hàng triệu các cổng logic trên một vi mạch. VLSI cho phép chúng ta xây dựng các bộ vi xử lý 64-bit cùng với bộ nhớ đệm và các khối xử lý toán học. Với công nghệ CMOS ngày càng phát triển, kích thƣớc của các transistor ngày càng thu nhỏ cho phép tích hợp ngày càng nhiều transistor trên một vi mạch (thƣờng tính theo đơn vị 1 inch2).

Có nhiều phƣơng pháp thiết kế VLSI tùy theo cách tiếp cận. Theo cách tiếp cận về lịch sử phát triển, đầu tiên ngƣời ta quan niệm VLSI có hai phƣơng pháp thiết kế là phƣơng pháp thiết kế toàn phần (full-custom) và phƣơng pháp thiết kế bán phần (semi- custom). Không lâu sau đó, với những ƣu điểm về đầu tƣ về nhân lực và thời gian, phƣơng pháp thiết kế bán phần đã phát triển một cách nhanh chóng hình thành nên phƣơng pháp thiết kế theo mảng cổng logic (gate array) và phƣơng pháp thiết kế dựa trên thƣ viện tế bào chuẩn (standard cell). Sự phát triển nhanh chóng của VHDL đã hình thành các nhánh nhỏ hơn nữa nhƣ phƣơng pháp thiết kế theo mảng cổng logic lại đƣợc chia nhỏ thành hai loại hình thiết kế là: Mask programmable và Field- programmable (ROM, PROM, EPROM, EEPROM, PLA, PAL, CPLD, FPGA).

Trong thực tế, tùy theo yêu cầu thiết kế mà ngƣời ta có thể lựa chọn một trong các phƣơng pháp trên. TIEU LUAN MOI download : skknchat@gmail.com 12 Quy trình thiết kế VLSI: Quy trình thiết kế VLSI bao gồm nhiều công đoạn khác nhau. Về cơ bản quy trình thiết kế VLSI gồm hai công đoạn thiết kế lớn: thiết kế logic (logical design) và thiết kế vật lý (physical design). Quy trình thiết kế VLSI đƣợc mô tả nhƣ trong Hình 6.

Hình 6: Quy trình thiết kế VLSI [5]. * Công đoạn thiết kế logic đƣợc chia thành 4 bƣớc: - Bƣớc1. Mô tả thiết kế (Design entry): Từ yêu cầu bài toán, ta sử dụng các ngôn ngữ mô tả phần cứng để thiết kế. Sau đó mô hình thiết kế sẽ đƣợc mô phỏng và kiểm chứng nhờ các công cụ mô phỏng.

Kết thúc bƣớc 1 các mạch đƣợc mô tả bằng ngôn ngữ phần cứng tƣơng ứng. Tổng hợp logic (Logic synthesis): Trong bƣớc này ta sử dụng các công cụ hỗ trợ tổng hợp phần cứng để tạo ra danh sách các cổng logic (các netlist thiết kế) đƣợc sử dụng trong thiết kế và liên kết giữa chúng với nhau. Phân chia hệ thống (System Partitioning): Ở bƣớc này ta thực hiện công việc mô-đun hóa, phân chia hệ thống thành các khối chức năng nhỏ hơn. Mô phỏng trƣớc khi thực hiện layout (Prelayout simulation): Là bƣớc cuối cùng của công đoạn thiết kế logic.

Bƣớc này thực hiện mô phỏng, kiểm tra thiết kế sau khi đã gắn với công nghệ chế tạo nhƣng chƣa thực hiện thiết kế vật lý (thực hiện layout). Trong thực tế, ta thực hiện mô phỏng ngay tại mỗi bƣớc để dễ dàng sửa sai, có thể loại hết các lỗi trong bƣớc đó. Nếu chƣa đạt yêu cầu thì ngƣời thiết kế phải TIEU LUAN MOI download : skknchat@gmail.com 13 thực hiện lại bƣớc đó và chỉnh sửa, tối ƣu thiết kế. Điều này hữu ích hơn rất nhiều so với việc chỉ thực hiện mô phỏng, kiểm tra một lần ở cuối công đoạn thiết kế logic.

* Công đoạn thiết kế vật lý: Tiếp sau công đoạn thiết kế logic là công đoạn thiết kế ở mức thấp hơn, đó là mức vật lý. Công đoạn thiết kế vật lý gồm 5 bƣớc: - Bƣớc 5. Vẽ sơ đồ nền (Floorplaning): Bƣớc đầu tiên trong công đoạn thiết kế vật lý ta thực hiện quy hoạch bề mặt vi mạch, tức là bố trí cụ thể vị trí các khối chức năng trên vi mạch sao cho giảm thiểu không gian thực thi phần cứng và nhiễu ảnh hƣởng giữa các khối với nhau. Đặt chỗ (Placement): Sau khi quy hoạch vị trí các khối chức năng của vi mạch, bƣớc này ta tiến hành công việc đặt chỗ các linh kiện, cụ thể là định vị từng cổng logic (từng trasistor) trên bề mặt vi mạch đã quy hoạch đảm bảo giảm nhiễu không gian cũng nhƣ nhiễu tín hiệu giữa các cổng logic.

Phân tích và ƣớc lƣợng các thông số mạch điện (Circuit extraction): Các thông số cơ bản của thiết kế nhƣ trễ, nhiễu, công suất tiêu thụ, hiệu năng của thiết kế đƣợc phân tích, đánh giá và ƣớc lƣợng tại bƣớc này. Mô phỏng sau khi thực hiện layout (Postlayout simulation): Đây là bƣớc cuối cùng của quy trình thiết kế VLSI. Bƣớc này cho phép ta thực hiện kiểm chứng tính đúng đắn của thiết kế và kiểm tra mức độ đáp ứng của hệ thống với yêu cầu đặt ra với đầy đủ các thông số vật lý. Nếu thiết kế không đạt yêu cầu đề ra thì ta phải quay lại các bƣớc để chỉnh sửa, tối ƣu thiết kế.

Nếu thỏa mãn yêu cầu đặt ra thì ta có thể tiến hành chế tạo mặt nạ và bƣớc sang quy trình sản xuất, chế tạo phần cứng. Công nghệ FPGA và quy trình thiết kế VLSI với công nghệ FPGA FPGA (Field-programmable gate array-mảng cổng lập trình đƣợc) là một vi mạch bao gồm tập hợp các khối logic khả trình đƣợc sắp xếp theo hàng và đƣợc liên kết bằng mạng định tuyến khả trình (programmable routing network). Kiến trúc tổng quan về FPGA đƣợc mô tả nhƣ trong Hình 7. TIEU LUAN MOI download : skknchat@gmail.com 14 Logic block Programmable interconnects I/O block Hình 7: Kiến trúc tổng quan FPGA.

Vi mạch FPGA đƣợc cấu thành từ ba bộ phận chính là: các khối logic cơ bản (logic blocks), hệ thống mạng liên kết lập trình đƣợc (programmable interconnects) và các khối vào/ra (I/O blocks). - Các khối logic cơ bản (logic blocks) là phần tử chính của FPGA. Khối logic đƣợc cấu thành từ các bảng tra cứu LUT (Look Up Table) và một phần tử nhớ đồng bộ flip-flop. LUT 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.

Một khối logic đƣợc mô tả nhƣ Hình 8. Hình 8: Sơ đồ khối một đơn vị logic 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 ngàn đến vài chục ngàn tùy theo loại FPGA. - Hệ thống mạng 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 TIEU LUAN MOI download : skknchat@gmail.com 15 chuyển mạch chứa một số lƣợng nút chuyển lập trình đƣợc, cho phép thực hiện các dạng liên kết phức tạp khác nhau. - Các khối vào/ra (I/O blocks): Đƣợc phân bổ xung quanh vi mạch tạo thành các liên kết với bên ngoài. 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 dòng FPGA khác nhau, còn có các phần tử tích hợp sẵn đƣợc sử dụng cho những mục đích cụ thể. Ví dụ để thiết kế những ứng dụng dạng SoC, dòng Virtex 4, 5 của Xilinx có chứa nhân xử lý Power PC; để thiết kế những ứng dụng xử lý tín hiệu số, dòng Virtex của Xilinx 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. Ứng dụng của FPGA: FPGA đƣợc ứng dụng trong các lĩnh vực 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ế, FPGA cho phép 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 ngày càng 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. Quy trình thiết kế VLSI với công nghệ FPGA: Thiết kế VLSI với công nghệ FPGA thƣờng tuân theo quy trình nhƣ mô tả trong Hình 9. Trong quá trình mô tả thiết kế (Design Entry), ngƣời thiết kế có thể sử dụng các sơ đồ mạch điện, các ngôn ngữ mô tả phần cứng hoặc kết hợp cả hai phƣơng pháp này.

Ngƣời thiết kế chỉ lựa chọn sử dụng sơ đồ mạch điện khi muốn mô tả chi tiết các phần cứng. Trái lại, sử dụng ngôn ngữ mô tả, ngƣời thiết kế có thể thiết kế theo các thuật toán để mô tả các mạch phức tạp với thời gian mô tả nhanh gọn hơn, việc sửa chữa do đó cũng dễ dàng hơn. Hình 9: Quy trình thiết kế VLSI với công nghệ FPGA [18]. TIEU LUAN MOI download : skknchat@gmail.com 16 Quá trình tổng hợp logic (Synthesis) là quá trình dịch từ các ngôn ngữ mô tả sang dạng mạch điện hoàn chỉnh, còn gọi là dạng netlist.

Nếu trong thiết kế có sử dụng các bản thiết kế các linh kiện phụ trợ thì quá trình tổng hợp cũng tạo ra dạng netlist của các thành phần con này.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ