Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DDR SDRAM для VIRTEX 4
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
sancheez
Здравствуйте.

Кто знает, каким образом избавиться от ошибки: Memory overflow, you mast increase the part_mem_bits parameter or `define FULL_MEM - данная ошибка появляется при попытке контроллера сменить строку в банке памяти. Речь идет о оживлении КОРЫ памяти для Virtex4. Память микроновская MT46V64M16, кора сгенерена в Xilinx ISE.

P.S. увеличение параметра part_mem_bits результата не дает.

Заранее спасибо!
DmitryR
А можно чуть попобробнее: кто печатает эту ошибку, откуда известно, что она совпадает с моментом смены строки, что такое смена строки вообще (этот контроллер умеет несколько строк держать открытыми) etc.
sancheez
Я сгенерил кору в CORE GENе Xilinx, MIG - memory interface generator для памяти указанной выше. После генерации появляется и сама модель памяти DDR_model.v которая, собственно, заменяет память при симуляции. В этом файле прописаны всякие debug сообщения выскакивающие при определенных условиях или ошибках. Я написл пользовательский модуль - который должен посылать и выводить данные сначала с коры контроллера, а он в свою очередь с памяти. Этот самый файл DDR_model.v в момент симмуляции записи данных в память выводит сообщения о том, по какому адресу и какие данные загоняются в память, как только заполнены все колонки, выводится сообщение указанное в первом сообщении. На сколько я понимаю, кора она же контроллер должна переключать строки и даже банки памяти автоматом. Открытыми несколько строк держать врядли может. Делает (precharge) а в это время данные пишутся в FIFO.
DmitryR
Я бы для начала попробовал модель памяти поставить нормальную, от Micron (доступна для скачивания на сайте). Ну и конечно надо проверить по даташиту конфигурацию памяти, которую вы задали при генерации корки - совпадает ли у нее row/col/bank размерность с размерностями реальной памяти.
sancheez
Модель памяти на Микроновском сайте и в коре совпадают. При генерации все параметры проверял не однократно. На мой взгляд моя проблема в том, как задать FULL_MEM.
SFx
проведите поиск по исходникам на предмет закоментированной "`define FULL_MEM" и соответствующие параметры sg и x из файла ddr_parameters.vh
если ничего нет просто добавьте в модель DDR памяти эту строчку подбно этому
Код
* 5.5  SPH    01/13/2005  - The model will issue a halt on illegal command sequences.
*      JMK    02/11/2005  - Changed the display format for numbers to hex.
* 5.6  JMK    04/22/2005  - Fixed Write with auto precharge calculation.
* 5.7  JMK    08/05/2005  - Changed conditions for read with precharge truncation error.
*                         - Renamed parameters file with .vh extension.
********************************************************************************
********/

// DO NOT CHANGE THE TIMESCALE
// MAKE SURE YOUR SIMULATOR USE "PS" RESOLUTION
`timescale 1ns / 1ps
`define sg6
`define x16    
`define FULL_MEM

module ddr (Dq, Dqs, Addr, Ba, Clk, Clk_n, Cke, Cs_n, Ras_n, Cas_n, We_n, Dm);

    `include "ddr_parameters.vh"
  // Port Declarations
    inout       [DQ_BITS - 1 : 0] Dq;
    inout      [DQS_BITS - 1 : 0] Dqs;
    input     [ADDR_BITS - 1 : 0] Addr;
    input                 [1 : 0] Ba;
    input                         Clk;
sancheez
Спасибо, теперь только после изменения файла ddr_model.v и запуске симуляции вылетает Questasim laughing.gif
Gothard
Ответить точно не могу, но насколько я помню модель памяти имитирует не полный объем памяти реальной м/с (в целях экономии оперативки при моделировании).
Вероятно во время моделирования вы заняли весь этот объем, а при параметре FULL_MEM у вас просто не хватило оперативки для модели.
Попробуйте найти параметр part_mem_bits и изменить его.
sancheez
QuestaSim выдавал следующую ошибку: Fatal: (vsim -u) ***** Memory allocation failure. ***** Please check your system for available memory and swap space. Я стал в окно WAVE добавлять меньше сигналов и проблема исчезла... память пишется на ура!!! Спасибо вам за мудрые советы rolleyes.gif
KPiter
Это не кора, а модель памяти. Read me не помог?
#An associative array has been implemented to reduce the amount of
#static memory allocated by the DDR model. The number of
#entries in the associative array is controlled by the part_mem_bits
#parameter, and is equal to 2^part_mem_bits. For example, if the
#part_mem_bits parameter is equal to 10, the associative array will be
#large enough to store 1024 write data transfers to unique addresses.
#The following is simulation with setting the part_mem_bits parameter to 10.

vsim -t ps -Gpart_mem_bits=20 ddr -novopt work.tb
sancheez
part_mem_bits не решили проблемы. помогло `define FULL_MEM
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.