реклама на сайте
подробности

 
 
> DDR SDRAM для VIRTEX 4
sancheez
сообщение Jul 13 2010, 23:53
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



Здравствуйте.

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

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

Заранее спасибо!


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
DmitryR
сообщение Jul 14 2010, 00:31
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



А можно чуть попобробнее: кто печатает эту ошибку, откуда известно, что она совпадает с моментом смены строки, что такое смена строки вообще (этот контроллер умеет несколько строк держать открытыми) etc.
Go to the top of the page
 
+Quote Post
sancheez
сообщение Jul 14 2010, 02:07
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



Я сгенерил кору в CORE GENе Xilinx, MIG - memory interface generator для памяти указанной выше. После генерации появляется и сама модель памяти DDR_model.v которая, собственно, заменяет память при симуляции. В этом файле прописаны всякие debug сообщения выскакивающие при определенных условиях или ошибках. Я написл пользовательский модуль - который должен посылать и выводить данные сначала с коры контроллера, а он в свою очередь с памяти. Этот самый файл DDR_model.v в момент симмуляции записи данных в память выводит сообщения о том, по какому адресу и какие данные загоняются в память, как только заполнены все колонки, выводится сообщение указанное в первом сообщении. На сколько я понимаю, кора она же контроллер должна переключать строки и даже банки памяти автоматом. Открытыми несколько строк держать врядли может. Делает (precharge) а в это время данные пишутся в FIFO.

Сообщение отредактировал sancheez - Jul 14 2010, 02:13


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jul 14 2010, 02:11
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Я бы для начала попробовал модель памяти поставить нормальную, от Micron (доступна для скачивания на сайте). Ну и конечно надо проверить по даташиту конфигурацию памяти, которую вы задали при генерации корки - совпадает ли у нее row/col/bank размерность с размерностями реальной памяти.
Go to the top of the page
 
+Quote Post
sancheez
сообщение Jul 14 2010, 02:17
Сообщение #5





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



Модель памяти на Микроновском сайте и в коре совпадают. При генерации все параметры проверял не однократно. На мой взгляд моя проблема в том, как задать FULL_MEM.


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post
SFx
сообщение Jul 14 2010, 02:23
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



проведите поиск по исходникам на предмет закоментированной "`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;
Go to the top of the page
 
+Quote Post
sancheez
сообщение Jul 14 2010, 03:33
Сообщение #7





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



Спасибо, теперь только после изменения файла ddr_model.v и запуске симуляции вылетает Questasim laughing.gif


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post
Gothard
сообщение Jul 15 2010, 05:29
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Ответить точно не могу, но насколько я помню модель памяти имитирует не полный объем памяти реальной м/с (в целях экономии оперативки при моделировании).
Вероятно во время моделирования вы заняли весь этот объем, а при параметре FULL_MEM у вас просто не хватило оперативки для модели.
Попробуйте найти параметр part_mem_bits и изменить его.
Go to the top of the page
 
+Quote Post
sancheez
сообщение Jul 15 2010, 06:46
Сообщение #9





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



QuestaSim выдавал следующую ошибку: Fatal: (vsim -u) ***** Memory allocation failure. ***** Please check your system for available memory and swap space. Я стал в окно WAVE добавлять меньше сигналов и проблема исчезла... память пишется на ура!!! Спасибо вам за мудрые советы rolleyes.gif


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post
KPiter
сообщение Jul 22 2010, 08:05
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 22-09-06
Из: NN
Пользователь №: 20 592



Это не кора, а модель памяти. 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
Go to the top of the page
 
+Quote Post
sancheez
сообщение Jul 22 2010, 13:05
Сообщение #11





Группа: Участник
Сообщений: 6
Регистрация: 13-07-10
Из: СП-б
Пользователь №: 58 435



part_mem_bits не решили проблемы. помогло `define FULL_MEM


--------------------
С уважением, Александр.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 05:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0145 секунд с 7
ELECTRONIX ©2004-2016