ຕົວແທນຈໍາຫນ່າຍ XILINX 63234 END FPGA

ໝາຍເຫດສຳຄັນ: PDF ທີ່ສາມາດດາວໂຫຼດໄດ້ຂອງບັນທຶກຄຳຕອບນີ້ໄດ້ຖືກສະໜອງໃຫ້ເພື່ອເພີ່ມປະສິດທິພາບການໃຊ້ງານ ແລະ ການອ່ານຂອງມັນ. ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າບັນທຶກຄໍາຕອບແມ່ນ Web-based ເນື້ອໃນທີ່ຖືກປັບປຸງເລື້ອຍໆຍ້ອນວ່າມີຂໍ້ມູນໃຫມ່. ທ່ານໄດ້ຖືກເຕືອນໃຫ້ໄປຢ້ຽມຢາມການຊ່ວຍເຫຼືອດ້ານວິຊາການ Xilinx Website ແລະ review (Xilinx Answer 63234) ສໍາລັບສະບັບຫລ້າສຸດຂອງຄໍາຕອບນີ້.
ແນະນຳ
ເນື່ອງຈາກວິທີການສ້າງຄວາມຊົງຈໍາ DDR2 ແລະ DDR3 ແລະຕົວຄວບຄຸມຊຸດ MIG 7 ຖືກອອກແບບ, ການປະຕິບັດແມ່ນບໍ່ກົງໄປກົງມາ. ມັນຮຽກຮ້ອງໃຫ້ມີຄວາມເຂົ້າໃຈກ່ຽວກັບຕົວກໍານົດການ Jedec Timing ຕ່າງໆແລະສະຖາປັດຕະຍະກໍາຄວບຄຸມ, ແລະທ່ານຈະຕ້ອງດໍາເນີນການ simulations ເພື່ອໃຫ້ໄດ້ຮັບການຄາດຄະເນ. ຫຼັກການທົ່ວໄປສໍາລັບການກໍານົດການປະຕິບັດແມ່ນຄືກັນ, ແຕ່ເອກະສານນີ້ສະຫນອງວິທີທີ່ງ່າຍທີ່ຈະໄດ້ຮັບປະສິດທິພາບໂດຍໃຊ້ MIG ex.ample ການອອກແບບດ້ວຍການຊ່ວຍເຫຼືອຂອງ bench ການທົດສອບແລະການກະຕຸ້ນ files ຕິດຢູ່ທີ່ນີ້.
ແບນວິດທີ່ມີປະສິດຕິຜົນ
ລົດເມຂໍ້ມູນ DRAM ບັນລຸໄດ້ຢູ່ໃກ້ກັບແບນວິດສູງສຸດພຽງແຕ່ໃນລະຫວ່າງການລະເບີດຂອງການອ່ານແລະຂຽນ, ແລະ overhead ຂອງມັນຫຼຸດລົງອັດຕາຂໍ້ມູນປະສິດທິພາບ.

ສອງສາມ examples ຂອງ overhead ແມ່ນ
- ລ່ວງໜ້າເວລາເຂົ້າເຖິງແຖວໃນທະນາຄານດຽວກັນ (ການເຂົ້າເຖິງບໍ່ຢູ່ໃນແຖວໜ້າດຽວກັນ)
- ຂຽນເວລາການຟື້ນຕົວເພື່ອປ່ຽນຈາກການຂຽນເປັນການເຂົ້າເຖິງການອ່ານ
- ເວລາປ່ຽນລົດເມເພື່ອປ່ຽນຈາກການເຂົ້າເຖິງການຂຽນເປັນອ່ານ
ຮອບວຽນໂມງການໂອນຂໍ້ມູນ
- ປະສິດທິພາບ (%) = ——————————————-
ຮອບວຽນໂມງທັງໝົດ
ແບນວິດທີ່ມີປະສິດທິພາບ = ສູງສຸດແບນວິດ * ປະສິດທິພາບ
ການຜະລິດການອອກແບບ MIG
- ອ້າງອີງເຖິງ UG586 ບົດທີ 1 ສໍາລັບລາຍລະອຽດຂັ້ນຕອນໂດຍຂັ້ນຕອນກ່ຽວກັບ MIG IP ແລະ exampການຜະລິດການອອກແບບ.
- ກ່ອນທີ່ຈະດໍາເນີນການຈໍາລອງການປະຕິບັດ MIG 7 Series, ເຮັດດັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ແນ່ໃຈວ່າສະພາບແວດລ້ອມການຈໍາລອງຂອງທ່ານແມ່ນດີ.
- ເປີດ MIG example ອອກແບບແລະສ້າງແຜນທີ່ຫ້ອງສະຫມຸດທີ່ເຫມາະສົມ, ດໍາເນີນການຈໍາລອງ, ແລະໃຫ້ແນ່ໃຈວ່າທ່ານສາມາດເບິ່ງຂໍ້ຄວາມ "ຜ່ານການທົດສອບ" ໃນຂໍ້ຄວາມຖອດຖອນໄດ້.
- ເພື່ອສະແດງໃຫ້ເຫັນການໄຫຼເຂົ້າ, ຂ້າພະເຈົ້າໄດ້ສ້າງ MIG IP ສໍາລັບ xc7vx690tffg1761-2 ແລະຮຽກຮ້ອງ example ການອອກແບບ.
- ສອງສິ່ງທີ່ຄວນສັງເກດແມ່ນບິດທີ່ຢູ່ຫນ່ວຍຄວາມຈໍາແລະການເລືອກແຜນທີ່ທີ່ຢູ່ຫນ່ວຍຄວາມຈໍາ.
- ຕົວຢ່າງampດັ່ງນັ້ນ, ຂ້າພະເຈົ້າໄດ້ເລືອກ MT41J128M8XX-125 ພາຍໃຕ້ຕົວເລືອກເລື່ອນລົງສ່ວນຫນ່ວຍຄວາມຈໍາ.

