Các thành phần cơ bản trong DE2

Một phần của tài liệu THIẾT KẾ VÀ ỨNG DỤNG BỘ VI XỬ LÝ 32 BIT DÙNG NGÔN NGỮ VHDL (Trang 48)

Hình 2.20: Bo DE2 và các linh kiện đi kèm

+ Board DE2

+ Cáp usb dùng cho việc lập trình và điều khiển

+ Đĩa CD chứa dữ liệu của DE2 và những tài liệu phụ (hưởng dẫn sử dụng, thanh

điều khiển, thiết kế tham khảo, datasheet của thiết bị, hướng dẫn, các bài tập thí nghiệm)

+ DE2 được bảo vệ bởi tấm mica trong suốt và đặt trên 6 chân cách điện + Bộ nguồn 9 VDC

Vi xử lý Cylone II 2C35

• Thiết bị truyền định dạng nối tiếp- EPCS16

• USB Blaster dùng cho mục đích lập trình và điều khiển API (hỗ trợ 2 kiểu lập trình JTAG và AS)

• 8-Mbyte SDRAM • 4-Mbyte Flash memory • SD Card

• 4 pushbutton switches (key0, key1, key2, key3) • 18 toggle switches

• 18 LED đỏ

• 9 LED xanh

• Giải mã TV (NTSC/PAL) và bộ nối TV-in • 1 đầu nối 10/100 Ethernet

• 1 chip điều khiển USB

• 1 RS232 có 9 chân phục vụ cho kết nối nối tiếp • Kết nối chuột và bàn phím thông qua cổng PS/2 • 1 cổng truyền hồng ngoại

• 2 hệ thống mở rộng (mỗi hệ thống 40 chân), có 8 chân dùng cho Vcc và GND • Dao động 50-MHz và 27-MHz cho cấp xung

• 1 chip mã hóa CD 24bit,có ngõ vào và ra, đầu nối microphone

• 1 ngõ ra VGA, sử dụng loại ADV7123,với bộ DAC 10bit tốc độ cao, độ phân giải 1600x1200

PHN 2 : THIT K B VI X

1) Liệt kê tập lệnh cần thiết, đây là việc rất quan trọng. Cần tính toán cẩn thận số lượng lệnh, các chức năng cần có, các chế độ định địa chỉ hỗ trợ… Nên quan tâm đến tập lệnh gọn nhất, tốn ít tài nguyên hơn, nhưng phải đảm bảo đáp

ứng đủ chức năng.

2) Việc tiếp theo là xây dựng một khối dữ liệu (datapath) để đáp ứng các lệnh mà thiết kế đưa ra. Tiến hành thiết kế và tối ưu hóa thiết kế. Việc tối ưu hóa là rất cần thiết vì nó quyết định phần lớn đến độ lớn của tần số clk tối đa mà CPU làm việc (một cách tương đối là tần số càng cao thì tốc độ CPU càng nhanh). Datapath cần có trước tiên là một ALU để làm tính. Tiếp đó cần có nơi lưu dữ liệu. Mới đầu thì ta dùng vài thanh ghi, sau đó mở rộng lên tập hợp thanh ghi (Registers File) rồi tới RAM.. Nếu hỗ trợ nhiều kiểu định địa chỉ toán hạng cho CPU thì cần có các bộđa hợp (mux) để xác định nguồn dữ liệu đưa vào ALU đúng lúc.

3) Xây dựng một bộ tìm nạp (fetch) và bộ giải mã lệnh từ bộ nhớ. Nói chung là cần có một thanh ghi lệnh (IR) để tạm chứa lệnh đọc từ ROM, một thanh ghi PC để chỉ tới vị trí chứa mã lệnh trong ROM, và tất nhiên là ROM để chứa mã lệnh. Nếu dùng các thiết bị của Altera hay Xilinx thì có sẵn các thành phần để ta tạo ROM, nếu dùng các trình mô tả khác như Active HDL thì ta phải tự tạo ROM riêng khởi tạo giá trị từ file cấu hình. Bộđếm chương trình (Program Counter) cần nối với một bộ cộng để tựđộng tăng địa chỉ mỗi khi thực thi lệnh kế tiếp. Nếu hỗ

trợ lệnh nhảy thì phải có các bộđa hợp để biết khi nào thì nạp vào bộđếm chương trình giá trị từ ROM, khi nào thì nạp giá trị từ thanh ghi lệnh (IR) ,(địa chỉ lệnh nhảy chứa trong mã lệnh). Nếu dùng lệnh call thì phải có stack để lưu địa chỉ

chương trình hiện tại, sau khi return từ chương trình con thì phục hồi địa chỉ cũ lại. 4) Thiết kế hệ thống bus phù hợp để kết nối các thành phần lại với nhau. Nhưđã nói, các thành phần trên của khối dữ liệu (Datapath) đều được điều khiển

bởi các tín hiệu điều kiện (control signal). Sau khi thiết kế xong datapath tiến hành thiết kế bộđơn vịđiều khiển (Control Unit). Sau đó lập bảng ghi giá trị các control signal ứng với từng lệnh cụ thể. Xem xét những tín hiệu điều khiển nào nối mặc

định được (tức là giá trị của nó không thay đổi trong tất cả các lệnh).

5) Xây dựng Control Unit. Tín hiệu đầu vào của bộ điều khiển là các tín hiệu lấy từ Datapath và tín hiệu điều khiển của người dùng, tín hiệu đầu ra là các tín hiệu điều khiển gửi đến Datapath và xuất bên ngoài. Kết hợp bộ điều khiển (Control Unit) và khối dữ liệu (Datapath) ta được một CPU hoàn chỉnh

6) Kiểm tra bằng mã máy, và dạng sóng tín hiệu đầu ra

Phần thiết kế bộ vi xử lý trình bày với cấu trúc bên trong của bộ vi xử lý: Khối điều khiển, tập lệnh nhớ, file thanh ghi, bộ ALU 32bit, bộ nhớ cache, bộđếm chương trình (program counter) và stack…, các đặc trưng về mã lệnh, chế độ ghi (adsbygoogle = window.adsbygoogle || []).push({});

địa chỉ, nguyên lý hoạt động của các bộ phận bên trong bộ xử lý. Các kết quả mô phỏng việc thực hiện chúng trên Kit DE2.

CHƯƠNG 3: CU TRÚC B VI X

Trong chương này sẽ trình bày khái quát về mô hình thiết kế của bộ vi xử

lý, phân loại bộ vi xử lý, cấu trúc và chức năng của từng khối trong bộ vi xử lý, các tín hiệu giao tiếp của chúng và đưa ra mô hình thiết kế của từng bộ phận.

3.1 Cấu trúc tổng thể:

Hình 3.1: Sơđồ của bộ vi xử lý.

Bộ vi xử lý 32 bit được cấu thành từ 4 khối cơ bản :

- Pcimem (PC and memory) : Bộ đếm chương trình (program counter) được dùng trỏ đến địa chỉ cần thực hiện lệnh. Bộ nhớ (memory) được dùng để chứa code lệnh và vùng stack.

- Cntrpipe (Control pipeline): Khối điều khiển đường ống dẫn (control pipeline)

- Rfcache: Tập thanh ghi (register file) dùng để lưu trữ, chốt lại tạm thời các giá trị tính toán và vùng cache tương đương như vùng bộ nhớ, lưu trữ, tri xuất nhanh trong dữ liệu trong quá trình tính toán.

- ALU (Arithmetic Logic Unit): Khối logic số học (ALU) dùng để thưc hiện các phép toán.

Hình 3.2: Sơđồ khối bộ vi xử lý

3.1.1 Bđếm chương trình và b nh (Pcimem)

3.1.1.1 Chc năng

Lưu trữ code và quản lý các lệnh thông qua PC, tăng biến đếm để bộ vi xử

lý thực hiện lệnh tiếp theo.

Bao gồm:

Khối RAM 32x64: đóng vai trò của bộ nhớ chương trình, chứa nội dung của code điều khiển cho hoạt động của vi xử lý được lưu trữ ở dạng nhị phân và

được quản lý thông qua thanh ghi PC.

Stack: được dùng để lưu giá trị của thanh ghi PC khi thực hiện lệnh gọi chương trình con (CALL).

Program Counter (PC): Bộđếm chương trình là một thành phần quan trọng giúp bộ vi xử lý thực hiện đúng thứ tự các lệnh.

3.1.1.3 Các tín hiu giao tiếp

Hình 3.3: Khối bộđếm chương trình và bộ nhớ (PCIMEM)

Một phần của tài liệu THIẾT KẾ VÀ ỨNG DỤNG BỘ VI XỬ LÝ 32 BIT DÙNG NGÔN NGỮ VHDL (Trang 48)