Xilinx DDR2 MIG 7 කාර්ය සාධන ඇස්තමේන්තු මාර්ගෝපදේශය
වැදගත් සටහන: පිළිතුරු වාර්තාවක බාගත කළ හැකි මෙම PDF එහි භාවිතා කිරීමේ හැකියාව සහ කියවීමේ හැකියාව වැඩි දියුණු කිරීම සඳහා සපයනු ලැබේ. පිළිතුරු වාර්තා බව සැලකිල්ලට ගැනීම වැදගත්ය Webනව තොරතුරු ලබා ගත හැකි වන විට නිතර යාවත්කාලීන වන - පදනම් වූ අන්තර්ගතය. Xilinx තාක්ෂණික සහාය වෙත පිවිසීමට ඔබට මතක් කර ඇත Webඅඩවිය සහ නැවතview (Xilinx Answer 63234) මෙම පිළිතුරේ නවතම අනුවාදය සඳහා.
හැඳින්වීම
DDR2 සහ DDR3 මතකයන් ගෘහනිර්මාණය කර ඇති ආකාරය සහ MIG 7 ශ්රේණි පාලකය නිර්මාණය කර ඇති නිසා, කාර්ය සාධනය කෙළින්ම ඉදිරියට නොයයි.
එයට විවිධ Jedec කාල පරාමිති සහ පාලක ගෘහ නිර්මාණ ශිල්පය පිළිබඳ අවබෝධයක් අවශ්ය වන අතර, ඇස්තමේන්තු ලබා ගැනීමට ඔබට අනුහුරුකරණ ක්රියාත්මක කිරීමට අවශ්ය වනු ඇත.
කාර්ය සාධනය නිර්ණය කිරීමේ පොදු මූලධර්මය සමාන වන නමුත් මෙම ලේඛනය MIG ex භාවිතා කර කාර්යක්ෂමතාව ලබා ගැනීමට පහසු මාර්ගයක් සපයයි.ampපරීක්ෂණ බංකුව සහ උත්තේජක ආධාරයෙන් le නිර්මාණය fileමෙහි අමුණා ඇත.
Band ලදායී කලාප පළල
DRAM දත්ත බසය උපරිම කලාප පළලක් ලබා ගන්නේ කියවීමේ සහ ලිවීමේ පිපිරීම් වලදී පමණක් වන අතර එහි උඩිස් කාර්ය සාධන දත්ත අනුපාතය අඩු කරයි.
හිටපු කිහිප දෙනෙක්ampඋඩිස් වියදම් වන්නේ:
- එකම බැංකුවේ පේළි වෙත ප්රවේශ වීමට පෙර ආරෝපණය කරන කාලය (ප්රවේශ ලිපිනය එකම පේළියේ පිටු පහරේ නොවේ)
- ලිවීමේ සිට කියවීමේ ප්රවේශය දක්වා වෙනස් කිරීමට ප්රතිසාධන කාලය ලියන්න
- කියවීමේ සිට ලිවීමේ ප්රවේශය වෙනස් කිරීමට බස් රථ හැරවුම් කාලය
ඵලදායී කලාප පළල = උපරිම කලාප පළල * කාර්යක්ෂමතාව
MIG නිර්මාණ පරම්පරාව
MIG IP සහ ex පිළිබඳ පියවරෙන් පියවර විස්තර සඳහා UG586 පරිච්ඡේදය 1 වෙත යොමු වන්නample නිර්මාණ පරම්පරාව.
MIG 7 ශ්රේණියේ කාර්ය සාධන අනුකරණය ධාවනය කිරීමට පෙර, ඔබේ සමාකරණ පරිසරය යහපත් බව සහතික කර ගැනීමට පහත දේ කරන්න. MIG ex එක විවෘත කරන්නample සුදුසු පුස්තකාල සැලසුම් කර සිතියම්ගත කරන්න, අනුකරණය ක්රියාත්මක කරන්න, සහ ඔබට පිටපතේ “පරීක්ෂණය සමත්” පණිවිඩය දැකිය හැකි බව සහතික කරන්න.
ප්රවාහය නිරූපණය කිරීම සඳහා මම xc7vx690tffg1761-2 සඳහා MIG IP එකක් ජනනය කර හිටපුample නිර්මාණය.
මතක ලිපින බිටු සහ මතක ලිපින සිතියම්කරණ තේරීම සටහන් කළ යුතු කරුණු දෙකකි.
උදාහරණයක් ලෙසample, මම මතක කොටස drop down විකල්ප යටතේ MT41J128M8XX-125 තෝරාගෙන ඇත.
රූපය-1 වෙතින් තෝරාගත් මතක කොටස සඳහා, පේළිය = 14, තීරුව = 10 සහ බැංකුව = 3, එබැවින් app_addr_width = පේළිය + තීරුව + බැංකුව + ශ්රේණිය = 28
ඔබට BANK_ROW_COLUMN හෝ ROW BANK තීරුව තෝරාගත හැක.
මම පෙරනිමි ලිපින සිතියම්ගත කිරීම වන ROW BANK තීරුවෙන් ඉවත් වී ඇත.
Example නිර්මාණය සංස්ලේෂණය කළ හැකි පරීක්ෂණ බංකුවක් සහිත සමාකරණය
සිමියුලේෂන් සිටුවම් යටතේ, QuestaSim/ModelSim සිමියුලේටරය තෝරා සම්පාදනය කළ පුස්තකාලයේ ස්ථානය වෙත බ්රවුස් කරන්න.
තෙවන පාර්ශවීය මෙවලම් ස්ථාපන මාර්ගයක් වෙත යොමු කිරීම, ඉලක්ක සිමියුලේටරය තේරීම සහ පුස්තකාල සම්පාදනය කිරීම සහ සිතියම්ගත කිරීම පිළිබඳ විස්තර සඳහා, ඔබට (UG900) Vivado Design Suite User Guide Logic Simulation වෙත යොමු විය හැක.
GUI හරහා සමාකරණය ධාවනය කරන්න (ව්යාපෘති කළමණාකරු තුළ ධාවන සමාකරණ පටිත්ත ක්ලික් කරන්න) සහ පිටපතෙහි “පරීක්ෂණය සමත්” පණිවිඩය ඔබ දකින බවට වග බලා ගන්න.
කාර්ය සාධන සමාකරණ RTL වෙනස් කිරීම්
- මූලාශ්ර ටැබය දකුණු-ක්ලික් කරන්න, "සමාකරණ මූලාශ්ර එකතු කරන්න හෝ සාදන්න" තෝරන්න, සහ mig7_perfsim_traffic_generator.sv වෙත බ්රවුස් කරන්න. file එය එකතු කිරීමට අවසන් ක්ලික් කරන්න.
- මූලාශ්ර ටැබය දකුණු-ක්ලික් කරන්න, "සමාකරණ මූලාශ්ර එකතු කරන්න හෝ සාදන්න" තෝරන්න, perfsim_stimulus.txt වෙත බ්රවුස් කර, එය එක් කිරීමට අවසන් කරන්න ක්ලික් කරන්න.
- හිටපු අයව කමෙන්ට් කරන්නampsim_tb_top.v හි le_top ක්ෂණිකව file.
- 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;
- දේශීය පරම 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 එකතු කරන්න fileඔරලෝසුව, පාලකය, ip_top, phy සහ UI ෆෝල්ඩරවල ඇත.
- RTL වෙනස්කම් සිදු කළ පසු සහ අවශ්ය සියල්ල fileඔබගේ සමාකරණ මූලාශ්ර වෙත s එකතු කරනු ලැබේ, ධූරාවලිය රූප සටහන 5 ට සමාන විය යුතුය.
ද fileරතු පැහැයෙන් උද්දීපනය කර ඇති s අලුතින් එකතු කර ඇත, සහ "?" තෝරාගත් මතක වින්යාසය 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 පරාමිතිය මත පදනම්ව එකලස් කර පරිශීලක අතුරුමුහුණත වෙත යවනු ලැබේ
Command Repeat (Command Repeat [7:0])
විධාන පුනරාවර්තන ගණන යනු පරිශීලක අතුරුමුහුණතෙහි අදාළ විධානය නැවත නැවත කරන වාර ගණනයි. එක් එක් පුනරාවර්තනය සඳහා ලිපිනය 8 කින් වැඩි කෙරේ. උපරිම පුනරාවර්තන ගණන 128 කි.
පරීක්ෂණ බංකුව තීරු මායිම සඳහා පරීක්ෂා නොකරන අතර වර්ධක අතරතුර උපරිම තීරු සීමාවට ළඟා වුවහොත් එය වටා එති.
විධාන 128 පිටුව පුරවයි. 0 හැර වෙනත් ඕනෑම තීරු ලිපිනයක් සඳහා, 128 හි පුනරාවර්තන ගණන තීරු මායිම හරහා ගොස් තීරු ලිපිනයේ ආරම්භය දක්වා එතීම අවසන් වේ.
බස් භාවිතය
බස් භාවිතය පරිශීලක අතුරුමුහුණතෙහි ගණනය කරනු ලබන්නේ සම්පූර්ණ කියවීම් සහ ලිවීම් ගණන සැලකිල්ලට ගෙන පහත සමීකරණය භාවිතා කරයි:
- BL8 මතක ඔරලෝසු චක්ර හතරක් ගනී
- end_of_stimulus යනු සියලුම විධානයන් සිදු කරන කාලයයි.
- calib_done යනු ක්රමාංකනය සිදු කරන කාලයයි.
Example රටා
මෙම හිටපු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 ex සමඟ අවසන්ample නිර්මාණ අනුකරණය. මෙයින් ඇඟවෙන්නේ ඔබේ සමාකරණ සැකසුම සූදානම් බවත්, ඔබ කාර්ය සාධන සමාකරණ RTL වෙනස් කිරීම් සිදු කර ඇති බවත්, නව සමාකරණ ධුරාවලිය නිවැරදි බවත් ඔබ උත්තේජක රටා තේරුම් ගෙන ඇති බවත්ය. perfsim_stimulus.txt හි ලිවීම් සහ කියවීම් 16ක් සමඟින් සමාකරණය නැවත වරක් ධාවනය කරන්න.
සියල්ල ධාවනය කරන්න, init_calib_complete සංඥාව තහවුරු වන තෙක් රැඳී සිටින්න, එවිට ඔබට යෝජිත ලිවීම් සහ කියවීම් සංඛ්යාව දැකගත හැකි වනු ඇත. එවිට අනුකරණය නතර වනු ඇත.
අනුකරණයෙන් ඉවත් වීමට ඔබෙන් විමසූ විට, නැත යන්න තෝරා ඔබට කාර්ය සාධන සංඛ්යාලේඛන දැක ගත හැකි පිටපත් කවුළුව වෙත යන්න.
ඔබ තෝරා ගන්නේ නම් "අනුකරණයෙන් ඉවත් වන්න" කාර්ය සාධන සංඛ්යාලේඛන a වෙත ලියා ඇත file නම් කර ඇත mig_band_width_output.txt sim_1/behave හි පිහිටා ඇත ෆෝල්ඩරය.
Example බහලුම මාර්ගය:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
ඇයි එහෙම ප්රතිශතයක් කියලා ඔබ හිතනවා ඇතිtage බස් භාවිතය ony 29. එකම IP සැකසුම් සමඟ අනුකරණය නැවත ධාවනය කරන්න, නමුත් උත්තේජනය වෙනස් කරන්න file 256 දක්වා ලියන අතර 256 කියවා ඇත
ff_0_0_0000_000_0
ff_0_0_0000_000_1
දැන් ඔබට සියයට පෙනෙනු ඇතtage ලෙස 85, එයින් ඇඟවෙන්නේ DDR3 ලිවීම් සහ කියවීමේ පිපිරීම් සඳහා දිගු අනුපිළිවෙලක් සඳහා වඩා හොඳ බස් භාවිතයක් ලබා දෙන බවයි.
කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා පොදු ක්රම
කාර්යක්ෂමතාවයට බලපාන සාධක කොටස් දෙකකට බෙදිය හැකිය:
- මතකය විශේෂිත
- පාලකය විශේෂිත
රූපය 9 ඔබට ඕවරයක් ලබා දෙයිview මතකය විශේෂිත වූ නියමයන්.
SRAMs සහ Block Memories මෙන් නොව DDR2 හෝ DDR3 කාර්ය සාධනය උපරිම දත්ත අනුපාතය පමණක් නොවේ.
එය බොහෝ කාල සාධක මත රඳා පවතී, ඇතුළුව:
- tRCD: පේළි විධාන ප්රමාදය (හෝ ras to cas ප්රමාදය).
- tCAS(CL): තීරු ලිපින ස්ට්රෝබ් ප්රමාදය.
- tRP: පේළි පූර්ව ආරෝපණ ප්රමාදය.
- tRAS: පේළියේ සක්රීය වේලාව (පෙර වෙනස් කිරීමට සක්රිය කරන්න).
- tRC: පේළි චක්රය කාලය. tRC = tRAS + tRP
- tRAC: රේඩම් ප්රවේශ ප්රමාදය. tRAC = tRCD + tCAS
- tCWL: කැස් ලිවීමේ ප්රමාදය.
- tZQ: ZQ ක්රමාංකන කාලය.
- tRFC: Row Refresh Cycle Time
- tWTR: ප්රමාදය කියවීමට ලියන්න. අවසාන ලිවීමේ ගනුදෙනුව කියවන්න විධාන කාලය වෙත.
- tWR: ප්රතිසාධන කාලය ලියන්න. පෙර ආරෝපණ වේලාවට අවසන් ලිවීමේ ගනුදෙනුව
ලැයිස්තුගත කර ඇති සියලුම පරාමිතිවල කාලය රඳා පවතින්නේ භාවිතා කරන මතකයේ වර්ගය සහ මතක කොටස් වේග ශ්රේණිය මත ය.
නිර්වචන සහ කාල නියමයන් පිළිබඳ වැඩි විස්තර DDR2 DDR3 JEDEC හෝ ඕනෑම මතක උපාංග දත්ත පත්රිකාවකින් සොයාගත හැකිය.
කාර්යක්ෂමතාව ප්රධාන වශයෙන් රඳා පවතින්නේ මතකයට ප්රවේශ වන ආකාරය මතය. විවිධ ලිපින රටා විවිධ කාර්යක්ෂමතා ප්රතිඵල ලබා දෙයි.
මතක කාල සටහන උඩින්
- නව බැංකු/පේළිවලට මාරු කිරීමේදී හෝ එම බැංකුව තුළම පේළි වෙනස් කිරීමේදී සක්රිය කිරීමේ කාලය සහ පූර්ව ආරෝපණ කාලය.- එබැවින් ඔබ පේළි වෙනස් කිරීම අඩු කළහොත්, මෙය tRCD සහ tRP ඉවත් කළ හැක.
- අඛණ්ඩ ලිවීමේ හෝ කියවීමේ විධාන යවන්න - tCCD කාලය පවත්වා ගැනීම.
- කියවීමට ලිවීම අවම කරන්න සහ ලිවීමට කියවීමට විධාන වෙනස් කිරීම - කියවීමේ ප්රවේශයන් වෙනස් කිරීමට ප්රතිසාධන කාලය ලියන්න, කියවීමේ සිට ලිවීමට වෙනස් කිරීමට බස් හැරවුම් කාලය
- නිවැරදි නැවුම් කාල පරතරයක් සකසන්න.
- DDR3 SDRAM සඳහා tREFI හි සාමාන්ය ආවර්තිතා පරතරයකදී චක්ර නැවුම් කිරීම අවශ්ය වේ.
- උපරිම අමතර Refresh විධාන 8ක් කල්තියා නිකුත් කළ හැක ("ඇදගෙන"). මෙය නැවුම් කිරීම් ගණන අඩු නොකරයි, නමුත් අවට Refresh විධාන දෙකක් අතර උපරිම පරතරය 9 × tREFI ට සීමා වේ.
- සියලුම බැංකු භාවිතා කරන්න - සුදුසු ආමන්ත්රණ යාන්ත්රණයක් වඩාත් සුදුසුය.
- පේළි-බැංකු-තීරුව: අනුක්රමික ලිපින අවකාශයක් හරහා සිදුවන ගනුදෙනුවක් සඳහා, පවතින පේළියක අවසානයට ළඟා වූ විට ගනුදෙනුව දිගටම කරගෙන යාමට හරය DRAM උපාංගයේ ඊළඟ බැංකුවේ එම පේළියම ස්වයංක්රීයව විවෘත කරයි. එය අනුක්රමික ලිපින ස්ථාන වෙත විශාල දත්ත පැකට් පුපුරා යාමට අවශ්ය යෙදුම් සඳහා හොඳින් ගැලපේ.
- බැංකු-පේළි-තීරුව: පේළි සීමාවක් පසු කරන විට, වත්මන් පේළිය වසා දමා එම බැංකුව තුළම තවත් පේළියක් විවෘත වේ. MSB යනු විවිධ බැංකු වලින් මාරු වීමට භාවිතා කළ හැකි බැංකු ලිපිනයකි. එය යම් කාලයක් සඳහා එක් මතක කොටසකට කෙටි, වැඩි අහඹු ගනුදෙනු සඳහා සුදුසු වන අතර පසුව තවත් කොටසකට (බැංකුව) පැනීම සඳහා සුදුසු වේ.
- පිපිරුම් දිග
- 8 ශ්රේණිවල DDR3 සඳහා BL 7 සහය දක්වයි. BC4 සතුව 50% ට වඩා අඩු කාර්යක්ෂමතාවයක් ඇත. මෙයට හේතුව BC4 ක්රියාත්මක කිරීමේ කාලය BL8 ට සමාන වීමයි. සංරචකය තුළ දත්ත ආවරණය කර ඇත.
- ඔබ සම්පූර්ණ පිපිරීමක් ලිවීමට අකමැති අවස්ථාවන්හිදී, දත්ත ආවරණය හෝ ලිවීමෙන් පසු කියවීම සලකා බැලිය හැක.
- නිසි ZQ පරතරයක් සකසන්න (DDR3 පමණි)
පාලකය ZQ Short (ZQCS) සහ ZQ Long (ZQCL) ක්රමාංකන විධාන දෙකම යවයි.- DDR3 Jedec සම්මතයට අනුගත වන්න
- ZQ ක්රමාංකනය JEDEC Spec JESD5.5-79 DDR3 SDRAM සම්මතයේ 3 කොටසෙහි සාකච්ඡා කෙරේ
- ZQ ක්රමාංකනය ක්රමාංකනය කරයි On Die Termination (ODT) VT හරහා සිදුවන වෙනස්කම් සඳහා ක්රමානුකූල කාල පරතරයන්හිදී
- තර්කය bank_common.v/vhd හි අඩංගු වේ
- පරාමිතිය Tzqcs මඟින් ZQ ක්රමාංකන විධානයක් මතකයට යවන වේගය තීරණය කරයි
- t කවුන්ටරය අක්රිය කිරීමට සහ app_zq_req භාවිතයෙන් අතින් යැවීමට හැකිය, එය නැවුම් කිරීමක් අතින් යැවීමට සමාන වේ.
විස්තර සඳහා (Xilinx පිළිතුර 47924) බලන්න.
පාලක උඩිස්
- වරින් වර කියවීම් - යොමු කරන්න (Xilinx පිළිතුර 43344) විස්තර සඳහා.
- කියවීමේ කාල සීමාව වෙනස් නොකරන්න
- ලිවීමේදී ආවර්තිතා කියවීම් මඟ හැර සත්ය කියවීමකට පෙර මඟ හැරුණු කියවීම් සංඛ්යාව නිකුත් කරන්න
- නැවත සකස් කිරීම - යොමු කරන්න (Xilinx පිළිතුර 34392) විස්තර සඳහා.
පරිශීලක සහ AXI අතුරුමුහුණත් සැලසුම් සඳහා මෙය සක්රීය කර තිබීම වඩාත් සුදුසුය.- Reorder යනු විධාන කිහිපයක් ඉදිරියෙන් බලන තර්කය වන අතර මතක නොවන විධාන වලංගු කලාප පළලක් නොලබන ලෙස පරිශීලක විධාන අනුපිළිවෙල වෙනස් කරයි. කාර්ය සාධනය සැබෑ ගමනාගමන රටාවට ද සම්බන්ධ වේ.
- ලිපින රටාව මත පදනම්ව, නැවත ඇණවුම් කිරීම පූර්ව ආරෝපණය මග හැරීමට සහ විධාන සක්රිය කිරීමට උපකාරී වන අතර tRCD සහ tRP දත්ත කලාප පළල නොලබයි.
- බැංකු යන්ත්ර සංඛ්යාව වැඩි කිරීමට උත්සාහ කරන්න.
- පාලකයාගේ බොහෝ තර්කයන් බැංකු යන්ත්රවල පවතින අතර ඒවා DRAM බැංකුවලට අනුරූප වේ
- දී ඇති බැංකු යන්ත්රයක් ඕනෑම වේලාවක තනි DRAM බැංකුවක් කළමනාකරණය කරයි.
- බැංකු යන්ත්ර පැවරීම ගතික බැවින් සෑම භෞතික බැංකුවක් සඳහාම බැංකු යන්ත්රයක් තිබීම අවශ්ය නොවේ.
- බැංකු යන්ත්ර වින්යාසගත කළ හැකි නමුත් එය ප්රදේශය සහ කාර්ය සාධනය අතර හුවමාරුවකි.
- අවසර ලත් බැංකු යන්ත්ර ගණන 2-8 දක්වා පරාසයක පවතී.
- පෙරනිමියෙන්, බැංකු යන්ත්ර 4ක් RTL පරාමිති හරහා වින්යාස කර ඇත.
- බැංකු යන්ත්ර වෙනස් කිරීමට, memc_ui_top Ex හි අඩංගු nBANK_MACHS = 8 පරාමිතිය සලකා බලන්නampබැංකු යන්ත්ර 8ක් සඳහා - nBANK_MACHS = 8
කාර්ය සාධනයට බලපාන සාධක ගැන ඔබ දැන් දන්නවා.
ඔබට පැකට්ටුවකට දත්ත බයිට් 512ක් ලබා දෙන upstream යෙදුමක් සලකා බලන අතර ඔබට ඒවා විවිධ මතක ස්ථාන වෙත සුරැකීමට අවශ්ය වේ. දත්ත බයිට් 512 ක් DDR64 දත්ත පිපිරීම් 3 ට සමාන වන බැවින්, හිටපු එක නැවත ධාවනය කරන්න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 ලිවීම් හෝ කියවීම සඳහා පේළි මාරු කිරීම.
කාර්යක්ෂමතාව වැඩි දියුණු කිරීම සඳහා ඔබට දැන් පෙර කොටසේ උගත් දැනුම යෙදිය හැකිය. සමග 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 විශාල පැකට් ප්රමාණ සඳහා යා හැක, නැතහොත් අතින් නැවුම් කිරීමක් සලකා බලන්න.
සටහන: ඔබට දත්ත විශ්වසනීයත්වයට බලපාන Jedec ස්වයංක්රීය නැවුම් කිරීමේ වේලාව හමුවීමට ඔබට හැකි දැයි අපට විශ්වාස නැති බැවින් Xilinx පාලක නැවුම් කිරීම මඟ හැරීම දිරිමත් නොකරයි.
පාලක පැත්තෙන් ඔබට 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, අපට සෑම CK චක්ර 4කටම පමණක් විධාන යැවිය හැකි බැවින්, අවම DRAM කාල පිරිවිතරයන්ට අනුගත වන විට සමහර විට අමතර පිරවුමක් ඇත, එය න්යායික වශයෙන් කාර්යක්ෂමතාව අඩු කළ හැක.
ඔබේ කාර්යක්ෂමතා අවශ්යතාවයට ගැලපෙන එක සොයා ගැනීමට විවිධ පාලකයන් උත්සාහ කරන්න.
යොමු කිරීම්
- Zynq-7000 AP SoC සහ 7 Series FPGAs MIS v2.3 [UG586]
- Xilinx MIG විසඳුම් මධ්යස්ථානය http://www.xilinx.com/support/answers/34243.html
සංශෝධන ඉතිහාසය
13/03/2015 - මූලික නිකුතුව
PDF බාගන්න: Xilinx DDR2 MIG 7 කාර්ය සාධන ඇස්තමේන්තු මාර්ගෝපදේශය