ສໍາລັບພາກສ່ວນຄວາມຊົງຈໍາທີ່ເລືອກຈາກຮູບ -1, ແຖວ = 14, ຖັນ = 10 ແລະທະນາຄານ = 3, ດັ່ງນັ້ນ app_addr_width = ແຖວ + ຖັນ + ທະນາຄານ + ອັນດັບ = 28

ທ່ານສາມາດເລືອກໄດ້ທັງ BANK_ROW_COLUMN ຫຼື ROW BANK_COLUMN.
ຂ້ອຍໄດ້ອອກຈາກຖັນ ROW BANK, ເຊິ່ງເປັນແຜນທີ່ທີ່ຢູ່ເລີ່ມຕົ້ນ.
Example ການອອກແບບ Simulation ກັບ bench ການທົດສອບ synthesizable
- ພາຍໃຕ້ການຕັ້ງຄ່າການຈໍາລອງ, ເລືອກ QuestaSim/ModelSim Simulator ແລະຊອກຫາສະຖານທີ່ຫ້ອງສະຫມຸດທີ່ລວບລວມ.
- ສໍາລັບລາຍລະອຽດກ່ຽວກັບການຊີ້ໄປຫາເສັ້ນທາງການຕິດຕັ້ງເຄື່ອງມືຂອງພາກສ່ວນທີສາມ, ການເລືອກ simulator ເປົ້າຫມາຍ, ແລະການລວບລວມແລະແຜນທີ່ຫ້ອງສະຫມຸດ, ທ່ານສາມາດອ້າງອີງ (UG900) Vivado Design Suite User Guide Logic Simulation.

Simulate GUI (ຄລິກແຖບ Run Simulation ໃນຜູ້ຈັດການໂຄງການ) ແລະໃຫ້ແນ່ໃຈວ່າທ່ານເຫັນຂໍ້ຄວາມ "ທົດສອບຜ່ານ" ໃນຂໍ້ຄວາມຖອດຈາກສຽງ.
ການປະຕິບັດການຈໍາລອງການດັດແປງ RTL
- ຄລິກຂວາໃສ່ແຖບແຫຼ່ງ, ເລືອກ “ເພີ່ມ ຫຼືສ້າງແຫຼ່ງຈໍາລອງ”, ທ່ອງໄປຫາ mig7_perfsim_traffic_generator.sv file ແລະຄລິກສໍາເລັດຮູບເພື່ອເພີ່ມມັນ.
- ຄລິກຂວາໃສ່ແຖບແຫຼ່ງ, ເລືອກ “ເພີ່ມ ຫຼືສ້າງແຫຼ່ງຈໍາລອງ”, ຊອກຫາ perfsim_stimulus.txt, ແລະຄລິກສໍາເລັດການເພີ່ມມັນ.
- ຄໍາເຫັນອອກ example_top instantiation ໃນ sim_tb_top.v file.
- ເພີ່ມແຖວ RTL ລຸ່ມນີ້ໃສ່ sim_tb_top,v





- ແກ້ໄຂ APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH, H, ແລະ BANK_WIDTH ຕາມການເລືອກສ່ວນຄວາມຊົງຈໍາຂອງທ່ານ. ຄ່າສາມາດໄດ້ຮັບຈາກ _mig.v file.
- ຊື່ instantiation ທີ່ເນັ້ນໃສ່ສີເຫຼືອງ 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, ເລືອກ “Add Sources”, ຊອກຫາ /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 ທັງຫມົດ files ໃນ clocking, controller, ip_top, phy, ແລະ UI folders.

- ເມື່ອການປ່ຽນແປງ RTL ໄດ້ຖືກເຮັດແລະທັງຫມົດທີ່ຕ້ອງການ files ຖືກເພີ່ມໃສ່ແຫຼ່ງຈໍາລອງຂອງທ່ານ, ລໍາດັບຊັ້ນຄວນຈະຄ້າຍຄືກັບຮູບ 5.
- ໄດ້ files ເນັ້ນໃສ່ສີແດງໄດ້ຖືກເພີ່ມໃຫມ່, ແລະ "?" ຄາດວ່າຈະຢູ່ໃນໂມດູນທີ່ກ່ຽວຂ້ອງກັບ ECC ເນື່ອງຈາກການຕັ້ງຄ່າຫນ່ວຍຄວາມຈໍາທີ່ເລືອກໄດ້ປິດການໃຊ້ງານທາງເລືອກ ECC.
ກະຕຸ້ນ File ລາຍລະອຽດ
ແຕ່ລະຮູບແບບການກະຕຸ້ນແມ່ນ 48 bits, ແລະຮູບແບບໄດ້ຖືກອະທິບາຍໃນຮູບ 6-1 ເຖິງ 6-4.

