Thiết kế Register File dùng logisim

Lu ROm

Administrator
Staff member
25 Tháng bảy 2014
481
119
43
32
One piece
vimach.net
1. Thanh ghi
Thanh ghi là một mảng của các DFF. Vd thanh ghi 32-bit là mộ mảng của 32 DFF
· Bổ sung thêm một input write line vào DFF.
· Khi write line ở mức cao, tín hiệu clock luôn được truyền vào DFF, vì vậy dữ liệu được lưu trữ vào DFF tại thời điểm xườn kích hoạt.
· Khi wrtie line ở mức thấp, tín hiệu clock luôn ở mức cao, nên không có sườn kích hoạt, vì vậy không thể ghi được dữ liệu vào.
upload_2016-6-1_10-58-2.png

· OR write line với tín hiệu clock, vì vậy có thể thay đổi trạng thái write line khi tín hiệu clock ở mức cao nên không ảnh hưởng đến clock của DFF.
==> Để tạo thành thanh ghi nhiều bit, chỉ việc sử dụng nhiều DFF.

2.Register File
- Một file thanh ghi là một bộ các thanh ghi được đánh số.
· Để truy cập vào register file, ta cấp số hiệu của thanh ghi, cấp tín hiệu cho write line.
· Ta có thể đọc và viết trên cùng một thanh ghi suốt một cycle. Sau khi đọc giá trị cũ, giá trị sắp được ghi sẽ thay thế giá trị cũ đó ở các cycle sau.
· Thường có nhiều cổng đọc vào ghi trên register file, nên ta có thể đọc và ghi nhiều thanh ghi trong một cycle.
· Register file ở đây có 2 cổng đọc vào 1 cổng ghi.
upload_2016-6-1_11-0-14.png

a,Đọc từ Register file.
- Để đọc từ register file, ta cần một bộ mux để lựa chọn thanh ghi cần ghi.
· Dùng một bộ mux cho mỗi cổng đọc.
· Một bộ mux có n-input, b-bit mux, trong đó
o n là số lượng thanh ghi (32 với MIPS)
o b là độ rộng của mỗi thanh ghi( 32 với MIPS)
· Làm tròn phía trên của log(n) để xác định số bit đánh số thanh ghi.
upload_2016-6-1_11-2-5.png

b, Ghi vào register file
- Để ghi vào register file, ta sử dụng mạch decoder để xác định thanh ghi cần ghi.
· Mạch decoder log(n) -> n
· Output của mạch decoder được đánh số từ 0 đến n-1
- Nhớ là input của register bao gồm write line (W), dữ liệu cần ghi (D), và clock (CK). Thanh ghi r được ghi dữ liệu vào nếu write line được xác nhận và số hiệu của thanh ghi cần ghi là r. Ở đây write line được OR với output của decoder.
· Tín hiệu clock vào mỗi thanh ghi chính là tín hiệu clock vào register file.
· Dữ liệu đưa vào mỗi thanh ghi chính là dữ liệu đưa vào register file.
· Mỗi thanh ghi có write line duy nhất.
o Số hiệu thanh ghi được nạp vào trong mạch decoder.
o Output của decoder sẽ cho ra tương ứng với số hiệu.
o Vậy để ghi vào thanh ghi r cần:
§ Write line của thanh ghi đó phải được xác nhận.
§ Output thứ r tương ứng của mạch decoder được xác nhận.
upload_2016-6-1_11-3-34.png


Sau đây là file LOGISIM:
Picture1.png

- LINK DOWN GG DRIVER
minion_bananas
TẬP THANH GHI