Привет всем!
Никак не могу найти причину: SDRAM (K4M641633K) + Spartan 3E, SDRAM работает на 48МГц, при переводе на 96МГц начинается непонятка:
>mwr 0x10000000 0xDEADBEEF
>mrd 0x10000000 4
10000000 00 00 DE AD
10000004 BE EF
Похоже что параметры настройки контролера неправильные.
BEGIN opb_sdram
PARAMETER INSTANCE = opb_sdram_0
PARAMETER HW_VER = 1.00.e
PARAMETER C_SDRAM_DWIDTH = 16
# ?
PARAMETER C_SDRAM_TMRD = 2
# ?
PARAMETER C_SDRAM_TWR = 15000
# G7
PARAMETER C_SDRAM_TCCD = 1
# G8
PARAMETER C_SDRAM_TRAS = 46000
# G9
PARAMETER C_SDRAM_TRC = 66000
# G11
PARAMETER C_SDRAM_TRCD = 21000
# G12
PARAMETER C_SDRAM_TRRD = 16000
# G13
PARAMETER C_SDRAM_TRP = 21000
PARAMETER C_SDRAM_TRFC = 75000
PARAMETER C_SDRAM_TREF = 64
# PARAMETER C_SDRAM_REFRESH_NUMROWS = 8192
PARAMETER C_SDRAM_REFRESH_NUMROWS = 4096
PARAMETER C_SDRAM_CAS_LAT = 2
PARAMETER C_SDRAM_COL_AWIDTH = 8
PARAMETER C_SDRAM_BANK_AWIDTH = 2
PARAMETER C_SDRAM_TREFI = 7812500
PARAMETER C_OPB_CLK_PERIOD_PS = 10416
PARAMETER C_BASEADDR = 0x10000000
PARAMETER C_HIGHADDR = 0x107FFFFF
BUS_INTERFACE SOPB = mb_opb
PORT SDRAM_Clk_in = sys_clk_s
PORT SDRAM_Clk = sdram_clk
PORT SDRAM_CKE = sdram_cke
PORT SDRAM_CSn = sdram_cs_n
PORT SDRAM_CASn = sdram_cas_n
PORT SDRAM_WEn = sdram_we_n
PORT SDRAM_DQM = sdram_dqm
PORT SDRAM_Addr = sdram_addr
PORT SDRAM_BankAddr = sdram_bankaddr
PORT SDRAM_RASn = sdram_ras_n
PORT SDRAM_DQ = sdram_dq
END
Какой из них может быть причиной такого поведения?
# ? - не нашел в даташите