ການເຂົ້າລະຫັດທີ່ຢູ່ (ທີ່ຢູ່ [35:0])
ທີ່ຢູ່ແມ່ນຖືກເຂົ້າລະຫັດຢູ່ໃນຕົວກະຕຸ້ນຕາມຮູບ 7-1 ເຖິງຮູບ 7-6. ຊ່ອງຂໍ້ມູນທັງໝົດຈະຕ້ອງຖືກໃສ່ໃນຮູບແບບເລກຖານສິບຫົກ.
ຊ່ອງຂໍ້ມູນທັງໝົດແມ່ນຄວາມກວ້າງທີ່ແບ່ງອອກດ້ວຍສີ່ເພື່ອໃສ່ໃນຮູບແບບເລກຖານສິບຫົກ. ບ່ອນນັ່ງທົດສອບພຽງແຕ່ສົ່ງ bits ທີ່ຕ້ອງການຂອງພາກສະຫນາມທີ່ຢູ່ໄປຫາ Memory Controller. ຕົວຢ່າງample, ໃນການຕັ້ງຄ່າທະນາຄານແປດ, ມີພຽງແຕ່ bank Bits [2:0] ຖືກສົ່ງໄປຫາ Memory Controller, ແລະບິດທີ່ຍັງເຫຼືອແມ່ນຖືກລະເລີຍ. bits ເພີ່ມເຕີມສໍາລັບຊ່ອງທີ່ຢູ່ແມ່ນສະຫນອງໃຫ້ສໍາລັບທ່ານທີ່ຈະໃສ່ທີ່ຢູ່ໃນຮູບແບບເລກຖານສິບຫົກ. ທ່ານຕ້ອງຢືນຢັນວ່າຄ່າທີ່ເຂົາໃສ່ແມ່ນສອດຄ່ອງກັບຄວາມກວ້າງຂອງການຕັ້ງຄ່າທີ່ໃຫ້.

- ທີ່ຢູ່ຖັນ (ຖັນ[11:0]) – ທີ່ຢູ່ຖັນໃນການກະຕຸ້ນແມ່ນໃຫ້ສູງສຸດ 12 ບິດ, ແຕ່ທ່ານຕ້ອງການແກ້ໄຂນີ້ໂດຍອີງໃສ່ພາລາມິເຕີຄວາມກວ້າງຂອງຖັນທີ່ກຳນົດໄວ້ໃນການອອກແບບຂອງເຈົ້າ.
- ທີ່ຢູ່ແຖວ (Row[15:0]) – ທີ່ຢູ່ແຖວໃນການກະຕຸ້ນແມ່ນສະໜອງໃຫ້ສູງສຸດ 16 bits, ແຕ່ທ່ານຕ້ອງການແກ້ໄຂ.
- ນີ້ແມ່ນອີງໃສ່ຕົວກໍານົດການ width ແຖວທີ່ກໍານົດໄວ້ໃນການອອກແບບຂອງທ່ານ.
- ທີ່ຢູ່ທະນາຄານ (Bank[3:0]) – ທີ່ຢູ່ທະນາຄານໃນການກະຕຸ້ນແມ່ນສະຫນອງໃຫ້ສູງສຸດສີ່ບິດ, ແຕ່ທ່ານຈໍາເປັນຕ້ອງແກ້ໄຂນີ້ໂດຍອີງໃສ່ຕົວກໍານົດການຄວາມກວ້າງທະນາຄານທີ່ກໍານົດໄວ້ໃນການອອກແບບຂອງທ່ານ.
- ທີ່ຢູ່ Rank (Rank[3:0]) - ທີ່ຢູ່ອັນດັບໃນການກະຕຸ້ນແມ່ນໃຫ້ສູງສຸດສີ່ບິດ, ແຕ່ທ່ານຈໍາເປັນຕ້ອງແກ້ໄຂມັນໂດຍອີງໃສ່ຕົວກໍານົດຄວາມກວ້າງຂອງການຈັດອັນດັບທີ່ກໍານົດໄວ້ໃນການອອກແບບຂອງທ່ານ.
- ທີ່ຢູ່ໄດ້ຖືກປະກອບໂດຍອີງຕາມພາລາມິເຕີ MEM_ADDR_ORDER ລະດັບສູງສຸດແລະຖືກສົ່ງໄປຫາສ່ວນຕິດຕໍ່ຜູ້ໃຊ້.
ຄຳສັ່ງຊ້ຳ (ຄຳສັ່ງຊ້ຳ [7:0])
- ການນັບການຊໍ້າຄືນຄໍາສັ່ງແມ່ນຈໍານວນເວລາທີ່ຄໍາສັ່ງຕາມລໍາດັບຖືກຊ້ໍາໃນການໂຕ້ຕອບຜູ້ໃຊ້. ທີ່ຢູ່ສໍາລັບແຕ່ລະການຊໍ້າຄືນແມ່ນເພີ່ມຂຶ້ນ 8. ຈໍານວນການຊໍ້າຄືນສູງສຸດແມ່ນ 128.
- bench ການທົດສອບບໍ່ໄດ້ກວດສອບຂອບເຂດຂອງຖັນ, ແລະມັນ wraps ປະມານຖ້າຫາກວ່າການຈໍາກັດຖັນສູງສຸດແມ່ນບັນລຸໃນລະຫວ່າງການເພີ່ມຂຶ້ນ.
- 128 ຄໍາສັ່ງຕື່ມຂໍ້ມູນໃສ່ຫນ້າ. ສໍາລັບທີ່ຢູ່ຖັນໃດນຶ່ງນອກເໜືອໄປຈາກ 0, ການນັບຊໍ້າຄືນຂອງ 128 ຈະສິ້ນສຸດການຂ້າມ.
- ຂອບເຂດຂອງຖັນແມ່ນອ້ອມຮອບໄປຫາຈຸດເລີ່ມຕົ້ນຂອງທີ່ຢູ່ຖັນ.
ການນຳໃຊ້ລົດເມ
ການນໍາໃຊ້ລົດເມແມ່ນໄດ້ຮັບການຄິດໄລ່ຢູ່ໃນການໂຕ້ຕອບຜູ້ໃຊ້, ໂດຍເອົາຈໍານວນທັງຫມົດຂອງການອ່ານແລະການຂຽນເຂົ້າໄປໃນການພິຈາລະນາ, ແລະສົມຜົນດັ່ງຕໍ່ໄປນີ້ໄດ້ຖືກນໍາໃຊ້:

