6 / 37 · Khái niệm
Chỉ mục vector, thứ tự bit và dấu
Đọc đường dữ liệu bằng cách tách số bit, thứ tự truyền nối tiếp và diễn giải số học.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Chỉ mục là tên; hướng khai báo quyết định ý nghĩa
Với logic [7:0] a;, a[7] là bit trái nhất. Với logic [0:7] b;, b[0] là bit trái nhất. Gán cả hai 8'h96, chuỗi trái sang phải đều 10010110 nhưng chỉ mục từng bit khác. Chỉ được giả định “bit 0 luôn là LSBLSB Bit có trọng số nhỏ nhất. Cần kiểm tra cả hướng ký hiệu và quy tắc chỉ mục.” sau khi kiểm tra hướng khai báo.
Thực tế nên thống nhất hướng trong toàn giao diện để dễ rà soát. Cũng nêu rõ thứ tự hiển thị dạng sóng và mảng bit trong tệp. JSON đầu vào khóa học ghi từ LSB, còn vector RTL thường đọc từ MSBMSB Bit có trọng số lớn nhất. Số chỉ mục tùy hướng khai báo vector, nên không luôn là chỉ mục lớn nhất..
Kiểm tra hướng dịch bằng kết nối thật
Trong q <= {q[1:0], din};, q[2] mới lấy q[1] cũ, q[1] mới lấy q[0] cũ, q[0] mới lấy din.
Chỉ mục nào nhận tín hiệu nào là đặc tả chính xác hơn việc hình được vẽ sang trái hay phải.
Mũi tên chỉ các vị trí lưu mà một bit đi qua. Mọi thanh ghiThanh ghi Mạch lưu trạng thái nhiều bit. Thanh ghi đồng bộ trong khóa học lưu đầu vào đã quy định tại cạnh clock. Tìm hiểu thêm đọc giá trị cũ cùng cạnh; không có nghĩa din đi qua tới q2 trong một cạnh.
- din: Bit nhận tại cạnh này
- q0: Bắt din
- q1: Bắt q0 cũ
- q2: Bắt q1 cũ
Dịch số học và dịch logic
>> là dịch phải logic, điền 0 vào các vị trí trống bên trái. >>> có thể dịch phải số học mở rộng dấu khi toán hạng trái là signed. Cùng chuỗi bit nhưng khai báo signed khác có thể cho kết quả khác.
logic signed [7:0] x;
logic [7:0] logical_right, arithmetic_right;
assign logical_right = x >> 1;
assign arithmetic_right = x >>> 1;Nếu x=8'b11111000 (-8), kết quả lần lượt 01111100 và 11111100. Dịch phải số học số âm không luôn cùng quy tắc làm tròn với chia nguyên số âm; thuật toán số cần kiểm tra riêng.
Tự thử
Với q ba bit=101, din=0, tìm trạng thái sau của q<={q[1:0],din} và q<={din,q[2:1]}.
Đọc giải thích
Biểu thức đầu là 010, biểu thức sau cũng 010. Với đầu vào này, hai hướng tình cờ giống. Dùng q=001, din=0 sẽ được 010 và 000, phân biệt được lỗi hướng.