Thiết kế bộ nhớ 13 4-

Một phần của tài liệu Thiết kế mạch bằng VHLD (Trang 135 - 141)

Trong đoạn này, chỳng ta sẽ thiết kế cỏc mạch bộ nhớ sau:

+ ROM

+ RAM với bus dữ liệu vào ra tỏch rời.

ROM (Read Only Memory): Bộ nhớ chỉ đọc và ghi: Sơ đồ của ROM được chỉ ra trong hỡnh 9.23. Vỡ ROM là bộ nhớ chỉ đọc, khụng cú tớn hiệu clock, chõn cho phộp ghi, nú chỉ cú tớn hiệu vào bus địa chỉ và tớn hiệu ra là bus dữ liệu.

Hỡnh 9.23.Sơ đồ của ROM

Mó thiết kế ROM như sau:

--- LIBRARY ieee;

USE ieee.std_logic_1164.all;

--- ENTITY rom IS

GENERIC ( bits: INTEGER := 8; -- # of bits per word

words: INTEGER := 8); -- # of words in the memory PORT ( addr: IN INTEGER RANGE 0 TO words-1;

data: OUT STD_LOGIC_VECTOR (bits-1 DOWNTO 0)); END rom;

--- ARCHITECTURE rom OF rom IS

TYPE vector_array IS ARRAY (0 TO words-1) OF STD_LOGIC_VECTOR (bits-1 DOWNTO 0);

CONSTANT memory: vector_array := ( "00000000",

"00000010", "00000100", "00001000", "00010000", "00100000", "01000000", "10000000"); BEGIN data <= memory(addr); END rom; --- Kết quả mụ phỏng:

Hỡnh 9.24. Kết quả mụ phỏng thiết kế ROM

RAM với đường bus vào ra riờng biệt: Sơ đồ của RAM với đường bus vào ra riờng biệt được thể hiện trong hỡnh 9.25

Hỡnh 9.25. RAM với đường dữ liệu tỏch rời

Như chỳng ta thấy trờn hỡnh, RAM cú cỏc bus dư liệu vào data_in, bus dữ liệu ra data_out, bus địa chỉ, tớn hiệu clk và tớn hiệu cho phộp đọc/ghi. Khi tớn hiệu cho phộp ghi/đọc được xỏc nhận là ghi thỡ tại mỗi xung lờn tiếp theo của clk thỡ dữ liệu đầu vào (data_in) phải được lưu trữ tại vị trớ addr, và dữ liệu ra phải được đọc từ địa chỉ addr.

Mó thiết kế RAM sẽ như sau:

--- --- library IEEE; use IEEE.STD_LOGIC_1164.all; --- ENTITY ram IS

GENERIC ( bits: INTEGER := 8; -- # of bits per word words: INTEGER := 16); -- # of words in the --- memory---

PORT ( wr_ena, clk: IN STD_LOGIC;

addr: IN INTEGER RANGE 0 TO words-1;

data_in: IN STD_LOGIC_VECTOR (bits-1 DOWNTO 0); data_out: OUT STD_LOGIC_VECTOR (bits-1 DOWNTO 0)); END ram;

--- ARCHITECTURE ram OF ram IS

TYPE vector_array IS ARRAY (0 TO words-1) OF STD_LOGIC_VECTOR (bits-1 DOWNTO 0);

SIGNAL memory: vector_array; BEGIN

PROCESS (clk, wr_ena) BEGIN

IF (wr_ena='1') THEN

IF (clk'EVENT AND clk='1') THEN memory(addr) <= data_in; END IF; END IF; END PROCESS; data_out <= memory(addr); END ram; ---

Kết quả mụ phỏng:

Hỡnh 9.26. Kết quả mụ phỏng RAM cú đương dữ liệu vào ra khỏc nhau.

RAM với đường bus song song:

Sơ đồ của RAM với đường bus song song được thể hiện trong hỡnh 9.27. Dữ liệu được ghi vào RAM hay được đọc từ RAM thực hiện trờn cựng 1 đường bus.

Hỡnh 9.27. RAM với đường dữ liệu chung

Mó thiết kế sẽ như sau:

--- LIBRARY ieee;

USE ieee.std_logic_1164.all;

--- ENTITY ramc IS

GENERIC ( bits: INTEGER := 8; -- # of bits per word words: INTEGER := 16); -- # of words in the -- memory

PORT ( clk, wr_ena: IN STD_LOGIC;

addr: IN INTEGER RANGE 0 TO words-1;

bidir: INOUT STD_LOGIC_VECTOR (bits-1 DOWNTO 0)); END ramc;

--- ARCHITECTURE arc OF ramc IS

TYPE vector_array IS ARRAY (0 TO words-1) OF STD_LOGIC_VECTOR (bits-1 DOWNTO 0);

SIGNAL memory: vector_array; BEGIN PROCESS (clk, wr_ena) BEGIN IF (wr_ena='0') THEN bidir <= memory(addr); ELSE bidir <= (OTHERS => 'Z');

IF (clk'EVENT AND clk='1') THEN memory(addr) <= bidir; END IF; END IF; END PROCESS; END arc; ---

Kết luận

Ngày này việc ứng dụng VHDL trong việc thiết kế mạch và chớp ngày cang nhiều. Cụng nghệ này đang là xu hướng của thời đại, đơn giản vỡ nú khụ ng chỉ tiờu tốn ớt về tiền bạc mà nú cũn giỳp cho chỳng ta đơn giản trong việc thiết kế phần cứng.

Trờn đõy, chỳng ta đó trỡnh bày một cỏch khỏi quỏt về phương phỏp thiết kế cỏc mạch. Những mạch cơ bản nhất đó được chỳng ta thiết kế một cỏch chi tiờt, hoàn thiện. Đõy là cơ sở cho những thiết kế lơn hơn về phần cứng, để thiết kế cỏc ứng dụng cho cỏc FPGA, ASIC.

Tài liệu tham khảo:

- Circuit design with VHDL , Voilnei A.Pedroni

- VHDL language.

- The vhdl – cookbook , Peter J.Ashedo

- Thiết kế mạch bằng mỏy tớnh, Nguyễn Linh Giang …..

Phõn cụng cụng việc:

Nguyễn Ngọc Linh: Chương 2,3 Nguyễn Quốc Việt: Chương 4,5 Nghiờm Kim Phương: Chương 6,7

Một phần của tài liệu Thiết kế mạch bằng VHLD (Trang 135 - 141)

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

(141 trang)