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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Блочная память и её работа, RAMB4_S16
darkniisiis
сообщение Mar 15 2007, 10:55
Сообщение #1


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



Вот для проекта мне необходимо использовать блочную память. Под задание подходит готовый компонент ISE RAMB4_S16. Пробовал смоделировать её с помощью модельсима,но что то не пойму логику её работы, не могу получить вектор на выходе,всегда нули.Управляющие сигналы:
RST-сброс
ЕN-разрешение работы
CLK-сигналы синхронизации
WE-разрешение записи
ADDR-вход адреса
DI-вход данных
DO-выход
Подскажите пожалуста как она работает?
Go to the top of the page
 
+Quote Post
irum4
сообщение Mar 15 2007, 14:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Читай файл документации lib.pdf (стр.~1301) об RAMB4_Sn. Там все понятно написано.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 15 2007, 15:23
Сообщение #3


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



нет,это всё понятно,тут без вопросов.
Проблема в том что при таком раскладе на выходе всё равно 0.
Вроде всё делаю правильно,сигналы подаю правильно,но толка нет. Можно ли в модельсиме посмотреть внутреннее состояние памяти?
Go to the top of the page
 
+Quote Post
denisys
сообщение Mar 15 2007, 16:18
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 21-11-05
Из: Минск
Пользователь №: 11 166



Цитата(darkniisiis @ Mar 15 2007, 14:23) *
Можно ли в модельсиме посмотреть внутреннее состояние памяти?

Содержимое памяти в моделсиме можно посмотреть с помощью окна Workspace и его закладки Memories выбрав соответствующий инстанс.
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 16 2007, 16:09
Сообщение #5


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



Может быть есть какие-нибудь нюансы при моделировании памяти? Подскажите пожалуйста.
Делаю м модельсиме post-translate симуляцию.Такое впечатление что память вообще не воспринимает подаваемые мной сигналы, смотрю по закладке Memories,её содержимое не меняется. Сигналы подаю правильно.В чём может быть проблема?
Go to the top of the page
 
+Quote Post
denisys
сообщение Mar 17 2007, 11:09
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 21-11-05
Из: Минск
Пользователь №: 11 166



Цитата(darkniisiis @ Mar 16 2007, 15:09) *
Может быть есть какие-нибудь нюансы при моделировании памяти? Подскажите пожалуйста.
Делаю м модельсиме post-translate симуляцию.Такое впечатление что память вообще не воспринимает подаваемые мной сигналы, смотрю по закладке Memories,её содержимое не меняется. Сигналы подаю правильно.В чём может быть проблема?


Вы используете библиотечный компонент RAMB4_S16, который описывает память так как это необходимо для моделирования, и этот компонент замечательно работает. Поэтому, следует обратить внимание именно на управляющие сигналы, которые Вы направляете на этот компонент.

Кстати, как ведет себя Ваша схема при функциональном моделировании? Проблемы в
post-translate симуляции могут быть следствием неверного (с точки зрения синтеза) кода...

Сообщение отредактировал denisys - Mar 17 2007, 11:13
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 19 2007, 11:03
Сообщение #7


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



пробую моделировать чисто библиотечный компонент без каких либо своих включений
приведу пример сигналов,может я действительно в чём-то ошибаюсь,проверьте пожалуйста(для примера возьмём 2-х разрядные адрес и данные)

0011001100110011001100 clk
1111111111000000000000 we
1111111111111111111111 en
0001001000100001000000 addr
0001001000000000000000 di
0000000000000000000000 do

Сообщение отредактировал darkniisiis - Mar 19 2007, 11:10
Go to the top of the page
 
+Quote Post
BSV
сообщение Mar 19 2007, 12:00
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Все правильно, Вы писали только по 0 адресу и только 0. Адрес и данные должны иметь нужное значение на момент прихода фронта, т.е. на предыдущем такте - так же как и с D-триггером.

Надо так:
00110011 clk
11111111 we
11111111 en
00001100 addr
11001100 di

По адресам 0 и 1 запишутся 1. Когда данные на выходе появятся - смотреть по документации (на память не помню).


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 19 2007, 14:18
Сообщение #9


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



что то ничего не помогает.
Может быть кто-нибудь даст ссылочку на необходимую документацию?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 19 2007, 14:56
Сообщение #10


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(darkniisiis @ Mar 19 2007, 14:18) *
что то ничего не помогает.

Мне эти "временные диаграммы" (00110011) абсолютно непонятны. Вы можете сделать скриншот окна wave симулятора и опубликовать здесь?
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 19 2007, 15:56
Сообщение #11


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



xlxn_1 - we
xlxn_2 - en
xlxn_3 - rst
xlxn_4 - clk
xlxn_5 - addr
xlxn_6 - DI
xlxn_7 - DO
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 19 2007, 16:12
Сообщение #12


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(darkniisiis @ Mar 19 2007, 15:56) *
xlxn_4 - clk

Если это самое начало симуляции, т. е. левее того, что на рисунке, ничего нет, то мне все понятно.

У Xilinx есть забавный баг, которому уже не один год. Заключается он в том, что модель памяти (может, еще какой-то компонент тоже -- не знаю, но на грабли с памятью коллеги наступали несколько раз) не работает, если память использует восходящий фронт тактового сигнала, а в момент начала симуляции оный тактовый сигнал устанавливается в '1'.
Измените генератор тактового сигнала, чтобы он начинал генерацию с '0'.

Кстати, интересный момент. Попробуйте провести эксперимент: сигналы оставьте как есть, а у памяти измените активный фронт клока.
Go to the top of the page
 
+Quote Post
darkniisiis
сообщение Mar 20 2007, 10:49
Сообщение #13


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

Группа: Новичок
Сообщений: 86
Регистрация: 19-10-06
Пользователь №: 21 468



Попробовал изменить ночало такта,не помогло
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
BSV
сообщение Mar 20 2007, 14:13
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Идиотский вопрос - а библиотеки-то подключены (UNISIM)? Внимательно смотрите на Warning'и в Transcript'е. Может тестбенч выложите?


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 20 2007, 14:25
Сообщение #15


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(darkniisiis @ Mar 20 2007, 10:49) *
Попробовал изменить ночало такта,не помогло

Почему имена сигналов съехали?
Если отвлечься от имен, сигналы на новой картинке расположены в том же порядке, что и на первой? Если да, то все правильно. Enable в нуле -- писаться ничего не будет, Reset в '1' -- на выходе нули.

Вы как будто нарочно делаете все для того, чтобы помочь вам с решением проблемы было как можно сложнее. Как известно, правильно заданный вопрос содержит половину ответа. Если бы вы предоставили максимум информации сразу, а не то, что в первом посте ("я делаю, а у меня не получается" -- поди догадайся, что вы там делаете), то, весьма вероятно, получили бы ответ сразу. Блочная память -- девайс простой, и если она не работает, то по какой-то очень простой причине.

Настойчиво вам советую прислушаться к просьбе коллеги BSV показать тестбенч.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:46
Рейтинг@Mail.ru


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