- BL8 ໃຊ້ເວລາສີ່ຮອບວຽນຂອງຫນ່ວຍຄວາມຈໍາ
- End_of_stimulus ແມ່ນເວລາທີ່ຄໍາສັ່ງທັງຫມົດຖືກເຮັດ.
- calib_done ແມ່ນເວລາທີ່ການປັບຕົວສຳເລັດ.
Example ຮູບແບບ
ເຫຼົ່ານີ້ examples ແມ່ນອີງໃສ່ 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 ຫາ 8,0, ເຊິ່ງສາມາດເບິ່ງໄດ້ໃນຖັນ.

ການຫໍ່ຫນ້າໃນລະຫວ່າງການຂຽນ
0A_0_2_000F_3F8_0 – ອັນນີ້ກົງກັນກັບ 10 ການຂຽນທີ່ຢູ່ຖັນຫໍ່ເພື່ອເລີ່ມຕົ້ນຂອງຫນ້າຫຼັງຈາກການຂຽນຄັ້ງຫນຶ່ງ.

ການຈໍາລອງເຄື່ອງກໍາເນີດການຈະລາຈອນປະສິດທິພາບ
ໃນຈຸດນີ້, ທ່ານກໍາລັງເຮັດກັບ MIG example simulation ການອອກແບບ. ນີ້ຫມາຍຄວາມວ່າການຕິດຕັ້ງ simulation ຂອງທ່ານແມ່ນກຽມພ້ອມ, ທ່ານໄດ້ເຮັດການຈໍາລອງການປະຕິບັດການດັດແກ້ RTL, ລໍາດັບລໍາດັບ simulation ໃຫມ່ແມ່ນຖືກຕ້ອງ, ແລະທ່ານໄດ້ເຂົ້າໃຈຮູບແບບການກະຕຸ້ນ. ດໍາເນີນການຈໍາລອງອີກເທື່ອຫນຶ່ງດ້ວຍ 16 ຂຽນແລະອ່ານໃນ perfsim_stimulus.txt.

- ດໍາເນີນການທັງຫມົດ, ລໍຖ້າຈົນກ່ວາສັນຍານ init_calib_complete ຖືກຢືນຢັນ, ແລະທ່ານຈະສາມາດເຫັນຈໍານວນການຂຽນແລະອ່ານທີ່ສະເຫນີ. ຫຼັງຈາກນັ້ນ, ການຈໍາລອງຈະຢຸດເຊົາ.

- ເມື່ອທ່ານຖືກກະຕຸ້ນໃຫ້ອອກຈາກການຈໍາລອງ, ເລືອກ No ແລະໄປທີ່ປ່ອງຢ້ຽມຖອດຂໍ້ຄວາມ, ບ່ອນທີ່ທ່ານຈະເຫັນສະຖິຕິການປະຕິບັດ.

- ຖ້າທ່ານເລືອກ "ຢຸດການຈໍາລອງ", ສະຖິຕິການປະຕິບັດຈະຖືກຂຽນໃສ່ 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

ທ່ານອາດຈະສົງໄສວ່າເປັນຫຍັງ percentage ຂອງການນໍາໃຊ້ລົດເມແມ່ນພຽງແຕ່ 29. Rerun the simulation with the same IP settings, but just change the stimulus file ເຖິງ 256 ຂຽນ ແລະ 256 ອ່ານ
- ff_0_0_0000_000_0
- ff_0_0_0000_000_1
ໃນປັດຈຸບັນທ່ານຈະເຫັນ percen ໄດ້tage ເປັນ 85, ຊຶ່ງຫມາຍຄວາມວ່າ DDR3 ສະຫນອງການນໍາໃຊ້ລົດເມທີ່ດີກວ່າສໍາລັບລໍາດັບຍາວຂອງການຂຽນແລະການອ່ານລະເບີດ.

