Перейти к содержанию
    

EDK9.2 - CY7C1380D(SSRAM)

Дело в том, что этот модуль ЕМС1.0в помоему не очень подходит под этот SSRAM, но тем не мение на одном из бордов (виртекс4) он нормально работал с почти анологичной SSRAM кипарисов но только она была без АДСП И АДСЦ и на 1 мб, а эта на 2!

 

Проблема в следующем есть микросхема CY7C1380D, есть ЕДК9.2, ЕМС1.0в, надо только это все связать!!

 

На сайте кипарисов я нашел ман позваляющий убрать все сигналы управления до минимума!!Оставив только ОЕ и 4 BWE так как DQ 32-х разрядная, остольные заводятся на соответствующие разрешающие уровни!!

 

Но ничего не выходит!!

 

Еще вопрос шина адреса для меня немного странновата!Тоесть есть 3 различия между адресами(приведено на рисунке) A0, A1, A(2 to 18) я немного не понял этого решения!!Как сдесь задать адрес и как его задать в ЕДК??

 

Так что вот такие у меня проблемы!!

 

Подскажите если есть какие нибудь соображения!!

 

Спасибо зарание!

post-39822-1219838970_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используем CY7C1471V25 (Flow-Through), проблем не обнаружено.

С адресацией все просто: важны лишь 0 и 1 биты, а остальные назначаете сами. Если вам поможет, вот его mhs-описание из моего проекта ():

 

PORT SRAM_0_DQ_pin = SRAM_0_DQ, DIR = IO, VEC = [0:31]

PORT SRAM_0_A_pin = SRAM_0_A, DIR = O, VEC = [0:31] # вывожу все адреса, цепляю только нужные

PORT SRAM_0_BEN_pin = SRAM_0_BEN, DIR = O, VEC = [0:3]

PORT SRAM_0_WEN_pin = SRAM_0_WEN, DIR = O

PORT SRAM_0_OEN_pin = SRAM_0_OEN, DIR = O, VEC = [0:0]

PORT SRAM_0_ADVLD_pin = SRAM_0_ADVLD, DIR = O

PORT SRAM_0_MODE_pin = SRAM_0_MODE, DIR = O

PORT SRAM_0_ZZ_pin = net_gnd, DIR = O

PORT SRAM_0_CE_pin = net_gnd, DIR = O

PORT SRAM_0_CEN_pin = net_vcc, DIR = O

PORT SRAM_0_CLK_pin = SRAM_0_clock, DIR = O

PORT SRAM_0_CLK_FB = SRAM_0_clk_FB, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000

 

BEGIN opb_emc

PARAMETER INSTANCE = sram_0

PARAMETER HW_VER = 2.00.a

PARAMETER C_MAX_MEM_WIDTH = 32

PARAMETER C_MEM0_WIDTH = 32

PARAMETER C_NUM_BANKS_MEM = 1

PARAMETER C_SYNCH_MEM_0 = 1

PARAMETER C_OPB_CLK_PERIOD_PS = 10000

PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0

PARAMETER C_TCEDV_PS_MEM_0 = 0

PARAMETER C_TAVDV_PS_MEM_0 = 0

PARAMETER C_TWC_PS_MEM_0 = 0

PARAMETER C_TWP_PS_MEM_0 = 0

PARAMETER C_THZCE_PS_MEM_0 = 0

PARAMETER C_THZOE_PS_MEM_0 = 0

PARAMETER C_TLZWE_PS_MEM_0 = 0

PARAMETER C_SYNCH_PIPEDELAY_0 = 1

PARAMETER C_MEM0_BASEADDR = 0x40800000

PARAMETER C_MEM0_HIGHADDR = 0x40ffffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT Mem_DQ = SRAM_0_DQ

PORT Mem_A = SRAM_0_A

PORT Mem_BEN = SRAM_0_BEN

PORT Mem_WEN = SRAM_0_WEN

PORT Mem_OEN = SRAM_0_OEN

PORT Mem_ADV_LDN = SRAM_0_ADVLD

PORT Mem_LBON = SRAM_0_MODE

END

 

