Xilinx DDR2 MIG 7 Giya sa Pagbanabana sa Pagganap
Importante nga Nota: Kini nga ma-download nga PDF sa usa ka Rekord sa Tubag gihatag aron mapauswag ang pagkagamit ug pagkabasa niini. Importante nga timan-an nga ang Answer Records kay Web-base sa sulod nga kanunay nga gi-update samtang ang bag-ong impormasyon mahimong magamit. Gipahinumduman ka sa pagbisita sa Xilinx Technical Support Website ug review (Xilinx Tubag 63234) para sa pinakabag-o nga bersyon niini nga Tubag.
Pasiuna
Tungod sa paagi nga ang DDR2 ug DDR3 nga mga panumduman gi-arkitekto ug ang MIG 7 series controller gidesinyo, ang performance dili diretso sa unahan.
Nagkinahanglan kini og pagsabot sa lain-laing mga parametro sa Jedec Timing ug Arkitektura sa controller, ug kinahanglang magpadagan ka og mga simulation aron makuha ang mga banabana.
Ang kinatibuk-ang prinsipyo sa pagdeterminar sa pasundayag pareho ra apan kini nga dokumento naghatag ug sayon nga paagi aron makakuha og episyente gamit ang MIG example disenyo sa tabang sa test bench ug stimulus files gilakip dinhi.
Epektibo nga Bandwidth
Ang DRAM data bus nakakab-ot sa duol nga peak bandwidth lamang sa panahon sa mga pagbuto sa pagbasa ug pagsulat ug ang overhead niini nagpaubos sa epektibo nga rate sa datos.
Pipila ka exampubos sa overhead mao ang:
- precharge nga oras sa pag-access sa mga row sa parehas nga bangko (Access address dili sa parehas nga row-page hit)
- pagsulat sa panahon sa pagbawi aron mausab gikan sa pagsulat ngadto sa pag-access sa pagbasa
- ang oras sa pag-usab sa bus gikan sa pagbasa ngadto sa pagsulat nga pag-access
Epektibo nga Bandwidth = Peak Bandwidth * Efficiency
MIG Design Generation
Tan-awa ang UG586 Kapitulo 1 para sa sunodsunod nga mga detalye sa MIG IP ug example disenyo nga henerasyon.
Sa dili pa modagan ang MIG 7 Series performance simulation, buhata ang mosunod aron masiguro nga maayo ang imong simulation environment. Ablihi ang MIG exampPagdesinyo ug pagmapa sa angay nga mga librarya, pagdagan ang simulation, ug pagsiguro nga imong makita ang mensahe nga "test pass" sa transcript.
Aron ipakita ang dagan nakamugna ko og MIG IP para sa xc7vx690tffg1761-2 ug gisangpit ang exampdisenyo.
Duha ka butang nga angay hinumdoman mao ang memory address bits ug memory address mapping selection.
Kay exampUg, gipili nako ang MT41J128M8XX-125 sa ilawom sa mga kapilian nga drop down nga bahin sa memorya.
Alang sa pinili nga bahin sa memorya gikan sa Figure-1, laray = 14, kolum = 10 ug bangko = 3, busa app_addr_width = laray + kolum + bangko + ranggo = 28
Mahimo nimong pilion ang BANK_ROW_COLUMN o ROW BANK Column.
Gibiyaan nako ang ROW BANK Column nga mao ang default address mapping.
Example design Simulation nga adunay synthesizable test bench
Ubos sa mga setting sa Simulation, pilia ang QuestaSim/ModelSim Simulator ug tan-awa ang lokasyon sa gihugpong nga mga librarya.
Alang sa mga detalye sa pagtudlo sa usa ka third-party nga mga himan sa pag-instalar nga agianan, pagpili sa target nga simulator, ug pag-compile ug pagmapa sa mga librarya, mahimo nimong tan-awon ang (UG900) Vivado Design Suite User Guide Logic Simulation
Pagdalagan ang simulation pinaagi sa GUI (I-klik ang Run Simulation Tab sa project manager) ug siguruha nga makita nimo ang mensahe nga "test pass" sa transcript.
Pagbag-o sa Performance Simulation RTL
- I-right-click ang mga tinubdan tab, pilia ang “add or create simulation sources”, ug browse sa mig7_perfsim_traffic_generator.sv file ug i-klik ang paghuman aron idugang kini.
- Pag-right-click sa tab nga mga tinubdan, pilia ang "add or create simulation sources", browse sa perfsim_stimulus.txt, ug i-klik ang finish aron idugang kini.
- Comment sa imong example_top instantiation sa sim_tb_top.v file.
- Idugang ang ubos nga mga linya sa RTL sa 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;
- wire [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- wire [2:0] c0_ddr3_app_cmd;
- wire c0_ddr3_app_en;
- wire [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- wire c0_ddr3_app_wdf_end;
- wire [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- wire c0_ddr3_app_wdf_wren;
- wire [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;
- wire app_ref_req = 0;
- wire app_zq_req =0;
- wire c0_app_wdf_mask =0;
FPGA Memory Controller instantiation
mig_7series_0_mig u_mig_7series_0_mig (
// Mga pantalan sa interface sa memorya
- .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),
// Mga pantalan sa interface sa aplikasyon
- .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),
// System Clock Ports
- .sys_clk_i (sys_clk_i),
// Reference Clock Ports
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Ang paghimo sa paghimo sa trapiko sa performance instantiation
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. Usba ang APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH ug BANK_WIDTH sumala sa imong gipili nga bahin sa memorya.
Ang mga bili mahimong makuha gikan sa _mig.v file. - Ang dalag nga gipasiugda nga instantiation nga ngalan mig_7series_0_mig mahimong magkalainlain base sa imong component nga ngalan atol sa pagmugna sa IP, susiha kon nakapili ka ug lain nga ngalan ug usba kini sumala niana.
- Sa higayon nga mamugna ang IP ablihi ang _mig.v file ug cross-check alang sa bisan unsang mga kalainan sa mga ngalan sa signal sa LHS ug itul-id kini.
- app_sr_req, app_ref_req ug app_zq_req kinahanglan nga magsugod sa 0.
- Ingon si exampAng le_top.v gikomentaryo ug bag-o files gidugang, lagmit imong makita ang "?" tupad sa
mig_7series_0_mig.v file ubos sa simulation tinubdan.
Aron mapa sa husto file, right click mig_7series_0_mig.v, pilia ang “Add Sources”, Browse to
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
ug idugang ang mig_7series_0_mig_sim.v file. - Kung makita nimo ang "?" alang sa nagpahiping files, idugang ang tanan nga RTL files sa clocking, controller, ip_top,phy ug UI folders.
- Kung nahuman na ang mga pagbag-o sa RTL ug ang tanan nga gikinahanglan files idugang sa imong Simulation Sources, Hierarchy kinahanglan nga susama sa Figure 5.
Ang files nga gipasiugda sa pula bag-ong gidugang, ug “?” gipaabot sa mga modulo nga may kalabotan sa ECC tungod kay ang gipili nga pag-configure sa memorya adunay kapilian sa ECC nga wala’y mahimo.
Pagdasig File Deskripsyon
Ang matag stimulus pattern kay 48 bits ug ang format gihulagway sa Figures 6-1 hangtod 6-4.
Pag-encode sa Address (Adres [35:0])
Ang adres gi-encode sa stimulus sama sa Figure 7-1 hangtod sa Figure 7-6. Ang tanan nga mga natad sa adres kinahanglan nga isulod sa hexadecimal format. Ang tanan nga mga natad sa address usa ka gilapdon nga mabahin sa upat aron masulod sa hexadecimal format. Ang test bench nagpadala lamang sa gikinahanglan nga mga piraso sa usa ka address field ngadto sa Memory Controller.
Kay exampUg, sa walo ka bank configuration, ang Bank Bits [2:0] lang ang ipadala ngadto sa Memory Controller ug ang nahabilin nga mga bits wala tagda. Ang dugang nga mga piraso alang sa usa ka natad sa adres gihatag aron masulod nimo ang adres sa usa ka hexadecimal nga pormat.
Kinahanglan nimong kumpirmahon nga ang kantidad nga gisulod katumbas sa gilapdon sa gihatag nga pagsumpo.
- Address sa Column (Column[11:0]) – Ang Address sa Column sa stimulus gihatag sa labing taas nga 12 bits, apan kinahanglan nimo kini sulbaron base sa parameter sa gilapdon sa kolum nga gitakda sa imong disenyo.
- Address sa Row (Row[15:0]) – Ang address sa row sa stimulus gihatag sa labing taas nga 16 bits, apan kinahanglan nimo kining sulbaron base sa row width parameter nga gitakda sa imong disenyo.
- Address sa Bangko (Bangko[3:0]) – Ang adres sa bangko sa stimulus gihatag sa labing taas nga upat ka mga bit, apan kinahanglan nimo nga sulbaron kini base sa parameter sa gilapdon sa bangko nga gitakda sa imong disenyo.
- Address sa Ranggo (Ranggo[3:0]) – Ang ranggo nga adres sa stimulus gihatag sa labing taas nga upat ka mga bit, apan kinahanglan nimo nga sulbaron kini base sa ranggo nga gilapdon nga parameter nga gitakda sa imong disenyo.
Ang adres gitigom base sa top-level MEM_ADDR_ORDER parameter ug gipadala ngadto sa user interface
Pag-usab sa Sugo (Pag-usab sa Sugo [7:0])
Ang pag-ihap sa pagbalik-balik sa sugo mao ang gidaghanon sa panahon nga ang tagsa-tagsa nga sugo gisubli sa User Interface. Ang adres alang sa matag pagbalik-balik gidugangan sa 8. Ang labing taas nga ihap sa pagbalik-balik mao ang 128.
Ang test bench wala magsusi sa utlanan sa kolum ug kini molibot kung ang maximum nga limitasyon sa kolum maabot sa panahon sa mga pag-uswag.
Ang 128 nga mga Sugo pun-on ang panid. Alang sa bisan unsang adres sa kolum gawas sa 0, ang pagbalik-balik nga ihap sa 128 matapos sa pagtabok sa utlanan sa kolum ug paglibot sa pagsugod sa adres sa kolum.
Paggamit sa Bus
Ang paggamit sa bus gikalkulo sa User Interface nga gikonsiderar ang kinatibuk-ang gidaghanon sa mga Reads and Writes ug gigamit ang mosunod nga equation:
- Ang BL8 nagkinahanglan og upat ka memory clock cycle
- end_of_stimulus mao ang panahon nga ang tanan nga mga sugo nahuman.
- calib_done mao ang panahon sa diha nga ang calibration nahuman.
Example Mga Sumbanan
Kini nga mga examples gibase sa MEM_ADDR_ORDER set ngadto sa BANK_ROW_COLUMN.
Usa ka Sumbanan sa Pagbasa
00_0_2_000F_00A_1 - Kini nga pattern usa ka pagbasa gikan sa ika-10 nga kolum, ika-15 nga laray, ug ikaduha nga bangko.Usa ka Sumbanan sa Pagsulat
00_0_1_0040_010_0 – Kini nga sumbanan usa ka sulat ngadto sa ika-32 nga kolum, ika-128 nga laray, ug unang bangko.Usa ka Pagsulat ug Pagbasa sa Parehas nga Address
00_0_2_000F_00A_0 – Kini nga sumbanan usa ka pagsulat sa ika-10 nga kolum, ika-15 nga laray, ug ikaduha nga bangko.
00_0_2_000F_00A_1 – Kini nga sumbanan usa ka pagbasa gikan sa ika-10 nga kolum, ika-15 nga laray, ug ikaduha nga bangko
Daghang Pagsulat ug Pagbasa nga adunay Parehas nga Address
0A_0_0_0010_000_0 – Kini katumbas sa 10 ka sinulat nga adunay adres nga nagsugod gikan sa 0 hangtod 80 nga makita sa kolum.
0A_0_0_0010_000_1 – Kini katumbas sa 10 ka pagbasa nga adunay adres nga nagsugod gikan sa 0 hangtod 80 nga makita sa kolum.
Pagputos sa Panid Panahon sa Pagsulat
0A_0_2_000F_3F8_0 – Kini katumbas sa 10 ka sinulat nga adunay column address nga giputos sa sinugdanan sa panid human sa usa ka pagsulat.
Pag-simulate sa Performance Traffic Generator
Niining puntoha nahuman ka sa MIG exampAng simulation sa disenyo. Kini nagpasabot nga ang imong simulation set up andam na, nakahimo ka sa performance simulation RTL modifications, ang bag-ong simulation hierarchy husto ug imong nasabtan ang stimulus patterns. Pagdalagan pag-usab ang simulation nga adunay 16 ka sinulat ug pagbasa sa perfsim_stimulus.txt.
Buhata ang run-all, paghulat hangtud nga ang init_calib_complete signal ipahayag, ug imong makita ang gisugyot nga gidaghanon sa mga pagsulat ug pagbasa. Ang simulation unya mohunong.
Kung giaghat ka nga mohunong sa simulation, pilia ang Dili ug adto sa bintana sa transcript diin makita nimo ang mga istatistika sa pasundayag.
Kung imong pilion "undang sa simulation" Ang mga istatistika sa pasundayag isulat sa a file ginganlan mig_band_width_output.txt nga nahimutang sa sim_1/behave folder.
Exampang dalan sa direktoryo:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Tingali mahibulong ka kung nganong ang porsyentotage bus utilization kay ony 29. I-rerun ang simulation sa parehas nga IP settings pero usbon lang ang stimulus file ngadto sa 256 ang nagsulat ug 256 ang nabasa
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Imong makita karon ang porsyentotage ingon nga 85, nga nagpasabot nga ang DDR3 nagtanyag og mas maayo nga paggamit sa bus alang sa taas nga pagkasunod-sunod sa pagsulat ug pagbasa sa mga pagbuto.
Kinatibuk-ang mga paagi sa Pagpauswag sa Performance
Ang mga hinungdan nga nakaimpluwensya sa pagka-epektibo mahimong bahinon sa duha nga mga seksyon:
- Piho nga Memorya
- Piho nga Controller
Ang Figure 9 naghatag kanimo usa ka overview sa mga termino nga espesipiko sa memorya.
Dili sama sa SRAMs ug Block Memories DDR2 o DDR3 performance dili lang ang maximum data rate.
Nagdepende kini sa daghang mga hinungdan sa oras, lakip ang:
- tRCD: Row Command Delay (o ras to cas delay).
- tCAS(CL): Ang strobe latency sa address sa column.
- tRP: Paglangan sa precharge sa linya.
- tRAS: Aktibo nga Oras sa Row (pagpaaktibo aron mag-prechange).
- tRC: Oras sa siklo sa laray. tRC = tRAS + tRP
- tTRAC: Paglangan sa pag-access sa Radom. tRAC = tRCD + tCAS
- tCWL: Cas pagsulat latency.
- tZQ: Panahon sa pag-calibrate sa ZQ.
- tRFC: Row Refresh Cycle Time
- tWTR: Paglangan sa Pagsulat sa Pagbasa. Katapusan nga pagsulat sa transaksyon sa Basaha ang oras sa pagmando.
- tWR: Isulat ang Panahon sa Pag-ayo. Katapusan nga pagsulat sa transaksyon sa oras sa Precharge
Ang tayming sa tanang nalista nga mga parametro nagdepende sa matang sa panumduman nga gigamit ug grado sa gikusgon sa bahin sa memorya.
Dugang nga mga detalye sa mga depinisyon ug timing specifications makita sa DDR2 DDR3 JEDEC o sa bisan unsa nga memory device datasheet.
Ang kahusayan nag-una nagdepende kung giunsa ang pag-access sa memorya. Nagkalainlain nga mga sumbanan sa adres naghatag lainlain nga mga resulta sa kahusayan.
Mga overhead sa memory timing
- Oras sa pagpaaktibo ug oras sa Precharge kung mag-ilis sa bag-ong mga bangko/mga linya o mag-ilis sa mga linya sa parehas nga bangko.- Busa kung imong pakunhuran ang pagbag-o sa linya, mahimo’g makuha ang tRCD ug tRP.
- Ipadala ang padayon nga pagsulat o pagbasa sa mga sugo -Pagmintinar sa tCCD timing.
- Pagminus sa pagsulat aron basahon ug pagbasa aron masulat ang pagbag-o sa mando - Pagsulat oras sa pagbawi aron mabag-o ang mga pag-access sa pagbasa, oras sa pagbag-o sa bus aron mabag-o gikan sa pagbasa hangtod pagsulat
- Pagbutang ug saktong agwat sa pag-refresh.
- Ang DDR3 SDRAM nanginahanglan ug mga siklo sa Pag-refresh sa kasagaran nga periodic interval sa tREFI.
- Ang labing taas nga 8 nga dugang nga mga mando sa Pag-refresh mahimong ma-isyu daan ("gibira"). Dili kini makapakunhod sa gidaghanon sa mga pag-refresh, apan ang pinakataas nga agwat tali sa duha ka naglibot nga Refresh nga mga sugo limitado sa 9 × tREFI
- Gamita ang tanan nga mga bangko - Ang usa ka angay nga mekanismo sa pagtubag mas maayo.
- Row-Bank-Column: Alang sa usa ka transaksyon nga nahitabo sa usa ka sequential address space, ang core awtomatik nga magbukas sa samang laray sa sunod nga bangko sa DRAM device aron ipadayon ang transaksyon kung ang katapusan sa usa ka kasamtangan nga laray maabot. Nahiangay kini sa mga aplikasyon nga nanginahanglan pagbuswak sa daghang mga pakete sa datos sa sunud-sunod nga mga lokasyon sa adres.
- Bank-Row-Column: Kung motabok sa usa ka utlanan sa laray, ang kasamtangang laray pagasirhan ug laing laray ang ablihan sulod sa samang bangko. Ang MSB usa ka adres sa bangko, nga magamit sa pagbalhin gikan sa lainlaing mga bangko. Kini angay alang sa mas mubo, mas random nga mga transaksyon sa usa ka bloke sa memorya sulod sa usa ka yugto sa panahon ug dayon usa ka paglukso ngadto sa laing bloke (bangko)
- Gitas-on sa Pagbuto
- Gisuportahan ang BL 8 alang sa DDR3 sa 7 nga serye. Ang BC4 adunay ubos kaayo nga kahusayan nga dili moubos sa 50%. Kini tungod kay ang oras sa pagpatuman sa BC4 parehas sa BL8. Ang datos gitago lang sa sulod sa sangkap.
- Sa mga kaso diin dili nimo gusto nga isulat ang bug-os nga pagbuto, mahimo’g konsiderahon ang data mask o write-after-read.
- Pagbutang ug saktong ZQ interval (DDR3 Lamang)
Ang controller nagpadala sa ZQ Short (ZQCS) ug ZQ Long (ZQCL) Calibration commands.- Pagsunod sa DDR3 Jedec Standard
- Ang ZQ Calibration gihisgutan sa seksyon 5.5 sa JEDEC Spec JESD79-3 DDR3 SDRAM Standard
- Ang ZQ Calibration nag-calibrate sa On Die Termination (ODT) sa regular nga mga agwat aron sa pag-asoy sa mga kalainan sa tibuok VT
- Ang lohika anaa sa bank_common.v/vhd
- Ang Parameter Tzqcs nagtino sa gikusgon sa pagpadala sa ZQ Calibration command ngadto sa memorya
- t posible nga ma-disable ang counter ug mano-mano nga ipadala gamit ang app_zq_req, Susama kini sa mano-mano nga pagpadala og Refresh.
Tan-awa ang (Tubag sa Xilinx 47924) para sa mga detalye.
Mga Overhead sa Controller
- Periodic Reads - Tan-awa ang (Tubag sa Xilinx 43344) alang sa mga detalye.
- Ayaw usba ang panahon sa pagbasa
- Laktawan ang mga periodic nga pagbasa sa panahon sa pagsulat ug i-isyu ang gidaghanon sa wala mabasa nga pagbasa sa wala pa ang tinuod nga pagbasa
- Pag-order pag-usab - Refer (Tubag sa Xilinx 34392) alang sa mga detalye.
Para sa mga disenyo sa User ug AXI Interface mas maayo nga i-enable kini.- Ang pag-order pag-usab mao ang lohika nga nagtan-aw sa unahan sa daghang mga sugo ug nagbag-o sa han-ay sa mando sa gumagamit aron mahimo ang dili memorya nga mga mando nga dili mag-okupar sa balido nga bandwidth. Ang pasundayag may kalabotan usab sa aktuwal nga sumbanan sa trapiko.
- Pinasukad sa sumbanan sa address, ang pag-order usab makatabang sa paglaktaw sa precharge ug pagpaaktibo sa mga sugo ug paghimo sa tRCD ug tRP nga dili mag-okupar sa gilapdon sa data band.
- Sulayi sa pagdugang sa gidaghanon sa Bank Machines.
- Kadaghanan sa lohika sa controller nagpuyo sa mga makina sa bangko ug kini katumbas sa DRAM nga mga bangko
- Ang gihatag nga makina sa bangko nagdumala sa usa ka DRAM nga bangko sa bisan unsang oras.
- Ang buluhaton sa makina sa bangko mao ang dinamiko mao nga dili kinahanglan nga adunay usa ka makina sa bangko alang sa matag pisikal nga bangko.
- Ang mga makina sa bangko mahimong ma-configure, apan kini usa ka tradeoff tali sa lugar ug pasundayag.
- Ang gitugot nga gidaghanon sa mga makina sa bangko gikan sa 2-8.
- Sa kasagaran, ang 4 nga Bank Machines gi-configure pinaagi sa mga parameter sa RTL.
- Aron usbon ang Bank Machines, tagda ang parameter nBANK_MACHS = 8 nga anaa sa memc_ui_top Example para sa 8 Bank Machines – nBANK_MACHS = 8
Nahibal-an na nimo karon ang mga hinungdan nga nag-impluwensya sa pasundayag.
Hunahunaa ang usa ka upstream nga aplikasyon nga naghatag kanimo 512 data bytes matag pakete ug kinahanglan nimo nga i-save kini sa lainlaing mga lokasyon sa memorya. Ingon nga ang 512 data bytes katumbas sa 64 DDR3 data bursts, re-run ang example disenyo uban sa usa ka stimulus file nga adunay 512 ka sinulat, 512 ka pagbasa ug row switching alang sa matag 64 ka pagsulat o pagbasa:
- 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
Sa katapusan sa simulation imong makita nga ang paggamit sa bus anaa sa 77 porsyento.
Figure 11: Performance Statistics para sa 512 writes ug 512 reads – Row switching para sa 64 writes o reads.
Mahimo nimong i-apply ang kahibalo nga nakat-unan sa naunang seksyon aron mapauswag ang kahusayan. Uban sa a view sa paggamit sa tanan nga mga bangko imbes nga usbon ang linya, usba ang address pattern aron usbon ang bangko sama sa gipakita sa ubos.
Katumbas kini sa pagbutang sa ROW_BANK_Column sa setting sa pagmapa sa address sa memorya sa 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
Sa pagtapos sa simulation imong makita nga ang naunang 77 Porsiyento nga Paggamit sa Bus kay 87 na!
Kung kinahanglan nimo ang mas taas nga kahusayan, mahimo kang moadto alang sa dagkong mga gidak-on sa pakete nga 1024 o 2048 bytes, o ikonsiderar ang usa ka manwal nga pag-refresh.
Mubo nga sulat: Wala gidasig ni Xilinx ang pag-bypass sa pag-refresh sa controller tungod kay dili kami sigurado kung makit-an ba nimo ang Jedec auto refresh timing nga makaapekto sa kasaligan sa datos.
Gikan sa controller nga bahin mahimo nimong usbon ang nBANk_MACH ug makita ang pag-uswag sa pasundayag.
Bisan pa, mahimo’g makaapekto kini sa imong timing sa disenyo, palihug tan-awa (Tubag sa Xilinx 36505) para sa mga detalye sa nBANk_MACH
Ablihi ang core_name_mig_sim.v file ug usba ang mga parameter nBANK_MACHS gikan sa 4 ngadto sa 8 ug pag-usab sa simulation. Aron ma-epekto ang parameter value sa hardware, kinahanglan nimo nga i-update ang core_name_mig.v file.
Gigamit nako ang parehas nga sumbanan diin nakuha namon ang 87% nga paggamit sa bus (numero -12).
Uban sa nBANK_MACHS gibutang sa 8, ang kahusayan karon 90%.
Himoa usab nga timan-i nga ang ½ ug ¼ controllers negatibong makaapekto sa kahusayan tungod sa ilang mga latency.
Kay example, tungod kay makapadala ra kami og mga sugo matag 4 nga mga siklo sa CK usahay adunay dugang nga padding kung nagsunod sa minimum nga mga spec sa DRAM timing, nga makapakunhod sa kahusayan gikan sa teoretikal.
Sulayi ang lainlaing mga tigkontrol aron makit-an ang usa nga nahiangay sa imong kinahanglanon sa kahusayan.
Mga pakisayran
- Zynq-7000 AP SoC ug 7 Series FPGAs MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
Kasaysayan sa Pagbag-o
13/03/2015 – Inisyal nga pagpagawas
Pag-download sa PDF: Xilinx DDR2 MIG 7 Giya sa Pagbanabana sa Pagganap