ວິທີການທົ່ວໄປເພື່ອປັບປຸງປະສິດທິພາບ
ປັດໃຈທີ່ມີອິດທິພົນຕໍ່ປະສິດທິພາບສາມາດແບ່ງອອກເປັນສອງພາກ:
- ຄວາມຈຳສະເພາະ

- ສະເພາະຕົວຄວບຄຸມ
ຮູບທີ່ 9 ໃຫ້ທ່ານຈົບview ຂອງຂໍ້ກໍານົດທີ່ມີຄວາມຈໍາສະເພາະ.
ບໍ່ຄືກັບ SRAMs ແລະ Block Memories, ການປະຕິບັດ DDR2 ຫຼື DDR3 ບໍ່ແມ່ນພຽງແຕ່ອັດຕາຂໍ້ມູນສູງສຸດເທົ່ານັ້ນ.
ມັນຂຶ້ນກັບປັດໃຈເວລາຫຼາຍ, ລວມທັງ:
- tRCD: Row Command Delay (ຫຼື ras to cas delay).
- tCAS(CL): ທີ່ຢູ່ຖັນ strobe latency.
- tRP: ຄວາມລ່າຊ້າຂອງແຖວ.
- tRAS: Row Active Time (ເປີດໃຊ້ເພື່ອປ່ຽນລ່ວງໜ້າ).
- tRC: ເວລາຮອບວຽນແຖວ. tRC = tRAS + tRP
- tRAC: ການຊັກຊ້າການເຂົ້າເຖິງແບບສຸ່ມ. tRAC = tRCD + tCAS
- tCWLCASas ຂຽນ latency.
- tZQ: ZQ calibration time.
- tRFC: Row Refresh Cycle Time
- tWTR: ຂຽນເພື່ອອ່ານຊັກຊ້າ. ການເຮັດທຸລະກໍາຂຽນຫຼ້າສຸດເພື່ອອ່ານເວລາຄໍາສັ່ງ.
- tWR: ຂຽນເວລາການຟື້ນຕົວ. ການເຮັດທຸລະກໍາຂຽນຄັ້ງສຸດທ້າຍເຖິງເວລາເຕີມເງິນ
- ເວລາຂອງພາລາມິເຕີທີ່ລະບຸໄວ້ທັງໝົດແມ່ນຂຶ້ນກັບປະເພດຂອງໜ່ວຍຄວາມຈຳທີ່ໃຊ້ ແລະລະດັບຄວາມໄວຂອງພາກສ່ວນໜ່ວຍຄວາມຈຳ.
- ລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຄໍານິຍາມແລະກໍານົດເວລາສາມາດພົບໄດ້ໃນມາດຕະຖານ DDR2 ແລະ DDR3 JEDEC ຫຼືເອກະສານຂໍ້ມູນອຸປະກອນຫນ່ວຍຄວາມຈໍາໃດໆ.
ປະສິດທິພາບສ່ວນໃຫຍ່ແມ່ນຂຶ້ນກັບວິທີການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ. ຮູບແບບທີ່ຢູ່ທີ່ແຕກຕ່າງກັນໃຫ້ຜົນໄດ້ຮັບປະສິດທິພາບທີ່ແຕກຕ່າງກັນ.
ຊ່ວງເວລາໜ່ວຍຄວາມຈຳຢູ່ເໜືອຫົວ
- ເວລາເປີດໃຊ້ງານ ແລະເວລາເກັບເງິນລ່ວງໜ້າເມື່ອປ່ຽນເປັນທະນາຄານໃໝ່/ແຖວ ຫຼືປ່ຽນແຖວພາຍໃນທະນາຄານດຽວກັນ.- ດັ່ງນັ້ນ, ເຈົ້າຫຼຸດການປ່ຽນແຖວ ເຊິ່ງສາມາດເອົາ tRCD ແລະ tRP ອອກໄດ້.
- ສົ່ງຄໍາສັ່ງຂຽນຫຼືອ່ານຢ່າງຕໍ່ເນື່ອງ - ການຮັກສາເວລາ tCCD.
- ຫຼຸດການປ່ຽນຄຳສັ່ງຂຽນເປັນອ່ານ ແລະອ່ານເປັນຂຽນໜ້ອຍສຸດ – ຂຽນເວລາການກູ້ຂໍ້ມູນເພື່ອປ່ຽນການເຂົ້າອ່ານ, ແລະເວລາປ່ຽນລົດເມເພື່ອປ່ຽນຈາກອ່ານເປັນຂຽນ.
- ກໍານົດໄລຍະການໂຫຼດຫນ້າຈໍຄືນທີ່ເຫມາະສົມ.
- ກ. DDR3 SDRAM ຕ້ອງການຮອບການໂຫຼດຂໍ້ມູນຄືນໃໝ່ໃນຊ່ວງເວລາສະເລ່ຍຂອງ tREFI.
- ຂ. ສາມາດອອກຄຳສັ່ງ Refresh ເພີ່ມເຕີມໄດ້ສູງສຸດ 8 ລາຍການລ່ວງໜ້າ (“ດຶງເຂົ້າ”). ນີ້ບໍ່ໄດ້ຫຼຸດລົງຈໍານວນຂອງການໂຫຼດຫນ້າຈໍຄືນ, ແຕ່ໄລຍະສູງສຸດລະຫວ່າງສອງຄໍາສັ່ງການໂຫຼດຫນ້າຈໍຄືນແມ່ນຈໍາກັດ 9 × tREFI.

