Ръководство за оценка на производителността на Xilinx DDR2 MIG 7
Важна забележка: Този PDF файл с възможност за изтегляне на запис на отговор е предоставен, за да подобри използваемостта и четливостта му. Важно е да се отбележи, че записите за отговори са Web-базирано съдържание, което се актуализира често, когато нова информация стане достъпна. Напомняме ви да посетите отдела за техническа поддръжка на Xilinx Webсайт и повторноview (Xilinx Answer 63234) за най-новата версия на този отговор.
Въведение
Поради начина, по който са проектирани паметите DDR2 и DDR3 и е проектиран контролерът от серия MIG 7, производителността не е ясна.
Това изисква разбиране на различни параметри на Jedec Timing и архитектура на контролера и ще трябва да стартирате симулации, за да получите оценките.
Общият принцип за определяне на производителността е същият, но този документ предоставя лесен начин за постигане на ефективност с помощта на MIG exampдизайн с помощта на тестов стенд и стимул fileе приложен тук.
Ефективна честотна лента
Шината за данни на DRAM постига почти пикова честотна лента само по време на изблици на четене и запис и нейното натоварване намалява ефективната скорост на предаване на данни.
Няколко ексampрежийните разходи са:
- време за предварително зареждане за достъп до редове в същата банка (адресът за достъп не е в същия ред-посещение на страница)
- време за възстановяване на запис за промяна от достъп за писане към достъп за четене
- времето за преминаване на автобуса от достъп за четене към запис
Ефективна честотна лента = пикова честотна лента * ефективност
MIG Design Generation
Обърнете се към UG586 Глава 1 за подробности стъпка по стъпка относно MIG IP и example дизайн поколение.
Преди да стартирате симулация на производителност на MIG 7 Series, направете следното, за да се уверите, че вашата симулационна среда е наред. Отворете MIG example проектирайте и картографирайте подходящите библиотеки, стартирайте симулацията и се уверете, че можете да видите съобщението „тестът премина“ в преписа.
За да демонстрирам потока, генерирах MIG IP за xc7vx690tffg1761-2 и извиках exampдизайн.
Две неща, които трябва да се отбележат, са битовете на адреса на паметта и изборът на картографиране на адрес на паметта.
Напримерample, избрах MT41J128M8XX-125 в падащото меню с опции за частта с памет.
За избраната част от паметта от Фигура-1, ред = 14, колона = 10 и банка = 3, така че app_addr_width = ред + колона + банка + ранг = 28
Можете да изберете колона BANK_ROW_COLUMN или ROW BANK.
Оставих колона ROW BANK, която е картографирането на адреса по подразбиране.
Example дизайн симулация с синтезируем тестов стенд
Под настройките за симулация изберете QuestaSim/ModelSim Simulator и прегледайте местоположението на компилираните библиотеки.
За подробности относно посочването на пътя за инсталиране на инструменти на трета страна, избора на целевия симулатор и компилирането и картографирането на библиотеки можете да се обърнете към (UG900) Ръководство за потребителя на Vivado Design Suite Логическа симулация
Стартирайте симулацията през GUI (Щракнете върху раздела „Изпълни симулация“ в мениджъра на проекти) и се уверете, че виждате съобщението „тестът премина“ в преписа.
RTL модификации на симулация на производителност
- Щракнете с десния бутон върху раздела източници, изберете „добавяне или създаване на източници на симулация“ и прегледайте mig7_perfsim_traffic_generator.sv file и щракнете върху Готово, за да го добавите.
- Щракнете с десния бутон върху раздела източници, изберете „добавяне или създаване на източници на симулация“, прегледайте perfsim_stimulus.txt и щракнете върху Готово, за да го добавите.
- Коментирайте бившияample_top инстанция в sim_tb_top.v file.
- Добавете долните RTL редове към sim_tb_top,v
- localparam APP_ADDR_WIDTH = 28;
- localparam APP_DATA_WIDTH = 64;
- localparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
- localparam BANK_WIDTH = 3;
- localparam 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 според избраната от вас част от паметта.
Стойностите могат да бъдат получени от _mig.v file. - Маркираното в жълто име на инстанция mig_7series_0_mig може да варира в зависимост от името на вашия компонент по време на създаването на IP, проверете дали сте избрали различно име и го променете съответно.
- След като IP адресът бъде генериран, отворете _mig.v 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 в папките clocking, controller, ip_top,phy и UI.
- След като промените в RTL са направени и всички необходими fileсе добавят към вашите симулационни източници, йерархията трябва да е подобна на Фигура 5.
The fileмаркирани в червено са новодобавени, а „?“ се очаква на модули, свързани с ECC, тъй като избраната конфигурация на паметта е с деактивирана опция ECC.
Стимул File Описание
Всеки модел на стимул е 48 бита и форматът е описан на фигури 6-1 до 6-4.
Кодиране на адреса (Адрес [35:0])
Адресът е кодиран в стимула съгласно Фигури 7-1 до Фигури 7-6. Всички адресни полета трябва да бъдат въведени в шестнадесетичен формат. Всички адресни полета са с ширина, която се дели на четири за въвеждане в шестнадесетичен формат. Тестовият стенд изпраща само необходимите битове от адресно поле към контролера на паметта.
Напримерampнапример, в конфигурация с осем банки, само банкови битове [2:0] се изпращат към контролера на паметта, а останалите битове се игнорират. Допълнителните битове за адресно поле са предоставени, за да въведете адреса в шестнадесетичен формат.
Трябва да потвърдите, че въведената стойност съответства на ширината на дадена конфигурация.
- Адрес на колона (Колона [11:0]) – Адресът на колоната в стимула се предоставя на максимум 12 бита, но трябва да адресирате това въз основа на параметъра за ширина на колоната, зададен във вашия дизайн.
- Адрес на ред (Ред[15:0]) – Адресът на реда в стимула се предоставя на максимум 16 бита, но трябва да адресирате това въз основа на параметъра за ширина на реда, зададен във вашия дизайн.
- Банков адрес (Банка[3:0]) – Адресът на банката в стимула се предоставя до максимум четири бита, но трябва да адресирате това въз основа на параметъра за ширина на банката, зададен във вашия дизайн.
- Адрес за ранг (Ранг[3:0]) – Адресът на ранга в стимула се предоставя на максимум четири бита, но трябва да адресирате това въз основа на параметъра за ширина на ранга, зададен във вашия дизайн.
Адресът се събира въз основа на параметъра MEM_ADDR_ORDER от най-високо ниво и се изпраща към потребителския интерфейс
Повторение на команда (Повторение на команда [7:0])
Броят на повторенията на командата е броят пъти, в които съответната команда се повтаря в потребителския интерфейс. Адресът за всяко повторение се увеличава с 8. Максималният брой повторения е 128.
Тестовият стенд не проверява за границата на колоната и се обвива, ако максималното ограничение на колоната бъде достигнато по време на нарастванията.
128-те команди запълват страницата. За всеки адрес на колона, различен от 0, броят на повторенията от 128 завършва с пресичане на границата на колоната и обвиване до началото на адреса на колоната.
Използване на автобуса
Използването на шината се изчислява в потребителския интерфейс, като се взема предвид общият брой четения и записи и се използва следното уравнение:
- BL8 отнема четири такта на паметта
- end_of_stimulus е времето, когато всички команди са изпълнени.
- calib_done е времето, когато е извършено калибрирането.
Example Patterns
Тези бившиampфайловете са базирани на MEM_ADDR_ORDER, зададен на BANK_ROW_COLUMN.
Единичен шаблон за четене
00_0_2_000F_00A_1 – Този модел е еднократно четене от 10-та колона, 15-ти ред и втора банка.Единичен модел за запис
00_0_1_0040_010_0 – Този модел е еднократно записване в 32-ра колона, 128-ми ред и първа банка.Единичен запис и четене на един и същ адрес
00_0_2_000F_00A_0 – Този модел е единичен запис в 10-та колона, 15-ти ред и втора банка.
00_0_2_000F_00A_1 – Този модел е едно четене от 10-та колона, 15-ти ред и втора банка
Множество записи и четения с един и същ адрес
0A_0_0_0010_000_0 – Това съответства на 10 записа с адрес, започващ от 0 до 80, който може да се види в колоната.
0A_0_0_0010_000_1 – Това съответства на 10 четения с адрес, започващ от 0 до 80, който може да се види в колоната.
Обвиване на страница по време на запис
0A_0_2_000F_3F8_0 – Това съответства на 10 записа с адрес на колона, обвит в началото на страницата след едно писане.
Симулиране на генератора на производителност на трафик
На този етап сте готови с MIG exampсимулация на дизайн. Това означава, че вашата настройка за симулация е готова, че сте направили RTL модификации на симулация на производителност, новата йерархия на симулация е правилна и сте разбрали моделите на стимулите. Стартирайте симулацията отново с 16 записа и четения в perfsim_stimulus.txt.
Направете run-all, изчакайте, докато сигналът init_calib_complete бъде заявен, и ще можете да видите предложения брой записи и четения. След това симулацията ще спре.
Когато бъдете подканени да излезете от симулацията, изберете Не и отидете до прозореца за препис, където ще можете да видите статистическите данни за ефективността.
Ако изберете „прекъсване на симулацията“ статистическите данни за ефективността ще бъдат записани на 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
Може би се чудите защо процентътtagИзползването на електронната шина е само 29. Пуснете отново симулацията със същите IP настройки, но само с промяна на стимула file до 256 писания и 256 четения
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Сега ще видите процентаtage като 85, което предполага, че DDR3 предлага по-добро използване на шината за дълга последователност от записвания и четене.
Общи начини за подобряване на производителността
Факторите, които влияят на ефективността, могат да бъдат разделени на две части:
- Специфична памет
- Специфичен контролер
Фигура 9 ви дава надview на термините, които са специфични за паметта.
За разлика от SRAM и блок памети DDR2 или DDR3 производителността не е само максималната скорост на данни.
Зависи от много времеви фактори, включително:
- tRCD: Забавяне на команда за ред (или забавяне от ras до cas).
- tCAS(CL): Забавяне на стробоскопа на адрес на колона.
- tRP: Забавяне на предварително зареждане на ред.
- tRAS: Активно време на ред (активирайте за предварителна смяна).
- tRC: Време на цикъла на реда. tRC = tRAS + tRP
- tRAC: Забавяне на достъпа до Radom. tRAC = tRCD + tCAS
- tCWL: Cas латентност при запис.
- tZQ: ZQ време за калибриране.
- tRFC: Време на цикъла на опресняване на реда
- tWTR: Забавяне при писане за четене. Време на последната команда за запис на транзакция за четене.
- tWR: Напишете Време за възстановяване. Последна транзакция за запис до време за предварително зареждане
Времето на всички изброени параметри зависи от типа на използваната памет и степента на скорост на част от паметта.
Повече подробности относно дефинициите и спецификациите на времето могат да бъдат намерени в DDR2 DDR3 JEDEC или във всеки лист с данни за устройство с памет.
Ефективността зависи главно от начина на достъп до паметта. Различните адресни модели дават различни резултати за ефективност.
Разходи за времето на паметта
- Време за активиране и време за предварително зареждане при смяна на нови банки/редове или смяна на редове в същата банка. - Така че, ако намалите промяната на реда, това може да премахне tRCD и tRP.
- Изпращане на непрекъснати команди за запис или четене - Поддържане на tCCD синхронизация.
- Минимизирайте превключването на командите за запис към четене и четене към запис – Време за възстановяване на записа, за да промените достъпите за четене, време за изпълнение на автобуса за промяна от четене към запис
- Задайте подходящ интервал за опресняване.
- DDR3 SDRAM изисква цикли на опресняване на среден периодичен интервал от tREFI.
- Максимум 8 допълнителни команди за опресняване могат да бъдат зададени предварително („изтеглени“). Това не намалява броя на опресняванията, но максималният интервал между две околни команди за обновяване е ограничен до 9 × tREFI
- Използвайте всички банки – За предпочитане е подходящ механизъм за адресиране.
- Ред-банка-колона: За транзакция, извършваща се в последователно адресно пространство, ядрото автоматично отваря същия ред в следващата банка на 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 Answer 47924) за подробности.
Разходи на контролера
- Периодични четения – вижте (Xilinx Отговор 43344) за подробности.
- Не променяйте периода на четене
- Пропуснете периодичните четения по време на записите и издайте броя на пропуснатите четения преди истинско четене
- Пренареждане – Реф (Xilinx Отговор 34392) за подробности.
За дизайни на потребителски и AXI интерфейс е за предпочитане това да е активирано.- Пренареждането е логиката, която гледа напред няколко команди и променя реда на потребителските команди, за да накара командите, които не са в паметта, да не заемат валидна честотна лента. Ефективността също е свързана с действителния модел на трафика.
- Въз основа на модела на адрес, пренареждането помага да се пропуснат командите за предварително зареждане и активиране и кара tRCD и tRP да не заемат ширината на лентата за данни.
- Опитайте се да увеличите броя на банкоматите.
- По-голямата част от логиката на контролера се намира в банковите машини и те съответстват на DRAM банки
- Дадена банкова машина управлява една DRAM банка във всеки даден момент.
- Присвояването на банкова машина е динамично, така че не е необходимо да има банкова машина за всяка физическа банка.
- Банковите машини могат да бъдат конфигурирани, но това е компромис между площ и производителност.
- Допустимият брой банкомати варира от 2-8.
- По подразбиране 4 банкови машини са конфигурирани чрез RTL параметри.
- За да промените банкоматите, разгледайте параметъра nBANK_MACHS = 8, съдържащ се в memc_ui_top Example за 8 банкови машини – nBANK_MACHS = 8
Вече сте наясно с факторите, които влияят на ефективността.
Помислете за приложение нагоре по веригата, което ви дава 512 байта данни на пакет и трябва да ги запишете на различни места в паметта. Тъй като 512 байта данни се равняват на 64 пакета данни DDR3, изпълнете отново example дизайн със стимул 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 процента.
Фигура 11: Статистика на производителността за 512 записвания и 512 четения – Превключване на редове за 64 записвания или четения.
Сега можете да приложите знанията, научени в предишния раздел, за да подобрите ефективността. С view за да използвате всички банки, вместо да променяте реда, променете шаблона на адреса, за да промените банката, както е показано по-долу.
Това е еквивалентно на настройката ROW_BANK_Column в настройката за съпоставяне на адреса на паметта в MIG GUI.
- 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!
Ако все още се нуждаете от по-висока ефективност, можете да изберете големи пакети с размери от 1024 или 2048 байта или да помислите за ръчно опресняване.
Забележка: Xilinx не насърчава заобикалянето на опресняването на контролера, тъй като не сме сигурни дали ще можете да изпълните времето за автоматично опресняване на Jedec, което влияе върху надеждността на данните.
От страна на контролера можете да промените nBANk_MACH и да видите подобрението в производителността.
Това обаче може да повлияе на времето за проектиране, моля, вижте (Xilinx Отговор 36505) за подробности на nBANk_MACH
Отворете core_name_mig_sim.v file и променете параметрите nBANK_MACHS от 4 на 8 и стартирайте отново симулацията. За да влезе в сила стойността на параметъра в хардуера, трябва да актуализирате core_name_mig.v file.
Използвах същия модел, при който получихме 87% използване на автобуса (фигура -12).
С nBANK_MACHS, настроен на 8, ефективността вече е 90%.
Също така имайте предвид, че контролерите ½ и ¼ влияят отрицателно на ефективността поради техните закъснения.
Напримерample, тъй като можем да изпращаме команди само на всеки 4 CK цикъла, понякога има допълнително подплънки, когато се придържаме към минималните спецификации за синхронизиране на DRAM, което може да намали ефективността от теоретичната.
Изпробвайте различни контролери, за да намерите този, който отговаря на вашите изисквания за ефективност.
Референции
- Zynq-7000 AP SoC и 7 серии FPGA MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
История на ревизиите
13/03/2015 – Първоначално издание
Изтеглете PDF: Ръководство за оценка на производителността на Xilinx DDR2 MIG 7