7 / 37 · Khái niệm
Độ rộng của slice, nối và lặp
Tính tổng độ rộng tín hiệu nối và điều kiện bảo toàn giá trị khi xây đường dữ liệu.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Phép nối không phải phép cộng
{a,b} đặt bit của b sau bit của a. Độ rộng M và N cho kết quả M+N. Nếu hai toán hạng là chuỗi unsignedunsigned Quy tắc diễn giải chuỗi bit là số nguyên không âm. Phạm vi n bit là 0 đến 2^n−1 và có thể khác diễn giải signed của cùng chuỗi bit. Tìm hiểu thêm, giá trị số là:
a=2'b10, b=3'b101 cho 5'b10101, tức 21, khác tổng số học 7.
Các bit a dịch lên số vị trí bằng độ rộng b. Phép nốiPhép nối Ghép các chuỗi bit cạnh nhau. Độ rộng kết quả bằng tổng độ rộng toán hạng, khác cộng giá trị số. phải đọc là a×2³+b, không phải a+b.
- a = 10: Rộng 2 bit, số nguyên 2
- b = 101: Rộng 3 bit, số nguyên 5
- {a,b} = 10101: Rộng 5 bit, 2×8+5=21
Ghi độ rộng bên cạnh biểu thức
logic [7:0] word;
logic [3:0] upper, lower;
logic [7:0] swapped;
assign upper = word[7:4];
assign lower = word[3:0];
assign swapped = {lower, upper};Đầu vào 8'hA3 cho swapped=8'h3A. Sai một vị trí phạm vi sliceSlice Chọn một dải bit liên tiếp trong vector. Phạm vi chọn quyết định độ rộng và thứ tự bit kết quả. sẽ đổi độ rộng hoặc giá trị. Phần chọn có thể được coi là unsigned riêng dù vector gốc signed, nên xác nhận lại ý nghĩa trước phép tính signed.
Mở rộng dấu và nối lặp
logic signed [3:0] small;
logic signed [7:0] extended;
assign extended = {{4{small[3]}}, small};Nối bốn bit dấu với bốn bit gốc tạo tám bit. Sign extension không phải cộng 1 vì 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à số chỉ mục lớn nhất. Tìm hiểu thêm=1, mà mở bố trí bit để giữ nguyên giá trị diễn giải.
Mạch dịch tổng quát dùng q[N-2:0] có phạm vi không hợp lệ tại N=1. Giới hạn độ rộng tối thiểu hoặc dùng nhánh generate xử lý N=1 riêng. Tham số hóa không chỉ là thay số bằng biến.
Tự thử
a là ba bit 101, b là hai bit 11. {a,b} rộng bao nhiêu, giá trị gì? Lưu vào bốn bit còn gì?
Đọc giải thích
Rộng năm bit, chuỗi 10111, giá trị . Lưu vào bốn bit bỏ bit cao, còn 0111, tức 7.