- ການນໍາໃຊ້ທັງຫມົດຂອງທະນາຄານ – ເປັນກົນໄກການແກ້ໄຂທີ່ເຫມາະສົມເປັນທີ່ນິຍົມ.
- ກ. Row-Bank-Column: ສໍາລັບທຸລະກໍາທີ່ເກີດຂຶ້ນໃນໄລຍະທີ່ຢູ່ຕາມລໍາດັບ, ຫຼັກຈະເປີດແຖວດຽວກັນໂດຍອັດຕະໂນມັດໃນທະນາຄານຕໍ່ໄປຂອງອຸປະກອນ DRAM ເພື່ອສືບຕໍ່ການເຮັດທຸລະກໍາເມື່ອສິ້ນສຸດແຖວທີ່ມີຢູ່ແລ້ວ. ມັນ ເໝາະ ສົມກັບແອັບພລິເຄຊັນທີ່ຕ້ອງການການລະເບີດຂອງແພັກເກັດຂໍ້ມູນໃຫຍ່ໄປຫາສະຖານທີ່ທີ່ຢູ່ຕາມລໍາດັບ.
- ຂ. Bank-Row-Column: ເມື່ອຂ້າມເຂດແດນແຖວ, ແຖວປະຈຸບັນຈະຖືກປິດ, ແລະແຖວອື່ນຈະຖືກເປີດພາຍໃນທະນາຄານດຽວກັນ. MSB ເປັນທີ່ຢູ່ທະນາຄານທີ່ສາມາດໃຊ້ເພື່ອປ່ຽນຈາກທະນາຄານຕ່າງໆ. ມັນເປັນການເຫມາະສົມສໍາລັບການທີ່ສັ້ນກວ່າ, ການເຮັດທຸລະກໍາແບບສຸ່ມຫຼາຍກັບຫນຶ່ງຕັນຂອງຄວາມຊົງຈໍາສໍາລັບບາງຄັ້ງ, ແລະຫຼັງຈາກນັ້ນກະໂດດກັບຕັນອື່ນ (ທະນາຄານ)
- ຄວາມຍາວລະເບີດ
- ກ. BL 8 ຮອງຮັບ DDR3 ໃນ 7 ຊຸດ. BC4 ມີປະສິດທິພາບຕໍ່າຫຼາຍ, ເຊິ່ງແມ່ນຫນ້ອຍກວ່າ 50%. ນີ້ແມ່ນຍ້ອນວ່າເວລາປະຕິບັດຂອງ BC4 ແມ່ນຄືກັນກັບ BL8. ຂໍ້ມູນແມ່ນພຽງແຕ່ຫນ້າກາກພາຍໃນອົງປະກອບ.
- ຂ. ໃນກໍລະນີທີ່ທ່ານບໍ່ຕ້ອງການຂຽນແບບເຕັມຮູບແບບ, ບໍ່ວ່າຈະເປັນຫນ້າກາກຂໍ້ມູນຫຼືການຂຽນຫຼັງຈາກອ່ານສາມາດພິຈາລະນາໄດ້.
- ກໍານົດຊ່ວງເວລາ ZQ ທີ່ເຫມາະສົມ (DDR3 ເທົ່ານັ້ນ)
ຕົວຄວບຄຸມສົ່ງທັງ ZQ Short (ZQCS) ແລະ ZQ Long (ZQCL) ຄໍາສັ່ງ Calibration.- ກ. ປະຕິບັດຕາມມາດຕະຖານ DDR3 JEDEC
- ຂ. ZQ Calibration ແມ່ນສົນທະນາຢູ່ໃນພາກ 5.5 ຂອງ JEDEC Spec JESD79-3 DDR3 SDRAM ມາດຕະຖານ
- ຄ. ZQ Calibration calibrates On-Die Termination (ODT) ໃນຊ່ວງເວລາປົກກະຕິເພື່ອບັນຊີການປ່ຽນແປງໃນທົ່ວ VT
- ງ. Logic ແມ່ນບັນຈຸຢູ່ໃນ bank_common.v/vhd
- e. ພາລາມິເຕີ Tzqcs ກໍານົດອັດຕາທີ່ຄໍາສັ່ງ ZQ Calibration ຖືກສົ່ງໄປຫາຫນ່ວຍຄວາມຈໍາ
- f. ມັນເປັນໄປໄດ້ທີ່ຈະປິດການໃຊ້ງານຕ້ານແລະສົ່ງດ້ວຍຕົນເອງໂດຍການນໍາໃຊ້ app_zq_req, ມັນຄ້າຍຄືກັນກັບການສົ່ງການໂຫຼດຫນ້າຈໍຄືນດ້ວຍຕົນເອງ. ອ້າງອີງໄປທີ່ (Xilinx Answer 47924) ສໍາລັບລາຍລະອຽດ.

