Bộ dịch và bộ xoay (shifter / Rotator):

Một phần của tài liệu Bài giảng VHDL (Trang 68 - 70)

Bộ dịch và bộ xoay được sử dụng cho việc dịch chuyển các bit trong chuỗi bit nhị phân qua phải hoặc trái. Sự khác nhau giữa bộ dịch và bộ xoay được biểu diễn trong hình 2.29

Hình 2. 29 : Sự hoạt động của bộ dịch và bộ xoay.

Một bộ ghép kênh được dùng để dịch chuyển một bit qua bên trái hoạc qua phải của dòng bit ban đầu. Kích thước của bộ ghép sẽ quyết định số lượng các loại hoạt động có thể được thực thi. Ví dụ chúng ta có thể dùng một bộ ghép kênh 4 thành 1 để thực thi 4 hoạt động

đặc biệt được diễn tả trong hình 2.30(a). Hai ngõ vào lựa chọn s0và s1được sử dụng để lựa chọn một trong bốn hoạt động trong hình 2.30(a). Có 4 bit ngõ vào, chúng ta sẽ cần sử dụng 4 bộ ghép kênh 4 thành 1 như trong hình 2.30(b). Những ngõ vào của các bộ ghép kênh được kết nối như thế nào sẽ tùy thuộc vào 4 trạng thái hoạt động trong bảng 2.30(a).

Hình 2. 30 : Bộ dịch / bộ xoay 4 bit: (a) Bảng trạng thái hoạt động;(b) sơ đồ mạch; (c) ký hiệu logic.

Trong ví dụ trên, khi s1 s0 0, chúng ta muốn đưa thẳng bit đến ngõ ra mà không thực hiện việc dịch. Ví dụ chúng ta muốn đưa giá trị ini đến ngõ ra outi. Khi s1 s0 0,

0

d của bộ ghép kênh được lựa chọn, do đó ini được kết nối đến d0 của bộ ghép kênh muxi

có ngõ ra là outi. Khi s1 0và s0 1, chúng ta muốn dịch sang trái, nghĩa là chúng ta muốn đưa giá trị ini ra ngõ outi 1. Với s1 0và s0 1, d1 của bộ ghép kênh được lựa chọn, do đó ini được kết nối đến d1 của bộ ghép kênh muxi 1 có ngõ ra là outi 1. Trong sự lựa chọn này, chúng ta cũng muốn dịch bit 0, vì thế d1 của bộ ghép kênh mux0được nối trực tiếp đến 0.

Ngôn ngữ VHDL cho bộ dịch / bộ xoay 8 bit được viết theo cấu trúc Behavioral có chức năng được giới thiệu ở trong hình 2.30(a).

Chương 2 : Dùng ngôn ngữ VHDL mô tả các mạch số cơ bản

Một phần của tài liệu Bài giảng VHDL (Trang 68 - 70)

Tải bản đầy đủ (PDF)

(137 trang)