Удачи!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Я тоже использую ssram от кипарисов. Вот только у меня есть проблема: чтобы что-то записать или считать из памяти в режиме Single beat(read/write), сигналы ADSP и GW нужно держать не по одному такту синхросигнала, а по два (в противном случае, из памяти считываются рандомные числа). В чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клок у меня берется с CLKDLL, при этом он сдивнут по фазе на 180 градусов относительно системного клока.(и управляющих сигналов АДСП, ГВ, ОЕ ибо по даташиту там необходима задержка). Работал на частоте 166 мегагерца. Провел опыт - снизил частоту до 100 - теперь записывает за 1 такт. Видимо нужно точно по даташиту выдерживать все тайминги с ГВ, ОЕ, АДСП вплоть до 0,5 наносекунды, иначе на большой частоте ничего не выйдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клок у меня берется с CLKDLL, при этом он сдивнут по фазе на 180 градусов относительно системного клока.(и управляющих сигналов АДСП, ГВ, ОЕ ибо по даташиту там необходима задержка).

 

Насколько я помню рекомендации xilinx инверсия клока на PLL это порочная практика. Нужно разворачивать именно тот клок, на котором у вас работает контроллер. Но разворачивать по уму через DDR регистр. В противном случае пути клока и его инверсии могут сильно разойтись, тогда нужно констрейнить перекос между ними.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используем CY7C1471V25 (Flow-Through), проблем не обнаружено.

С адресацией все просто: важны лишь 0 и 1 биты, а остальные назначаете сами. Если вам поможет, вот его mhs-описание из моего проекта ():

 

PORT SRAM_0_DQ_pin = SRAM_0_DQ, DIR = IO, VEC = [0:31]

PORT SRAM_0_A_pin = SRAM_0_A, DIR = O, VEC = [0:31] # вывожу все адреса, цепляю только нужные

PORT SRAM_0_BEN_pin = SRAM_0_BEN, DIR = O, VEC = [0:3]

PORT SRAM_0_WEN_pin = SRAM_0_WEN, DIR = O

PORT SRAM_0_OEN_pin = SRAM_0_OEN, DIR = O, VEC = [0:0]

PORT SRAM_0_ADVLD_pin = SRAM_0_ADVLD, DIR = O

PORT SRAM_0_MODE_pin = SRAM_0_MODE, DIR = O

PORT SRAM_0_ZZ_pin = net_gnd, DIR = O

PORT SRAM_0_CE_pin = net_gnd, DIR = O

PORT SRAM_0_CEN_pin = net_vcc, DIR = O

PORT SRAM_0_CLK_pin = SRAM_0_clock, DIR = O

PORT SRAM_0_CLK_FB = SRAM_0_clk_FB, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000

 

BEGIN opb_emc

PARAMETER INSTANCE = sram_0

PARAMETER HW_VER = 2.00.a

PARAMETER C_MAX_MEM_WIDTH = 32

PARAMETER C_MEM0_WIDTH = 32

PARAMETER C_NUM_BANKS_MEM = 1

PARAMETER C_SYNCH_MEM_0 = 1

PARAMETER C_OPB_CLK_PERIOD_PS = 10000

PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0

PARAMETER C_TCEDV_PS_MEM_0 = 0

PARAMETER C_TAVDV_PS_MEM_0 = 0

PARAMETER C_TWC_PS_MEM_0 = 0

PARAMETER C_TWP_PS_MEM_0 = 0

PARAMETER C_THZCE_PS_MEM_0 = 0

PARAMETER C_THZOE_PS_MEM_0 = 0

PARAMETER C_TLZWE_PS_MEM_0 = 0

PARAMETER C_SYNCH_PIPEDELAY_0 = 1

PARAMETER C_MEM0_BASEADDR = 0x40800000

PARAMETER C_MEM0_HIGHADDR = 0x40ffffff

BUS_INTERFACE SOPB = mb_opb

PORT OPB_Clk = sys_clk_s

PORT Mem_DQ = SRAM_0_DQ

PORT Mem_A = SRAM_0_A

PORT Mem_BEN = SRAM_0_BEN

PORT Mem_WEN = SRAM_0_WEN

PORT Mem_OEN = SRAM_0_OEN

PORT Mem_ADV_LDN = SRAM_0_ADVLD

PORT Mem_LBON = SRAM_0_MODE

END

 

Удачи!!!

 

 

