|
DE0 + sdram |
|
|
|
Oct 15 2010, 12:45
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 13-10-10
Пользователь №: 60 132

|
Пытаюсь задействовать SDRAM на плате Terasic DE0. SOPC билдером построил систему, включил в нее контроллер SDRAM. Возник вопрос как подсчитать сдвиг фазы клоков для SDRAM.На форуме альтеры прочитал что люди для DE2 ставили сдвиг -3 ns, да и в каком-то туториале я это читал. Реализовал его с помощью pll, запустил темплейт из NIOS EDS (binary counter), а он ругается при попытке запуска на желеячке:
Using cable "USB-Blaster [USB 3-1.1]", device 1, instance 0x00 Processor is already paused Reading System ID at address 0x00004008: verified Initializing CPU cache (if present) OK
Downloading 00000000 ( 0%) Downloading 00800000 ( 0%) Downloading 008032B4 (94%) Downloaded 13KB in 0.2s (65.0KB/s)
Verifying 00000000 ( 0%) Verifying 00800000 ( 0%) Verify failed between address 0x800000 and 0x802FA7 Leaving target processor paused
Я так понял что именно на внешнюю память, то есть SDRAM и ругается. А там только один может быть вариант - неправильный сдвиг по фазе между клоками контроллера и самой sdram. В хендбуке я данный раздел не осилил, поэтому очень надеюсь на вашу помощь )
Сообщение отредактировал Evired - Oct 15 2010, 12:47
|
|
|
|
|
 |
Ответов
|
Oct 15 2010, 16:42
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 13-10-10
Пользователь №: 60 132

|
Посмотел входящий в пакет кита проект, там сдвиг -60 degrees. Выставил у себя, все равно не работает. У меня еще одно предположение: шина адреса у моей sdram 13 бит, а у контроллера 12. Я 13 бит шины адреса попросту не назначил, а в работающем проекте сделано так:
module DE0_TOP (
///////////////////// SDRAM Interface //////////////// DRAM_DQ, // SDRAM Data bus 16 Bits DRAM_ADDR, // SDRAM Address bus 13 Bits DRAM_LDQM, // SDRAM Low-byte Data Mask DRAM_UDQM, // SDRAM High-byte Data Mask DRAM_WE_N, // SDRAM Write Enable DRAM_CAS_N, // SDRAM Column Address Strobe DRAM_RAS_N, // SDRAM Row Address Strobe DRAM_CS_N, // SDRAM Chip Select DRAM_BA_0, // SDRAM Bank Address 0 DRAM_BA_1, // SDRAM Bank Address 1 DRAM_CLK, // SDRAM Clock DRAM_CKE, // SDRAM Clock Enable );
/////////////////////// SDRAM Interface //////////////////////// inout [15:0] DRAM_DQ; // SDRAM Data bus 16 Bits output [12:0] DRAM_ADDR; // SDRAM Address bus 13 Bits output DRAM_LDQM; // SDRAM Low-byte Data Mask output DRAM_UDQM; // SDRAM High-byte Data Mask output DRAM_WE_N; // SDRAM Write Enable output DRAM_CAS_N; // SDRAM Column Address Strobe output DRAM_RAS_N; // SDRAM Row Address Strobe output DRAM_CS_N; // SDRAM Chip Select output DRAM_BA_0; // SDRAM Bank Address 0 output DRAM_BA_1; // SDRAM Bank Address 1 output DRAM_CLK; // SDRAM Clock output DRAM_CKE; // SDRAM Clock Enable
//======================================================= // Structural coding //=======================================================
DE0_SOPC DE0_SOPC_inst( // the_sdram .zs_addr_from_the_sdram(DRAM_ADDR), .zs_ba_from_the_sdram({DRAM_BA_1,DRAM_BA_0}), .zs_cas_n_from_the_sdram(DRAM_CAS_N), .zs_cke_from_the_sdram(DRAM_CKE), .zs_cs_n_from_the_sdram(DRAM_CS_N), .zs_dq_to_and_from_the_sdram(DRAM_DQ), .zs_dqm_from_the_sdram({DRAM_UDQM,DRAM_LDQM}), .zs_ras_n_from_the_sdram(DRAM_RAS_N), .zs_we_n_from_the_sdram(DRAM_WE_N),
// the_tristate_bridge_avalon_slave (16-bit mode) .address_to_the_cfi_flash({FL_ADDR, FLASH_16BIT_IP_A0}), .data_to_and_from_the_cfi_flash(FL_DQ), .read_n_to_the_cfi_flash(FL_OE_N), .select_n_to_the_cfi_flash(FL_CE_N), .write_n_to_the_cfi_flash(FL_WE_N), );
endmodule
Так вот я не понимаю как может такое работать: .zs_addr_from_the_sdram(DRAM_ADDR) когда zs_addr_from_the_sdram 12 бит а DRAM_ADDR 13 бит?
Если я заведу на 13 бит шины адреса 0 все будет работать?
|
|
|
|
|
Oct 15 2010, 22:42
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(Evired @ Oct 15 2010, 23:42)  Так вот я не понимаю как может такое работать: .zs_addr_from_the_sdram(DRAM_ADDR) когда zs_addr_from_the_sdram 12 бит а DRAM_ADDR 13 бит? неправильно настроили компонент в билдере? Цитата Если я заведу на 13 бит шины адреса 0 все будет работать? лучше так не делать, а то будет как в фильме "тут помню, тут - не помню.."
|
|
|
|
Сообщений в этой теме
Evired DE0 + sdram Oct 15 2010, 12:45 vadimuzzz чтобы сделать по уму, надо знать тайминги чипа пам... Oct 15 2010, 13:06 Evired Все, проблема решена ) Я как всегда тупанул и подк... Oct 16 2010, 08:35 torik По констрейнам для SDRAM:
Код[quote]set_mu... Oct 20 2010, 07:39 vadimuzzz Цитата(torik @ Oct 20 2010, 14:39) Нет, н... Oct 20 2010, 07:44 torik О, вот еще что заметил!
Кодset_output_delay -... Oct 22 2010, 10:03 vadimuzzz Цитата(torik @ Oct 22 2010, 17:03) О, вот... Oct 22 2010, 11:45 torik всмысле, -$tD_Hold, а не +$tD_Hold Oct 22 2010, 11:36 torik Я пробовал и так и так, констрейны все равно выпол... Oct 22 2010, 12:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|