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

 
 
> MAXII + SRAM, Помогите реализовать
zombi
сообщение Sep 28 2015, 17:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



К EPM570 подключены три внешние шины адреса ARA,ARB,AWA, одна шина данных DW и внешняя SRAM со своими шинами адреса, данных и управления WRRAM,OERAM.

Нужно циклически выполнять следующее:

1. прочитать содержимое SRAM по адресу ARA и выдать на пины DA
2. прочитать содержимое SRAM по адресу ARB и выдать на пины DB
3. состояние на шине DW записать по адресу AWA.

Всё это нужно сделать за три такта входной частоты 100 MHz.

Нарисовал схему в граф редакторе.
А в симуляторе вижу что это работать точно не будет.
Шина адреса sram (ARAM) пляшет во время переключения.
Сигналы OERAM и WRRAM имеют разную задержку.
Задний фронт WRRAM вообще появляется на пине позже чем переключается шина данных DRAM на ввод.

Посоветуйте что исправить. Или вообще всё переделать.
Время доступа SRAM 8 нс.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
EvgenyNik
сообщение Sep 29 2015, 09:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Создайте графический символ этому файлу и вставьте в свой проект. Может, ещё и не заработает. Чего зря рисовать то?


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 29 2015, 16:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(EvgenyNik @ Sep 29 2015, 12:12) *
Создайте графический символ этому файлу и вставьте в свой проект. Может, ещё и не заработает. Чего зря рисовать то?

Сделал. Все вроде работает но на чипе с speed grade 4.
Понятно что для speed grade 5 тактовую понижать нужно.

Код
    always    @ (negedge clk)
        begin
        if (stage_r == 0)    wramag_r <= 1; // это нужно, чтобы избавиться от глитча при возврате из режима записи (см. формирование wram_o)
        else    wramag_r <= 0;
        end

Подскажите вот это как в граф редакторе на триггере реализовать?
Так как на прикреплённой картинке или как то иначе?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Sep 30 2015, 08:39
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Цитата(zombi @ Sep 29 2015, 19:01) *
Код
    always    @ (negedge clk)
         begin
         if (stage_r == 0)    wramag_r <= 1; // это нужно, чтобы избавиться от глитча при возврате из режима записи (см. формирование wram_o)
         else    wramag_r <= 0;
         end

Подскажите вот это как в граф редакторе на триггере реализовать?

Фактически, здесь написано: всегда при отрицательном фронте clk присваивать wramag=1, если stage равен 0 и, если иначе, то обнулять этот wramag.
Так и делаем:
1. инвертируем clk (надо же по отрицательному фронту защёлкивать) и подаём на тактовый вход DFF
2. биты stage заводим на ИЛИ-НЕ и подаём на вход данных D
3. защёлкивам в DFF
4. снимаем результат с Q
Прикрепленное изображение

p.s. А зачем Вам манипуляции с OE и CS? Если используется один чип памяти и его порты работают через ПЛИС, то пусть по умолчанию всегда будет выбран и всегда в режиме выдачи данных с текущего адреса. Ему (чипу ОЗУ) всё равно, а Вам - экономия ресурсов на ПЛИСке.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 4th September 2025 - 20:32
Рейтинг@Mail.ru


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