А где сдесь тайминги?? Ведь насколько я поня без них никак?? Для своей CY7Y1380D я нашел тайминги на частоту 250, 200 и 167 МГц в даташите, но микроб не потянет даж на сотне помоему с объемной переферией темболие кварц у меня 50МГц!! Так как же мне быть?? Я подогнал 2 тайминга на глазок проходит 2 теста 32- и 16-битные!! 8-битный не проходит!! Мб у кого нибудь есть тайминги на 75Мгц или ктонибудь знает где их достать??Буду оч благодарен!! А клок я использую системный sys_clk_s просто вывожу его внешним портом на ногу СРАМ без всяких ДЦМ с обратной связью! Это правильно??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где сдесь тайминги??

Что вы понимаете под словом "тайминги"? я вам привел лишь пример описания аппаратной части.

Для своей CY7Y1380D я нашел тайминги на частоту 250, 200 и 167 МГц в даташите, но микроб не потянет даж на сотне помоему с объемной переферией темболие кварц у меня 50МГц!! Так как же мне быть??

Еще как тянет...

Я подогнал 2 тайминга на глазок проходит 2 теста 32- и 16-битные!!

И как же вы подогнали? Оч.интересно узнать!

А клок я использую системный sys_clk_s просто вывожу его внешним портом на ногу СРАМ без всяких ДЦМ с обратной связью! Это правильно??

Можно и так (это если на низких частотах, т.к. память успевает), но лучше всего использовать feedback или же инверсный клок. А sys_clk_s у вас какой? Если 75 МГц, то должно работать как часики ;-) Если у вас не проходит 8-битный тест, то скорее всего у вас ошибка в адресации или перепутаны BE и Data.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

PARAMETER C_TCEDV_PS_MEM_0 = 0

PARAMETER C_TAVDV_PS_MEM_0 = 0

PARAMETER C_TWC_PS_MEM_0 = 0

PARAMETER C_TWP_PS_MEM_0 = 0

PARAMETER C_THZCE_PS_MEM_0 = 0

PARAMETER C_THZOE_PS_MEM_0 = 0

PARAMETER C_TLZWE_PS_MEM_0 = 0

 

 

Вот что я понимаю под таймингами

 

Я подогнал 2 тайминга на глазок проходит 2 теста 32- и 16-битные!!

 

И как же вы подогнали? Оч.интересно узнать!

 

Подогнал посмотрев на диограмму на осцилограффе!

 

А у вас какая частота и какие тайминги и какая плис????

 

Кстати я так понял в синхронном режиме

PARAMETER C_SYNCH_MEM_0 = 1

тайминги ваобще прописовать не надо так как там есть два режима

PARAMETER C_SYNCH_PIPEDELAY_0 = 1

и

PARAMETER C_SYNCH_PIPEDELAY_0 = 2

со стандартными таймингами или я что то не понял??

 

Я сейчас работаю в асинхронном!!

 

А клок я использую системный sys_clk_s просто вывожу его внешним портом на ногу СРАМ без всяких ДЦМ с обратной связью! Это правильно??

 

Можно и так (это если на низких частотах, т.к. память успевает), но лучше всего использовать feedback или же инверсный клок. А sys_clk_s у вас какой? Если 75 МГц, то должно работать как часики ;-) Если у вас не проходит 8-битный тест, то скорее всего у вас ошибка в адресации или перепутаны BE и Data.

 

ТОесть клок который я подаю на срам ядолжен сдвигать на 180 град относительно sys_clk_s??

 

А с 8-ми битным тестом седня разабрался БВЕ 3 и 4 банков перепутал!!

 

А feedback насколько я понял должна помимо микроба быть реализована еще и физически на плате!!1 ДЦМ тут помоему не поможет??Или яне прав??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у вас какая частота и какие тайминги и какая плис????

плис Virtex-4LX80, тайминги мои уже были приведены выше. Работаю на 100 МГц (и МВ и контроллер).

есть клок который я подаю на срам ядолжен сдвигать на 180 град относительно sys_clk_s??

Я поступаю именно так.

А feedback насколько я понял должна помимо микроба быть реализована еще и физически на плате!!1 ДЦМ тут помоему не поможет??Или яне прав??

Да. Вы правы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ясно!Спасибо!Буд пробовать!А насчет синхронной опции вы пользуетесь ей так же как показано в примере??ТОесть синхронная=1 и режим=1?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...