ການຄວບຄຸມເທິງຫົວ
- ອ່ານເປັນໄລຍະ – ເບິ່ງທີ່ (Xilinx Answer 43344) ສໍາລັບລາຍລະອຽດ.
- ກ. ຢ່າປ່ຽນໄລຍະເວລາຂອງການອ່ານ.
- ຂ. ຂ້າມການອ່ານເປັນໄລຍະໃນລະຫວ່າງການຂຽນ ແລະອອກຈໍານວນການອ່ານທີ່ພາດກ່ອນການອ່ານທີ່ແທ້ຈິງ
- Reordering – ເບິ່ງ (Xilinx Answer 34392) ສໍາລັບລາຍລະອຽດ. ສໍາລັບການອອກແບບການໂຕ້ຕອບຜູ້ໃຊ້ແລະ AXI, ມັນດີກວ່າທີ່ຈະເປີດໃຊ້ງານນີ້.
- ກ. Reorder ແມ່ນເຫດຜົນທີ່ເບິ່ງໄປຂ້າງຫນ້າຫຼາຍຄໍາສັ່ງແລະການປ່ຽນແປງຄໍາສັ່ງຂອງຜູ້ໃຊ້ເພື່ອເຮັດໃຫ້ຄໍາສັ່ງ nonmemory ບໍ່ຄອບຄອງແບນວິດທີ່ຖືກຕ້ອງ. ການປະຕິບັດຍັງກ່ຽວຂ້ອງກັບຮູບແບບການຈະລາຈອນຕົວຈິງ.
- ຂ. ອີງຕາມຮູບແບບທີ່ຢູ່, ການຈັດລໍາດັບຄືນໃຫມ່ຊ່ວຍໃຫ້ຂ້າມການຄິດຄ່າລ່ວງຫນ້າແລະເປີດໃຊ້ຄໍາສັ່ງແລະເຮັດໃຫ້ tRCD ແລະ tRP ບໍ່ຄອບຄອງແບນວິດຂໍ້ມູນ.

- ພະຍາຍາມເພີ່ມຈໍານວນເຄື່ອງຈັກຂອງທະນາຄານ.
- ກ. ເຫດຜົນຂອງຕົວຄວບຄຸມສ່ວນໃຫຍ່ແມ່ນຢູ່ໃນເຄື່ອງຈັກຂອງທະນາຄານ, ແລະພວກເຂົາກົງກັບທະນາຄານ DRAM.
- ຂ. ເຄື່ອງທະນາຄານທີ່ໃຫ້ມາຈະຈັດການທະນາຄານ DRAM ດຽວໄດ້ທຸກເວລາ.
- ຄ. ການມອບຫມາຍເຄື່ອງຈັກທະນາຄານແມ່ນແບບເຄື່ອນໄຫວ, ດັ່ງນັ້ນມັນບໍ່ຈໍາເປັນຕ້ອງມີເຄື່ອງທະນາຄານສໍາລັບແຕ່ລະທະນາຄານທາງດ້ານຮ່າງກາຍ.
- ງ. ເຄື່ອງຈັກຂອງທະນາຄານສາມາດຕັ້ງຄ່າໄດ້, ແຕ່ມັນເປັນການແລກປ່ຽນລະຫວ່າງພື້ນທີ່ແລະການປະຕິບັດ.
- e. ຈໍານວນທີ່ອະນຸຍາດຂອງເຄື່ອງຈັກທະນາຄານແມ່ນຕັ້ງແຕ່ 2-8.
- f. ໂດຍຄ່າເລີ່ມຕົ້ນ, 4 ເຄື່ອງຈັກທະນາຄານຖືກຕັ້ງຄ່າຜ່ານພາລາມິເຕີ RTL.
- g. ເພື່ອປ່ຽນເຄື່ອງຈັກທະນາຄານ, ໃຫ້ພິຈາລະນາພາລາມິເຕີ nBANK_MACHS = 8 ທີ່ມີຢູ່ໃນ memc_ui_top
Example ສໍາລັບ 8 ເຄື່ອງທະນາຄານ – nBANK_MACHS = 8
ດຽວນີ້ເຈົ້າຮູ້ເຖິງປັດໃຈທີ່ມີອິດທິພົນຕໍ່ການປະຕິບັດ. ພິຈາລະນາເປັນຄໍາຮ້ອງສະຫມັກຕົ້ນສະບັບທີ່ເຮັດໃຫ້ທ່ານ 512 ໄບຕ໌ຂໍ້ມູນຕໍ່ຊອງ, t, ແລະທ່ານຈໍາເປັນຕ້ອງໄດ້ປະຢັດໃຫ້ເຂົາເຈົ້າໃນສະຖານທີ່ຫນ່ວຍຄວາມຈໍາທີ່ແຕກຕ່າງກັນ. ເນື່ອງຈາກ 512 ໄບຕ໌ຂໍ້ມູນເທົ່າກັບ 64 ຂໍ້ມູນ DDR3 ລະເບີດ, ດໍາເນີນການຄືນໃຫມ່ample ອອກແບບດ້ວຍການກະຕຸ້ນ file ມີ 512 ຂຽນ, 512 ອ່ານ, ແລະການປ່ຽນແຖວສໍາລັບທຸກໆ 64 ຂຽນຫຼືອ່ານ:

ໃນຕອນທ້າຍຂອງການຈໍາລອງ, ທ່ານຈະເຫັນວ່າການນໍາໃຊ້ລົດເມແມ່ນຢູ່ທີ່ 77 ສ່ວນຮ້ອຍ.

