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

 
 
 
Reply to this topicStart new topic
> Функциональная симуляция блока памяти (ПЗУ), в Foundation 4.2i
kst
сообщение Dec 16 2006, 13:12
Сообщение #1


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

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Вопрос
Может кто помнит и подскажет, как правильно производить функциональную симуляцию блока памяти в XFS 4.2i?

Ситуация:
Есть старый проект (по большей части в схематике), который нужно подправить и сделать прошивку. Есть там блок памяти (ПЗУ) на 16K отсчетов, сгенерированный в COREGEN. Как не кручу, при функциональной симуляции нули на выходе.

Танцы с бубнами:
Дело дошло до того, что создал отдельный проект, с параметрами по умолчанию, где имеется только память. На ее адресные входы подается выход счетчика, а выходная шина на пины. Функциональная симуляция ни в какую, а вот временная правильно все показывает. Просмотр содержимого памяти в симуляторе, показывает, что при функциональной симуляции в ней нули.
Как заставить что-нибудь в нее загрузится?
Странно, но раньше я проблем не замечал.

Примечания:
САПР: Xilinx Foundation Series 4.2i
Корка: Single Port Block Memory v.4.0
Симулятор: встроенный
Для симуляции использую Script Editor
Go to the top of the page
 
+Quote Post
lexus.mephi
сообщение Dec 17 2006, 21:02
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 24-09-05
Пользователь №: 8 903



Этот глюк навернаяка у всех был, кто работал с этой памятью. Я точно не помню как ушла эта ошибка - вот несколько вариантов:
1)Установить начальное значение.
2)Перегенерировать - подключить другой файл с содержимым памяти.
Еще там обязательно на адресных входах должно быть какое-то значение!


--------------------
Мои сайты:www.systemverilog.ru
Go to the top of the page
 
+Quote Post
kst
сообщение Dec 18 2006, 12:49
Сообщение #3


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

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Все варианты уже перепробовал.
Начальное значение (если имеется в виду Global Init Value) установлено в 0.
Память перегенерировал уже не один раз, с подключением разныхфайлов.
А адресных входах значение всегда есть.
В файле *.edn присутствуют данные из файла *.coe. И *.mif файл присутствует.

Нету функциональной симуляции. НЕТУ! sad.gif
Go to the top of the page
 
+Quote Post
kst
сообщение Dec 20 2006, 13:12
Сообщение #4


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

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



На конференции telesys подсказали идею - описать ПЗУ поведенчески:
Код
type trom is array(0 to 1023) of integer;
constant rom : trom := (0,50,100,...);
data <= conv_std_logic_vector(rom(conv_integer(addr)),15);

Однако я не могу дождаться результата синтеза. Такое ощущение, что система (XFS) просто зависает. Все-таки 16kx14. Сам файл vhd получился 300кБ.

Поковырялся в справке симулятора, обнаружил такую штуку. Можно сделать блок памяти в который можно загрузить содержимое. В этом случае все начинает работать.
Нужно только как-то записать в эту память 16к отсчетов.
Ручками мне как-то не хочется.
Есть альтернатива - загрузить из hex-файла.
Но как сделать такой файл?
Go to the top of the page
 
+Quote Post
Koluntaev
сообщение Dec 21 2006, 08:50
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 27-04-06
Пользователь №: 16 537



Цитата(kst @ Dec 16 2006, 14:12) *
Есть старый проект (по большей части в схематике), который нужно подправить и сделать прошивку. Есть там блок памяти (ПЗУ) на 16K отсчетов, сгенерированный в COREGEN. Как не кручу, при функциональной симуляции нули на выходе.


А не пробовали для симуляции вместо Block memory сделать с того же .coe файла Distributed memory
(ROM). Она вроде вполне корректно симулится.
Go to the top of the page
 
+Quote Post
kst
сообщение Dec 21 2006, 12:41
Сообщение #6


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

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Ваша правда! Действительно все нормально симулируется. Спасибо!
Я поначалу с сомнением относился к возможности "подмены" памяти, поэтому и не рассмотрел возможность реализации ПЗУ на распределенной памяти.

З.Ы.: Я таки дождался синтеза ПЗУ с поведенческим описанием на VHDL. 6 часов. Синтезатор все сделал на распределенной памяти. Все работает.
Go to the top of the page
 
+Quote Post

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

 


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


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