|
|
  |
Повышаем скорость работы с inout шиной, как это сделать? |
|
|
|
Dec 25 2012, 05:49
|

Гуру
     
Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359

|
Имеется память SSRAM. Написал для нее контроллер. Прописал констрейны следующего вида: Код create_generated_clock -name ssram_clk_pin -source $ssram_clk_phy [get_ports {SSRAM_CLK}]
set tAC 3.4 set tOH 1.3
set tCM_Hold -0.4 set tCM_Setup 1.4
set tD_Hold -0.4 set tD_Setup 1.4
set tA_Hold -0.4 set tA_Setup 1.4 set_input_delay -clock [get_clocks {ssram_clk_pin}] -max $tAC [get_ports {SSRAM_DQ[*]}] set_input_delay -clock [get_clocks {ssram_clk_pin}] -min $tOH [get_ports {SSRAM_DQ[*]}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tD_Setup [get_ports {SSRAM_DQ[*]}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tD_Hold [get_ports {SSRAM_DQ[*]}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tA_Setup [get_ports {SSRAM_A[*]}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tA_Hold [get_ports {SSRAM_A[*]}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tCM_Setup [get_ports {SSRAM_OEn}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tCM_Hold [get_ports {SSRAM_OEn}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tCM_Setup [get_ports {SSRAM_CE1n}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tCM_Hold [get_ports {SSRAM_CE1n}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tCM_Setup [get_ports {SSRAM_BWEn}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tCM_Hold [get_ports {SSRAM_BWEn}] -add_delay
set_output_delay -clock [get_clocks {ssram_clk_pin}] -max $tCM_Setup [get_ports {SSRAM_ADSPn}] set_output_delay -clock [get_clocks {ssram_clk_pin}] -min $tCM_Hold [get_ports {SSRAM_ADSPn}] -add_delay Таймквест дает Fmax 170МГц (да и 200 тоже позволяет). Однако шина SSRAM_DQ не проходит по setup: Код SSRAM_DQ[14] - qsys1:qsys1_inst|altera_avalon_mm_clock_crossing_bridge:mm_clock_crossing_bridge_1|altera_avalon_dc_fifo:rsp_fifo|altsyncram:mem_rtl_0|altsyncram_60d1:auto_generated|ram_block1a0~porta_datain_reg0
SSRAM_DQ[14] - sld_signaltap:auto_signaltap_0|acq_trigger_in_reg[31]
.................... ну и так со всеми сигналами DQ. Это что, фазу надо крутить как для SDRAM?
--------------------
Быть. torizin-liteha@yandex.ru
|
|
|
|
|
Dec 25 2012, 10:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(torik @ Dec 25 2012, 11:23)  Подкрутил фазу, получилось -3.1 нс, но все равно даже на 150 МГц уже ругается на setup по шинам адреса и прочим кроме данных. А можете выложить пример контроллера памяти от кита (и наименование мукрухи памяти для сравнения), и если возможно, описание констриков? Я бы не сильно парился с такими частотами, но у сайпраса, как водится, ложка говнеца имеется - на запись с произвольным доступом требуется 2 такта. Вечером найду, выложу. Но там SSRAM на частоте 100МГц запущена, чип is61lps25636A-200tqli
|
|
|
|
|
Dec 25 2012, 17:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(torik @ Dec 25 2012, 14:27)  Заметил у сайпраса режим записи, чтоб за один такт. Но максимальная частота, которой я достиг - 120 МГц. (на 150 Мгц оно работает, но таймквест уже ругается, так что нафиг).
Не знаю, есть ли какие-то способы повышения рабочей частоты в этом случае? Ну так а смысл в 20-30-40% повышать частоту? Если уж не успевает, то такое повышение если и спасет, то запаса совсем не останется. Или разрядность повышать (хотя и так уже 32) или несколько паметей ставить и распределить под разные задачи, чтоб работали по разным шинам. Кстати, обещанный проект:
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|