Xilinx-логотип

Xilinx DDR2 MIG 7 аткарууну баалоо колдонмосу

Xilinx_DDR2_MIG_7_Performance-Estimation-product

Маанилүү эскертүү: Жооп жазуусунун бул жүктөлүп алынуучу PDF форматы анын колдонууга ыңгайлуулугун жана окулушун жакшыртуу үчүн берилген. Жооп жазуулары экенин белгилей кетүү маанилүү Web- жаңы маалымат жеткиликтүү болгондон кийин тез-тез жаңыланып турган мазмун. Сизге Xilinx техникалык колдоо бөлүмүнө баруу эскертилет Webсайт жана кайраview (Xilinx Answer 63234) бул Жооптун акыркы версиясы үчүн.

Introduction

DDR2 жана DDR3 эс тутумдары архитектуралангандыктан жана MIG 7 сериясындагы контроллер иштелип чыккандыктан, аткаруу түз эмес.
Бул ар кандай Jedec Timing параметрлерин жана контроллердин Архитектурасын түшүнүүнү талап кылат жана сиз сметаларды алуу үчүн симуляцияларды иштетишиңиз керек болот.
натыйжалуулугун аныктоо үчүн жалпы принцип бирдей, бирок бул документ MIG экс колдонуу менен натыйжалуулугун алуу үчүн жеңил жол менен камсыз кылатample дизайн стенд жана стимулдун жардамы менен fileбул жерде тиркелет.

Натыйжалуу өткөрүү жөндөмдүүлүгү

DRAM маалымат автобусу окуу жана жазуу үзгүлтүктөрү учурунда гана эң жогорку өткөрүү жөндөмдүүлүгүнө жетет жана анын ашыкча чыгымы эффективдүү маалымат ылдамдыгын төмөндөтөт.
Бир нече эксampкошумча чыгымдар болуп төмөнкүлөр саналат:

  • бир банктагы саптарга жетүү үчүн алдын ала төлөө убактысы (Кирүү дареги бир эле сап бетинде эмес)
  • жазуудан окуу мүмкүнчүлүгүнө өзгөртүү үчүн жазууну калыбына келтирүү убактысы
  • окуудан жазууга кирүү мүмкүнчүлүгүн өзгөртүү үчүн автобустун айлануу убактысы

Xilinx DDR2 MIG 7 Performance Estimation-fig-28
Натыйжалуу өткөрүү жөндөмдүүлүгү = Эффективдүү өткөрүү 

MIG Design Generation

MIG IP жана мурунку боюнча этап-этабы менен чоо-жайы үчүн UG586 1-бөлүмүн караңызample дизайн муун.
MIG 7 Series аткаруу симуляциясын иштетүүдөн мурун, симуляция чөйрөңүз жакшы экенине ынануу үчүн төмөнкүлөрдү аткарыңыз. MIG экс ачыңызampТиешелүү китепканаларды долбоорлоп, картага түшүрүп, симуляцияны иштетип, стенограммада “сыноодон өттү” деген билдирүүнү көрө алаарыңызды текшериңиз.
Агымды көрсөтүү үчүн мен xc7vx690tffg1761-2 үчүн MIG IP түздүм жана мурункуample дизайн.
Белгилей кетчү нерсе, эстутум дареги биттери жана эстутум дареги картасын тандоо.
Мисалы үчүнampле, мен эстутум бөлүгүнүн ачылуучу параметрлеринин астында MT41J128M8XX-125ти тандадым.Xilinx DDR2 MIG-7- Performance-Estimation-fig-1

Сүрөт-1ден тандалган эс тутум бөлүгү үчүн сап = 14, тилке = 10 жана банк = 3, ошондуктан app_addr_width = сап + тилке + банк + даража = 28 Xilinx DDR2 MIG 7 Performance Estimation-fig-2

Сиз BANK_ROW_COLUMN же ROW BANK тилкесин тандай аласыз.
Мен демейки дарек картасы болгон ROW BANK тилкесин калтырдым.

Example дизайн синтезделүүчү тесттик стенд менен симуляция

Симуляция орнотууларынын астынан QuestaSim/ModelSim Simulator тандаңыз жана түзүлгөн китепканалардын жайгашкан жерин карап чыгыңыз.
Үчүнчү тараптын куралдарын орнотуу жолун көрсөтүү, максаттуу симуляторду тандоо жана китепканаларды компиляциялоо жана картага түшүрүү боюнча кененирээк маалымат алуу үчүн (UG900) Vivado Design Suite User Guide Logic Simulation шилтемесине кайрыла аласыз.Xilinx DDR2 MIG 7 Performance Estimation-fig-3