ຮູບທີ 11: ສະຖິຕິການປະຕິບັດສໍາລັບ 512 ຂຽນແລະ 512 ອ່ານ - ການປ່ຽນແຖວສໍາລັບ 64 ຂຽນຫຼືອ່ານ.
ດຽວນີ້ເຈົ້າສາມາດນຳໃຊ້ຄວາມຮູ້ທີ່ໄດ້ຮຽນມາໃນພາກກ່ອນໜ້ານີ້ ເພື່ອປັບປຸງປະສິດທິພາບ. ເພື່ອນໍາໃຊ້ທະນາຄານທັງຫມົດແທນທີ່ຈະປ່ຽນແຖວ, ແກ້ໄຂຮູບແບບທີ່ຢູ່ເພື່ອປ່ຽນທະນາຄານຕາມຮູບຂ້າງລຸ່ມນີ້. ອັນນີ້ເທົ່າກັບການຕັ້ງຄ່າ ROW_BANK_Column ໃນການຕັ້ງຄ່າແຜນທີ່ທີ່ຢູ່ໜ່ວຍຄວາມຈຳໃນ MIG GUI.

ໃນຕອນທ້າຍຂອງການຈໍາລອງ, ທ່ານຈະເຫັນວ່າການນໍາໃຊ້ລົດເມ 77 ເປີເຊັນກ່ອນຫນ້ານີ້ແມ່ນ 87!

ຖ້າທ່ານຍັງຕ້ອງການປະສິດທິພາບສູງກວ່າ, ທ່ານສາມາດໄປຫາຂະຫນາດແພັກເກັດຂະຫນາດໃຫຍ່ຂອງ 1024 ຫຼື 2048 bytes, ຫຼືພິຈາລະນາການໂຫຼດຫນ້າຈໍຄືນຄູ່ມື.
ໝາຍເຫດ: Xilinx ບໍ່ໄດ້ຊຸກຍູ້ໃຫ້ overpassing controller refresh, ເນື່ອງຈາກວ່າພວກເຮົາບໍ່ແນ່ໃຈວ່າທ່ານຈະສາມາດຕອບສະຫນອງ JEDEC auto Refresh time, ເຊິ່ງຜົນກະທົບຕໍ່ຄວາມຫນ້າເຊື່ອຖືຂອງຂໍ້ມູນ. ຈາກຕົວຄວບຄຸມທ່ານສາມາດປ່ຽນ NBANNBANk_MACH ເພື່ອເບິ່ງການປັບປຸງປະສິດທິພາບ. ຢ່າງໃດກໍຕາມ, ນີ້ອາດຈະສົ່ງຜົນກະທົບຕໍ່ໄລຍະເວລາການອອກແບບຂອງທ່ານ, ກະລຸນາເບິ່ງ (Xilinx Answer 36505) ສໍາລັບລາຍລະອຽດກ່ຽວກັບ nBANk_MACH.

ເປີດ core_name_mig_sim.v file ແລະປ່ຽນພາລາມິເຕີ nBANK_MACHS ຈາກ 4 ເປັນ 8 ແລະດໍາເນີນການຈໍາລອງຄືນໃຫມ່.
ເພື່ອໃຫ້ຄ່າພາລາມິເຕີມີຜົນໃນຮາດແວ, ທ່ານຕ້ອງອັບເດດ core_name_mig.v file. ຂ້າພະເຈົ້າໄດ້ນໍາໃຊ້ຮູບແບບດຽວກັນທີ່ພວກເຮົາໄດ້ຮັບການນໍາໃຊ້ລົດເມ 87% (ຮູບ 2). ດ້ວຍ nBANK_MACHS ຕັ້ງເປັນ 8, ປະສິດທິພາບແມ່ນ 90%.

ນອກຈາກນັ້ນ, ໃຫ້ສັງເກດວ່າຕົວຄວບຄຸມ ½ ແລະ ¼ ມີຜົນກະທົບທາງລົບຕໍ່ປະສິດທິພາບເນື່ອງຈາກການ latencies ຂອງມັນ. ຕົວຢ່າງample, ເນື່ອງຈາກວ່າພວກເຮົາພຽງແຕ່ສາມາດສົ່ງຄໍາສັ່ງທຸກໆ 4 CK ຮອບວຽນ, ບາງຄັ້ງມີ padding ພິເສດໃນເວລາທີ່ປະຕິບັດຕາມ specs ຕໍາ່ສຸດທີ່ DRAM ໄລຍະເວລາ, ເຊິ່ງສາມາດຫຼຸດລົງປະສິດທິພາບຈາກທິດສະດີ. ລອງໃຊ້ຕົວຄວບຄຸມທີ່ແຕກຕ່າງກັນເພື່ອຊອກຫາຫນຶ່ງທີ່ເຫມາະສົມກັບຄວາມຕ້ອງການປະສິດທິພາບຂອງທ່ານ. ເອກະສານອ້າງອີງ
- Zynq-7000 AP SoC ແລະ 7 Series FPGAs MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
ປະຫວັດການແກ້ໄຂ
13/03/2015 – ເປີດຕົວຄັ້ງທຳອິດ..
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ຕົວແທນຈໍາຫນ່າຍ XILINX 63234 END FPGA [pdf] ຄູ່ມືຜູ້ໃຊ້ 63234 END FPGA Distributor, 63234, END FPGA Distributor, ຜູ້ຈັດຈໍາຫນ່າຍ FPGA |

