Уровень 39: RAM (Verilog)

Задание

Обвяжите встроенный модуль RAM256 — 256-ячеечную память с 8-битными данными. Модуль умеет записывать данные по адресу (по фронту clk при we = 1) и читать данные (комбинационно, в любой момент).

Модуль MemoryCell принимает: we (разрешение записи), addr[7:0] (адрес), data[7:0] (данные для записи), clk. На выходе — q[7:0] (прочитанные данные).

Ключевая идея: это builtin-модуль — вам не нужно его реализовывать, только правильно подключить порты.

Материалы по теме

  • RAM256 — встроенная память

Решение

RAM256 — встроенный компонент, его не нужно создавать из примитивов. Просто инстанцируйте его с правильным порядком портов:

  1. Инстанцируйте 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.