Vi xử lý Nios II cho phép custom instruction truy xuất đến dãy các thanh ghi bên trong của nó. Điều này giúp tạo ra sự linh động khi mà custom instruction có thể đọc các giá trị từ các thanh ghi bên trong nó lẫn các thanh ghi (toán hạng) bên trong Nios II. Hơn nữa, custom instruction còn cho phép ghi kết quả lên dãy các thanh ghi cục bộ của chính nó.
Custom instruction chứa dãy các thanh ghi nội sẽ sử dụng các tín hiệu
readra, readrb, và writerc để quyết định xem nó sẽ truy xuất đến các cổng dataa, datab, result hay truy xuất đến dãy các thanh ghi cục bộ bên trong. Lúc đó, các cổng a, b, c sẽ xác định xem thanh ghi nào sẽ được truy xuất đến (để đọc hoặc ghi) trong dãy các thanh ghi bên trong của custom instruction. Ví dụ, nếu readra không được tích cực (có nghĩa là sẽ sử dụng dãy các thanh ghi nội cho quá trình GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
đọc), cổng a sẽ xác định thanh ghi nào trong dãy các thanh ghi phục vụ cho quá trình đọc dữ liệu. Cả 3 cổng a, b và c đều có 5 bit, cho phép truy xuất đến 32 thanh ghi bên trong custom instruction.
Bảng sau liệt kê các cổng và mục đích của chúng trong custom instruction dạng thanh ghi nội :
Tên cổng Độ rộng bus Hướng Mô tả
readra 1 nhập Nếu readra mức cao, Nios II sẽ cung cấp dataa
Nếu readra mức thấp, custom instruction sẽ đọc từ dãy các thanh ghi nội
readrb 1 nhập Nếu readrb mức cao, Nios II sẽ cung cấp datab
Nếu readrb mức thấp, custom instruction sẽ đọc từ dãy các thanh ghi nội
writerc 1 nhập Nếu writerc mức cao, Nios II sẽ ghi kết quả ra result
Nếu writerc mức thấp, custom instruction sẽ ghi kết quả vào dãy các thanh ghi nội
a 5 nhập Chỉ số cho dãy thanh ghi nội b 5 nhập Chỉ số cho dãy thanh ghi nội c 5 nhập Chỉ số cho dãy thanh ghi nội
Bảng 3.4 : Các cổng cho cách thức thiết kế theo dạng thanh ghi nội
Một ví dụ đơn giản như ở hình 3.9 minh họa cho cách thiết kế theo dạng này. Khi writerc không được tích cực, Nios II sẽ bỏ qua giá trị từ cổng result. Giá trị nhân sẽ được tích lũy vào trong các thanh ghi nội. Ngược lại, nếu writerc tích
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
cực, Nios II sẽ đọc giá trị từ cổng result. Cùng lúc đó, thanh ghi nội sẽ được reset lại cho lần tính tiếp theo.
Hình 3.9 : Sơ đồ khối của mạch nhân – tích lũy
Các chân readra, readrc, writerc và a, b, c hoạt động tương tự như cổng
dataa. Khi custon instruction bắt đầu hoạt động, Nios II sẽ bắt lấy các tín hiệu từ các cổng này ngay ở cạnh lên xung clock. Tất cả các cổng sẽ ở trạng thái ổn định (giữ nguyên giá trị) trong suốt quá trình khối custom logic hoạt động. Ngoài ra các cổng còn lại đều hoạt động tương tự như ở các cách thiết kế trước.