Лагатып Xilinx

Кіраўніцтва па ацэнцы прадукцыйнасці Xilinx DDR2 MIG 7

Xilinx_DDR2_MIG_7_Performance-Estimation-product

Важная заўвага: Гэты запіс у фармаце PDF, які можна загрузіць, прызначаны для павышэння зручнасці выкарыстання і чытання. Важна адзначыць, што запісы адказаў ёсць Web-кантэнт, які часта абнаўляецца па меры з'яўлення новай інфармацыі. Нагадваем вам наведаць службу тэхнічнай падтрымкі Xilinx Webсайт і паўторнаview (Xilinx Answer 63234) для апошняй версіі гэтага адказу.

Уводзіны

З-за архітэктуры памяці DDR2 і DDR3 і канструкцыі кантролера серыі MIG 7 прадукцыйнасць не простая.
Гэта патрабуе разумення розных параметраў Jedec Timing і архітэктуры кантролера, і вам трэба будзе запусціць мадэляванне, каб атрымаць ацэнкі.
Агульны прынцып вызначэння прадукцыйнасці той самы, але гэты дакумент дае просты спосаб атрымаць эфектыўнасць з дапамогай MIG example праектаванне з дапамогай выпрабавальнага стэнда і стымул fileпрыкладаецца тут.

Эфектыўная прапускная здольнасць

Шына дадзеных DRAM дасягае амаль пікавай прапускной здольнасці толькі падчас парываў чытання і запісу, а яе накладныя выдаткі зніжаюць эфектыўную хуткасць перадачы дадзеных.
Некалькі эксampнакладныя выдаткі:

  • час папярэдняй зарадкі доступу да радкоў у тым жа банку (адрас доступу не ў тым жа радку - хіт старонкі)
  • час аднаўлення запісу, каб змяніць доступ з запісу на чытанне
  • час абарачэння шыны для пераходу з доступу для чытання на запіс

Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.28
Эфектыўная прапускная здольнасць = Пікавая прапускная здольнасць * Эфектыўнасць 

MIG Design Generation

Звярніцеся да раздзела 586 UG1 для атрымання падрабязнай інфармацыі аб MIG IP і exampпакаленне дызайну.
Перш чым запусціць мадэляванне прадукцыйнасці MIG 7 серыі, зрабіце наступнае, каб пераканацца, што ваша асяроддзе мадэлявання ў парадку. Адкрыйце MIG example распрацаваць і адлюстраваць адпаведныя бібліятэкі, запусціць мадэляванне і пераканацца, што вы бачыце паведамленне «тэст пройдзены» ў стэнаграме.
Каб прадэманстраваць паток, я стварыў MIG IP для xc7vx690tffg1761-2 і выклікаў exampдызайн.
Дзве рэчы, якія варта адзначыць, - гэта біты адрасоў памяці і выбар адлюстравання адрасоў памяці.
Напрыкладample, я выбраў MT41J128M8XX-125 у раздзеле памяці, які расчыняецца.Xilinx DDR2 MIG-7-Performance-Estimation-fig-1

Для абранай часткі памяці з малюнка 1 радок = 14, слупок = 10 і банк = 3, таму app_addr_width = радок + слупок + банк + ранг = 28 Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.2

Вы можаце выбраць слупок BANK_ROW_COLUMN або ROW BANK.
Я пакінуў слупок ROW BANK, які з'яўляецца адлюстраваннем адрасоў па змаўчанні.

Example Design Simulation з сінтэзаваным выпрабавальным стэндам

У наладах Simulation выберыце QuestaSim/ModelSim Simulator і перайдзіце да месцазнаходжання скампіляваных бібліятэк.
Каб атрымаць падрабязную інфармацыю аб указанні шляхоў усталёўкі старонніх інструментаў, выбары мэтавага сімулятара і кампіляцыі і супастаўленні бібліятэк, вы можаце звярнуцца да (UG900) Vivado Design Suite Кіраўніцтва карыстальніка Лагічнае мадэляваннеАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.3

Запусціце мадэляванне праз графічны інтэрфейс (пстрыкніце ўкладку "Запусціць мадэляванне" ў дыспетчары праектаў) і пераканайцеся, што вы бачыце паведамленне "тэст пройдзены" ў стэнаграме.

