Уровень 39: RAM (Verilog)
Задание
Обвяжите встроенный модуль RAM256 — 256-ячеечную память с 8-битными данными. Модуль умеет записывать данные по адресу (по фронту clk при we = 1) и читать данные (комбинационно, в любой момент).
Модуль MemoryCell принимает: we (разрешение записи), addr[7:0] (адрес), data[7:0] (данные для записи), clk. На выходе — q[7:0] (прочитанные данные).
Ключевая идея: это builtin-модуль — вам не нужно его реализовывать, только правильно подключить порты.
Материалы по теме
- RAM256 — встроенная память
Решение
RAM256 — встроенный компонент, его не нужно создавать из примитивов. Просто инстанцируйте его с правильным порядком портов:
- Инстанцируйте RAM256:
RAM256 mem(clk, we, addr, data, q);
Порядок портов RAM256: (clk, we, addr, data, q) — ровно пять портов в том порядке, в котором они перечислены в задании.
clk— тактовый сигнал (запись по фронту)we— write enable (1 = запись, 0 = чтение)addr[7:0]— 8-битный адресdata[7:0]— 8-битные данные для записиq[7:0]— 8-битные прочитанные данные
Чтение — комбинационное: q всегда отражает содержимое ячейки addr. Запись — по фронту clk: если в момент фронта we = 1, значение data записывается в ячейку addr.