Bộ nhớ truy xuất ngẫu nhiên (Random Access Memory):

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

Một thành phần quan trọng khác của hệ thống máy tính là bộ nhớ. Phần này có thể xem như là RAM hoặc ROM. Ta làm bộ nhớ cũng giống như làm thanh ghi tập tin nhưng với nhiều địa chỉ hơn. Tuy nhiên có nhiều lý do ta không thể làm như vậy. Một lý do đó là chúng ta muốn có bộ nhớ lớn và rẻ tiền .Vì thế chúng ta phải làm mỗi ô nhớ nhỏ đến khả năng có thể có. Một lý do khác là chúng ta muốn dùng chung đường Bus data cho cả việc đọc và ghi dữ liệu từ đâu/đến đâu của bộ nhớ. Điều này cho thấy rằng mạch nhớ chỉ cần có 1 Port dữ liệu mà không cần phải 2 hay 3 như thanh ghi tập tin. Ký hiệu Logic chỉ tất cả các

kết nối của chip RAM thông thường chỉ ở hình 2.51. Có các đường dữ liệu D và các đường

địa chỉ A.

Đường dữ liệu cho cả ngõ vào và ngõ ra của dữ liệu ở vị trí từ đâu đến đâu được chỉ rõ bằng các đường địa chỉ. Số lượng đường dữ liệu tùy thuộc vào có bao nhiêu bit được dùng

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

đường địa chỉ (29

= 512). Để có thể thêm các đường dữ liệu và địa chỉ, ta thường dùng 3 chân điều khiển là: chip enable (CE‟), write enable (WR‟), và xung clock. Cả CE‟ và WE‟ được tích cực mức thấp.

Hình 2. 51 : Ký hiệu logic của chip RAM.

Mỗi bit trong RAM được lưu trữ trong 1 ô nhớ giống mạch ở hình 2.52. Phần tử nhớ chính trong ô nhớ là bộ chốt D có chân cho phép. Bộ đệm 3 trạng thái được nối ở ngõ ra của bộ chốt D để nó có thể lựa chọn đọc từ đâu. Tín hiệu cho phép ô được dùng để cho phép ô nhớ được đọc và ghi. Để đọc, tín hiệu cho phép ô được dùng để cho phép bộ đệm 3 trạng thái. Để ghi, tín hiệu cho phép ô cùng với tín hiệu cho phép ghi được dùng để cho phép bộ chốt để dữ liệu ở ngõ vào được chốt trong ô.

Hình 2. 52 : Mạch nhớ bit trong RAM.

Để tạo 1 chip RAM 4x4, chúng ta cần 16 ô nhớ dạng lưới 4x4 như hình 2.53. Mỗi hàng là 1 vị trí lưu trữ riêng và số ô nhớ trong mỗi hàng quyết định độ rộng bit ở mỗi vị trí. Vì vậy tất cả ô nhớ trong hàng có cùng địa chỉ. 1 Bộ giải mã được dùng để giải mã các địa chỉ. Trong ví dụ này là bộ giải mã 2-4 để giải mã 4 vị trí địa chỉ. Tín hiệu CE‟ cho phép chip, đặc biệt để cho phép chức năng đọc và ghi thông qua 2 cổng AND. Tín hiệu WE nội được tích cực (khi cả 2 tín hiệu CE‟ và WR‟ được tích cực) dùng để xác định cho phép ghi của tất cả các ô nhớ. Dữ liệu đi từ bus data bên ngoài qua ngõ vào bộ đệm và đến ngõ vào của mỗi ô nhớ.

Mục đích của việc dùng 1 bộ đệm ngõ vào cho mỗi đường dữ liệu là chỉ cần để tín hiệu bên ngoài vào để điều khiển đúng 1 linh kiện (bộ đệm) hơn là vài linh kiện (Ví dụ tất cả các ô nhớ trong cùng cột). Tùy thuộc vào địa chỉ được đưa ra mà hàng nào của các ô nhớ sẽ được ghi. Hoạt động đọc yêu cầu chân CE‟ được tích cực và chân WR‟ không được tích cực. Điều này sẽ tích cực tín hiệu RE nội, nó sẽ cho phép lần lượt 4 ngõ ra của bộ đệm 3 trạng thái ở cuối sơ đồ mạch. Nhắc lạ, vị trí được đọc sẽ được chọn bằng địa chỉ.

Hình 2. 53 : Sơ đồ các ô nhớ dạng lưới trong chip RAM 4x4.

Mã VHDL cho chip RAM 16 x 4: LIBRARY ieee;

USE ieee.STD_LOGIC_1164.ALL; USE ieee.STD_LOGIC_arith.ALL;

USE ieee.STD_LOGIC_unsigned.ALL; -- needed for CONV_INTEGER()

ENTITY memory IS PORT (CE, WR: IN STD_LOGIC; --chip enable, write enable A: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --address

D: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); --data END memory;

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

ARCHITECTURE Behavioral OF memory IS BEGIN

PROCESS (CE‟, WR‟)

SUBTYPE cell IS STD_LOGIC_VECTOR(3 DOWNTO 0); TYPE memArray IS array(0 TO 15) OF cell;

VARIABLE mem: memArray; --memory contents

VARIABLE ctrl: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN

ctrl := CE & Wr; --group signals for CASE decoding CASE ctrl IS

WHEN "10" => -- read

D <= mem(CONV_INTEGER(A)); -- fn TO convert from bit vecTOr TO integer WHEN "11" => -- write

mem(CONV_INTEGER(A)) := D; -- fn TO convert from bit vecTOr TO integer WHEN OTHERS => -- invalid or not enable

D <= (OTHERS => 'Z'); END CASE;

END PROCESS; END Behavioral;

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

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

(137 trang)