Мадэляванне прадукцыйнасці RTL

  1. Пстрыкніце правай кнопкай мышы ўкладку крыніц, выберыце «дадаць або стварыць крыніцы мадэлявання» і перайдзіце да mig7_perfsim_traffic_generator.sv file і націсніце скончыць, каб дадаць яго.
  2. Пстрыкніце правай кнопкай мышы ўкладку крыніц, выберыце «дадаць або стварыць крыніцы мадэлявання», перайдзіце да perfsim_stimulus.txt і націсніце «Готова», каб дадаць яго.
  3. Пракаменціруйце эксampасобнік le_top у sim_tb_top.v file.
  4. Дадайце прыведзеныя ніжэй радкі RTL у sim_tb_top,v
  • лакальны параметр APP_ADDR_WIDTH = 28;
  • лакальны параметр APP_DATA_WIDTH = 64;
  • лакальны параметр APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
  • localparam MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
  • лакальны параметр BANK_WIDTH = 3;
  • лакальны параметр RANK_WIDTH = 1;
  • провад [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
  • провад [2:0] c0_ddr3_app_cmd;
  • провад c0_ddr3_app_en;
  • провад [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
  • провад c0_ddr3_app_wdf_end;
  • провад [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
  • провад c0_ddr3_app_wdf_wren;
  • провад [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
  • провад c0_ddr3_app_rd_data_end;
  • провад c0_ddr3_app_rd_data_valid;
  • провад c0_ddr3_app_rdy;
  • провад c0_ddr3_app_wdf_rdy;
  • провад c0_data_compare_error;
  • провад ui_clk;
  • провад ui_clk_sync_rst;
  • провад app_sr_req = 0;
  • провад app_ref_req = 0;
  • провад app_zq_req =0;
  • провад c0_app_wdf_mask =0;

Стварэнне асобніка кантролера памяці FPGA

mig_7series_0_mig u_mig_7series_0_mig (
// Парты інтэрфейсу памяці

  • .ddr3_addr (ddr3_addr_fpga),
  • .ddr3_ba (ddr3_ba_fpga),
  • .ddr3_cas_n (ddr3_cas_n_fpga),
  • .ddr3_ck_n (ddr3_ck_n_fpga),
  • .ddr3_ck_p (ddr3_ck_p_fpga),
  • .ddr3_cke (ddr3_cke_fpga),
  • .ddr3_ras_n (ddr3_ras_n_fpga),
  • .ddr3_reset_n (ddr3_reset_n),
  • .ddr3_we_n (ddr3_we_n_fpga),
  • .ddr3_dq (ddr3_dq_fpga),
  • .ddr3_dqs_n (ddr3_dqs_n_fpga),
  • .ddr3_dqs_p (ddr3_dqs_p_fpga),
  • .init_calib_complete (init_calib_complete),
  • .ddr3_cs_n (ddr3_cs_n_fpga),
  • .ddr3_dm (ddr3_dm_fpga),
  • .ddr3_odt (ddr3_odt_fpga),

// Парты інтэрфейсу прыкладання

  • .app_addr (c0_ddr3_app_addr),
  • .app_cmd (c0_ddr3_app_cmd),
  • .app_en (c0_ddr3_app_en),
  • .app_wdf_data (c0_ddr3_app_wdf_data),
  • .app_wdf_end (c0_ddr3_app_wdf_end),
  • .app_wdf_wren (c0_ddr3_app_wdf_wren),
  • .app_rd_data (c0_ddr3_app_rd_data),
  • .app_rd_data_end (app_rd_data_end),
  • .app_rd_data_valid (c0_ddr3_app_rd_data_valid),
  • .app_rdy (c0_ddr3_app_rdy),
  • .app_wdf_rdy (c0_ddr3_app_wdf_rdy),
  • .app_sr_req (app_sr_req),
  • .app_ref_req (app_ref_req),
  • .app_zq_req (app_zq_req),
  • .app_sr_active (app_sr_active),
  • .app_ref_ack (app_ref_ack),
  • .app_zq_ack (app_zq_ack),
  • .ui_clk (ui_clk),
  • .ui_clk_sync_rst (ui_clk_sync_rst),
  • .app_wdf_mask (c0_ddr3_app_wdf_mask),

// Парты сістэмнага гадзінніка

  • .sys_clk_i (sys_clk_i),

// Апорныя тактавыя парты

  • .clk_ref_i (clk_ref_i),
  • .sys_rst (sys_rst)
  • );

Стварэнне асобніка генератара прадукцыйнасці трафіку

mig7_perfsim_traffic_generator#
(
.APP_DATA_WIDTH (APP_DATA_WIDTH),
.COL_WIDTH (COL_WIDTH),
.ROW_WIDTH (ROW_WIDTH),
.RANK_WIDTH (RANK_WIDTH),
.BANK_WIDTH (BANK_WIDTH),
.MEM_ADDR_ORDER (MEM_ADDR_ORDER),
.tCK (tCK ),
.ADDR_WIDTH (APP_ADDR_WIDTH)
)

u_traffic_gen
(
.clk (ui_clk),
.rst (ui_clk_sync_rst),
.init_calib_complete (init_calib_complete),
.cmp_error (c0_data_compare_error),
.app_wdf_rdy (c0_ddr3_app_wdf_rdy),
.app_rd_data_valid (c0_ddr3_app_rd_data_valid),
.app_rd_data (c0_ddr3_app_rd_data),
.app_rdy (c0_ddr3_app_rdy),
.app_cmd (c0_ddr3_app_cmd),
.app_addr (c0_ddr3_app_addr ),
.app_en (c0_ddr3_app_en ),
.app_wdf_mask (c0_ddr3_app_wdf_mask),
.app_wdf_data (c0_ddr3_app_wdf_data),
.app_wdf_end (c0_ddr3_app_wdf_end),
.app_wdf_wren (c0_ddr3_app_wdf_wren)
);

  • 5. Змяніце APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH і BANK_WIDTH у адпаведнасці з выбарам часткі памяці.
    Значэнні можна атрымаць з _міг.в file.
  • Выдзеленая жоўтым колерам назва экзэмпляра mig_7series_0_mig можа змяняцца ў залежнасці ад імя вашага кампанента падчас стварэння IP. Праверце, ці выбралі вы іншае імя, і змяніце яго адпаведна.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.4
  • Пасля стварэння IP адкрыйце _міг.в file і перакрыжаваная праверка на наяўнасць варыяцый у назвах сігналаў LHS і выпраўленне іх.
  • app_sr_req, app_ref_req і app_zq_req павінны быць ініцыялізаваны значэннем 0.
  • Як былample_top.v закаментаваны і новы files дададзены, вы, верагодна, ўбачыце «?» побач з
    mig_7series_0_mig.v file пад крыніцамі мадэлявання.
    Для адлюстравання правільна file, пстрыкніце правай кнопкай мышы mig_7series_0_mig.v, выберыце «Дадаць крыніцы», перайдзіце да
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    і дадаць mig_7series_0_mig_sim.v file.
  • Калі вы бачыце "?" для асноўнага files, дадайце ўсе RTL files у тэчках тактавання, кантролера, ip_top, phy і UI.
  • Пасля таго, як змены RTL зроблены і ўсё неабходнае fileдадаюцца да вашых крыніц мадэлявання, іерархія павінна быць падобнай на малюнак 5.
    The fileВыдзеленыя чырвоным з'яўляюцца нядаўна дададзенымі, а «?» чакаецца на модулях, звязаных з ECC, паколькі ў выбранай канфігурацыі памяці опцыя ECC адключана.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.5

Стымул File Апісанне
Кожны шаблон стымулу складаецца з 48 біт, а фармат апісаны на малюнках 6-1 - 6-4.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.6

Кадзіроўка адраса (Адрас [35:0])

Адрас закадаваны ў стымуле ў адпаведнасці з малюнкамі 7-1 - 7-6. Усе палі адрасоў трэба ўводзіць у шаснаццатковым фармаце. Усе палі адрасоў маюць шырыню, якая дзеліцца на чатыры для ўводу ў шаснаццатковым фармаце. Тэставы стэнд адпраўляе ў кантролер памяці толькі неабходныя біты адраснага поля.
Напрыкладampнапрыклад, у канфігурацыі з васьмю банкамі ў кантролер памяці адпраўляюцца толькі банкаўскія біты [2:0], а астатнія біты ігнаруюцца. Дадатковыя біты для поля адраса прызначаны для ўводу адраса ў шаснаццатковым фармаце.
Вы павінны пацвердзіць, што ўведзенае значэнне адпавядае шырыні дадзенай канфігурацыі.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.7

  • Адрас слупка (Слупок[11:0]) – Адрас слупка ў стымуле змяшчае максімум 12 біт, але вам трэба вырашыць гэта на аснове параметра шырыні слупка, зададзенага ў вашым дызайне.
  • Адрас радка (радок[15:0]) – Адрас радка ў стымуле забяспечваецца максімум 16 бітамі, але вам трэба вырашыць гэта на аснове параметра шырыні радка, зададзенага ў вашым дызайне.
  • Адрас банка (Банк[3:0]) – Адрас банка ў стымуле змяшчаецца не больш за чатыры біта, але вы павінны вырашыць гэта на аснове параметра шырыні банка, зададзенага ў вашым распрацоўцы.
  • Адрас рэйтынгу (Ранг[3:0]) – Адрас рангу ў стымуле змяшчаецца максімум у чатыры біта, але вы павінны вырашыць гэта на аснове параметра шырыні рангу, зададзенага ў вашым дызайне.
    Адрас збіраецца на аснове параметра MEM_ADDR_ORDER верхняга ўзроўню і адпраўляецца ў карыстацкі інтэрфейс

Паўтарэнне каманды (Паўтарэнне каманды [7:0])
Колькасць паўтораў каманды - гэта колькасць разоў, калі адпаведная каманда паўтараецца ў карыстальніцкім інтэрфейсе. Адрас для кожнага паўтору павялічваецца на 8. Максімальная колькасць паўтораў - 128.
Тэставы стэнд не правярае межы слупка і абгортваецца, калі падчас прырашчэння дасягаецца максімальны ліміт слупка.
128 каманд запаўняюць старонку. Для любога адраса слупка, акрамя 0, колькасць паўтораў 128 заканчваецца тым, што перасякае мяжу слупка і абгортваецца да пачатку адраса слупка.

Выкарыстанне аўтобуса
Выкарыстанне шыны разлічваецца ў карыстальніцкім інтэрфейсе з улікам агульнай колькасці чытанняў і запісаў і выкарыстоўваецца наступнае ўраўненне:

Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.8

  • BL8 патрабуе чатырох тактаў памяці
  • end_of_stimulus - час выканання ўсіх каманд.
  • calib_done - час выканання каліброўкі.

Example Patterns
Гэтыя эксampфайлы заснаваныя на MEM_ADDR_ORDER, усталяваным у BANK_ROW_COLUMN.

Адзінкавы шаблон чытання
00_0_2_000F_00A_1 – Гэты ўзор уяўляе сабой адно чытанне з 10-га слупка, 15-га радка і другога банка.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.9Адзінкавы шаблон запісу
00_0_1_0040_010_0 – Гэты ўзор уяўляе сабой адну запіс у 32-гі слупок, 128-ы радок і першы банк.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.10Адзіны запіс і чытанне на адзін адрас
00_0_2_000F_00A_0 – Гэты шаблон уяўляе сабой адну запіс у 10-ы слупок, 15-ы радок і другі банк.
00_0_2_000F_00A_1 – Гэты ўзор уяўляе сабой адно чытанне з 10-га слупка, 15-га радка і другога банкаАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.11

Некалькі запісаў і чытанняў з адным і тым жа адрасам
0A_0_0_0010_000_0 – Гэта адпавядае 10 запісам з адрасамі ад 0 да 80, якія можна ўбачыць у слупку.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.12

0A_0_0_0010_000_1 – Гэта адпавядае 10 чытанням з адрасам, пачынаючы з 0 да 80, якія можна ўбачыць у слупку.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.13

Перанос старонкі падчас запісу
0A_0_2_000F_3F8_0 – Гэта адпавядае 10 запісам з адрасам слупка, перанесеным у пачатак старонкі пасля адной запісу.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.14

Імітацыя прадукцыйнасці генератара трафіку

На гэтым вы скончылі з MIG exampмадэляванне дызайну. Гэта азначае, што ваша налада мадэлявання гатовая, вы ўнеслі мадыфікацыі RTL мадэлявання прадукцыйнасці, новая іерархія мадэлявання правільная і вы зразумелі шаблоны стымулаў. Запусціце мадэляванне яшчэ раз з 16 запісамі і чытаннямі ў perfsim_stimulus.txt.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.15

Выканайце запуск усіх, пачакайце, пакуль не будзе зацверджаны сігнал init_calib_complete, і вы зможаце ўбачыць прапанаваную колькасць запісаў і чытанняў. Затым мадэляванне спыніцца. Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.16

Калі вам будзе прапанавана выйсці з мадэлявання, выберыце «Не» і перайдзіце ў акно стэнаграмы, дзе вы зможаце ўбачыць статыстыку прадукцыйнасці. Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.17

Калі вы вылучыце «выйсці з мадэлявання» статыстыка прадукцыйнасці будзе запісана ў a file названы mig_band_width_output.txt знаходзіцца ў sim_1/behave папка.

Exampшлях да каталога: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.18

Вы можаце задацца пытаннем, чаму працэнтtagВыкарыстанне электроннай шыны роўна 29. Паўтарыце мадэляванне з тымі ж параметрамі IP, але толькі змяніўшы стымул file да 256 запісаў і 256 чытанняў

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Цяпер вы ўбачыце працэнтыtage як 85, што азначае, што DDR3 прапануе лепшае выкарыстанне шыны для доўгай паслядоўнасці запісу і чытання парываў. Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.19

Агульныя спосабы павышэння прадукцыйнасці

Фактары, якія ўплываюць на эфектыўнасць, можна падзяліць на два раздзелы:

  1. Спецыфічная памяць
  2. Канкрэтны кантролерАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.20

Малюнак 9 дае вам надview тэрмінаў, якія з'яўляюцца спецыфічнымі для памяці.
У адрозненне ад SRAM і блокавай памяці, прадукцыйнасць DDR2 або DDR3 - гэта не толькі максімальная хуткасць перадачы дадзеных.

Гэта залежыць ад многіх фактараў часу, у тым ліку:

  • tRCD: Затрымка каманды радка (або затрымка ад ras да cas).
  • tCAS(CL): Затрымка строб адраса слупка.
  • tRP: Затрымка папярэдняй зарадкі радка.
  • тРАС: Час актыўнасці радка (актывуйце для папярэдняй змены).
  • tRC: Час цыклу радка. tRC = tRAS + tRP
  • tRAC: Радамская затрымка доступу. tRAC = tRCD + tCAS
  • tCWL: Затрымка запісу Cas.
  • tZQ: Час каліброўкі ZQ.
  • tRFC: Час цыклу абнаўлення радка
  • tWTR: Затрымка запісу для чытання. Час апошняй транзакцыі запісу ў каманду Read.
  • tWR: Напішыце Час аднаўлення. Апошняя транзакцыя запісу ў час папярэдняй зарадкі

Час выканання ўсіх пералічаных параметраў залежыць ад тыпу выкарыстоўванай памяці і ўзроўню хуткасці часткі памяці.
Больш падрабязную інфармацыю аб азначэннях і спецыфікацыях па часе можна знайсці ў DDR2 DDR3 JEDEC або ў табліцы дадзеных любой прылады памяці.

Эфектыўнасць у асноўным залежыць ад спосабу доступу да памяці. Розныя шаблоны адрасоў даюць розныя вынікі эфектыўнасці.

Накладныя выдаткі на час памяці

  1. Час актывацыі і час папярэдняй зарадкі пры пераходзе на новыя банкі/радкі або пры змене радкоў у тым жа банку. - Такім чынам, калі вы зменшыце змяненне радкоў, гэта можа выдаліць tRCD і tRP.
  2. Адпраўляць бесперапынныя каманды запісу або чытання -Падтрыманне часу tCCD.
  3. Мінімізуйце пераключэнне каманд запісу на чытанне і чытання на запіс – час аднаўлення запісу, каб змяніць доступ на чытанне, час абарачэння шыны, каб перайсці з чытання на запіс
  4. Усталюйце правільны інтэрвал абнаўлення.
    • DDR3 SDRAM патрабуе цыклаў абнаўлення з сярэднім перыядычным інтэрвалам tREFI.
    • Максімум 8 дадатковых каманд Refresh можна выдаць загадзя («уцягнуць»). Гэта не памяншае колькасць абнаўленняў, але максімальны інтэрвал паміж дзвюма навакольнымі камандамі Refresh абмежаваны 9 × tREFIАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.21
  • Выкарыстоўвайце ўсе банкі - Пераважней прыдатны механізм адрасавання.
    • Радок-банк-слупок: Для транзакцыі, якая адбываецца ў паслядоўнай адраснай прасторы, ядро ​​аўтаматычна адкрывае той жа радок у наступным банку прылады DRAM, каб працягнуць транзакцыю, калі дасягнуты канец існуючага радка. Ён добра падыходзіць для прыкладанняў, якія патрабуюць разрыву вялікіх пакетаў даных па паслядоўных адрасах.
    • Банк-радок-слупок: Пры перасячэнні мяжы радка бягучы радок будзе зачынены, а іншы радок будзе адкрыты ў тым жа банку. MSB - гэта адрас банка, які можна выкарыстоўваць для пераходу з розных банкаў. Ён падыходзіць для больш кароткіх, больш выпадковых транзакцый з адным блокам памяці на працягу пэўнага перыяду часу, а затым пераходам на іншы блок (банк)
  • Даўжыня разрыву
    • BL 8 падтрымліваецца для DDR3 на 7 серыі. BC4 мае вельмі нізкі ККД, які складае менш за 50%. Гэта таму, што час выканання BC4 такі ж, як і BL8. Дадзеныя проста маскіруюцца ўнутры кампанента.
    • У выпадках, калі вы не жадаеце запісваць поўную серыю, можна разгледзець маску даных або запіс пасля чытання.
  • Усталюйце належны інтэрвал ZQ (толькі DDR3)
    Кантролер адпраўляе каманды каліброўкі ZQ Short (ZQCS) і ZQ Long (ZQCL).
    • Прытрымвайцеся стандарту DDR3 Jedec
    • Каліброўка ZQ абмяркоўваецца ў раздзеле 5.5 стандарту JEDEC Spec JESD79-3 DDR3 SDRAM
    • ZQ Calibration калібруе On Die Termination (ODT) праз рэгулярныя прамежкі часу для ўліку варыяцый паміж VT
    • Логіка змяшчаецца ў bank_common.v/vhd
    • Параметр Tzqcs вызначае хуткасць, з якой каманда каліброўкі ZQ адпраўляецца ў памяць
    • t можна адключыць лічыльнік і ўручную адправіць з дапамогай app_zq_req, гэта падобна на ручную адпраўку Refresh.
      Звярніцеся да (адказ Xilinx 47924) для атрымання падрабязнай інфармацыі.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.22

Накладныя выдаткі кантролера

  1. Перыядычнае чытанне - Звярніцеся да (Адказ Xilinx 43344) для дэталяў.
    • Не змяняйце перыяд чытання
    • Прапускаць перыядычныя чытанні падчас запісу і выдаваць колькасць прапушчаных чытанняў перад сапраўдным чытаннем
  2. Змена парадку - Звярніцеся (Адказ Xilinx 34392) для дэталяў.
    Для канструкцый карыстальніцкага інтэрфейсу і інтэрфейсу AXI пажадана, каб гэта было ўключана.
    • Змена парадку - гэта логіка, якая праглядае наперад некалькі каманд і змяняе парадак карыстальніцкіх каманд, каб каманды, не звязаныя з памяццю, не займалі дапушчальную прапускную здольнасць. Прадукцыйнасць таксама звязана з фактычнай структурай руху.
    • Заснаваны на шаблоне адраса, пераўпарадкаванне дапамагае прапусціць загадзя зарадку і актываваць каманды і робіць так, каб tRCD і tRP не займалі шырыню дыяпазону дадзеных.Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.23
  3. Паспрабуйце павялічыць колькасць банкаматаў.
    • Большая частка логікі кантролера знаходзіцца ў банкаўскіх машынах, і яны адпавядаюць банкам DRAM
    • Дадзеная банкаўская машына кіруе адным банкам DRAM у любы момант часу.
    • Прызначэнне банкаматаў дынамічнае, таму няма неабходнасці мець банкамат для кожнага фізічнага банка.
    • Банкаматы можна наладзіць, але гэта кампраміс паміж плошчай і прадукцыйнасцю.
    • Дапушчальная колькасць банкаматаў - ад 2 да 8 штук.
    • Па змаўчанні 4 банкаўскія аўтаматы настроены праз параметры RTL.
    • Каб змяніць банкаўскія аўтаматы, разгледзьце параметр nBANK_MACHS = 8, які змяшчаецца ў memc_ui_top Example для 8 банкаматаў – nBANK_MACHS = 8

Цяпер вы ведаеце фактары, якія ўплываюць на прадукцыйнасць.
Разгледзім апстрымнае прыкладанне, якое дае вам 512 байт даных на пакет, і вам трэба захаваць іх у розных месцах памяці. Паколькі 512 байт дадзеных роўныя 64 пакетам дадзеных DDR3, паўторна запусціце эксample дызайн са стымулам file змяшчае 512 запісаў, 512 чытанняў і пераключэнне радкоў на кожныя 64 запісу або чытання:

  • 3f_0_0_0000_000_0
  • 3f_0_0_0001_000_0
  • 3f_0_0_0002_000_0
  • 3f_0_0_0003_000_0
  • 3f_0_0_0004_000_0
  • 3f_0_0_0005_000_0
  • 3f_0_0_0006_000_0
  • 3f_0_0_0007_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_0_0001_000_1
  • 3f_0_0_0002_000_1
  • 3f_0_0_0003_000_1
  • 3f_0_0_0004_000_1
  • 3f_0_0_0005_000_1
  • 3f_0_0_0006_000_1
  • 3f_0_0_0007_000_1

У канцы мадэлявання вы ўбачыце, што загрузка аўтобуса складае 77 працэнтаў. Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.24

Малюнак 11: Статыстыка прадукцыйнасці для 512 запісаў і 512 чытанняў – пераключэнне радкоў для 64 запісаў або чытанняў. 

Цяпер вы можаце прымяніць веды, атрыманыя ў папярэднім раздзеле, каб павысіць эфектыўнасць. З view каб выкарыстоўваць усе банкі замест змены радка, змяніце шаблон адраса, каб змяніць банк, як паказана ніжэй.
Гэта эквівалентна наладзе ROW_BANK_Column у наладах адлюстравання адрасоў памяці ў графічным інтэрфейсе MIG.

  • 3f_0_0_0000_000_0
  • 3f_0_1_0000_000_0
  • 3f_0_2_0000_000_0
  • 3f_0_3_0000_000_0
  • 3f_0_4_0000_000_0
  • 3f_0_5_0000_000_0
  • 3f_0_6_0000_000_0
  • 3f_0_7_0000_000_0
  • 3f_0_0_0000_000_1
  • 3f_0_1_0000_000_1
  • 3f_0_2_0000_000_1
  • 3f_0_3_0000_000_1
  • 3f_0_4_0000_000_1
  • 3f_0_5_0000_000_1
  • 3f_0_6_0000_000_1
  • 3f_0_7_0000_000_1

У канцы мадэлявання вы ўбачыце, што ранейшы 77-працэнтны ўзровень выкарыстання аўтобуса цяпер складае 87! Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.25

Калі вам усё яшчэ патрабуецца больш высокая эфектыўнасць, вы можаце выбраць вялікія пакеты памерам 1024 або 2048 байт або разгледзець пытанне аб ручным абнаўленні.

Заўвага: Xilinx не рэкамендуе абыходзіць абнаўленне кантролера, таму што мы не ўпэўненыя, што вы зможаце выканаць час аўтаматычнага абнаўлення Jedec, што ўплывае на надзейнасць даных.
З боку кантролера вы можаце змяніць nBANk_MACH і ўбачыць паляпшэнне прадукцыйнасці.
Аднак гэта можа паўплываць на час распрацоўкі, звярніцеся да (Адказ Xilinx 36505) падрабязнасці на nBANk_MACHАцэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.26

Адкрыйце core_name_mig_sim.v file і змяніце параметры nBANK_MACHS з 4 на 8 і паўторна запусціце мадэляванне. Каб значэнне параметра ўступіла ў сілу ў апаратным забеспячэнні, вам трэба абнавіць core_name_mig.v file.
Я выкарыстаў тую ж мадэль, дзе мы атрымалі 87% выкарыстання аўтобуса (малюнак -12).
Калі nBANK_MACHS усталяваны на 8, эфектыўнасць цяпер складае 90%. Ацэнка прадукцыйнасці Xilinx DDR2 MIG 7-мал.27

Таксама звярніце ўвагу, што кантролеры ½ і ¼ негатыўна ўплываюць на эфектыўнасць з-за іх затрымкі.
Напрыкладample, паколькі мы можам адпраўляць каманды толькі кожныя 4 цыклы CK, часам прытрымліваюцца мінімальных спецыфікацый DRAM па часе, што можа знізіць эфектыўнасць у параўнанні з тэарэтычнай.
Паспрабуйце розныя кантролеры, каб знайсці той, які адпавядае вашым патрабаванням да эфектыўнасці.

Спасылкі

  1. Zynq-7000 AP SoC і FPGA серыі 7 MIS v2.3 [UG586]
  2. Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html

Гісторыя версій
13/03/2015 – Першы выпуск

Загрузіць PDF: Кіраўніцтва па ацэнцы прадукцыйнасці Xilinx DDR2 MIG 7

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *