Xilinx DDR2 MIG 7 Rêbernameya Texmîna Performansê
Nîşeya Girîng: Ev PDF-ya dakêşandî ya Tomara Bersiv ji bo zêdekirina karanîna û xwendina wê tê peyda kirin. Girîng e ku bala xwe bidin ku Qeydên Bersiv in Web-naverokên bingehîn ên ku bi peydabûna agahdariya nû pir caran têne nûve kirin. Tê bîra we ku hûn serdana Piştgiriya Teknîkî ya Xilinx bikin Website û review (Bersiva Xilinx 63234) ji bo guhertoya herî dawî ya vê Bersivê.
Pêşkêş
Ji ber awayê ku bîranînên DDR2 û DDR3 têne çêkirin û kontrolkerê rêza MIG 7-ê hatî sêwirandin, performans ne rasterast e.
Ew têgihîştina cûrbecûr Parametreyên Demjimêra Jedec û Mîmariya kontrolker hewce dike, û hûn ê hewce bikin ku simulasyonan bimeşînin da ku texmînan bistînin.
Prensîba giştî ya ji bo destnîşankirina performansê yek e lê ev belge rêyek hêsan peyda dike ku meriv bi karanîna MIG ex-ê karîgeriyê bistîne.ampsêwirana le bi alîkariya stûna ceribandinê û stimulusê fileli vir ve girêdayî ye.
Bandora bandorker
Otobusa daneya DRAM-ê tenê di dema teqînên xwendin û nivîsandinê de firehiya bandê ya nêzîk-lûtkê bi dest dixe û serê wê rêjeya daneya bi bandor kêm dike.
Çend examplêzêdekirina zêde ev in:
- dema pêşdibistanê gihîştina rêzan di heman bankê de (Navnîşana gihîştinê ne di heman rêz-rûpelê de ye)
- dema başbûnê binivîsin da ku ji nivîsandinê ji bo gihîştina xwendinê biguhezînin
- dema zivirîna otobusê ji bo guheztina ji xwendinê bo nivîsandinê
Bandwidth bi bandor = Bandfirehiya Peak * Karbidestî
MIG Design Generation
Ji bo hûrguliyên gav-bi-gav li ser MIG IP û berê serî li UG586 Beşa 1 bidinample nifşê sêwiranê.
Berî ku hûn simulasyona performansa MIG 7 Series bimeşînin, jêrîn bikin da ku hûn pê ewle bibin ku jîngeha weya simulasyonê baş e. MIG ex vekinampPirtûkxaneyên guncan sêwirînin û nexşeyê bikin, simulasyonê bimeşînin, û pê ewle bin ku hûn dikarin peyama "test derbas bû" di transkriptê de bibînin.
Ji bo nîşandana herikînê min ji bo xc7vx690tffg1761-2 MIG IP-yek çêkir û berê bang kirample design.
Du tiştên ku divê werin destnîşan kirin bitsên navnîşana bîranînê û hilbijartina nexşeya navnîşana bîranînê ne.
Ji bo example, min MT41J128M8XX-125 di bin vebijarkên dakêşana beşa bîranînê de hilbijartiye.
Ji bo beşa bîranînê ya hilbijartî ji Figure-1, rêz = 14, stûn = 10 û bank = 3, ji ber vê yekê app_addr_width = rêz + stûn + bank + rêz = 28
Hûn dikarin stûna BANK_ROW_COLUMN an ROW BANK hilbijêrin.
Min Stûna ROW BANK ku nexşeya navnîşa xwerû ye hişt.
Example sêwirana Simulasyonek bi doşeka testê ya sentezkirî
Di binê mîhengên Simulasyonê de, QuestaSim/ModelSim Simulator hilbijêrin û li cîhê pirtûkxaneyên berhevkirî bigerin.
Ji bo hûrguliyên li ser nîşankirina rêgezek sazkirinê ya amûrên sêyemîn, hilbijartina simulatorê armanc, û berhevkirin û nexşekirina pirtûkxaneyan, hûn dikarin serî li (UG900) Vivado Design Suite Bikarhêner Rêbernameya Logic Simulation
Simulasyonê bi navgîniya GUI-yê bikirtînin (Di rêveberê projeyê de Tabeya Simulasyonê Bixebitînin) bikirtînin û pê ewle bin ku hûn peyama "test derbas bû" di transkriptê de dibînin.
Guherandinên RTL-ya Simulasyona Performansê
- Li tabloya çavkaniyan rast-klîk bikin, "çavkaniyên simulasyonê zêde bikin an biafirînin" hilbijêrin û li mig7_perfsim_traffic_generator.sv bigerin. file û qedandinê bikirtînin da ku wê lê zêde bikin.
- Li tabloya çavkaniyan rast-klîk bikin, "çavkaniyên simulasyonê zêde bikin an biafirînin" hilbijêrin, li perfsim_stimulus.txt bigerin, û ji bo lê zêde bikin qedandinê bikirtînin.
- Berê şîrove bikeample_top instantiation di sim_tb_top.v file.
- Xetên RTL yên jêrîn li sim_tb_top,v zêde bikin
- 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;
- têl [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- wire [2:0] c0_ddr3_app_cmd;
- wire c0_ddr3_app_en;
- têl [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- têl c0_ddr3_app_wdf_end;
- têl [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- têl c0_ddr3_app_wdf_wren;
- têl [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- têl c0_ddr3_app_rd_data_end;
- têl c0_ddr3_app_rd_data_valid;
- têl c0_ddr3_app_rdy;
- têl c0_ddr3_app_wdf_rdy;
- wire c0_data_compare_error;
- wire ui_clk;
- têl ui_clk_sync_rst;
- têl app_sr_req = 0;
- têl app_ref_req = 0;
- têl app_zq_req =0;
- têl c0_app_wdf_mask =0;
Mînaka Kontrolkerê Bîra FPGA
mig_7series_0_mig u_mig_7series_0_mig (
// Portên pêwendiya bîranînê
- .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),
// Portên pêwendiya serîlêdanê
- .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),
// Pergala Saetê Ports
- .sys_clk_i (sys_clk_i),
// Portên Saetê Referansê
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Nimûneya hilberînerê trafîkê ya performansê
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 li gorî hilbijartina beşa bîra xwe biguherînin.
Nirx dikarin ji nav werin wergirtin _mig.v file. - Navê destnîşankirî yê zer a ronîkirî mig_7series_0_mig dikare li gorî navê pêkhateya we di dema afirandina IP-yê de biguhere, verast bike ka we navek cûda hilbijartiye û li gorî wê biguhezîne.
- Dema ku IP-ê hatî çêkirin vekin _mig.v file û ji bo her cûrbecûr navên sînyala LHS-ê veqetînin û wan rast bikin.
- app_sr_req, app_ref_req û app_zq_req divê bi 0-ê bêne destpêkirin.
- Wek example_top.v tê şîrovekirin û nû ye files têne zêdekirin, hûn ê belkî bibînin "?" li kêleka
mig_7series_0_mig.v file di bin çavkaniyên simulasyonê de.
Ji bo nexşeya rast file, mig_7series_0_mig.v rast bikirtînin, "Çavkaniyan lê zêde bikin" hilbijêrin, bigerin
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
û mig_7series_0_mig_sim.v lê zêde bike file. - Ger hûn bibînin "?" ji bo bingehîn files, hemî RTL zêde bikin fileDi peldankên demjimêr, kontrolker, ip_top, phy û UI de ye.
- Dema ku guhertinên RTL têne kirin û hemî hewce ne files li Çavkaniyên Simulasyona we têne zêdekirin, Hiyerarşî divê mîna Figure 5 be.
Ew fileyên bi sor hatine ronîkirin nû hatine zêdekirin, û "?" Li ser modulên têkildarî ECC-ê tê çaverê kirin ji ber ku veavakirina bîranîna hilbijartî vebijarka ECC neçalak e.
Stimulus File Terîf
Her şêwazek stimulus 48 bit e û format di jimarên 6-1 heya 6-4 de tê vegotin.
Kodkirina Navnîşanê (Navnîşan [35:0])
Navnîşan di stimulusê de li gorî jimar 7-1 heya jimar 7-6 tê kod kirin. Pêdivî ye ku hemî qadên navnîşan di forma hexadecimal de bêne nivîsandin. Hemî qadên navnîşan firehiyek in ku bi çaran ve tê dabeş kirin da ku têkevin forma hexadecimal. Bûka testê tenê bitsên pêwîst ên qada navnîşanê ji Kontrolkerê Bîrê re dişîne.
Ji bo exampLe, di veavakirina heşt bankê de, tenê Biteyên bankê [2:0] ji Kontrolkerê Bîrê re têne şandin û bitên mayî têne paşguh kirin. Bitikên zêde yên qada navnîşanê ji bo ku hûn navnîşan bi rengek hexadecimal têkevin têne peyda kirin.
Divê hûn piştrast bikin ku nirxa hatî nivîsandin bi firehiya veavakirinek diyarkirî re têkildar e.
- Navnîşana Stûnê (Stûna[11:0]) - Navnîşana Stûnê ya di stimulasyonê de herî zêde 12 bit tê peyda kirin, lê hûn hewce ne ku vê yekê li ser bingeha pîvana firehiya stûnê ya ku di sêwirana we de hatî destnîşan kirin çareser bikin.
- Navnîşana Rêzê (Rêz[15:0]) - Navnîşana rêzê ya di stimulusê de herî zêde 16 bit tê peyda kirin, lê hûn hewce ne ku vê yekê li ser bingeha pîvana firehiya rêzê ya ku di sêwirana we de hatî destnîşan kirin çareser bikin.
- Navnîşana Bankê (Banke[3:0]) - Navnîşana bankê di teşwîqê de herî zêde çar bit tê peyda kirin, lê hûn hewce ne ku vê yekê li ser bingeha pîvana firehiya bankê ya ku di sêwirana we de hatî destnîşan kirin çareser bikin.
- Navnîşana Rêz (Rank[3:0]) - Navnîşana rêzê ya di stimulusê de herî zêde çar bit tê peyda kirin, lê hûn hewce ne ku vê yekê li ser bingeha pîvana firehiya rêzê ya ku di sêwirana we de hatî destnîşan kirin çareser bikin.
Navnîşan li ser bingeha pîvana asta jorîn MEM_ADDR_ORDER tê berhev kirin û ji navgîniya bikarhêner re tê şandin
Ferman Dubarekirin (Command Repeat [7:0])
Hejmara dubarekirina fermanê ew çend car e ku fermana têkildar li Navrûya Bikarhêner tê dubare kirin. Navnîşana her dubarekirinê bi 8an zêde dibe. Hejmara dubarekirina herî zêde 128 e.
Dîwana testê sînorê stûnê kontrol nake û ger di dema zêdebûnê de herî zêde sînorê stûnê bigihîje dora xwe dipêçe.
128 Ferman rûpel tijî dikin. Ji bo her navnîşana stûnê ji bilî 0-ê, jimara dubarekirina 128-an bi dawî dibe ku sînorê stûnê derbas dike û digihîje destpêka navnîşana stûnê.
Otobus Utilization
Bikaranîna otobusê li Navrûya Bikarhêner tê hesibandin ku jimara giştî ya Xwendin û Nivîsandinê li ber çavan digire û hevkêşeya jêrîn tê bikar anîn:
- BL8 çar çerxên demjimêra bîranînê digire
- end_of_stimulus dema ku hemî ferman têne kirin e.
- calib_done dema kalibrasyon tê kirin e.
Example Patterns
Ev examples li ser bingeha MEM_ADDR_ORDER hatî danîn li ser BANK_ROW_COLUMN.
Single Read Pattern
00_0_2_000F_00A_1 - Ev nimûne ji stûna 10-an, rêza 15-an, û banka duyemîn xwendinek yekane ye.Yekane Nimûneya Nivîsandinê
00_0_1_0040_010_0 - Ev nimûne ji bo stûna 32-an, rêza 128-an, û banka yekem yek nivîsek e.Yekane Ji Heman Navnîşanê re Binivîsin û Bixwînin
00_0_2_000F_00A_0 – Ev nimûne ji bo stûna 10-an, rêza 15-an, û banka duyemîn yek nivîsek e.
00_0_2_000F_00A_1 – Ev nimûne ji stûna 10-an, rêza 15-an, û banka duyemîn xwendinek yekane ye
Bi Heman Navnîşanê Gelek Dinivîse û Dixwîne
0A_0_0_0010_000_0 – Ev bi 10 nivîsan re bi navnîşana ku ji 0 heta 80 dest pê dike ku di stûnê de têne dîtin re têkildar e.
0A_0_0_0010_000_1 – Ev bi 10 xwendinên bi navnîşana ku ji 0 heta 80 dest pê dike ku di stûnê de têne dîtin re têkildar e.
Rûpelê Di dema Nivîsandinê de pêça
0A_0_2_000F_3F8_0 – Ev bi 10 nivîsan re bi navnîşana stûnê ya ku di destpêka rûpelê de piştî yek nivîsandinê ve girêdayî ye.
Simulating The Performance Traffic Generator
Di vê nuqteyê de hûn bi MIG ex re qediyanample design simulation. Ev tê vê wateyê ku sazkirina simulasyona we amade ye, we guheztinên RTL-ya simulasyona performansê kiriye, hiyerarşiya nû ya simulasyonê rast e û we qalibên stimulus fam kiriye. Di perfsim_stimulus.txt de bi 16 nivîsandin û xwendinê careke din simulasyonê bixebitînin.
Hemî bixebitin, li bendê bimînin heya ku nîşana init_calib_complete were destnîşan kirin, û hûn ê bikaribin hejmara pêşniyarên nivîsandin û xwendinê bibînin. Wê hingê simulasyon dê raweste.
Dema ku ji we tê xwestin ku dev ji simulasyonê berdin, Na hilbijêrin û biçin pencereya transkriptê ya ku hûn ê karibin statîstîkên performansê bibînin.
Ger hûn hilbijêrin " dev ji simulasyonê berdin" statîstîkên performansê dê ji bo a file bi nav kirin mig_band_width_output.txt di sim_1/behave de cih digire pêçek.
Exampriya pelrêça: -
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Hûn dikarin bipirsin çima ji sedîtagBikaranîna otobusê yek e 29. Simulasyonê bi heman mîhengên IP-yê ji nû ve bimeşînin lê tenê stimulusê biguhezînin file heta 256 dinivîse û 256 dixwîne
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Hûn ê niha ji sedî bibînintage wekî 85, ku tê vê wateyê ku DDR3 ji bo rêzikên dirêj ên nivîsandin û xwendinê karanîna otobusê çêtir pêşkêşî dike.
Rêbazên gelemperî ji bo çêtirkirina performansê
Faktorên ku bandorê li ser bandorê dikin dikarin li du beşan bêne dabeş kirin:
- Bîra Taybet
- Controller Specific
Figure 9 dide weview ji şertên ku bîranîn taybetî ne.
Berevajî SRAM û Bîranînên Block performansa DDR2 an DDR3 ne tenê rêjeya daneya herî zêde ye.
Ew bi gelek faktorên demê ve girêdayî ye, di nav de:
- tRCD: Derengiya Fermana Rêzê (an ras ji bo derengiya cas).
- tCAS (CL): Derengiya strobeya navnîşana stûnê.
- tRP: Pêşkêşkirina rêzê dereng.
- tRAS: Row Active Time (çalak bike ji bo pêşguhertinê).
- tRC: Dema çerxa rêzê. tRC = tRAS + tRP
- tRAC: Dereng gihîştina Radom. tRAC = tRCD + tCAS
- tCWL: Cas derengiya nivîsandinê.
- tZQ: Wextê kalibrasyonê ZQ.
- tRFC: Row Refresh Cycle Time
- tWTR: Ji bo derengiya xwendinê binivîse. Danûstandina paşîn a nivîsandina dema fermanê bixwînin.
- tWR: Dema Recovery binivîse. Danûstandina paşîn a nivîsandina dema Pêşkêşkirinê
Demjimêra hemî pîvanên navnîşkirî bi celebê bîranîna hatî bikar anîn û pola leza beşa bîranînê ve girêdayî ye.
Zêdetir hûrgulî li ser pênase û taybetmendiyên demjimêrê dikarin di DDR2 DDR3 JEDEC an di her pelgeya cîhaza bîranînê de werin dîtin.
Karbidestî bi giranî bi awayê gihîştina bîranînê ve girêdayî ye. Nimûneyên navnîşan ên cihêreng encamên karbidestiya cûda didin.
Zêdebûna dema bîranînê
- Dema ku hûn di heman bankê de li bankên nû / rêzikên nû biguhezînin an jî bi heman bankê re rêzan biguhezînin dema aktîvkirinê û dema barkirinê.
- Fermanên nivîsandinê an xwendinê yên domdar bişînin -Parastina dema tCCD.
- Guhertina fermana nivîsandinê ji bo xwendinê û xwendinê ji bo nivîsandinê kêm bikin - Wextê başbûnê binivîsin da ku guheztinên xwendinê biguhezînin, dema zivirîna otobusê ji xwendinê bo nivîsandinê biguherînin
- Navberek nûvekirinê ya rast saz bikin.
- DDR3 SDRAM di navberek demkî ya navînî ya tREFI de çerxên Nûvekirinê hewce dike.
- Herî zêde 8 fermanên Refresh-ê yên din dikarin di pêş de bêne derxistin ("kişandin"). Ev jimara nûvekirinan kêm nake, lê navbera herî zêde di navbera du fermanên Refresh ên derdorê de bi 9 × tREFI ve sînorkirî ye.
- Hemî bankan bikar bînin - Mekanîzmayek navnîşana minasib tê tercîh kirin.
- Rêz-Bank-Stûn: Ji bo danûstendinek ku li ser cîhek navnîşek rêzdar çêdibe, navik bixweber heman rêzê di perava paşîn a cîhaza DRAM-ê de vedike da ku dema ku gihîştina dawiya rêzek heyî danûstendinê bidomîne. Ew ji bo serîlêdanên ku hewce dike ku pakêtên daneya mezin li cîhên navnîşanên rêzdar biteqînin re xweş e.
- Bank-Rêz-Stûn: Dema ku sînorê rêzek derbas dibe, rêza heyî dê were girtin û rêzek din dê di heman bankê de were vekirin. MSB navnîşek bankê ye, ku dikare ji bo veguheztina ji bankên cûda were bikar anîn. Ew ji bo danûstendinên kurttir, rasthatîtir li yek blokek bîranînê ji bo demek dem û dûv re jî bazdanek berbi blokek din (banke) maqûl e.
- Dirêjiya teqînê
- BL 8 ji bo DDR3 li ser 7 series tê piştgirî kirin. BC4 xwedan bandorek pir kêm e ku ji% 50 kêmtir e. Ev ji ber ku dema darvekirina BC4 wekî BL8 e. Daneyên tenê di hundurê pêkhateyê de têne mask kirin.
- Di rewşên ku hûn naxwazin teqîna tevahî binivîsin, dikarin maskeya daneyê an jî binivîsin-piştî-xwendinê bêne hesibandin.
- Navberek ZQ-ya rast destnîşan bikin (Tenê DDR3)
Kontrolker her du fermanên Kalibrasyona ZQ Short (ZQCS) û ZQ Long (ZQCL) dişîne.- Li gorî DDR3 Jedec Standard tevbigerin
- Kalibrasyona ZQ di beşa 5.5 ya JEDEC Spec JESD79-3 DDR3 SDRAM Standard de tê nîqaş kirin.
- Kalibrasyona ZQ Li Ser Dawiya Mirinê (ODT) di navberên birêkûpêk de kalibr dike da ku guheztinên di nav VT de hesab bike.
- Mantiq di bank_common.v/vhd de heye
- Parametre Tzqcs rêjeya ku fermanek ZQ Calibration ji bîrê re tê şandin diyar dike
- T gengaz e ku meriv jimarvan neçalak bike û bi karanîna app_zq_req bi destan bişîne, ew mîna şandina Nûvekirinê bi destan e.
Ji bo hûragahiyan li (Bersiva Xilinx 47924) binihêrin.
Controller Overheads
- Xwendinên Perîyodîk - Binihêrin (Bersiv Xilinx 43344) ji bo hûragahiyan.
- Dema xwendinê neguherînin
- Di dema nivîsandinê de ji xwendinên periyodîk derbikevin û berî xwendina rast hejmara xwendinên ji dest dane derxînin
- Reordering - Referand (Bersiv Xilinx 34392) ji bo hûragahiyan.
Ji bo sêwiranên Navrûya Bikarhêner û AXI çêtir e ku ev were çalak kirin.- Ji nû ve rêzkirin mantiq e ku li pêş çend fermanan dinêre û rêzika fermana bikarhêner diguhezîne da ku fermanên ne-bîrê firehiya band derbasdar dagir neke. Performansa bi şêwaza trafîkê ya rastîn ve jî têkildar e.
- Li ser bingeha şêwaza navnîşanê, ji nû ve rêzkirin dibe alîkar ku meriv pêşî lê zêde bike û fermanan çalak bike û dike ku tRCD û tRP firehiya banda daneyê dagir neke.
- Hewl bidin ku hejmara Makîneyên Bankê zêde bikin.
- Piraniya mantiqa kontrolker di makîneyên bankê de dimîne û ew bi bankên DRAM re têkildar in
- Makîneyek bankê ya diyar di her kêliyê de yek bankek DRAM-ê birêve dibe.
- Peywira makîneya bankê dînamîk e ji ber vê yekê ne hewce ye ku ji bo her bankek fîzîkî makîneyek bankê hebe.
- Makîneyên bankê dikarin werin mîheng kirin, lê ew danûstendinek di navbera herêm û performansê de ye.
- Hejmara destûr a makîneyên bankê di navbera 2-8 de ye.
- Bi xwerû, 4 Makîneyên Bankê bi navgîniya pîvanên RTL-ê ve têne mîheng kirin.
- Ji bo guheztina Makîneyên Bankê, pîvana nBANK_MACHS = 8 ku di memc_ui_top Ex-ê de heye, bihesibînin.ample ji bo 8 Makîneyên Bankê - nBANK_MACHS = 8
Naha hûn ji faktorên ku bandorê li performansê dikin agahdar in.
Serlêdanek jorîn bifikirin ku her pakêtê 512 baytên daneyê dide we û hûn hewce ne ku wan li cîhên bîranîna cihêreng hilînin. Ji ber ku 512 baytên daneyê bi 64 teqînên daneya DDR3 re wekhev e, berê ji nû ve bimeşînin.ample sêwirana bi teşwîqek file ji bo her 512 nivîsandin an xwendinê 512 nivîsandin, 64 xwendin û guherandina rêzan hene:
- 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
Di dawiya simulasyonê de hûn ê bibînin ku karanîna otobusê ji sedî 77 e.
Xiflteya 11: Statîstîkên Performansê ji bo 512 nivîsandin û 512 xwendin - Veguheztina rêzê ji bo 64 nivîsandin an xwendin.
Naha hûn dikarin zanîna ku di beşa berê de fêr bûne bicîh bikin da ku karbidestiyê baştir bikin. Bi view ji bo ku hûn li şûna ku rêzê biguhezînin hemî bankan bikar bînin, şêwaza navnîşanê biguhezînin da ku bankê biguhezînin wekî ku li jêr tê xuyang kirin.
Ev hevwateya danîna ROW_BANK_Column di mîhenga nexşeya navnîşana bîranînê de di MIG GUI de ye.
- 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
Di dawiya simulasyonê de hûn ê bibînin ku berê ji sedî 77 Bikaranîna Otobusê niha 87 e!
Heke hûn hîn jî hewcedariya we ya bilindtir e, hûn dikarin li pîvanên pakêtên mezin ên 1024 an 2048 byte biçin, an nûvekirinek bi destan bifikirin.
Not: Xilinx teşwîq nake ku ji nûvekirina kontrolkerê derbas bibe ji ber ku em nebawer in gelo hûn ê karibin dema nûvekirina otomatîkî ya Jedec-ê ku bandorê li pêbaweriya daneyê dike bibînin.
Ji hêla kontrolker ve hûn dikarin nBANk_MACH biguherînin û çêtirbûna performansê bibînin.
Lêbelê, ev dibe ku bandorê li dema sêwirana we bike, ji kerema xwe serî lê bidin (Bersiv Xilinx 36505) ji bo hûragahiyan li nBANk_MACH
core_name_mig_sim.v veke file û parametreyên nBANK_MACHS ji 4 ber 8 biguherînin û simulasyonê ji nû ve bimeşînin. Ji bo ku nirxa parametreyê di hardware de bandor bike, divê hûn core_name_mig.v nûve bikin file.
Min heman şêweyê bikar anî ku me 87% karanîna otobusê girt (hejmar -12).
Li gel ku nBANK_MACHS li 8 hatî danîn, karbidestî niha %90 e.
Di heman demê de balê bikişînin ku ½ û ¼ kontrolker ji ber derengbûna wan bandorek neyînî li ser kargêriyê dikin.
Ji bo exampLe, ji ber ku em tenê dikarin her 4 çerxên CK-ê fermanan bişînin, carinan gava ku bi hûrguliyên demjimêra DRAM-ê ve girêdayî ye, pêvekek zêde heye, ku dikare ji hêla teorîkî ve karîgeriyê kêm bike.
Kontrolkerên cihêreng biceribînin da ku yeka ku li gorî hewcedariya weya karîgeriyê ye bibînin.
Çavkanî
- Zynq-7000 AP SoC û 7 Series FPGAs MIS v2.3 [UG586]
- Navenda Çareseriyê ya Xilinx MIG http://www.xilinx.com/support/answers/34243.html
Dîroka Revision
13/03/2015 - Serbestberdana destpêkê
PDFî bikin: Xilinx DDR2 MIG 7 Rêbernameya Texmîna Performansê