2.4.4.1. Reset
Máy trạng thái FSM bắt đầu thực hiện từ trạng thái reset khi tín hiệu reset được khẳng định. Khi ở trạng thái reset, máy trạng thái FSM khởi tạo lại tất cả các biến làm việc của nó và tín hiệu điều khiển. Các biến bao gồm:
PC – Bộ đếm chương trình.
IR – Thanh ghi lệnh.
State – Các biến trạng thái
Ngồi ra, nội dung của bộ nhớ, chính là chương trình cho máy tính thực hiện cũng được nạp vào thời điểm này.
2.4.4.2. Fetch
Trong trạng fetch, nội dung bộ nhớ có vị trí trỏ đến bởi PC được nạp vào thanh ghi lệnh. PC sau đó được tăng lên một để chuẩn bị cho việc lấy lệnh kế tiếp. Nếu lệnh lấy được là một lệnh nhảy thì PC sẽ được thay đổi phù hợp trong giai đoạn thực hiện lệnh đó.
Thiết kế vi xử lý 16 bit trên nền tảng công nghệ FPGA
Các nội dung lưu trong thanh ghi lệnh được giải mã theo bảng mã hóa được gán cho các lệnh được liệt kê trong Bảng 2.4. Để thực hiện điều này trong VHDL người ta sử dụng cú pháp CASE để xác định được opcode tương ứng với lệnh. Từ các trường hợp khác nhau, trạng thái đó chịu trách nhiệm thực hiện các lệnh tương ứng bằng cách gán các biến trạng thái tiếp theo. Kết quả là, các lệnh sẽ được thực hiện tại sự khởi đầu của chu kỳ đồng hồ khi FSM đi vào trạng thái mới.
2.4.4.4. Execute
Trạng thái thực hiện lệnh đơn giản chỉ là thiết lập từ điều khiển trong đó khẳng định các tín hiệu điều khiển thích hợp cho datapath có các hoạt động cần thiết để thực hiện một lệnh cụ thể. Vì vậy mỗi lệnh sẽ có một trạng thái thực hiện tương ứng. Để làm rõ hơn trạng thái Execute ta xem ví dụ trạng thái thực hiện cho lệnh add.
Ví dụ: ADD A, 011 khí thực hiện sẽ thiết lập từ điều khiển như sau.
muxsel1 muxsel0 accwr rst rfwr rfaddr2 rfaddr1 rfaddr0 alusel2 alusel1 alusel0 shiftsel1 shiftsel0 outen
0 0 1 0 0 0 1 1 1 0 0 0 0 0
Đối với tất cả các lệnh nhảy, khơng có hành động cần phải được thực hiện bởi datapath. Nó chỉ đơn giản là sẽ xác định xem có nên thực hiện nhảy hay khơng tùy thuộc vào các lệnh nhảy cụ thể và bằng cách kiểm tra trên cờ zero và cờ tích cực. Nếu một bước nhảy là cần thiết thì địa chỉ nhảy đến được tính tốn và sau đó được đưa vào PC.
Vào trạng thái thực hiện cuối (execute), FSM quay lại trở lại trạng thái fetch và chu kỳ lặp đi lặp lại cho các lệnh tiếp theo.
2.4.5. CPU
Bây giờ chúng ta đã định nghĩa cả hai đơn vị datapath và control unit chúng ta đã sẵn sàng để kết nối hai đơn vị cùng nhau để tạo ra bộ vi xử lý đa năng tùy chỉnh rất riêng. Các tín hiệu cần thiết cần phải được kết nối giữa hai đơn vị chỉ là những tín hiệu từ điều khiển thể hiện trong Hình 2.13, nó đã được control unit tạo ra để kiểm sốt datapath. Ngồi các tín hiệu điều khiển, cũng có hai tín hiệu cờ có điều
Thiết kế vi xử lý 16 bit trên nền tảng công nghệ FPGA
kiện (cờ khơng và tích cực) mà datapath tạo ra như là tín hiệu trạng thái cho bộ điều khiển sử dụng. Giao diện giữa datapath và bộ điều khiển được thể hiện trong Hình 2.13.
Các đầu vào chính cho CPU là tín hiệu clock, reset, và dữ liệu đầu vào. Các yếu tố chính từ đầu ra của CPU là dữ liệu đầu ra, address ..