د Xilinx DDR2 MIG 7 د فعالیت اټکل لارښود
مهمه یادونه: د ځواب ریکارډ دا ډاونلوډ وړ PDF د دې کارونې او لوستلو وړتیا لوړولو لپاره چمتو شوی. دا مهمه ده چې په یاد ولرئ چې د ځواب ریکارډونه دي Web- د منځپانګې پر بنسټ چې په مکرر ډول تازه کیږي ځکه چې نوي معلومات شتون لري. تاسو ته یادونه کیږي چې د Xilinx تخنیکي ملاتړ څخه لیدنه وکړئ Webسایټ او بیاview (Xilinx ځواب 63234) د دې ځواب وروستۍ نسخه لپاره.
پیژندنه
د دې لپاره چې د DDR2 او DDR3 یادښتونه جوړ شوي او د MIG 7 لړۍ کنټرولر ډیزاین شوی، فعالیت مستقیم مخکی ندی.
دا د مختلف Jedec مهال ویش پیرامیټونو او کنټرولر جوړښت پوهیدو ته اړتیا لري، او تاسو به د اټکلونو ترلاسه کولو لپاره سمولونو چلولو ته اړتیا ولرئ.
د فعالیت د ټاکلو لپاره عمومي اصول یو شان دی مګر دا سند د MIG ex کارولو سره د موثریت ترلاسه کولو لپاره اسانه لار وړاندې کوي.ampد ټیسټ بنچ او محرک په مرسته ډیزاین fileدلته ضمیمه ده.
اغيزمن بانډوت
د DRAM ډیټا بس یوازې د لوستلو او لیکلو په جریان کې نږدې لوړ بینډ ویت ترلاسه کوي او د دې سر سر د مؤثره ډیټا نرخ ټیټوي.
یو څو پخوانيampد سر سرونه دا دي:
- په ورته بانک کې قطارونو ته د لاسرسي دمخه وخت (د لاسرسي پته په ورته قطار پاڼه کې نه ده)
- د بیا رغونې وخت ولیکئ ترڅو د لیکلو څخه لوستلو لاسرسي ته بدل شي
- د بس بدلولو وخت د لوستلو څخه لیکلو ته د لاسرسي لپاره بدلیږي
اغیزمن بانډ ویت = د لوړ بینډ ویت * موثریت
د MIG ډیزاین نسل
د MIG IP او پخوا په اړه د ګام په ګام توضیحاتو لپاره UG586 فصل 1 ته مراجعه وکړئampد ډیزاین نسل.
د MIG 7 لړۍ فعالیت سمولیشن چلولو دمخه، لاندې کار وکړئ ترڅو ډاډ ترلاسه کړئ چې ستاسو د سمولو چاپیریال سم دی. د MIG پخوانی خلاص کړئampمناسب کتابتونونه ډیزاین او نقشه کړئ، سمول چل کړئ، او ډاډ ترلاسه کړئ چې تاسو په لیږد کې د "ازموینې پاس شوی" پیغام لیدلی شئ.
د جریان ښودلو لپاره ما د xc7vx690tffg1761-2 لپاره MIG IP رامینځته کړی او پخوانی یې غوښتنه کړیampد ډیزاین.
دوه شیان چې باید یادونه وشي د حافظې پته بټونه او د حافظې پته نقشه انتخاب دي.
د مثال لپارهample، ما د حافظې برخې ډراپ ډاون اختیارونو لاندې MT41J128M8XX-125 غوره کړی دی.
د شکل - 1 څخه د ټاکل شوي حافظې برخې لپاره، قطار = 14، کالم = 10 او بانک = 3، نو app_addr_width = قطار + کالم + بانک + درجه = 28
تاسو کولی شئ د BANK_ROW_COLUMN یا د ROW BANK کالم وټاکئ.
ما د ROW BANK کالم پریښود چې د ډیفالټ پته نقشه ده.
Exampد ترکیب وړ ازموینې بینچ سره ډیزاین سمول
د سمولیشن ترتیباتو لاندې، QuestaSim/ModelSim سمیلیټر غوره کړئ او د ترتیب شوي کتابتونونو ځای ته وګرځئ.
د دریمې ډلې وسیلو نصبولو لارې ته د اشارې په اړه توضیحاتو لپاره ، د هدف سمیلیټر غوره کول ، او د کتابتونونو تالیف او نقشه کول ، تاسو کولی شئ مراجعه وکړئ (UG900) Vivado ډیزاین سویټ کارونکي لارښود منطق سمول
سمولیشن د GUI له لارې پرمخ وړئ (د پروژې مدیر کې د چلولو سمولیشن ټب کلیک وکړئ) او ډاډ ترلاسه کړئ چې تاسو په لیږد کې د "ازموینې تیر شوي" پیغام وګورئ.
د فعالیت سمول RTL تعدیلات
- د سرچینو ټب کې ښي کلیک وکړئ، "د سمولو سرچینې اضافه کړئ یا جوړ کړئ" غوره کړئ، او mig7_perfsim_traffic_generator.sv ته لټون وکړئ. file او د اضافه کولو لپاره په پای کلیک وکړئ.
- د سرچینو ټب کې ښي کلیک وکړئ، "د سمولو سرچینې اضافه کړئ یا رامینځته کړئ" غوره کړئ، perfsim_stimulus.txt ته لټون وکړئ، او د اضافه کولو لپاره پای ته کلیک وکړئ.
- د پخواني په اړه تبصره وکړئample_top instantiation په 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;
- wire app_sr_req = 0 ;
- wire app_ref_req = 0 ;
- wire 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 اضافه کړئ fileپه کلاکنګ، کنټرولر، ip_top، phy او UI فولډرونو کې.
- یوځل چې د RTL بدلونونه ترسره شي او ټول اړین دي files ستاسو د سمولو سرچینې ته اضافه شوي، درجه بندي باید د 5 شکل سره ورته وي.
د fileپه سور کې روښانه شوي نوي اضافه شوي، او "؟" د ECC اړوند ماډلونو کې تمه کیږي ځکه چې د ټاکل شوي حافظې ترتیب د ECC اختیار غیر فعال دی.
محرک File تفصیل
د هر محرک نمونه 48 بټونه دي او بڼه یې د 6-1 څخه تر 6-4 شکلونو کې تشریح شوې.
د پته کوډ کول (پته [35:0])
پته په محرک کې د 7-1 شکل څخه تر 7-6 شکل پورې کوډ شوې ده. د پتې ټولې ساحې باید د هیکساډیسیمل بڼه کې دننه شي. د پتې ټولې ساحې یو عرض دی چې د هیکساډیسیمل بڼه کې د ننوتلو لپاره په څلورو سره ویشل کیږي. د ازموینې بینچ یوازې د پتې ساحې اړین بټونه د حافظې کنټرولر ته لیږي.
د مثال لپارهample، په اتو بانکي ترتیب کې، یوازې بانک بټونه [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 هغه وخت دی کله چې کیلیبریشن ترسره کیږي.
Exampد نمونې
دا پخوانيamples د 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 پخوانی سره ترسره شويampد ډیزاین سمول. دا پدې معنی ده چې ستاسو سمولیشن ترتیب چمتو دی، تاسو د فعالیت سمولیشن RTL تعدیلات ترسره کړي، د نوي سمولیشن درجه بندي سمه ده او تاسو د محرک نمونو پوه شوي یاست. په perfsim_stimulus.txt کې د 16 لیکنو او لوستلو سره یو ځل بیا سمولیشن چل کړئ.
ټول چل کړئ، تر هغه پورې انتظار وکړئ چې د init_calib_complete سیګنال تایید شوی وي، او تاسو به د دې وړتیا ولرئ چې د لیکلو او لوستلو وړاندیز شوي شمیر وګورئ. بیا سمول به ودریږي.
کله چې تاسو د سمولیشن پریښودو ته وهڅول شئ، نه غوره کړئ او د لیږد کړکۍ ته لاړ شئ چیرې چې تاسو به وکولی شئ د فعالیت احصایې وګورئ.
که تاسو وټاکئ "انقلاب پریږدئ" د فعالیت احصایې به الف ته ولیکل شي 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د e بس کارول ony 29. سمولیشن د ورته IP ترتیباتو سره بیا پیل کړئ مګر یوازې محرک بدل کړئ file 256 لیکي او 256 لوستل کیږي
ff_0_0_0000_000_0
ff_0_0_0000_000_1
تاسو به اوس سلنه وګورئtage د 85 په توګه، دا پدې معنی ده چې DDR3 د لیکلو او لوستلو د اوږدې لړۍ لپاره د بس کارولو غوره وړاندیز کوي.
د فعالیت ښه کولو لپاره عمومي لارې
هغه فکتورونه چې په موثریت اغیزه کوي په دوه برخو ویشل کیدی شي:
- د حافظې ځانګړی
- د کنټرولر مشخص
9 شکل تاسو ته یو اوور درکويview د هغو شرایطو څخه چې د حافظې ځانګړي دي.
د SRAMs او بلاک یادونو برعکس DDR2 یا DDR3 فعالیت یوازې د ډیټا اعظمي نرخ ندی.
دا په ډیری وخت فکتورونو پورې اړه لري، په شمول:
- tRCD: د قطار کمانډ ځنډ (یا د cas ځنډ څخه راس).
- tCAS(CL): د کالم پته سټروب ځنډ.
- tRP: د قطار پریچارج ځنډ.
- TRAS: قطار فعال وخت (د مخکینۍ تبادلې لپاره فعال کړئ).
- tRC: د قطار دوره وخت. tRC = trAS + tRP
- TRAC: د رادوم لاسرسي ځنډ. trAC = tRCD + tCAS
- tCWL: د لیکلو ځنډ.
- 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 لنډ (ZQCS) او ZQ اوږد (ZQCL) کیلیبریشن کمانډونه لیږي.- د DDR3 Jedec معیار ته غاړه کیږدئ
- د ZQ کیلیبریشن د JEDEC ځانګړتیا JESD5.5-79 DDR3 SDRAM معیار په 3 برخه کې بحث شوی
- د ZQ کیلیبریشن په منظم وقفونو کې د مرو پای ته رسیدو (ODT) اندازه کوي ترڅو د VT په اوږدو کې توپیرونه حساب کړي
- منطق په bank_common.v/vhd کې شتون لري
- پیرامیټ Tzqcs هغه نرخ ټاکي چې په کوم کې د ZQ کیلیبریشن کمانډ حافظې ته لیږل کیږي
- دا ممکنه ده چې کاونټر غیر فعال کړئ او په لاسي ډول د app_zq_req په کارولو سره واستوئ ، دا په لاسي ډول د ریفریش لیږلو ته ورته دی.
د جزیاتو لپاره (Xilinx ځواب 47924) ته مراجعه وکړئ.
د کنټرولر سرونه
- دوراني لوستل – مراجعه وکړئ (Xilinx ځواب 43344) د جزیاتو لپاره.
- د لوستلو موده مه بدلوئ
- د لیکلو پرمهال دوره لوستل پریږدئ او د ریښتیني لوستلو دمخه د ورک شوي لوستلو شمیره ورکړئ
- بیا ترتیب کول - مراجعه وکړئ (Xilinx ځواب 34392) د جزیاتو لپاره.
د کارن او AXI انٹرفیس ډیزاینونو لپاره دا غوره ده چې دا فعاله وي.- بیا تنظیم کول هغه منطق دی چې څو کمانډونه وړاندې کوي او د کارونکي کمانډ ترتیب بدلوي ترڅو د غیر حافظې کمانډونه د اعتبار وړ بینډ ویت نه ونیسي. فعالیت هم د حقیقي ترافیک نمونې پورې اړه لري.
- د پتې نمونې پراساس، بیا تنظیم کول د پریچارج پریښودو او کمانډونو فعالولو کې مرسته کوي او TRCD او TRP د ډیټا بینډ چوکۍ نه نیسي.
- هڅه وکړئ د بانک ماشینونو شمیر زیات کړئ.
- د کنټرولر ډیری منطق د بانک ماشینونو کې ژوند کوي او دوی د DRAM بانکونو سره مطابقت لري
- د ورکړل شوي بانک ماشین په هر وخت کې یو واحد DRAM بانک اداره کوي.
- د بانک ماشین دنده متحرک ده نو اړینه نده چې د هر فزیکي بانک لپاره د بانک ماشین ولرئ.
- د بانک ماشینونه تنظیم کیدی شي، مګر دا د ساحې او فعالیت تر مینځ تجارت دی.
- د بانک ماشینونو د منلو وړ شمیر د 2-8 څخه دی.
- په ډیفالټ ډول، د 4 بانک ماشینونه د RTL پیرامیټونو له لارې ترتیب شوي.
- د بانک ماشینونو بدلولو لپاره، د nBANK_MACHS = 8 پیرامیټر په پام کې ونیسئ چې په memc_ui_top Ex کې شامل ديampد 8 بانک ماشینونو لپاره - nBANK_MACHS = 8
تاسو اوس د هغه فکتورونو څخه خبر یاست چې فعالیت اغیزه کوي.
یو اپ سټریم غوښتنلیک په پام کې ونیسئ چې تاسو ته په هر پاکټ کې 512 ډیټا بایټ درکوي او تاسو اړتیا لرئ دا مختلف حافظې ځایونو ته خوندي کړئ. لکه څنګه چې 512 ډیټا بایټ د 64 DDR3 ډیټا برسټ سره مساوي دی ، پخوانی بیا پرمخ وړئampد محرک سره ډیزاین 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 لیکلو یا لوستلو لپاره قطار بدلول.
تاسو اوس کولی شئ د موثریت د ښه کولو لپاره په مخکینۍ برخه کې زده شوي پوهه پلي کړئ. سره د a 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 دي!
که تاسو لاهم لوړ موثریت ته اړتیا لرئ ، تاسو کولی شئ د 1024 یا 2048 بایټ لوی پیکټ اندازې لپاره لاړ شئ ، یا د لاسي ریفریش په پام کې ونیسئ.
یادونه: Xilinx د کنټرولر ریفریش بای پاس کول نه هڅوي ځکه چې موږ ډاډه نه یو که تاسو د Jedec آٹو ریفریش وخت پوره کولو توان ولرئ کوم چې د معلوماتو اعتبار اغیزه کوي.
د کنټرولر اړخ څخه تاسو کولی شئ nBANk_MACH بدل کړئ او په فعالیت کې پرمختګ وګورئ.
په هرصورت، دا ممکن ستاسو د ډیزاین وخت اغیزه وکړي، مهرباني وکړئ مراجعه وکړئ (Xilinx ځواب 36505) د جزیاتو لپاره په nBANk_MACH کې
د کور_نوم_میګ_سیم.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 لړۍ FPGAs MIS v2.3 [UG586]
- Xilinx MIG د حل مرکز http://www.xilinx.com/support/answers/34243.html
د بیاکتنې تاریخ
13/03/2015 – لومړنی خپرونه
د پی ډی اف ډاونلوډ: د Xilinx DDR2 MIG 7 د فعالیت اټکل لارښود