Panduan Anggaran Prestasi Xilinx DDR2 MIG 7
Nota Penting: PDF Rekod Jawapan yang boleh dimuat turun ini disediakan untuk meningkatkan kebolehgunaan dan kebolehbacaannya. Adalah penting untuk ambil perhatian bahawa Rekod Jawapan adalah Webkandungan berasaskan yang kerap dikemas kini apabila maklumat baharu tersedia. Anda diingatkan untuk melawati Sokongan Teknikal Xilinx Webtapak dan semulaview (Jawapan Xilinx 63234) untuk versi terkini Jawapan ini.
pengenalan
Oleh kerana cara memori DDR2 dan DDR3 direka bentuk dan pengawal siri MIG 7 direka, prestasi tidak lurus ke hadapan.
Ia memerlukan pemahaman tentang pelbagai parameter Masa Jedec dan Senibina pengawal, dan anda perlu menjalankan simulasi untuk mendapatkan anggaran.
Prinsip umum untuk menentukan prestasi adalah sama tetapi dokumen ini menyediakan cara mudah untuk mendapatkan kecekapan menggunakan MIG exampreka bentuk dengan bantuan bangku ujian dan rangsangan files dilampirkan di sini.
Lebar Jalur Berkesan
Bas data DRAM mencapai lebar jalur hampir puncak hanya semasa pecah baca dan tulis dan overhednya merendahkan kadar data berkesan.
Beberapa bekasampkurang daripada overhed ialah:
- masa pracaj mengakses baris dalam bank yang sama (Alamat akses bukan dalam hit halaman baris yang sama)
- menulis masa pemulihan untuk menukar daripada menulis kepada akses membaca
- masa pusing balik bas untuk menukar daripada akses baca kepada tulis
Lebar Jalur Berkesan = Lebar Jalur Puncak * Kecekapan
Penjanaan Reka Bentuk MIG
Rujuk UG586 Bab 1 untuk butiran langkah demi langkah tentang MIG IP dan examppenjanaan reka bentuk.
Sebelum menjalankan simulasi prestasi MIG 7 Series, lakukan perkara berikut untuk memastikan persekitaran simulasi anda baik. Buka bekas MIGampReka bentuk dan petakan perpustakaan yang sesuai, jalankan simulasi dan pastikan anda dapat melihat mesej "ujian lulus" dalam transkrip.
Untuk menunjukkan aliran saya telah menghasilkan IP MIG untuk xc7vx690tffg1761-2 dan menggunakan exampreka bentuk.
Dua perkara yang perlu diberi perhatian ialah bit alamat memori dan pemilihan pemetaan alamat memori.
Untuk exampOleh itu, saya telah memilih MT41J128M8XX-125 di bawah pilihan juntai bawah bahagian memori.
Untuk bahagian memori yang dipilih daripada Rajah-1, baris = 14, lajur = 10 dan bank = 3, jadi app_addr_width = baris + lajur + bank + pangkat = 28
Anda boleh memilih sama ada BANK_ROW_COLUMN atau ROW BANK Lajur.
Saya telah meninggalkan Lajur ROW BANK yang merupakan pemetaan alamat lalai.
Exampreka bentuk Simulasi dengan bangku ujian yang boleh disintesis
Di bawah tetapan Simulasi, pilih Simulator QuestaSim/ModelSim dan semak imbas ke lokasi perpustakaan yang disusun.
Untuk butiran tentang menunjuk ke laluan pemasangan alat pihak ketiga, memilih simulator sasaran dan menyusun serta memetakan perpustakaan, anda boleh merujuk kepada (UG900) Panduan Pengguna Vivado Design Suite Simulasi Logik
Jalankan simulasi melalui GUI (Klik Tab Run Simulation dalam pengurus projek) dan pastikan anda melihat mesej "ujian lulus" dalam transkrip.
Pengubahsuaian RTL Simulasi Prestasi
- Klik kanan tab sumber, pilih "tambah atau cipta sumber simulasi", dan semak imbas ke mig7_perfsim_traffic_generator.sv file dan klik selesai untuk menambahkannya.
- Klik kanan tab sumber, pilih "tambah atau cipta sumber simulasi", semak imbas ke perfsim_stimulus.txt, dan klik selesai untuk menambahkannya.
- Komen bekasampinstantiasi le_top dalam sim_tb_top.v file.
- Tambahkan baris RTL di bawah ke 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;
- wayar [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- wayar [2:0] c0_ddr3_app_cmd;
- wayar c0_ddr3_app_en;
- wayar [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- wayar c0_ddr3_app_wdf_end;
- wayar [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- wayar c0_ddr3_app_wdf_wren;
- wayar [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- wayar c0_ddr3_app_rd_data_end;
- wayar c0_ddr3_app_rd_data_valid;
- wayar c0_ddr3_app_rdy;
- wayar c0_ddr3_app_wdf_rdy;
- wayar c0_data_compare_error;
- wayar ui_clk;
- wayar ui_clk_sync_rst;
- wayar app_sr_req = 0;
- wayar app_ref_req = 0;
- wayar app_zq_req =0;
- wayar c0_app_wdf_mask =0;
Instalasi Pengawal Memori FPGA
mig_7series_0_mig u_mig_7series_0_mig (
// Port antara muka memori
- .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),
// Port antara muka aplikasi
- .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),
// Pelabuhan Jam Sistem
- .sys_clk_i (sys_clk_i),
// Pelabuhan Jam Rujukan
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Instalasi penjana trafik prestasi
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_trafik_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. Ubah suai APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH dan BANK_WIDTH mengikut pemilihan bahagian memori anda.
Nilai boleh diperolehi daripada _mig.v file. - Nama instantiasi yang diserlahkan kuning mig_7series_0_mig boleh berbeza-beza berdasarkan nama komponen anda semasa penciptaan IP, sahkan jika anda telah memilih nama lain dan tukarkannya dengan sewajarnya.
- Sebaik sahaja IP dijana buka _mig.v file dan semak silang untuk sebarang variasi dalam nama isyarat LHS dan betulkannya.
- app_sr_req, app_ref_req dan app_zq_req hendaklah dimulakan kepada 0.
- Sebagai bekasample_top.v diulas dan baharu files ditambah, anda mungkin akan melihat “?” di sebelah
mig_7series_0_mig.v file di bawah sumber simulasi.
Untuk memetakan yang betul file, klik kanan mig_7series_0_mig.v, pilih "Tambah Sumber", Semak imbas ke
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
dan tambahkan mig_7series_0_mig_sim.v file. - Jika anda melihat “?” untuk yang mendasari files, tambahkan semua RTL files dalam folder jam, pengawal, ip_top,phy dan UI.
- Setelah perubahan RTL selesai dan semua yang diperlukan files ditambahkan pada Sumber Simulasi anda, Hierarki harus serupa dengan Rajah 5.
The files yang diserlahkan dalam warna merah baru ditambah, dan “?” dijangka pada modul berkaitan ECC kerana konfigurasi memori yang dipilih mempunyai pilihan ECC dilumpuhkan.
Rangsangan File Penerangan
Setiap corak rangsangan ialah 48 bit dan formatnya diterangkan dalam Rajah 6-1 hingga 6-4.
Pengekodan Alamat (Alamat [35:0])
Alamat dikodkan dalam rangsangan seperti Rajah 7-1 hingga Rajah 7-6. Semua medan alamat perlu dimasukkan dalam format heksadesimal. Semua medan alamat ialah lebar yang boleh dibahagikan dengan empat untuk dimasukkan dalam format perenambelasan. Bangku ujian hanya menghantar bit medan alamat yang diperlukan kepada Pengawal Memori.
Untuk exampOleh itu, dalam konfigurasi lapan bank, hanya Bit bank [2:0] dihantar ke Pengawal Memori dan bit yang tinggal diabaikan. Bit tambahan untuk medan alamat disediakan untuk anda memasukkan alamat dalam format perenambelasan.
Anda mesti mengesahkan nilai yang dimasukkan sepadan dengan lebar konfigurasi yang diberikan.
- Alamat Lajur (Lajur[11:0]) – Alamat Lajur dalam rangsangan diberikan kepada maksimum 12 bit, tetapi anda perlu menangani perkara ini berdasarkan parameter lebar lajur yang ditetapkan dalam reka bentuk anda.
- Alamat Baris (Baris[15:0]) – Alamat baris dalam rangsangan diberikan kepada maksimum 16 bit, tetapi anda perlu menangani ini berdasarkan parameter lebar baris yang ditetapkan dalam reka bentuk anda.
- Alamat Bank (Bank[3:0]) – Alamat bank dalam rangsangan diberikan kepada maksimum empat bit, tetapi anda perlu menangani perkara ini berdasarkan parameter lebar bank yang ditetapkan dalam reka bentuk anda.
- Alamat Pangkat (Pangkat[3:0]) – Alamat kedudukan dalam rangsangan diberikan kepada maksimum empat bit, tetapi anda perlu menanganinya berdasarkan parameter lebar pangkat yang ditetapkan dalam reka bentuk anda.
Alamat dipasang berdasarkan parameter MEM_ADDR_ORDER peringkat atas dan dihantar ke antara muka pengguna
Ulang Perintah (Ulangan Perintah [7:0])
Kiraan ulangan arahan ialah bilangan masa arahan masing-masing diulang di Antara Muka Pengguna. Alamat untuk setiap ulangan ditambah dengan 8. Kiraan ulangan maksimum ialah 128.
Bangku ujian tidak menyemak sempadan lajur dan ia membungkus jika had lajur maksimum dicapai semasa kenaikan.
128 Perintah mengisi halaman. Untuk mana-mana alamat lajur selain daripada 0, kiraan ulangan 128 berakhir dengan melintasi sempadan lajur dan melilit ke permulaan alamat lajur.
Penggunaan Bas
Penggunaan bas dikira pada Antara Muka Pengguna dengan mengambil kira jumlah Baca dan Tulis dan persamaan berikut digunakan:
- BL8 mengambil empat kitaran jam memori
- end_of_stimulus ialah masa apabila semua arahan selesai.
- calib_done ialah masa apabila penentukuran dilakukan.
Example Corak
Bekas iniamples adalah berdasarkan MEM_ADDR_ORDER yang ditetapkan kepada BANK_ROW_COLUMN.
Corak Bacaan Tunggal
00_0_2_000F_00A_1 – Corak ini dibaca sekali daripada lajur ke-10, baris ke-15 dan bank kedua.Corak Tulis Tunggal
00_0_1_0040_010_0 – Corak ini ialah satu tulisan pada lajur ke-32, baris ke-128 dan bank pertama.Tunggal Tulis dan Baca ke Alamat yang Sama
00_0_2_000F_00A_0 – Corak ini ialah tulis tunggal ke lajur ke-10, baris ke-15 dan bank kedua.
00_0_2_000F_00A_1 – Corak ini ialah bacaan tunggal dari lajur ke-10, baris ke-15 dan bank kedua
Berbilang Tulisan dan Bacaan dengan Alamat Yang Sama
0A_0_0_0010_000_0 – Ini sepadan dengan 10 penulisan dengan alamat bermula dari 0 hingga 80 yang boleh dilihat dalam lajur.
0A_0_0_0010_000_1 – Ini sepadan dengan 10 bacaan dengan alamat bermula dari 0 hingga 80 yang boleh dilihat dalam lajur.
Bungkus Halaman Semasa Menulis
0A_0_2_000F_3F8_0 – Ini sepadan dengan 10 penulisan dengan alamat lajur dibalut pada permulaan halaman selepas satu penulisan.
Mensimulasikan Penjana Trafik Prestasi
Pada ketika ini anda telah selesai dengan MIG exampsimulasi reka bentuk. Ini menunjukkan bahawa persediaan simulasi anda sudah sedia, anda telah melakukan pengubahsuaian RTL simulasi prestasi, hierarki simulasi baharu adalah betul dan anda telah memahami corak rangsangan. Jalankan simulasi sekali lagi dengan 16 tulisan dan bacaan dalam perfsim_stimulus.txt.
Lakukan run-all, tunggu sehingga isyarat init_calib_complete ditegaskan, dan anda akan dapat melihat bilangan penulisan dan bacaan yang dicadangkan. Simulasi kemudiannya akan berhenti.
Apabila anda digesa untuk berhenti daripada simulasi, pilih Tidak dan pergi ke tetingkap transkrip di mana anda akan dapat melihat statistik prestasi.
Jika anda memilih "berhenti simulasi" statistik prestasi akan ditulis kepada a file bernama mig_band_width_output.txt terletak dalam sim_1/behave folder.
Examplaluan direktori:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Anda mungkin tertanya-tanya mengapa peratusantagpenggunaan bas adalah ony 29. Jalankan semula simulasi dengan tetapan IP yang sama tetapi hanya menukar rangsangan file kepada 256 menulis dan 256 membaca
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Anda kini akan melihat peratusantage sebagai 85, yang membayangkan bahawa DDR3 menawarkan penggunaan bas yang lebih baik untuk urutan penulisan dan bacaan yang panjang.
Cara umum untuk Meningkatkan Prestasi
Faktor-faktor yang mempengaruhi kecekapan boleh dibahagikan kepada dua bahagian:
- Khusus Memori
- Khusus Pengawal
Rajah 9 memberi anda penamatview daripada istilah yang khusus memori.
Tidak seperti SRAM dan Block Memories DDR2 atau prestasi DDR3 bukan sekadar kadar data maksimum.
Ia bergantung kepada banyak faktor masa, termasuk:
- tRCD: Kelewatan Perintah Baris (atau kelewatan ras to cas).
- tCAS(CL): Kependaman strob alamat lajur.
- tRP: Kelewatan pracas baris.
- tRAS: Waktu Aktif Baris (aktifkan untuk pratukar).
- tRC: Masa kitaran baris. tRC = tRAS + tRP
- tTRAC: Kelewatan akses radom. tRAC = tRCD + tCAS
- tCWL: Kependaman tulis Cas.
- tZQ: Masa penentukuran ZQ.
- tRFC: Masa Kitaran Muat Semula Baris
- tWTR: Tulis untuk Baca kelewatan. Urus niaga tulis terakhir ke masa arahan Baca.
- tWR: Tulis masa Pemulihan. Urus niaga tulis terakhir ke masa Pracaj
Masa semua parameter yang disenaraikan bergantung pada jenis memori yang digunakan dan gred kelajuan bahagian memori.
Butiran lanjut tentang definisi dan spesifikasi masa boleh didapati dalam DDR2 DDR3 JEDEC atau dalam mana-mana lembaran data peranti memori.
Kecekapan terutamanya bergantung pada cara memori diakses. Corak alamat yang berbeza memberikan hasil kecekapan yang berbeza.
Overhed pemasaan memori
- Masa pengaktifan dan masa Pracaj apabila menukar kepada bank/baris baharu atau menukar baris dengan dalam bank yang sama.- Jadi jika anda mengurangkan pertukaran baris, ini boleh mengalih keluar tRCD dan tRP.
- Hantar arahan tulis atau baca berterusan -Mengekalkan pemasaan tCCD.
- Minimumkan tulis untuk membaca dan membaca untuk menulis pertukaran arahan – Tulis masa pemulihan untuk menukar kepada akses membaca, masa pusing balik bas untuk menukar daripada membaca kepada menulis
- Tetapkan selang penyegaran yang betul.
- DDR3 SDRAM memerlukan kitaran Muat Semula pada selang berkala purata tREFI.
- Maksimum 8 arahan Refresh tambahan boleh dikeluarkan lebih awal (“ditarik masuk”). Ini tidak mengurangkan bilangan muat semula, tetapi selang maksimum antara dua perintah Muat semula di sekeliling adalah terhad kepada 9 × tREFI
- Gunakan semua bank - Mekanisme pengalamatan yang sesuai adalah lebih baik.
- Lajur-Bank-Baris: Untuk transaksi yang berlaku di atas ruang alamat berjujukan, teras secara automatik membuka baris yang sama di bank seterusnya peranti DRAM untuk meneruskan transaksi apabila penghujung baris sedia ada dicapai. Ia amat sesuai untuk aplikasi yang memerlukan pecahan paket data yang besar ke lokasi alamat berjujukan.
- Lajur Bank-Baris: Apabila melintasi sempadan baris, baris semasa akan ditutup dan baris lain akan dibuka dalam bank yang sama. MSB ialah alamat bank, yang boleh digunakan untuk bertukar daripada bank yang berbeza. Ia sesuai untuk urus niaga yang lebih pendek, lebih rawak ke satu blok memori untuk satu tempoh masa dan kemudian melompat ke blok lain (bank)
- Panjang Pecah
- BL 8 disokong untuk siri DDR3 pada 7. BC4 mempunyai kecekapan yang sangat rendah iaitu kurang daripada 50%. Ini kerana masa pelaksanaan BC4 adalah sama dengan BL8. Data hanya bertopeng di dalam komponen.
- Dalam kes di mana anda tidak mahu menulis letupan penuh, sama ada topeng data atau tulis-selepas-baca boleh dipertimbangkan.
- Tetapkan selang ZQ yang betul (DDR3 Sahaja)
Pengawal menghantar arahan Penentukuran ZQ Short (ZQCS) dan ZQ Long (ZQCL).- Patuhi Piawaian Jedec DDR3
- Penentukuran ZQ dibincangkan dalam bahagian 5.5 dari JEDEC Spec JESD79-3 DDR3 SDRAM Standard
- Penentukuran ZQ menentukur Penamatan Pada Die (ODT) pada selang masa yang tetap untuk mengambil kira variasi merentas VT
- Logik terkandung dalam bank_common.v/vhd
- Parameter Tzqcs menentukan kadar arahan Penentukuran ZQ dihantar ke memori
- t adalah mungkin untuk melumpuhkan kaunter dan menghantar secara manual menggunakan app_zq_req, ia adalah Sama seperti menghantar Muat Semula secara manual.
Rujuk (Jawapan Xilinx 47924) untuk butiran.
Overhed Pengawal
- Bacaan Berkala – Rujuk (Jawapan Xilinx 43344) untuk butiran.
- Jangan ubah tempoh bacaan
- Langkau bacaan berkala semasa penulisan dan keluarkan bilangan bacaan terlepas sebelum bacaan benar
- Menyusun Semula – Rujuk (Jawapan Xilinx 34392) untuk butiran.
Untuk reka bentuk Antara Muka Pengguna dan AXI adalah lebih baik untuk membolehkan ini.- Susun semula ialah logik yang melihat ke hadapan beberapa arahan dan mengubah susunan arahan pengguna untuk membuat arahan bukan memori tidak menduduki lebar jalur yang sah. Prestasi juga berkaitan dengan corak trafik sebenar.
- Berdasarkan corak alamat, susunan semula membantu melangkau pracaj dan mengaktifkan arahan serta menjadikan tRCD dan tRP tidak menempati lebar jalur data.
- Cuba tambah bilangan Mesin Bank.
- Kebanyakan logik pengawal berada dalam mesin bank dan ia sepadan dengan bank DRAM
- Mesin bank tertentu menguruskan bank DRAM tunggal pada bila-bila masa.
- Penetapan mesin bank adalah dinamik jadi tidak perlu mempunyai mesin bank untuk setiap bank fizikal.
- Mesin bank boleh dikonfigurasikan, tetapi ia adalah pertukaran antara kawasan dan prestasi.
- Bilangan mesin bank yang dibenarkan adalah antara 2-8.
- Secara lalai, 4 Mesin Bank dikonfigurasikan melalui parameter RTL.
- Untuk menukar Mesin Bank, pertimbangkan parameter nBANK_MACHS = 8 yang terkandung dalam memc_ui_top Example untuk 8 Mesin Bank – nBANK_MACHS = 8
Anda kini sedar tentang faktor yang mempengaruhi prestasi.
Pertimbangkan aplikasi huluan yang memberi anda 512 bait data setiap paket dan anda perlu menyimpannya ke lokasi memori yang berbeza. Memandangkan 512 bait data adalah bersamaan dengan 64 letupan data DDR3, jalankan semula exampreka bentuk dengan rangsangan file mengandungi 512 tulisan, 512 bacaan dan penukaran baris untuk setiap 64 tulisan atau bacaan:
- 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
Pada akhir simulasi anda akan melihat bahawa penggunaan bas adalah pada 77 peratus.
Rajah 11: Statistik Prestasi untuk 512 tulis dan 512 bacaan – Penukaran baris untuk 64 tulis atau baca.
Anda kini boleh menggunakan pengetahuan yang dipelajari dalam bahagian awal untuk meningkatkan kecekapan. Dengan view untuk menggunakan semua bank dan bukannya menukar baris, ubah suai corak alamat untuk menukar bank seperti yang ditunjukkan di bawah.
Ini bersamaan dengan menetapkan ROW_BANK_Column dalam tetapan pemetaan alamat memori dalam GUI MIG.
- 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
Pada penghujung simulasi anda akan melihat bahawa 77 Peratus Penggunaan Bas sebelum ini kini 87!
Jika anda masih memerlukan kecekapan yang lebih tinggi, anda boleh menggunakan saiz paket besar 1024 atau 2048 bait, atau pertimbangkan muat semula manual.
Nota: Xilinx tidak menggalakkan memintas muat semula pengawal kerana kami tidak pasti sama ada anda akan dapat memenuhi pemasaan muat semula automatik Jedec yang menjejaskan kebolehpercayaan data.
Dari bahagian pengawal anda boleh menukar nBANk_MACH dan melihat peningkatan dalam prestasi.
Walau bagaimanapun, ini boleh menjejaskan masa reka bentuk anda, sila rujuk (Jawapan Xilinx 36505) untuk butiran tentang nBANk_MACH
Buka core_name_mig_sim.v file dan tukar parameter nBANK_MACHS daripada 4 kepada 8 dan jalankan semula simulasi. Untuk memastikan nilai parameter berkuat kuasa dalam perkakasan, anda perlu mengemas kini core_name_mig.v file.
Saya menggunakan corak yang sama di mana kami mendapat 87% penggunaan bas (angka -12).
Dengan nBANK_MACHS ditetapkan kepada 8, kecekapan kini adalah 90%.
Juga ambil perhatian bahawa pengawal ½ dan ¼ menjejaskan kecekapan secara negatif disebabkan kependamannya.
Untuk exampOleh kerana kami hanya boleh menghantar arahan setiap 4 kitaran CK, kadangkala terdapat pelapik tambahan apabila mematuhi spesifikasi pemasaan DRAM minimum, yang boleh mengurangkan kecekapan daripada teori.
Cuba pengawal yang berbeza untuk mencari yang sesuai dengan keperluan kecekapan anda.
Rujukan
- Zynq-7000 AP SoC dan 7 Siri FPGA MIS v2.3 [UG586]
- Pusat Penyelesaian Xilinx MIG http://www.xilinx.com/support/answers/34243.html
Sejarah Semakan
13/03/2015 – Keluaran awal
Muat turun PDF: Panduan Anggaran Prestasi Xilinx DDR2 MIG 7