Xilinx DDR2 MIG 7 செயல்திறன் மதிப்பீட்டு வழிகாட்டி
முக்கிய குறிப்பு: ஒரு பதில் பதிவின் இந்த தரவிறக்கம் செய்யக்கூடிய PDF அதன் பயன்பாட்டினை மற்றும் வாசிப்புத்திறனை மேம்படுத்துவதற்காக வழங்கப்படுகிறது. பதில் பதிவுகள் என்பது குறிப்பிடத்தக்கது Webபுதிய தகவல்கள் கிடைக்கும்போது அடிக்கடி புதுப்பிக்கப்படும் அடிப்படையிலான உள்ளடக்கம். Xilinx தொழில்நுட்ப ஆதரவைப் பார்வையிட நினைவூட்டப்படுகிறீர்கள் Webதளம் மற்றும் மறுview (Xilinx Answer 63234) இந்தப் பதிலின் சமீபத்திய பதிப்பிற்கு.
அறிமுகம்
DDR2 மற்றும் DDR3 நினைவுகள் கட்டமைக்கப்பட்ட விதம் மற்றும் MIG 7 தொடர் கட்டுப்படுத்தி வடிவமைக்கப்பட்டுள்ளதால், செயல்திறன் நேராக இல்லை.
இதற்கு பல்வேறு ஜெடெக் டைமிங் அளவுருக்கள் மற்றும் கன்ட்ரோலர் ஆர்கிடெக்சர் பற்றிய புரிதல் தேவை, மேலும் மதிப்பீடுகளைப் பெற நீங்கள் சிமுலேஷன்களை இயக்க வேண்டும்.
செயல்திறனைத் தீர்மானிப்பதற்கான பொதுவான கொள்கை ஒன்றுதான் ஆனால் இந்த ஆவணம் MIG ex ஐப் பயன்படுத்தி செயல்திறனைப் பெற எளிதான வழியை வழங்குகிறது.ampசோதனை பெஞ்ச் மற்றும் தூண்டுதலின் உதவியுடன் le வடிவமைப்பு fileகள் இங்கே இணைக்கப்பட்டுள்ளன.
பயனுள்ள அலைவரிசை
DRAM டேட்டா பஸ், படிக்க மற்றும் எழுதும் போது மட்டுமே உச்சக்கட்ட அலைவரிசையை அடைகிறது மற்றும் அதன் மேல்நிலை தரவு வீதத்தை குறைக்கிறது.
ஒரு சில முன்னாள்ampமேல்நிலை செலவுகள்:
- ஒரே வங்கியில் வரிசைகளை அணுகுவதற்கான முன்கூட்டிய நேரம் (அணுகல் முகவரி அதே வரிசைப் பக்க வெற்றியில் இல்லை)
- மீட்டெடுப்பு நேரத்தை எழுதுவதிலிருந்து வாசிப்பு அணுகலுக்கு மாற்றவும்
- பஸ் திரும்பும் நேரம் வாசிப்பிலிருந்து எழுதுவதற்கான அணுகலை மாற்றும்
பயனுள்ள அலைவரிசை = உச்ச அலைவரிசை * செயல்திறன்
MIG வடிவமைப்பு தலைமுறை
MIG IP மற்றும் முன்னாள் பற்றிய படிப்படியான விவரங்களுக்கு UG586 அத்தியாயம் 1 ஐப் பார்க்கவும்ample வடிவமைப்பு தலைமுறை.
MIG 7 தொடர் செயல்திறன் உருவகப்படுத்துதலை இயக்குவதற்கு முன், உங்கள் உருவகப்படுத்துதல் சூழல் நன்றாக உள்ளதா என்பதை உறுதிப்படுத்த பின்வருவனவற்றைச் செய்யுங்கள். MIG முன்னாள் திறக்கவும்ample பொருத்தமான நூலகங்களை வடிவமைத்து வரைபடமாக்குங்கள், உருவகப்படுத்துதலை இயக்கவும், மேலும் டிரான்ஸ்கிரிப்ட்டில் "சோதனையில் தேர்ச்சி" என்ற செய்தியை நீங்கள் பார்க்க முடியும் என்பதை உறுதிப்படுத்தவும்.
ஓட்டத்தை நிரூபிக்க, xc7vx690tffg1761-2க்கு MIG ஐபியை உருவாக்கி, முன்னாள்ample வடிவமைப்பு.
நினைவில் கொள்ள வேண்டிய இரண்டு விஷயங்கள் நினைவக முகவரி பிட்கள் மற்றும் நினைவக முகவரி மேப்பிங் தேர்வு.
உதாரணமாகample, நான் MT41J128M8XX-125 ஐ மெமரி பார்ட் டிராப் டவுன் விருப்பங்களின் கீழ் தேர்ந்தெடுத்துள்ளேன்.
படம்-1 இலிருந்து தேர்ந்தெடுக்கப்பட்ட நினைவக பகுதிக்கு, வரிசை = 14, நெடுவரிசை = 10 மற்றும் வங்கி = 3, எனவே app_addr_width = row + column + bank + rank= 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.
- கீழே உள்ள RTL வரிகளை sim_tb_top,v இல் சேர்க்கவும்
- லோக்கல்பரம் APP_ADDR_WIDTH = 28;
- லோக்கல்பரம் APP_DATA_WIDTH = 64;
- லோக்கல்பரம் APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- லோக்கல்பரம் MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
- உள்ளூர்பரம் 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 மாறுபடும், நீங்கள் வேறு பெயரைத் தேர்ந்தெடுத்துள்ளீர்களா என்பதைச் சரிபார்த்து அதற்கேற்ப மாற்றவும்.
- ஐபி உருவாக்கப்பட்டவுடன் திறக்கவும் _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 இல் வலது கிளிக் செய்து, "ஆதாரங்களைச் சேர்" என்பதைத் தேர்ந்தெடுத்து, உலாவவும்
/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 ஐயும் சேர்க்கவும் fileகடிகாரம், கட்டுப்படுத்தி, ip_top, phy மற்றும் UI கோப்புறைகளில் கள்.
- RTL மாற்றங்கள் முடிந்தவுடன் தேவையான அனைத்தும் fileஉங்கள் உருவகப்படுத்துதல் மூலங்களில் கள் சேர்க்கப்பட்டுள்ளன, படிநிலையானது படம் 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 என்பது அளவுத்திருத்தம் செய்யப்படும் நேரமாகும்.
Example வடிவங்கள்
இந்த முன்னாள்amples BANK_ROW_COLUMN என அமைக்கப்பட்ட MEM_ADDR_ORDER ஐ அடிப்படையாகக் கொண்டது.
ஒற்றை வாசிப்பு முறை
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 முன்னாள் முடித்துவிட்டீர்கள்ample வடிவமைப்பு உருவகப்படுத்துதல். உங்கள் உருவகப்படுத்துதல் அமைப்பு தயாராக உள்ளது, செயல்திறன் உருவகப்படுத்துதல் RTL மாற்றங்களைச் செய்துள்ளீர்கள், புதிய உருவகப்படுத்துதல் படிநிலை சரியானது மற்றும் நீங்கள் தூண்டுதல் வடிவங்களைப் புரிந்துகொண்டுள்ளீர்கள் என்பதை இது குறிக்கிறது. perfsim_stimulus.txt இல் 16 எழுத்துகள் மற்றும் வாசிப்புகளுடன் சிமுலேஷனை மீண்டும் ஒருமுறை இயக்கவும்.
அனைத்தையும் இயக்கவும், init_calib_complete சமிக்ஞை உறுதிப்படுத்தப்படும் வரை காத்திருக்கவும், மேலும் உத்தேசிக்கப்பட்ட எழுதப்பட்ட மற்றும் வாசிப்புகளின் எண்ணிக்கையை நீங்கள் பார்க்க முடியும். உருவகப்படுத்துதல் பின்னர் நிறுத்தப்படும்.
உருவகப்படுத்துதலை விட்டு வெளியேறும்படி கேட்கப்படும்போது, இல்லை என்பதைத் தேர்ந்தெடுத்து, டிரான்ஸ்கிரிப்ட் சாளரத்திற்குச் செல்லவும், அங்கு நீங்கள் செயல்திறன் புள்ளிவிவரங்களைக் காண முடியும்.
நீங்கள் தேர்வு செய்தால் "உருவகப்படுத்துதலை நிறுத்து" செயல்திறன் புள்ளிவிவரங்கள் எழுதப்படும் 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 பஸ் பயன்பாடு 29 ஆகும். அதே ஐபி அமைப்புகளுடன் உருவகப்படுத்துதலை மீண்டும் இயக்கவும் ஆனால் தூண்டுதலை மாற்றவும் 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 செயல்திறன் என்பது அதிகபட்ச தரவு வீதம் மட்டுமல்ல.
இது பல நேர காரணிகளைப் பொறுத்தது, அவற்றுள்:
- டிஆர்சிடி: வரிசை கட்டளை தாமதம் (அல்லது ras to cas தாமதம்).
- tCAS(CL): நெடுவரிசை முகவரி ஸ்ட்ரோப் தாமதம்.
- டிஆர்பி: வரிசை ப்ரீசார்ஜ் தாமதம்.
- டிஆர்ஏஎஸ்: வரிசை செயலில் உள்ள நேரம் (முன்மாற்றம் செய்ய செயல்படுத்தவும்).
- டிஆர்சி: வரிசை சுழற்சி நேரம். tRC = tRAS + tRP
- TRAC: ரேடோம் அணுகல் தாமதம். tRAC = tRCD + tCAS
- tCWL: காஸ் எழுதும் தாமதம்.
- tZQ: ZQ அளவுத்திருத்த நேரம்.
- tRFC: வரிசை புதுப்பிப்பு சுழற்சி நேரம்
- tWTR: தாமதமாக படிக்க எழுதவும். கடைசியாக எழுதப்பட்ட பரிவர்த்தனை கட்டளை நேரத்தை படிக்கவும்.
- tWR: மீட்பு நேரத்தை எழுதுங்கள். ப்ரீசார்ஜ் நேரத்திற்கு கடைசியாக எழுதப்பட்ட பரிவர்த்தனை
பட்டியலிடப்பட்ட அனைத்து அளவுருக்களின் நேரம் பயன்படுத்தப்படும் நினைவக வகை மற்றும் நினைவக பகுதி வேக தரத்தைப் பொறுத்தது.
வரையறைகள் மற்றும் நேர விவரக்குறிப்புகள் பற்றிய கூடுதல் விவரங்கள் DDR2 DDR3 JEDEC அல்லது எந்த நினைவக சாதன தரவுத்தாளில் காணலாம்.
செயல்திறன் முக்கியமாக நினைவகம் எவ்வாறு அணுகப்படுகிறது என்பதைப் பொறுத்தது. வெவ்வேறு முகவரி வடிவங்கள் வெவ்வேறு செயல்திறன் முடிவுகளை அளிக்கின்றன.
நினைவக நேரம் மேல்நிலைகள்
- புதிய வங்கிகள்/வரிசைகளுக்கு மாறும்போது அல்லது அதே வங்கியில் வரிசைகளை மாற்றும்போது செயல்படுத்தும் நேரம் மற்றும் ப்ரீசார்ஜ் நேரம்
- தொடர்ந்து எழுத அல்லது படிக்க கட்டளைகளை அனுப்பவும் - tCCD நேரத்தை பராமரித்தல்.
- எழுதுவதைக் குறைக்கவும் படிக்கவும் எழுதவும் கட்டளை மாற்றத்தை எழுதவும் - வாசிப்பு அணுகல்களை மாற்ற மீட்பு நேரத்தை எழுதவும், வாசிப்பிலிருந்து எழுதுவதற்கு மாற்ற பேருந்து திரும்பும் நேரம்
- சரியான புதுப்பிப்பு இடைவெளியை அமைக்கவும்.
- DDR3 SDRAM க்கு tREFI இன் சராசரி கால இடைவெளியில் புதுப்பித்தல் சுழற்சிகள் தேவை.
- அதிகபட்சம் 8 கூடுதல் புதுப்பிப்பு கட்டளைகளை முன்கூட்டியே வழங்கலாம் ("புல்டு இன்"). இது புதுப்பிப்புகளின் எண்ணிக்கையைக் குறைக்காது, ஆனால் சுற்றியுள்ள இரண்டு புதுப்பிப்பு கட்டளைகளுக்கு இடையிலான அதிகபட்ச இடைவெளி 9 × tREFI க்கு மட்டுமே
- அனைத்து வங்கிகளையும் பயன்படுத்தவும் - பொருத்தமான முகவரியிடல் பொறிமுறையானது விரும்பத்தக்கது.
- வரிசை-வங்கி-நெடுவரிசை: ஒரு தொடர் முகவரி இடத்தில் நிகழும் பரிவர்த்தனைக்கு, ஏற்கனவே உள்ள வரிசையின் முடிவை எட்டும்போது பரிவர்த்தனையைத் தொடர, DRAM சாதனத்தின் அடுத்த வங்கியில் கோர் தானாகவே அதே வரிசையைத் திறக்கும். பெரிய தரவு பாக்கெட்டுகளை வரிசையாக முகவரி இடங்களுக்கு வெடிக்க வேண்டிய பயன்பாடுகளுக்கு இது மிகவும் பொருத்தமானது.
- வங்கி-வரிசை-நெடுவரிசை: ஒரு வரிசையின் எல்லையைக் கடக்கும்போது, தற்போதைய வரிசை மூடப்பட்டு, அதே கரையில் மற்றொரு வரிசை திறக்கப்படும். MSB என்பது ஒரு வங்கி முகவரி, இது வெவ்வேறு வங்கிகளில் இருந்து மாறுவதற்குப் பயன்படுத்தப்படலாம். ஒரு குறிப்பிட்ட காலத்திற்கு ஒரு தொகுதி நினைவகத்திற்கு குறுகிய, அதிக சீரற்ற பரிவர்த்தனைகளுக்கு இது பொருத்தமானது, பின்னர் மற்றொரு தொகுதிக்கு (வங்கி) செல்லவும்.
- வெடிப்பு நீளம்
- 8 தொடர்களில் DDR3க்கு BL 7 ஆதரிக்கப்படுகிறது. BC4 50% க்கும் குறைவான செயல்திறனைக் கொண்டுள்ளது. ஏனென்றால், BC4 இன் செயல்பாட்டின் நேரம் BL8 ஐப் போலவே உள்ளது. தரவு கூறுக்குள் மறைக்கப்பட்டுள்ளது.
- நீங்கள் முழு பர்ஸ்ட் எழுத விரும்பாத சந்தர்ப்பங்களில், டேட்டா மாஸ்க் அல்லது எழுதப்பட்ட பிறகு படிக்கலாம்.
- சரியான ZQ இடைவெளியை அமைக்கவும் (DDR3 மட்டும்)
கட்டுப்படுத்தி ZQ Short (ZQCS) மற்றும் ZQ Long (ZQCL) அளவுத்திருத்த கட்டளைகளை அனுப்புகிறது.- DDR3 Jedec தரநிலையை கடைபிடிக்கவும்
- ZQ அளவுத்திருத்தம் JEDEC ஸ்பெக் JESD5.5-79 DDR3 SDRAM தரநிலையின் பிரிவு 3 இல் விவாதிக்கப்பட்டது
- ZQ அளவுத்திருத்தம் VT முழுவதும் உள்ள மாறுபாடுகளைக் கணக்கிட சீரான இடைவெளியில் ஆன் டை டெர்மினேஷன் (ODT) அளவீடு செய்கிறது
- தர்க்கம் bank_common.v/vhd இல் உள்ளது
- ZQ அளவுத்திருத்த கட்டளை நினைவகத்திற்கு அனுப்பப்படும் விகிதத்தை Tzqcs அளவுரு தீர்மானிக்கிறது
- t கவுண்டரை முடக்கலாம் மற்றும் app_zq_req ஐப் பயன்படுத்தி கைமுறையாக அனுப்பலாம், இது புதுப்பிப்பை கைமுறையாக அனுப்புவதைப் போன்றது.
விவரங்களுக்கு (Xilinx Answer 47924) பார்க்கவும்.
கட்டுப்படுத்தி மேல்நிலைகள்
- குறிப்பிட்ட கால வாசிப்புகள் - பார்க்கவும் (Xilinx பதில் 43344) விவரங்களுக்கு.
- படிக்கும் காலத்தை மாற்ற வேண்டாம்
- எழுதும் போது அவ்வப்போது வாசிப்பதைத் தவிர்த்து, உண்மை வாசிப்புக்கு முன் தவறவிட்ட வாசிப்புகளின் எண்ணிக்கையை வெளியிடவும்
- மறுவரிசைப்படுத்துதல் - பார்க்கவும் (Xilinx பதில் 34392) விவரங்களுக்கு.
பயனர் மற்றும் AXI இடைமுக வடிவமைப்புகளுக்கு, இதை இயக்குவது விரும்பத்தக்கது.- மறுவரிசைப்படுத்துதல் என்பது பல கட்டளைகளை முன்னோக்கிப் பார்க்கும் தர்க்கமாகும் மற்றும் நினைவகம் அல்லாத கட்டளைகள் செல்லுபடியாகும் அலைவரிசையை ஆக்கிரமிக்காதபடி பயனர் கட்டளை வரிசையை மாற்றுகிறது. செயல்திறன் உண்மையான போக்குவரத்து முறையுடன் தொடர்புடையது.
- முகவரி வடிவத்தின் அடிப்படையில், மறுவரிசைப்படுத்துதல் ப்ரீசார்ஜ் செய்வதைத் தவிர்க்கவும் கட்டளைகளைச் செயல்படுத்தவும் உதவுகிறது மற்றும் tRCD மற்றும் tRP ஆகியவை டேட்டா பேண்ட் அகலத்தை ஆக்கிரமிக்காமல் செய்கிறது.
- வங்கி இயந்திரங்களின் எண்ணிக்கையை அதிகரிக்க முயற்சிக்கவும்.
- கட்டுப்படுத்தியின் தர்க்கத்தின் பெரும்பகுதி வங்கி இயந்திரங்களில் உள்ளது மற்றும் அவை DRAM வங்கிகளுடன் ஒத்திருக்கும்
- கொடுக்கப்பட்ட வங்கி இயந்திரம் எந்த நேரத்திலும் ஒரு DRAM வங்கியை நிர்வகிக்கிறது.
- வங்கி இயந்திரம் வழங்குவது ஆற்றல் வாய்ந்தது, எனவே ஒவ்வொரு வங்கிக்கும் வங்கி இயந்திரம் இருக்க வேண்டிய அவசியமில்லை.
- வங்கி இயந்திரங்கள் கட்டமைக்கப்படலாம், ஆனால் இது பகுதிக்கும் செயல்திறனுக்கும் இடையிலான பரிமாற்றமாகும்.
- அனுமதிக்கப்பட்ட வங்கி இயந்திரங்களின் எண்ணிக்கை 2-8 வரை இருக்கும்.
- இயல்பாக, 4 வங்கி இயந்திரங்கள் RTL அளவுருக்கள் மூலம் கட்டமைக்கப்படுகின்றன.
- வங்கி இயந்திரங்களை மாற்ற, memc_ui_top Ex இல் உள்ள nBANK_MACHS = 8 அளவுருவைக் கவனியுங்கள்amp8 வங்கி இயந்திரங்களுக்கான le – 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 எழுதுதல்கள் அல்லது வாசிப்புகளுக்கு வரிசை மாறுதல்.
செயல்திறனை மேம்படுத்துவதற்கு முந்தைய பிரிவில் கற்றுக்கொண்ட அறிவை நீங்கள் இப்போது பயன்படுத்தலாம். உடன் ஒரு 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, நாம் ஒவ்வொரு 4 CK சுழற்சிகளுக்கும் மட்டுமே கட்டளைகளை அனுப்ப முடியும் என்பதால், குறைந்தபட்ச DRAM நேர விவரக்குறிப்புகளைக் கடைப்பிடிக்கும்போது சில நேரங்களில் கூடுதல் திணிப்பு இருக்கும், இது கோட்பாட்டிலிருந்து செயல்திறனைக் குறைக்கும்.
உங்கள் செயல்திறன் தேவைக்கு ஏற்றதைக் கண்டறிய வெவ்வேறு கட்டுப்படுத்திகளை முயற்சிக்கவும்.
குறிப்புகள்
- Zynq-7000 AP SoC மற்றும் 7 தொடர் FPGAகள் MIS v2.3 [UG586]
- Xilinx MIG தீர்வு மையம் http://www.xilinx.com/support/answers/34243.html
மீள்பார்வை வரலாறு
13/03/2015 - ஆரம்ப வெளியீடு
Pdf ஐ பதிவிறக்கவும்: Xilinx DDR2 MIG 7 செயல்திறன் மதிப்பீட்டு வழிகாட்டி