Bộ chuyển song song thành nối tiếp 12 7-

Một phần của tài liệu Thiết kế vi mạch bảng VHDL (Trang 128 - 129)

Bộ chuyển song song thành nối tiếp là một loại ứng dụng của thanh ghi dịch. Bộ chuyển đổi này sẽ thực hiện việc gửi đi một khối dữ liệu nối tiếp. Việc sử dụng bộ chuyển đổi này là rất cần thiết ví dụ: Trong các con chip ASIC, khi không có đủ các chân dư để cho ra đồng thời tất cả các bit dữ liệu. Khi đó chúng ta cần thiết phải sử dụng bộ chuyển đổi song song thành nối tiếp.

Sơ đồ khối của bộ chuyển đổi song song thánh nối tiếp được trình bày trong hình 9.15.

Hình 9.15.Bộ chuyển song song thành nối tiếp Trong đó:

+ d(7:0) là vector dữ liệu để gửi đi + dout là đầu ra thực tế.

+ clk:Đầu vào của xung clock + load: Đầu vào xác nhận

Vector d được lưu trữ đồng bộ trong thanh ghi dịch reg. Khi load ở trạng thái cao thì dữ liệu được nạp vào thanh ghi dịch theo thư tự bit MSB là bít gần đầu ra nhất, và đầu ra là d(7). Mỗi khi load trả lại “0” thì bit tiếp theo được xuất hiện tại đầu ra của mỗi sườn dương của xung đồng hồ. Sau khi tất cả 8 bit được gửi đi, đầu ra trở lại mức thấp cho đến lần chuyển đổi tiếp theo.

Mã thiết kế như sau: LIBRARY ieee;

USE ieee.std_logic_1164.all;

--- ENTITY Bo_chuyen_dl_ss_nt IS

PORT ( d: IN STD_LOGIC_VECTOR (7 DOWNTO 0); clk, load: IN STD_LOGIC;

dout: OUT STD_LOGIC); END Bo_chuyen_dl_ss_nt;

---

ARCHITECTURE Bo_chuyen_dl_ss_nt OF Bo_chuyen_dl_ss_nt IS SIGNAL reg: STD_LOGIC_VECTOR (7 DOWNTO 0);

BEGIN

PROCESS (clk) BEGIN

IF (clk'EVENT AND clk='1') THEN IF (load='1') THEN reg <= d;

ELSE reg <= reg(6 DOWNTO 0) & '0'; END IF; END IF; END PROCESS; dout <= reg(7); END Bo_chuyen_dl_ss_nt; --- Kết quả mô phỏng:

Hình 9.16. Kết quả mô phỏng cho bộ chuyển song song thành nối tiếp

Một phần của tài liệu Thiết kế vi mạch bảng VHDL (Trang 128 - 129)