Каковы условия, когда 2D-память, созданная в Verilog, отображается в BRAM с помощью ISE?

Поискав на нескольких форумах, я не нашел исчерпывающего ответа.

Я хотел бы понять, когда [PARAM1:0] ram [PARAM2:0] выводится синтезатором ISE как Block RAM, а когда нет?


person Karthik Hegde    schedule 17.07.2016    source источник


Ответы (1)


Этот список условий может быть неполным:

  • Размер
    Если объем памяти слишком мал, ISE будет использовать распределенную RAM (LUT-RAM) вместо BlockRAM. Размер/область вашей памяти должны быть сопоставлены с одной или группой блоков BlockRAM. Один BlockRAM может иметь 8,9,16,18,32,36,64,72 бита на порт данных. Возможны и другие размеры при совпадении количества линий памяти.
  • Порты
    BlockRAM поддерживает:

    • single-port (SP),
    • простой двухпортовый (SDP),
    • расширенный простой двухпортовый (ESDP) и
    • настоящий двухпортовый (TDP)

    воспоминания. Также возможны комбинации с одним портом записи и n портами чтения.

  • Сброс
    BlockRAM не поддерживает сброс. Итак, если вы можете сбросить память, это можно расценивать как BRAM.
  • ClockEnable (CE), Write-Enable (WE), Byte-Write-Enable (BWE)
    BlockRAM поддерживают CE и WE, но обычно не поддерживают BWE.
  • Время
    Память должна быть синхронно записана и либо синхронно прочитана, либо асинхронно прочитана с зарегистрированного адреса.
  • Регистры вывода (OUT_REG)
    Регистры вывода являются необязательными, но улучшают общую синхронизацию. Синтезатор может переместить OUT_REG из логики в BlockRAM, которая имеет встроенные выходные регистры.

Наша PoC-библиотека с открытым исходным кодом содержит 4 возможных встроенной оперативной памяти реализации, написанные на универсальном коде VHDL, который можно сопоставить с Xilinx BlockRAM. Я предполагаю, что вы можете прочитать и понять эти фрагменты VHDL, чтобы перевести их в код Verilog :). Кроме того, Xilinx предлагает руководство по синтезу (UG 626, v14.4, стр. 73)), в котором перечислены шаблоны проектирования VHDL и Verilog синтезируемого кода.

person Paebbels    schedule 18.07.2016