|
Virtex-5 и DDR-? |
|
|
|
Apr 22 2008, 07:02
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 20-08-07
Пользователь №: 29 908

|
Господа... Использовал ли кто в связке с Vertex-5 динамическую память, что нить типа DDR-2. Какие результаты и как они вообще совместно существуют....? Если поделитесь умными ссылочками или что более актуально опытом, буду очень признателен... Заранее благодарен.... Александр
|
|
|
|
|
 |
Ответов
|
Jan 25 2009, 09:19
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 11-09-08
Пользователь №: 40 123

|
Просто подскажите как вот эту часть ucf-файла передлать для двух контроллеров: Код ############################################################################### # Define multicycle paths - these paths may take longer because additional # time allowed for logic to settle in calibration/initialization FSM ###############################################################################
# MIG 2.1: Eliminate Timegroup definitions for CLK0, and CLK90. Instead trace # multicycle paths from originating flip-flop to ANY destination # flip-flop (or in some cases, it can also be a BRAM) # MUX Select for either rising/falling CLK0 for 2nd stage read capture INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL"; TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO FFS "TS_SYS_CLK" * 4; # MUX select for read data - optional delay on data to account for byte skews INST "*/u_usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX"; TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO FFS "TS_SYS_CLK" * 4; # Calibration/Initialization complete status flag (for PHY logic only) - can # be used to drive both flip-flops and BRAMs INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL"; TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO FFS "TS_SYS_CLK" * 4; TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO RAMS "TS_SYS_CLK" * 4; # Select (address) bits for SRL32 shift registers used in stage3/stage4 # calibration INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY"; TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO FFS "TS_SYS_CLK" * 4; INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY"; TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO FFS "TS_SYS_CLK" * 4; INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly" TNM = "TNM_CAL_RDEN_DLY"; TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO FFS "TS_SYS_CLK" * 4;
############################################################################### # DQS Read Post amble Glitch Squelch circuit related constraints ###############################################################################
############################################################################### # LOC placement of DQS-squelch related IDDR and IDELAY elements # Each circuit can be located at any of the following locations: # 1. Unused "N"-side of DQS differential pair I/O # 2. DM data mask (output only, input side is free for use) # 3. Any output-only site ###############################################################################
INST "*/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X1Y22"; INST "*/gen_dqs[0].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X1Y22"; INST "*/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X1Y20"; INST "*/gen_dqs[1].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X1Y20"; INST "*/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X1Y18"; INST "*/gen_dqs[2].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X1Y18"; INST "*/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X1Y16"; INST "*/gen_dqs[3].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X1Y16"; INST "*/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y182"; INST "*/gen_dqs[4].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y182"; INST "*/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y180"; INST "*/gen_dqs[5].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y180"; INST "*/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y178"; INST "*/gen_dqs[6].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y178"; INST "*/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y176"; INST "*/gen_dqs[7].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y176"; INST "*/gen_dqs[8].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y142"; INST "*/gen_dqs[8].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y142"; INST "*/gen_dqs[9].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y140"; INST "*/gen_dqs[9].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y140"; INST "*/gen_dqs[10].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y138"; INST "*/gen_dqs[10].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y138"; INST "*/gen_dqs[11].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y136"; INST "*/gen_dqs[11].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y136"; INST "*/gen_dqs[12].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X2Y102"; INST "*/gen_dqs[12].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X2Y102"; INST "*/gen_dqs[13].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X2Y100"; INST "*/gen_dqs[13].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X2Y100"; INST "*/gen_dqs[14].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X2Y98"; INST "*/gen_dqs[14].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X2Y98"; INST "*/gen_dqs[15].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X2Y96"; INST "*/gen_dqs[15].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X2Y96";
############################################################################### # LOC and timing constraints for flop driving DQS CE enable signal # from fabric logic. Even though the absolute delay on this path is # calibrated out (when synchronizing this output to DQS), the delay # should still be kept as low as possible to reduce post-calibration # voltage/temp variations - these are roughly proportional to the # absolute delay of the path ###############################################################################
INST "*/u_phy_calib/gen_gate[0].u_en_dqs_ff" LOC = SLICE_X71Y11; INST "*/u_phy_calib/gen_gate[1].u_en_dqs_ff" LOC = SLICE_X71Y10; INST "*/u_phy_calib/gen_gate[2].u_en_dqs_ff" LOC = SLICE_X71Y9; INST "*/u_phy_calib/gen_gate[3].u_en_dqs_ff" LOC = SLICE_X71Y8; INST "*/u_phy_calib/gen_gate[4].u_en_dqs_ff" LOC = SLICE_X0Y91; INST "*/u_phy_calib/gen_gate[5].u_en_dqs_ff" LOC = SLICE_X0Y90; INST "*/u_phy_calib/gen_gate[6].u_en_dqs_ff" LOC = SLICE_X0Y89; INST "*/u_phy_calib/gen_gate[7].u_en_dqs_ff" LOC = SLICE_X0Y88; INST "*/u_phy_calib/gen_gate[8].u_en_dqs_ff" LOC = SLICE_X0Y71; INST "*/u_phy_calib/gen_gate[9].u_en_dqs_ff" LOC = SLICE_X0Y70; INST "*/u_phy_calib/gen_gate[10].u_en_dqs_ff" LOC = SLICE_X0Y69; INST "*/u_phy_calib/gen_gate[11].u_en_dqs_ff" LOC = SLICE_X0Y68; INST "*/u_phy_calib/gen_gate[12].u_en_dqs_ff" LOC = SLICE_X143Y51; INST "*/u_phy_calib/gen_gate[13].u_en_dqs_ff" LOC = SLICE_X143Y50; INST "*/u_phy_calib/gen_gate[14].u_en_dqs_ff" LOC = SLICE_X143Y49; INST "*/u_phy_calib/gen_gate[15].u_en_dqs_ff" LOC = SLICE_X143Y48;
# Control for DQS gate - from fabric flop. Prevent "runaway" delay - # two parts to this path: (1) from fabric flop to IDELAY, (2) from # IDELAY to asynchronous reset of IDDR that drives the DQ CE's NET "*/u_phy_io/en_dqs*" MAXDELAY = 600 ps; NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 800 ps;
############################################################################### # "Half-cycle" path constraint from IDDR to CE pin for all DQ IDDR's # for DQS Read Post amble Glitch Squelch circuit ###############################################################################
# Max delay from output of IDDR to CE input of DQ IDDRs = tRPST + some slack # where slack account for rise-time of DQS on board. For now assume slack = # 0.400ns (based on initial SPICE simulations, assumes use of ODT), so # time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz INST "*/gen_dqs[*].u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR"; INST "*/gen_dq[*].u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS"; TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 1.6 ns;
################################################################################ INST "*/gen_dq[0].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y19; INST "*/gen_dq[1].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y19; INST "*/gen_dq[2].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y18; INST "*/gen_dq[3].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y17; INST "*/gen_dq[4].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y17; INST "*/gen_dq[5].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y16; INST "*/gen_dq[6].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y15; INST "*/gen_dq[7].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y14; INST "*/gen_dq[8].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y14; INST "*/gen_dq[9].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y13; INST "*/gen_dq[10].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y12; INST "*/gen_dq[11].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y12; INST "*/gen_dq[12].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y6; INST "*/gen_dq[13].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y6; INST "*/gen_dq[14].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y4; INST "*/gen_dq[15].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X68Y4; INST "*/gen_dq[16].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y99; INST "*/gen_dq[17].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y99; INST "*/gen_dq[18].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y98; INST "*/gen_dq[19].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y97; INST "*/gen_dq[20].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y97; INST "*/gen_dq[21].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y96; INST "*/gen_dq[22].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y95; INST "*/gen_dq[23].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y94; INST "*/gen_dq[24].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y94; INST "*/gen_dq[25].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y93; INST "*/gen_dq[26].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y92; INST "*/gen_dq[27].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y92; INST "*/gen_dq[28].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y86; INST "*/gen_dq[29].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y86; INST "*/gen_dq[30].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y84; INST "*/gen_dq[31].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y84; INST "*/gen_dq[32].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y79; INST "*/gen_dq[33].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y79; INST "*/gen_dq[34].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y78; INST "*/gen_dq[35].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y77; INST "*/gen_dq[36].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y77; INST "*/gen_dq[37].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y76; INST "*/gen_dq[38].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y75; INST "*/gen_dq[39].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y74; INST "*/gen_dq[40].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y74; INST "*/gen_dq[41].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y73; INST "*/gen_dq[42].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y72; INST "*/gen_dq[43].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y72; INST "*/gen_dq[44].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y66; INST "*/gen_dq[45].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y66; INST "*/gen_dq[46].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y64; INST "*/gen_dq[47].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y64; INST "*/gen_dq[48].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y59; INST "*/gen_dq[49].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y59; INST "*/gen_dq[50].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y58; INST "*/gen_dq[51].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y57; INST "*/gen_dq[52].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y57; INST "*/gen_dq[53].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y56; INST "*/gen_dq[54].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y55; INST "*/gen_dq[55].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y54; INST "*/gen_dq[56].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y54; INST "*/gen_dq[57].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y53; INST "*/gen_dq[58].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y52; INST "*/gen_dq[59].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y52; INST "*/gen_dq[60].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y46; INST "*/gen_dq[61].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y46; INST "*/gen_dq[62].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y44; INST "*/gen_dq[63].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X140Y44;
|
|
|
|
Сообщений в этой теме
GAZE Virtex-5 и DDR-? Apr 22 2008, 07:02 andrew_b Цитата(GAZE @ Apr 22 2008, 10:02) Если по... Apr 22 2008, 09:05 per_aspera_ad_astra Цитата(GAZE @ Apr 22 2008, 11:02) Господа... Apr 23 2008, 06:16 DmitryR Мы сейчас делаем, с чем столкнулись - в XAPP858 ск... Apr 24 2008, 06:49 GAZE Цитата(per_aspera_ad_astra @ Apr 23 2008, 10... Apr 25 2008, 07:45  DmitryR Цитата(GAZE @ Apr 25 2008, 11:45) Я прост... Apr 25 2008, 09:55 GAZE всем спасибо за советы...
будем, как говорится,... Apr 28 2008, 12:54 kst Задам ка в этой теме вопросик...
Есть такая идея:... Apr 30 2008, 16:21 DmitryR Цитата(kst @ Apr 30 2008, 20:21) Есть так... May 3 2008, 07:57  kst Звучит оптимистично, это здорово
DIMMы использов... May 4 2008, 08:45   DmitryR Цитата(kst @ May 4 2008, 12:45) Возникает... May 4 2008, 10:21 NahaL Здравствуйте.
Использовал разъёмы DIMM DDR2. Тряск... May 21 2008, 07:54 DmitryR Цитата(NahaL @ May 21 2008, 11:54) Меня и... May 21 2008, 09:39  NahaL Цитата(DmitryR @ May 21 2008, 15:39) Путе... Jun 6 2008, 04:46   DmitryR Вообще-то, так как планки у вас будут включены пар... Jun 6 2008, 08:57 jojo По поводу назначения выводов в MIG для Xilinx Virt... Jan 16 2009, 08:46 nachinayuschiy У меня вопрос: для проекта необходимо две независи... Jan 24 2009, 21:51 SFx ЦитатаПросто подскажите как вот эту часть ucf-файл... Jan 25 2009, 12:36 nachinayuschiy У меня вопрос сможет ли virtex-4 работать с 512MB ... Jan 25 2009, 13:17 DmitryR Сможет, но пятый сможет это лучше. Jan 26 2009, 08:54 nachinayuschiy А данный контроллер памяти использует Distributed ... Jan 27 2009, 10:32 Kuzmi4 Имею Virtex5 и DDR2, использую MIG v3.1 (ISE v11.2... Aug 28 2009, 13:51 DmitryR Все очень просто: счетчик адреса квадрослова отдел... Aug 28 2009, 16:37 Kuzmi4 2 DmitryR - то есть получается что это эдакая фича... Aug 28 2009, 17:21 DmitryR Кроме как используя маску вы не сможете это сделат... Aug 28 2009, 17:34 des00 Цитата(Kuzmi4 @ Aug 28 2009, 11:21) 2 Dmi... Aug 31 2009, 03:22 Kuzmi4 2 DmitryR - на счёт кеша это понятно, а дма не все... Aug 28 2009, 17:40 DmitryR Цитата(Kuzmi4 @ Aug 28 2009, 21:40) И всё... Aug 29 2009, 05:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|