GUI аркылуу симуляцияны иштетиңиз (долбоор менеджериндеги Run Simulation өтмөгүн чыкылдатыңыз) жана транскриптте "сыноодон өттү" деген билдирүүнү көргөнүңүздү текшериңиз.

Performance Simulation RTL модификациялары

  1. Булактар ​​өтмөгүн оң баскыч менен чыкылдатып, “симуляция булактарын кошуу же түзүүнү” тандап, mig7_perfsim_traffic_generator.sv дарегин карап чыгыңыз file жана кошуу үчүн бүтүрүү чыкылдатыңыз.
  2. Булактар ​​өтмөгүн оң баскыч менен чыкылдатыңыз, "Симуляция булактарын кошуу же түзүүнү" тандаңыз, perfsim_stimulus.txt дарегин карап чыгыңыз жана аны кошуу үчүн бүтүрүү баскычын басыңыз.
  3. Экске комментарий бериңизample_top instantiation in sim_tb_top.v file.
  4. Sim_tb_top,v үчүн төмөнкү RTL саптарын кошуңуз
  • 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;
  • wire c0_ddr3_app_en;
  • зым [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
  • wire c0_ddr3_app_wdf_end;
  • зым [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
  • wire c0_ddr3_app_wdf_wren;
  • зым [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
  • wire c0_ddr3_app_rd_data_end;
  • wire c0_ddr3_app_rd_data_valid;
  • wire c0_ddr3_app_rdy;
  • wire c0_ddr3_app_wdf_rdy;
  • wire c0_data_compare_error;
  • wire ui_clk;
  • wire ui_clk_sync_rst;
  • wire app_sr_req = 0;
  • wifi app_ref_req = 0;
  • wire app_zq_req =0;
  • wire 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),

// Reference Clock Ports

  • .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 түзүүдө сиздин компонентиңиздин атына жараша өзгөрүшү мүмкүн, сиз башка ат тандаганыңызды текшериңиз жана ага жараша өзгөртүңүз.Xilinx DDR2 MIG 7 Performance Estimation-fig-4
  • IP түзүлгөндөн кийин, ачыңыз _mig.v file жана LHS сигналынын аталыштарындагы бардык вариацияларды кайчылаш текшерип, аларды оңдоңуз.
  • app_sr_req, app_ref_req жана app_zq_req 0 болуп инициализацияланышы керек.
  • Мурункудайample_top.v комментарийлер жана жаңы болуп саналат fileлар кошулса, балким, "?" жанында
    mig_7series_0_mig.v file симуляция булактары астында.
    Туура карта үчүн file, оң баскыч менен mig_7series_0_mig.v чыкылдатып, "Add Sources" дегенди тандаңыз,
    /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
    жана mig_7series_0_mig_sim.v кошуңуз file.
  • Эгер сиз "?" негизги үчүн fileс, бардык RTL кошуу files clocking, controller, ip_top,phy жана UI папкаларында.
  • RTL өзгөртүүлөр аткарылгандан кийин жана бардык зарыл болгон files симуляция булактарына кошулса, иерархия 5-сүрөткө окшош болушу керек.
    The fileкызыл менен белгиленгендер жаңыдан кошулуп, “?” Тандалган эс конфигурациясында ECC опциясы өчүрүлгөндүктөн, ECC менен байланышкан модулдарда күтүлөт.Xilinx DDR2 MIG 7 Performance Estimation-fig-5

Стимул File Description
Ар бир стимул үлгүсү 48 бит жана формат 6-1ден 6-4кө чейинки сүрөттөрдө сүрөттөлгөн.Xilinx DDR2 MIG 7 Performance Estimation-fig-6

Даректи коддоо (Дарек [35:0])

Дарек стимулда 7-1-сүрөткө 7-6-сүрөткө ылайык коддолгон. Бардык дарек талаалары он алтылык форматта киргизилиши керек. Бардык дарек талаалары он алтылык форматка кирүү үчүн төрткө бөлүнүүчү туурасы болуп саналат. Сыноочу стенд эстутум контроллерине дарек талаасынын керектүү биттерин гана жөнөтөт.
Мисалы үчүнample, сегиз банк конфигурациясында, эстутум контроллерине банк биттери гана [2:0] жөнөтүлөт жана калган биттерге көңүл бурулбайт. Даректи он алтылык форматта киргизүү үчүн дарек талаасынын кошумча биттери берилет.
Киргизилген маани берилген конфигурациянын туурасына туура келерин ырасташыңыз керек.Xilinx DDR2 MIG 7 Performance Estimation-fig-7

  • Мамычанын дареги (Мамыча[11:0]) – Стимулдагы мамычанын дареги максимум 12 битке чейин берилет, бирок сиз муну дизайныңызда белгиленген мамычанын туурасынын параметринин негизинде чечишиңиз керек.
  • Катар дареги (Сатып [15:0]) – Стимулдагы сап дареги максимум 16 битке чейин берилет, бирок сиз муну дизайныңызда белгиленген саптын туурасынын параметринин негизинде чечишиңиз керек.
  • Банк дареги (Банк[3:0]) – Стимулдагы банк дареги максимум төрт битке чейин берилет, бирок сиз муну дизайныңызда коюлган банктын туурасынын параметринин негизинде чечишиңиз керек.
  • Даража дареги (Rank [3:0]) - Стимулдагы даражанын дареги максимум төрт битке чейин берилет, бирок сиз муну дизайныңызда коюлган рангдын туурасынын параметринин негизинде чечишиңиз керек.
    Дарек жогорку деңгээлдеги MEM_ADDR_ORDER параметринин негизинде чогултулуп, колдонуучу интерфейсине жөнөтүлөт

Буйруктун кайталанышы (Буйруктун кайталанышы [7:0])
Буйруктун кайталануу саны - бул Колдонуучунун интерфейсинде тиешелүү буйруктун кайталанган убактысы. Ар бир кайталоо үчүн дарек 8ге көбөйтүлөт. Кайталоолордун максималдуу саны 128.
Сыноочу стенд мамычанын чек арасын текшербейт жана өсүүлөр учурунда мамычанын максималдуу чегине жетсе, ал айланага оролот.
128 буйрук баракты толтурат. 0дөн башка бардык мамычанын дареги үчүн 128 кайталануу саны мамычанын чегинен өтүп, мамычанын дарегинин башына чейин оролуп бүтөт.

Автобустарды колдонуу
Окугандардын жана жазуулардын жалпы санын эске алуу менен Колдонуучунун интерфейсинде автобустун колдонулушу эсептелет жана төмөнкү теңдеме колдонулат:

Xilinx DDR2 MIG 7 Performance Estimation-fig-8

  • BL8 эс тутумунун төрт циклин алат
  • end_of_stimulus - бардык буйруктар аткарылган убакыт.
  • calib_done - калибрлөө аяктаган убакыт.

Example Patterns
Булар эксamples BANK_ROW_COLUMN деп коюлган MEM_ADDR_ORDERге негизделген.

Жалгыз окуу үлгүсү
00_0_2_000F_00A_1 – Бул үлгү 10-графадан, 15-саптан жана экинчи банктан бир окуу.Xilinx DDR2 MIG 7 Performance Estimation-fig-9Жалгыз жазуу үлгүсү
00_0_1_0040_010_0 – Бул үлгү 32-графага, 128-сапка жана биринчи банкка бир жазуу.Xilinx DDR2 MIG 7 Performance Estimation-fig-10Бир эле дарекке бир жазуу жана окуу
00_0_2_000F_00A_0 – Бул үлгү 10-тилкеге, 15-катарга жана экинчи банкка бир жазуу болуп саналат.
00_0_2_000F_00A_1 – Бул үлгү 10-мамычадан, 15-саптан жана экинчи банктан бир окууXilinx DDR2 MIG 7 Performance Estimation-fig-11

Бир эле дарек менен бир нече жазуу жана окуу
0A_0_0_0010_000_0 – Бул 10дөн 0ге чейинки дареги бар 80 жазууга туура келет, аны тилкеде көрүүгө болот.Xilinx DDR2 MIG 7 Performance Estimation-fig-12

0A_0_0_0010_000_1 – Бул тилкеде көрүнүп турган 10дөн 0ге чейинки дареги менен 80 окууга туура келет.Xilinx DDR2 MIG 7 Performance Estimation-fig-13

Жазуу учурунда баракты жабуу
0A_0_2_000F_3F8_0 – Бул бир жазуудан кийин барактын башына оролгон мамычанын дареги менен 10 жазууга туура келет.Xilinx DDR2 MIG 7 Performance Estimation-fig-14

Performance Traffic Generator моделдөө

Бул учурда сиз MIG экс менен бүттүңүзample дизайн симуляциясы. Бул сиздин симуляция орнотууңуз даяр экенин, сиз RTL аткарууну симуляциялоонун модификацияларын жасадыңыз, жаңы симуляция иерархиясы туура жана стимулдаштыруунун үлгүлөрүн түшүндүңүз дегенди билдирет. Перfsim_stimulus.txt ичинде 16 жазуу жана окуу менен симуляцияны дагы бир жолу иштетиңиз.Xilinx DDR2 MIG 7 Performance Estimation-fig-15

Баарын аткарыңыз, init_calib_complete сигналы ырасталмайынча күтө туруңуз жана сиз сунуш кылынган жазуу жана окуу санын көрө аласыз. Андан кийин симуляция токтойт. Xilinx DDR2 MIG 7 Performance Estimation-fig-16

Сизден симуляциядан чыгуу сунушталганда, Жокту тандап, аткаруу статистикасын көрө ала турган транскрипт терезесине өтүңүз. Xilinx DDR2 MIG 7 Performance Estimation-fig-17

Эгер тандасаңыз "симуляцияны токтотуу" аткаруу статистикасы жазылат file аталган sim_1/behave ичинде жайгашкан mig_band_width_output.txt папка.

Example каталог жолу: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavXilinx DDR2 MIG 7 Performance Estimation-fig-18

Сиз эмне үчүн пайыз деп таң калышыңыз мүмкүнtagЭлектрондук автобусту колдонуу 29. Ошол эле IP жөндөөлөрү менен симуляцияны кайра иштетиңиз, бирок жөн гана стимулду өзгөртүңүз file 256 жазууга жана 256 окууга чейин

ff_0_0_0000_000_0
ff_0_0_0000_000_1

Эми сиз пайызды көрөсүзtage as 85, бул DDR3 жазуу жана окуу жарылууларынын узак ырааттуулугу үчүн автобусту жакшыраак колдонууну сунуштайт. Xilinx DDR2 MIG 7 Performance Estimation-fig-19

Ишти жакшыртуунун жалпы жолдору

Натыйжалуулукка таасир этүүчү факторлорду эки бөлүккө бөлүүгө болот:

  1. Memory Specific
  2. Controller SpecificXilinx DDR2 MIG 7 Performance Estimation-fig-20

9-сүрөт сизге жыйынтык беретview эс-тутумга мүнөздүү терминдердин.
SRAMs жана Block Memories DDR2 же DDR3 көрсөткүчтөрүнөн айырмаланып, максималдуу маалымат ылдамдыгы гана эмес.

Бул көптөгөн убакыт факторлорунан көз каранды, анын ичинде:

  • tRCD: Катар буйругунун кечиктирилиши (же растан каска кечиктирилиши).
  • tCAS(CL): Мамыча дареги strobe кечигүү.
  • tRP: Катар алдын ала заряддоо кечигүү.
  • ТРАС: Катар активдүү убакыт (алдын ала алмаштыруу үчүн жандырыңыз).
  • tRC: Катар циклинин убактысы. tRC = tRAS + tRP
  • tRAC: Radom кирүү кечигүү. tRAC = tRCD + tCAS
  • tCWL: Жазуу кечигүү.
  • tZQ: ZQ калибрлөө убактысы.
  • tRFC: Катар жаңыртуу циклинин убактысы
  • tWTR: Окуу кечиктирилишине жаз. Окуу буйругунун убактысына акыркы жазуу транзакциясы.
  • tWR: Калыбына келтирүү убактысын жаз. Алдын ала төлөө убактысына акыркы жазуу транзакциясы

Бардык көрсөтүлгөн параметрлердин убактысы колдонулган эс тутумдун түрүнө жана эстутум бөлүгүнүн ылдамдык даражасына жараша болот.
Аныктамалар жана убакыт спецификациялары жөнүндө көбүрөөк маалыматты DDR2 DDR3 JEDEC же эстутум аппаратынын маалымат жадыбалынан тапса болот.

Натыйжалуулук негизинен эстутумга кантип кирээрине көз каранды. Ар кандай дарек үлгүлөрү ар кандай эффективдүү натыйжаларды берет.

Эстутум убактысынын кошумча чыгымдары

  1. Жаңы банктарга/саптарга өтүүдө же ошол эле банктагы саптарды өзгөртүүдө жандыруу убактысы жана Precharge убакыты.- Демек, сиз сапты өзгөртүүнү азайтсаңыз, бул tRCD жана tRPди алып салышы мүмкүн.
  2. Үзгүлтүксүз жазуу же окуу буйруктарын жөнөтүү - tCCD убактысын сактоо.
  3. Окуу үчүн жазууну азайтуу жана жазуу үчүн окуу буйругун өзгөртүү - Окуу мүмкүнчүлүгүнө өзгөртүү үчүн калыбына келтирүү убактысын жазыңыз, окуудан жазууга өзгөртүү үчүн автобустун иштөө убактысы
  4. Туура жаңылоо аралыгын орнотуңуз.
    • DDR3 SDRAM tREFI орточо мезгилдик интервалында Жаңыртуу циклдерин талап кылат.
    • Алдын ала эң көп дегенде 8 кошумча Жаңыртуу буйруктары берилиши мүмкүн («тартылган»). Бул жаңылоолордун санын азайтпайт, бирок эки курчап турган Жаңыртуу буйруктарынын ортосундагы максималдуу интервал 9 × tREFI менен чектелет.Xilinx DDR2 MIG 7 Performance Estimation-fig-21
  • Бардык банктарды колдонуңуз - Ылайыктуу даректөө механизми артык.
    • Катар-банк-мамыча: Ырааттуу дарек мейкиндигинде ишке ашкан транзакция үчүн, учурдагы катардын аягына жеткенде транзакцияны улантуу үчүн өзөк DRAM түзмөгүнүн кийинки банкында ошол эле катарды автоматтык түрдө ачат. Бул чоң маалымат пакеттерин ырааттуу дарек жерлерине ташууну талап кылган колдонмолорго ылайыктуу.
    • Банк-катар-мамыча: Катар чек арасын кесип өткөндө учурдагы катар жабылып, ошол эле жээктин ичинде башка катар ачылат. MSB – бул банк дареги, аны ар кандай банктардан которуу үчүн колдонсо болот. Бул эстутумдун бир блогуна кыскараак, кокустан транзакциялар үчүн ылайыктуу, андан кийин башка блокко (банк) секирүү
  • Burst Length
    • BL 8 3 сериядагы DDR7 үчүн колдоого алынат. BC4 50% дан аз болгон өтө төмөн эффективдүүлүккө ээ. Бул BC4 аткаруу убактысы BL8 менен бирдей болгондуктан. Берилиштер жөн гана компоненттин ичинде жашырылган.
    • Толук жарылып жазгыңыз келбеген учурларда, маалымат маскасы же окуудан кийин жазуу каралышы мүмкүн.
  • Туура ZQ аралыгын коюу (DDR3 гана)
    Контроллер ZQ Short (ZQCS) жана ZQ Long (ZQCL) калибрлөө буйруктарын тең жөнөтөт.
    • DDR3 Jedec стандартын карманыңыз
    • ZQ калибрлөө JEDEC Spec JESD5.5-79 DDR3 SDRAM стандартынын 3 бөлүмүндө талкууланат
    • ZQ Calibration VT боюнча вариацияларды эсепке алуу үчүн үзгүлтүксүз аралыкта On Die Termination (ODT) калибрлейт
    • Логика bank_common.v/vhd ичинде камтылган
    • Параметр Tzqcs эстутумга ZQ Калибрлөө буйругун жөнөтүү ылдамдыгын аныктайт
    • t эсептегичти өчүрүп, app_zq_req аркылуу кол менен жөнөтсө болот, бул Жаңырууну кол менен жөнөтүүгө окшош.
      Чоо-жайын билүү үчүн (Xilinx Answer 47924) караңыз.Xilinx DDR2 MIG 7 Performance Estimation-fig-22

Контроллердин кошумча чыгымдары

  1. Мезгилдүү окуулар – Караңыз (Xilinx Answer 43344) чоо-жайы үчүн.
    • Окуу мөөнөтүн өзгөртүүгө болбойт
    • Жазуу учурунда мезгил-мезгили менен окууларды өткөрүп жибериңиз жана чыныгы окууга чейин өтүп кеткен окуулардын санын чыгарыңыз
  2. Кайра иреттөө – Шилтеме (Xilinx Answer 34392) чоо-жайы үчүн.
    Колдонуучу жана AXI Interface дизайндары үчүн муну иштеткен жакшы.
    • Кайра иреттөө - бул бир нече буйруктарды алдын ала караган жана эстутумга кирбеген буйруктарды жарактуу өткөрүү жөндөмдүүлүгүн ээлебөө үчүн колдонуучунун буйрук тартибин өзгөрткөн логика. Аткаруу иш жүзүндө трафиктин үлгүсүнө да байланыштуу.
    • Дарек үлгүсүнүн негизинде, кайра иреттөө алдын ала толтурууну өткөрүп жиберүүгө жана буйруктарды жандырууга жардам берет жана tRCD жана tRP маалымат тилкесинин туурасын ээлебейт.Xilinx DDR2 MIG 7 Performance Estimation-fig-23
  3. Банк машиналарынын санын көбөйтүүгө аракет кылыңыз.
    • Контроллердин логикасынын көбү банк машиналарында жайгашкан жана алар DRAM банктарына туура келет
    • Берилген банк машинасы каалаган убакта бир DRAM банкын башкарат.
    • Банк машинасын дайындоо динамикалуу болгондуктан, ар бир физикалык банк үчүн банк машинасынын болушу шарт эмес.
    • Банк машиналарын конфигурациялоого болот, бирок бул аймак менен иштөөнүн ортосундагы соода.
    • Банк машиналарынын уруксат берилген саны 2-8ге чейин.
    • Демейки боюнча, 4 Банк машиналары RTL параметрлери аркылуу конфигурацияланган.
    • Банк машиналарын өзгөртүү үчүн, memc_ui_top Ex камтылган nBANK_MACHS = 8 параметрин карап көрүңүз.amp8 банктык машиналар үчүн le – 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 Performance Estimation-fig-24

11-сүрөт: 512 жазуу жана 512 окуу үчүн аткаруу статистикасы – 64 жазуу же окуу үчүн сапты алмаштыруу. 

Сиз эми натыйжалуулугун жогорулатуу үчүн мурунку бөлүмдө үйрөнгөн билимди колдоно аласыз. Менен view катарды өзгөртүүнүн ордуна бардык банктарды колдонуу үчүн, төмөндө көрсөтүлгөндөй банкты өзгөртүү үчүн дарек үлгүсүн өзгөртүңүз.
Бул MIG GUIдеги эстутум дарегин картага салуу жөндөөсүндө ROW_BANK_Column орнотууга барабар.

  • 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 Performance Estimation-fig-25

Эгер сиз дагы эле жогорку натыйжалуулукту талап кылсаңыз, 1024 же 2048 байт өлчөмүндөгү чоң пакеттерге өтсөңүз болот же кол менен жаңыртууну карап көрө аласыз.

Эскертүү: Xilinx контроллерди жаңыртуудан кыйгап өтүүгө үндөбөйт, анткени Jedecтин автоматтык жаңыртуу убактысына жооп бере аларыңызды билбейбиз, бул дайындардын ишенимдүүлүгүнө таасирин тийгизет.
Контроллер тараптан сиз nBANk_MACH өзгөртө аласыз жана иштин жакшыруусун көрө аласыз.
Бирок, бул сиздин дизайн убакытыңызга таасир этиши мүмкүн, сураныч, караңыз (Xilinx Answer 36505) nBANk_MACH боюнча чоо-жайы үчүнXilinx DDR2 MIG 7 Performance Estimation-fig-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 Performance Estimation-fig-27

Ошондой эле ½ жана ¼ контроллерлор кечигүү убактысынан улам натыйжалуулукка терс таасирин тийгизерин белгилеңиз.
Мисалы үчүнample, биз командаларды ар бир 4 CK циклинде гана жөнөтө алгандыктан, кээде минималдуу DRAM убакыт өзгөчөлүктөрүн карманганда кошумча толтурулат, бул теориялык жактан натыйжалуулукту төмөндөтөт.
Эффективдүүлүгүңүзгө туура келгенин табуу үчүн ар кандай контроллерлорду сынап көрүңүз.

Шилтемелер

  1. Zynq-7000 AP SoC жана 7 Series FPGAs MIS v2.3 [UG586]
  2. Xilinx MIG Чечим борбору http://www.xilinx.com/support/answers/34243.html

Кайра карап чыгуу тарыхы
13/03/2015 – Алгачкы чыгарылыш

Жүктөп алуу PDF: Xilinx DDR2 MIG 7 аткарууну баалоо колдонмосу

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *