chương 1 Trong chương này tác giả đã đánh giá được tổng quan về tình hình phát triển chung của các dòng vi xử lý xưa và nay, đồng thời đã chỉ rõ được mục đích,phạm vi nghiên cứu,phương pháp nghiên cứu của đề tài được giao. Từ đó có định hướng để làm các tiếp các chương tiếp theo được dễ dàng. HVTH: Võ Văn Trung 13 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS Chương 2 CƠ SỞ LÝ THUYẾT 2. Giới thiệu về ngôn ngữ Verilog 2.
Mục đích sử dụng verilog Hệ thống số là một hệ thống phức tạp bậc cao. Ở cấp độ chi tiết nhất, chúng có thể bao gồm hàng nghìn thành phần như: các transistor hoặc các cổng logic, cho nên với hệ thống số lớn, thiết kế ở mức cổng không còn sử dụng nữa. Qua nhiều thập kỷ, giản đồ logic của các thiết kế logic cũng không còn nhiều nữa. Ngày nay, sự phức tạp của phần cứng đã tăng lên ở một mức độ mà giản đồ của cổng logic hầu như vô ích khi nó chỉ biểu diễn một mạng lưới phức tạp các liên kết không theo chức năng của thiết kế.
Từ những năm 1970, các kỹ sư điện và máy tính đổi hướng theo ngôn ngữ mô tả phần cứng (HDL). Hai ngôn ngữ mô tả phần cứng nổi bật trong kỹ thuật là Verilog và VHDL nhưng những nhà thiết kế công nghệ thích sử dụng Verilog hơn. Cách sử dụng cơ bản của Verilog HDL trong thiết kế mạch tích hợp là mô phỏng thiết kế và tạo mẫu trên FPGA trước khi chuyển sang sản xuất. Mục tiêu của Verilog không phải tạo ra những chip VLSI mà sử dụng Verilog để mô tả một cách chính xác chức năng của bất kỳ hệ thống số nào và nạp chương trình tạo mẫu lên FPGA, ví dụ: như máy tính, các bộ vi xử lý,… tuy tốc độ chậm và lãng phí diện tích hơn.
Những thiết kế mức thấp hơn trong Verilog được thực hiện trên VLSI để đạt đến tốc độ cực đại và có diện tích cực tiểu. Tuy nhiên sử dụng thiết kế dùng Verilog trên FPGA sẽ tiết kiệm chi phí và thời gian thiết kế. HVTH: Võ Văn Trung 14 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS 2.Một số quy ước thiết kế - Các qui ước gần với ngôn ngữ lập trình C. Lời giải thích được đặt ở cuối câu bởi dấu “//” hay kí hiệu /*.
Các từ khóa được dành riêng và tất cả ký tự là chữ thường. Ngôn ngữ phân biệt chữ in và chữ thường. Một số có thể có dấu hoặc không dấu được xác định theo công thức <size><base format><number> <size> xác định số bit. <base format> là ký tự đơn “ ‘ ”, theo sau là một trong các ký tự b (nhị phân), d(thập phân), o(bát phân) và h(thập lục phân).
<number> chứa các chữ số phù hợp. Ví dụ : ‘h8fa //số hex ‘o765 //số bát phân 4’b1101 // số nhị phân 4 bit 1101 - Cấu trúc chương trình Module: ngôn ngữ Verilog mô tả hệ thống số như là thiết lập một module Cấu trúc một module như sau : module module_name (danh sách các port); //các khai báo input, output, inout, reg, wire, parameter. //các câu lệnh Initial statement Always statement Module Instantiation Continuous assignment endmodule Ví dụ : Thiết kế mô hình hành vi cho cổng NAND module NAND (in1, in2, out); input in1, in2; output out; assign out=~(in1&in2) endmodule HVTH: Võ Văn Trung 15 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS Với & là toán từ “and”, ~ là toán tử đảo bit. Điều lệnh assign chờ sự thay đổi ở vế phải biểu thức và kết quả được gán cho biểu thức bên trái (ngõ ra out).
Công nghệ FPGA 2.Công nghệ FPGA là gì FPGA là viết tắt của "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, có thể thực hiện các tính năng logic thông qua máy tính của mình với giá rẻ, và có thể xóa đi viết lại nhiều lần. Xilinx là công ty đầu tiên bán ra FPGA và luôn chiếm thị phần lớn nhất. Ngoài ra còn có Alterna, Lattice, Actel, QuickLogic. Nhiều nhà sản xuất hiện đang cung cấp rất nhiều cấu trúc và phương pháp xử lý khác nhau.
Vì vậy, việc chọn một cấu trúc và một phương pháp xử lý để có thể đáp ứng được các yêu cầu về chức năng và độ ổn định, đối với một hệ thống trong thực tế là vấn đề mang tính quyết định. Thiết bị logic lập trình được được phát minh lần đầu vào cuối thập kỷ 1970 và ngay lập tức đã trở lên phổ biến trong ngành công nghiệp bán dẫn. Ngoài khả năng lập trình đa dạng, công nghệ này còn có thời gian sản xuất nhỏ nên có khả năng cạnh tranh thương mại rất lớn. Hơn nữa, việc thiết kế với nó khá dễ dàng và nó có khả năng lập trình lại nhiều lần.Tại sao công nghệ FPGA được chú ý Sự xuất hiện của các thiết bị có thể lập trình như FPGA (Field Programmable Gate Array) đã tạo ra một bước đột phá trong việc xây dựng các hệ thống tích hợp (SoC - System on Chip).
Với công nghệ FPGA, đã có rất nhiều công trình nghiên cứu để giải quyết các bài toán có yêu cầu khối lượng tính toán lớn như các bài toán về xử lí tín hiệu số, mật mã và nhận dạng. Do khả năng tái cấu trúc đơn giản và sở hữu một khối tài nguyên logic lớn FPGA có thể được ứng dụng cho nhiều các lớp bài toán HVTH: Võ Văn Trung 16 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS xử lý tín hiệu số cỡ lớn mà các công nghệ trước đó không làm được hoặc làm được nhưng với tốc độ và hiệu suất thấp.Kiến trúc chung của một FPGA Cấu trúc tổng thể của FPGA bao gồm: - Các khối Logic. - Hệ thống liên kết mạch. - Các phần tử tích hợp sẵn.
Hình 2 - 1: Cấu trúc tổng thể của một FPGA 2.So sánh CPLD và 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 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. CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simple programmable 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 HVTH: Võ Văn Trung 17 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS 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 (multiplication 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.Kiến trúc của MIPS 2.Giới thiệu MIPS (Microprocessor without Interlocked Pipeline Stage) là một kiến trúc xử lý được phát triển bởi hãng MIPS Technologies. Hennessy đứng đầu một nhóm bắt đầu một công trình nghiên cứu về bộ xử lý MIPS đầu tiên tại Stanford University.
Nhóm nghiên cứu Stanford có một nền tảng mạnh mẽ trong biên dịch đã đưa họ đến sự phát triển một bộ xử lý, làm giảm bớt sự có mặt của trình biên dịch ở cấp phần cứng, trái ngược với sự tăng lên của phần cứng với phần mềm, nó là một bước tiến dài trong triết lý thiết kế phần cứng. Một thiết kế chủ chốt trong MIPS là yêu cầu các câu lệnh phải hoàn thành trong 1 chu kỳ máy. Cuối những năm 1990, 1/3 số lượng chip RISC được sản xuất dựa trên kiến trúc MIPS. Thiết kế MIPS rất giống với thiết kế RISC điển hình.
Để tiết kiệm bit trong vi lệnh, thiết kế RISC giảm số lượng vi lệnh. Thiết kế MIPS sử dụng 6 bit của 32 bit cho vi lệnh cơ bản, còn lại là 26 bit là địa chỉ nhảy hoặc sử dụng 3 trường 5 bit để chỉ định HVTH: Võ Văn Trung 18 GVHD: TS Nguyễn Minh Ngọc Luận văn Thạc sĩ: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS lên đến 3 thanh ghi với giá trị dịch kết hợp với 6 bit vi lệnh mở rộng hoặc một định dạng khác sử dụng 2 thanh ghi với một giá trị 16 bit mã trong vi lệnh. Kiến trúc MIPS chỉ cho phép truy cập bộ nhớ thông qua các lệnh load và store, tất cả các lệnh còn lại đều sử dụng toán tử thanh ghi. + Ưu điểm: Bộ xử lý thanh ghi nhanh nhất (hơn 1 tỷ lần trong 1 giây) vì thanh ghi là một thành phần phần cứng thường nằm chung mạch với bộ xử lý.
Có nhiều tập lệnh với hai trường vi lệnh. + Khuyết điểm: Do thanh ghi là một thành phần phần cứng nên số lượng cố định và hạn chế. Do đó, sử dụng phải khéo léo. Các thế hệ của MIPS: + Ban đầu MIPS là kiến trúc 32 bit, sau này mở rộng ra 64bit.
+ MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS 32 và MIPS 64. Hiện nay tồn tại MIPS 32 và MIPS 64. + Các dòng vi xử lý thương mại MIPS đã được sản xuất: - Năm 1985, R2000. - Năm 1991, R4000 mở rộng tập lệnh đầy đủ cho 64bit, 100MHz, 8kB.
- Năm 1994, R8000 thiết kế superscalar đầu tiên của MIPS.Tập lệnh MIPS (một phần) Trong nội dung thiết kế, chỉ một số lệnh phổ biến trong tập lệnh đầy đủ của MIPS 32 bit được hỗ trợ. Các lệnh này thuộc đầy đủ các định dạng nhóm lệnh cần có trong MIPS32.