XILINX-ლოგო

XILINX 63234 END FPGA დისტრიბუტორი

XILINX-63234-END-FPGA-დისტრიბუტორი-პროდუქტი

მნიშვნელოვანი შენიშვნა: პასუხის ჩანაწერის ეს გადმოსაწერი PDF მოცემულია მისი გამოყენებადობისა და წაკითხვის გასაუმჯობესებლად. მნიშვნელოვანია აღინიშნოს, რომ პასუხების ჩანაწერები არის Web-ზე დაფუძნებული კონტენტი, რომელიც ხშირად განახლდება ახალი ინფორმაციის ხელმისაწვდომობისთანავე. შეგახსენებთ, რომ ეწვიოთ Xilinx-ის ტექნიკური მხარდაჭერის სამსახურს. Webსაიტი და რეview (Xilinx Answer 63234) ამ პასუხის უახლესი ვერსიისთვის.

შესავალი

DDR2 და DDR3 მეხსიერების არქიტექტურისა და MIG 7 სერიის კონტროლერის დიზაინის გამო, შესრულება მარტივი არ არის. ეს მოითხოვს Jedec-ის სხვადასხვა დროის პარამეტრისა და კონტროლერის არქიტექტურის გაგებას და შეფასებების მისაღებად სიმულაციების ჩატარება დაგჭირდებათ. შესრულების განსაზღვრის ზოგადი პრინციპი იგივეა, მაგრამ ეს დოკუმენტი გთავაზობთ მარტივ გზას MIG ex-ის გამოყენებით ეფექტურობის მისაღწევად.ampდიზაინის შექმნა სატესტო სკამისა და სტიმულის დახმარებით fileაქ არის მიმაგრებული.

ეფექტური გამტარობა
DRAM მონაცემთა ავტობუსი პიკურ გამტარუნარიანობას მხოლოდ წაკითხვისა და ჩაწერის პაკეტების დროს აღწევს და მისი გადატვირთვა ამცირებს ეფექტურ მონაცემთა გადაცემის სიჩქარეს.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.-36

რამდენიმე ყოფილიampოვერჰედის ხარჯების შემცირებაა

  • წინასწარ დატენვის დრო ერთსა და იმავე ბანკში მწკრივებზე წვდომისთვის (წვდომის მისამართი არ არის იმავე მწკრივის გვერდზე)
  • ჩაწერეთ აღდგენის დრო ჩაწერიდან წაკითხვის წვდომაზე გადასვლისთვის
  • ავტობუსის ბრუნვის დრო წაკითხვის წვდომიდან ჩაწერის წვდომაზე გადასასვლელად

საათის ციკლები მონაცემების გადატანაში

  • ეფექტურობა (%) = ———————————————-

საათის ციკლების ჯამი
ეფექტური გამტარობა = მაქსიმალური გამტარობა * ეფექტურობა

MIG დიზაინის თაობა

  • იხილეთ UG586 თავი 1 ნაბიჯ-ნაბიჯ დეტალებისთვის MIG IP-სა და ყოფილიampდიზაინის თაობა.
  • MIG 7 სერიის შესრულების სიმულაციის გაშვებამდე, დარწმუნდით, რომ თქვენი სიმულაციური გარემო გამართულია.
  • გახსენით MIG exampშექმენით და შეადგინეთ შესაბამისი ბიბლიოთეკები, გაუშვით სიმულაცია და დარწმუნდით, რომ ხედავთ შეტყობინებას „ტესტი ჩაბარდა“ ჩანაწერში.
  • ნაკადის დემონსტრირებისთვის, მე შევქმენი MIG IP xc7vx690tffg1761-2-ისთვის და გამოვიძახე exampდიზაინი.
  • ორი რამ, რაც უნდა აღინიშნოს, არის მეხსიერების მისამართების ბიტები და მეხსიერების მისამართის რუკის შერჩევა.
  • მაგampმაგალითად, მეხსიერების ნაწილის ჩამოსაშლელი სიიდან MT41J128M8XX-125 ავირჩიე.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (1)

მეხსიერების შერჩეული ნაწილისთვის ნახაზი-1-დან, მწკრივი = 14, სვეტი = 10 და ბანკი = 3, ასე რომ app_addr_width = მწკრივი + სვეტი + ბანკი + რანგი = 28

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (2)

შეგიძლიათ აირჩიოთ BANK_ROW_COLUMN ან ROW BANK_COLUMN.
მე დავტოვე ROW BANK სვეტი, რომელიც მისამართების ნაგულისხმევ შესაბამისობას წარმოადგენს.

Example design სიმულაცია სინთეზირებადი ტესტის სკამით

  • სიმულაციის პარამეტრებში აირჩიეთ QuestaSim/ModelSim Simulator და გადადით კომპილირებული ბიბლიოთეკების მდებარეობაზე.
  • მესამე მხარის ინსტრუმენტების ინსტალაციის გზის მითითების, სამიზნე სიმულატორის არჩევის, ასევე ბიბლიოთეკების კომპილაციისა და შესაბამისობის შედგენის შესახებ დამატებითი ინფორმაციისთვის შეგიძლიათ იხილოთ (UG900) Vivado Design Suite-ის მომხმარებლის სახელმძღვანელო ლოგიკური სიმულაცია.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (3)

მოახდინეთ გრაფიკული ინტერფეისის სიმულაცია (პროექტის მენეჯერში დააწკაპუნეთ Run Simulation ჩანართზე) და დარწმუნდით, რომ ტრანსკრიპტში ხედავთ შეტყობინებას „ტესტი წარმატებით დასრულდა“.

შესრულების სიმულაციის RTL მოდიფიკაციები

  1. დააწკაპუნეთ მაუსის მარჯვენა ღილაკით წყაროების ჩანართზე, აირჩიეთ „სიმულაციური წყაროების დამატება ან შექმნა“ და გადადით mig7_perfsim_traffic_generator.sv ფაილზე. file და დააწკაპუნეთ დასრულება დასამატებლად.
  2. დააწკაპუნეთ მაუსის მარჯვენა ღილაკით წყაროების ჩანართზე, აირჩიეთ „სიმულაციური წყაროების დამატება ან შექმნა“, გადადით perfsim_stimulus.txt-ზე და დააჭირეთ დამატების დასრულებას.
  3. კომენტარი გააკეთეთ ყოფილზეample_top ინსტანცია sim_tb_top.v-ში file.
  4. დაამატეთ ქვემოთ მოცემული RTL ხაზები sim_tb_top,vXILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (4)XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (5)XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (6)XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (7)XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (8)
  5. მეხსიერების ნაწილის არჩევის მიხედვით შეცვალეთ APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH, H და BANK_WIDTH. მნიშვნელობების მიღება შესაძლებელია _mig.v ფაილიდან. file.
  6. ყვითლად მონიშნული ინსტანცირების სახელი mig_7series_0_mig შეიძლება განსხვავდებოდეს IP მისამართის შექმნის დროს თქვენი კომპონენტის სახელის მიხედვით. გადაამოწმეთ, აირჩიეთ თუ არა სხვა სახელი და შესაბამისად შეცვალეთ იგი.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (9)
  7. IP მისამართის გენერირების შემდეგ გახსენით _mig.v ფაილი. file და ჯვარედინი გადაამოწმეთ LHS სიგნალების სახელწოდებებში ნებისმიერი ვარიაცია და შეასწორეთ ისინი.
  8. app_sr_req, app_ref_req და app_zq_req უნდა იყოს ინიციალიზებული 0-ზე.
  9. როგორც ყოფილიample_top.v გამოხმაურებულია და ახალია files-ის დამატების შემთხვევაში, mig_7series_0_mig.v-ის გვერდით ალბათ დაინახავთ „?“-ს. file სიმულაციური წყაროების ქვეშ.
  10. იმისათვის რომ რუკა სწორი 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.
  11. Თუ ხედავ "?" ძირეულისთვის files, დაამატეთ ყველა RTL files მდებარეობს clocking, controller, ip_top, phy და UI საქაღალდეებში.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (10)
  12. RTL ცვლილებების დასრულების შემდეგ და ყველა საჭირო fileთუ s დაემატება თქვენს სიმულაციის წყაროებს, იერარქია უნდა იყოს მე-5 სურათის მსგავსი.
  13. The fileწითლად მონიშნული s ახლად დამატებულია და ECC-თან დაკავშირებულ მოდულებზე მოსალოდნელია „?“ ნიშანი, რადგან არჩეულ მეხსიერების კონფიგურაციაში ECC ოფცია გამორთულია.

სტიმული File აღწერა

თითოეული სტიმულის ნიმუში 48 ბიტიანია და ფორმატი აღწერილია ნახაზებში 6-1-დან 6-4-მდე.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (11)

მისამართის კოდირება (მისამართი [35:0])
მისამართი სტიმულში კოდირებულია ნახაზი 7-1-დან ნახაზი 7-6-მდე მოცემული სქემის მიხედვით. მისამართის ყველა ველი უნდა შეიყვანოთ თექვსმეტობითი ფორმატით.

ყველა მისამართის ველი არის სიგანის, რომელიც იყოფა ოთხზე თექვსმეტობით ფორმატში შესაყვანად. სატესტო მაგიდა მისამართის ველის მხოლოდ საჭირო ბიტებს უგზავნის მეხსიერების კონტროლერს. მაგალითადampმაგალითად, რვა ბანკიან კონფიგურაციაში, მეხსიერების კონტროლერს მხოლოდ ბანკის ბიტები [2:0] ეგზავნება, დანარჩენი ბიტები კი იგნორირებულია. მისამართის ველის დამატებითი ბიტები მოცემულია იმისათვის, რომ მისამართი თექვსმეტობით ფორმატში შეიყვანოთ. თქვენ უნდა დაადასტუროთ, რომ შეყვანილი მნიშვნელობა შეესაბამება მოცემული კონფიგურაციის სიგანეს.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (12)

  • სვეტის მისამართი (სვეტი[11:0]) – სტიმულში სვეტის მისამართი მოცემულია მაქსიმუმ 12 ბიტით, მაგრამ თქვენ უნდა მიმართოთ მას თქვენს დიზაინში დაყენებული სვეტის სიგანის პარამეტრის საფუძველზე.
  • რიგის მისამართი (Row[15:0]) – სტიმულში რიგის მისამართი მოცემულია მაქსიმუმ 16 ბიტით, მაგრამ თქვენ უნდა მიმართოთ
  • ეს ეფუძნება თქვენს დიზაინში დაყენებულ რიგის სიგანის პარამეტრს.
  • ბანკის მისამართი (Bank[3:0]) – სტიმულში ბანკის მისამართი მაქსიმუმ ოთხი ბიტით არის მოცემული, მაგრამ ეს უნდა გაითვალისწინოთ თქვენს დიზაინში დაყენებული ბანკის სიგანის პარამეტრის მიხედვით.
  • რანგის მისამართი (Rank[3:0]) – სტიმულში რანგის მისამართი მაქსიმუმ ოთხი ბიტით არის მოწოდებული, მაგრამ ეს უნდა გაითვალისწინოთ თქვენს დიზაინში დაყენებული რანგის სიგანის პარამეტრის მიხედვით.
  • მისამართი იქმნება ზედა დონის MEM_ADDR_ORDER პარამეტრის საფუძველზე და იგზავნება მომხმარებლის ინტერფეისზე.

ბრძანების გამეორება (ბრძანების გამეორება [7:0])

  • ბრძანების გამეორების რაოდენობა არის მომხმარებლის ინტერფეისზე შესაბამისი ბრძანების გამეორების რაოდენობა. თითოეული გამეორების მისამართი იზრდება 8-ით. გამეორებების მაქსიმალური რაოდენობაა 128.
  • სატესტო სკამი არ ამოწმებს სვეტის საზღვარს და ის გარშემო შემობრუნდება, თუ ინკრემენტების დროს სვეტის მაქსიმალური ლიმიტი მიიღწევა.
  • 128 ბრძანება ავსებს გვერდს. 0-ის გარდა ნებისმიერი სვეტის მისამართისთვის, 128 გამეორების რაოდენობა გადაკვეთს.
  • სვეტის საზღვარი სვეტის მისამართის დასაწყისამდე იხვევა.

ავტობუსის გამოყენება

ავტობუსის გამოყენება გამოითვლება მომხმარებლის ინტერფეისზე, წაკითხვისა და ჩაწერის საერთო რაოდენობის გათვალისწინებით და გამოიყენება შემდეგი განტოლება:

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (13)

  • BL8 იღებს მეხსიერების საათის ოთხ ციკლს
  • სტიმულის დასასრული არის დრო, როდესაც ყველა ბრძანება შესრულებულია.
  • calib_done არის დრო, როდესაც კალიბრაცია კეთდება.

Example Patterns
ეს ყოფილიamples ეფუძნება MEM_ADDR_ORDER დაყენებულ BANK_ROW_COLUMN-ზე.

ერთი წაკითხული ნიმუში
00_0_2_000F_00A_1 – ეს ნიმუში არის ერთჯერადი წაკითხვა მე-10 სვეტიდან, მე-15 მწკრივიდან და მეორე ბანკიდან.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (14)

ერთიანი წერის ნიმუში
00_0_1_0040_010_0 – ეს ნიმუში არის ერთჯერადი ჩაწერა 32-ე სვეტში, 128-ე მწკრივში და პირველ ბანკში.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (15)

ერთი დაწერე და წაიკითხე იმავე მისამართზე

  • 00_0_2_000F_00A_0 – ეს ნიმუში არის ერთჯერადი ჩაწერა მე-10 სვეტში, მე-15 რიგში და მეორე ბანკში.
  • 00_0_2_000F_00A_1 – ეს ნიმუში ერთჯერადი წაკითხვით იწყება მე-10 სვეტიდან, მე-15 რიგიდან და მეორე ბანკიდან.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (16)

მრავალჯერ წერს და კითხულობს ერთი და იგივე მისამართით

  • 0A_0_0_0010_000_0 – ეს შეესაბამება 10 ჩაწერას მისამართებით 0-დან 80-მდე, რაც სვეტში ჩანს.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (17)
  • 0A_0_0_0010_000_1 – ეს შეესაბამება 10 წაკითხვას მისამართით 0-დან 8,0-მდე, რაც ჩანს სვეტში.XILINX-63a234-END-FPGA-დისტრიბუტორი-სურ.- (18)

გვერდის შეფუთვა წერის დროს
0A_0_2_000F_3F8_0 – ეს შეესაბამება 10 ჩანაწერს, ერთი ჩაწერის შემდეგ სვეტის მისამართით გვერდის დასაწყისამდე გადატანით.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (19)

ეფექტურობის ტრაფიკის გენერატორის სიმულაცია
ამ ეტაპზე, თქვენ დაასრულეთ MIG ex-თან მუშაობა.ampდიზაინის სიმულაცია. ეს გულისხმობს, რომ თქვენი სიმულაციის დაყენება მზადაა, თქვენ შეასრულეთ შესრულების სიმულაციის RTL მოდიფიკაციები, ახალი სიმულაციის იერარქია სწორია და თქვენ გაიგეთ სტიმულის ნიმუშები. კიდევ ერთხელ გაუშვით სიმულაცია 16 ჩაწერით და წაკითხვით perfsim_stimulus.txt-ში.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (20)

  • გაუშვით ყველაფერი, დაელოდეთ init_calib_complete სიგნალის დადასტურებას და შეძლებთ შემოთავაზებული ჩაწერისა და წაკითხვის რაოდენობის ნახვას. ამის შემდეგ სიმულაცია შეჩერდება.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (21)
  • როდესაც სიმულაციის დახურვის მოთხოვნით მოგეწოდებათ, აირჩიეთ „არა“ და გადადით ტრანსკრიპტის ფანჯარაში, სადაც შეძლებთ შესრულების სტატისტიკის ნახვას.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (22)
  • თუ აირჩევთ „სიმულაციის დატოვებას“, შესრულების სტატისტიკა ჩაიწერება file სახელწოდებით mig_band_width_output.txt, რომელიც მდებარეობს sim_1/behave საქაღალდეში.
  • Exampდირექტორიის გზა: - /mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behavXILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (23)

შეიძლება გაგიკვირდეთ, რატომ არის ეს პროცენტიtagავტობუსის გამოყენების კოეფიციენტი მხოლოდ 29-ია. გაიმეორეთ სიმულაცია იგივე IP პარამეტრებით, მაგრამ მხოლოდ სტიმულის შეცვლით. file 256-მდე წერს და 256 კითხულობს

  • ff_0_0_0000_000_0
  • ff_0_0_0000_000_1

ახლა ნახავთ პროცენტსtage როგორც 85, რაც გულისხმობს, რომ DDR3 გთავაზობთ ავტობუსის უკეთეს გამოყენებას ჩაწერისა და წაკითხვის ხანგრძლივი თანმიმდევრობისთვის.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (25)

შესრულების გაუმჯობესების ზოგადი გზები
ფაქტორები, რომლებიც გავლენას ახდენენ ეფექტურობაზე, შეიძლება დაიყოს ორ ნაწილად:

  1. მეხსიერების სპეციფიკურიXILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (26)
  2. სპეციფიკური კონტროლერი

სურათი 9 გაძლევს ზედსview მეხსიერებისთვის სპეციფიკური ტერმინების.
SRAM-ებისა და ბლოკ-მეხსიერებებისგან განსხვავებით, DDR2 ან DDR3-ის მუშაობა მხოლოდ მაქსიმალური მონაცემთა გადაცემის სიჩქარე არ არის.

ეს დამოკიდებულია დროის ბევრ ფაქტორზე, მათ შორის:

  • tRCD: რიგის ბრძანების შეფერხება (ან ras-დან cas-მდე შეფერხება).
  • tCAS(CL): სვეტის მისამართის სტრობოსკოპული სიგნალის შეყოვნება.
  • tRP: რიგის წინასწარი დატენვის შეფერხება.
  • tRAS: რიგის აქტიური დრო (გააქტიურეთ წინასწარი შესაცვლელად).
  • tRC: რიგის ციკლის დრო. tRC = tRAS + tRP
  • tRAC: შემთხვევითი წვდომის შეფერხება. tRAC = tRCD + tCAS
  • tCWLCAS-ის ჩაწერის შეყოვნება.
  • tZQ: ZQ კალიბრაციის დრო.
  • tRFC: რიგის განახლების ციკლის დრო
  • tWTR: ჩაწერიდან წაკითხვამდე დაყოვნება. ბოლო ჩაწერის ტრანზაქციის წაკითხვის ბრძანების დრო.
  • tWR: ჩაწერის აღდგენის დრო. ბოლო ჩაწერის ტრანზაქცია წინასწარი დატენვის დრომდე
  • ყველა ჩამოთვლილი პარამეტრის დრო დამოკიდებულია გამოყენებული მეხსიერების ტიპზე და მეხსიერების ნაწილის სიჩქარის ხარისხზე.
  • განმარტებებისა და დროის სპეციფიკაციების შესახებ დამატებითი დეტალები შეგიძლიათ იხილოთ DDR2 და DDR3 JEDEC სტანდარტებში ან ნებისმიერი მეხსიერების მოწყობილობის მონაცემთა ფურცელში.

ეფექტურობა ძირითადად დამოკიდებულია მეხსიერებაზე წვდომაზე. მისამართის სხვადასხვა შაბლონები იძლევა განსხვავებულ ეფექტურობის შედეგებს.

მეხსიერების დროის ზედნადები

  1. ახალ ბანკებზე/რიგებზე გადასვლისას ან იმავე ბანკში რიგების შეცვლისას გააქტიურების და წინასწარი დატენვის დრო. ამგვარად, თქვენ ამცირებთ რიგის ცვლილებას, რამაც შეიძლება წაშალოს tRCD და tRP.
  2. უწყვეტი ჩაწერის ან წაკითხვის ბრძანებების გაგზავნა - tCCD დროის შენარჩუნება.
  3. ჩაწერიდან წასაკითხად და წაკითხვიდან ჩასაწერად ბრძანებების გადართვის მინიმიზაცია - ჩაწერის აღდგენის დრო წაკითხვის წვდომებზე გადასასვლელად და ავტობუსის შესრულების დრო წაკითხვიდან ჩაწერაზე გადასასვლელად.
  4. დააყენეთ შესაბამისი განახლების ინტერვალი.
    • ა. DDR3 SDRAM-ს სჭირდება განახლების ციკლები tREFI-ის საშუალო პერიოდული ინტერვალით.
    • ბ. წინასწარ შეიძლება გაიცეს მაქსიმუმ 8 დამატებითი განახლების ბრძანება („შეყვანილი“). ეს არ ამცირებს განახლების რაოდენობას, მაგრამ ორ მიმდებარე განახლების ბრძანებას შორის მაქსიმალური ინტერვალი შემოიფარგლება 9 × tREFI-ით.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (27)
  5. გამოიყენეთ ყველა ბანკი - სასურველია შესაბამისი მისამართების მექანიზმი.
    • ა. რიგი-ბანკი-სვეტი: თანმიმდევრული მისამართების სივრცეში განხორციელებული ტრანზაქციისთვის, ბირთვი ავტომატურად ხსნის იმავე რიგს DRAM მოწყობილობის შემდეგ ბანკში, რათა გააგრძელოს ტრანზაქცია, როდესაც არსებული რიგის დასასრული მიიღწევა. ეს კარგად შეეფერება აპლიკაციებს, რომლებიც საჭიროებენ დიდი მონაცემთა პაკეტების ზედიზედ მისამართების ადგილმდებარეობებზე გადატანას.
    • ბ. ბანკი-მწკრივი-სვეტი: მწკრივის საზღვრის გადაკვეთისას, მიმდინარე მწკრივი დაიხურება და იმავე ბანკში გაიხსნება სხვა მწკრივი. MSB არის ბანკის მისამართი, რომლის გამოყენებაც შესაძლებელია სხვადასხვა ბანკიდან გადართვისთვის. ის შესაფერისია მეხსიერების ერთ ბლოკზე გარკვეული დროით უფრო მოკლე, უფრო შემთხვევითი ტრანზაქციებისთვის და შემდეგ სხვა ბლოკზე (ბანკზე) გადასასვლელად.
  6. აფეთქების სიგრძე
    • ა. BL 8 მხარდაჭერილია DDR3-ისთვის 7 სერიაზე. BC4-ს აქვს ძალიან დაბალი ეფექტურობა, რომელიც 50%-ზე ნაკლებია. ეს იმიტომ ხდება, რომ BC4-ის შესრულების დრო იგივეა, რაც BL8-ის. მონაცემები უბრალოდ შენიღბულია კომპონენტის შიგნით.
    • ბ. იმ შემთხვევებში, როდესაც არ გსურთ სრული პაკეტური ვერსიის ჩაწერა, შეგიძლიათ განიხილოთ მონაცემთა ნიღბის ან წაკითხვის შემდგომი ჩაწერის მეთოდი.
  7. დააყენეთ სათანადო ZQ ინტერვალი (მხოლოდ DDR3)
    კონტროლერი აგზავნის როგორც ZQ Short (ZQCS) ასევე ZQ Long (ZQCL) კალიბრაციის ბრძანებებს.
    • ა. DDR3 JEDEC სტანდარტის დაცვა
    • ბ. ZQ კალიბრაცია განხილულია JEDEC Spec JESD5.5-79 DDR3 SDRAM სტანდარტის 3 ნაწილში.
    • გ. ZQ კალიბრაცია რეგულარულად ახდენს აკმარისებას დენზე შეწყვეტის (ODT) დროს, რათა გათვალისწინებულ იქნას VT-ში არსებული ვარიაციები.
    • დ. ლოგიკა მოცემულია bank_common.v/vhd-ში
    • ე. პარამეტრი Tzqcs განსაზღვრავს მეხსიერებაში ZQ Calibration ბრძანების გაგზავნის სიჩქარეს.
    • ვ. შესაძლებელია მრიცხველის გამორთვა და ხელით გაგზავნა app_zq_req-ის გამოყენებით, ეს მსგავსია განახლების ხელით გაგზავნისა. დეტალებისთვის იხილეთ (Xilinx Answer 47924).XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (28)

კონტროლერის ზედნადები

  1. პერიოდული წაკითხვები – დეტალებისთვის იხილეთ (Xilinx-ის პასუხი 43344).
    • ა. არ შეცვალოთ წაკითხვის პერიოდი.
    • ბ. ჩაწერის დროს პერიოდული წაკითხვების გამოტოვება და ნამდვილ წაკითხვამდე გამოტოვებული წაკითხვების რაოდენობის მითითება.
  2. ხელახალი დალაგება – დეტალებისთვის იხილეთ (Xilinx Answer 34392). მომხმარებლის და AXI ინტერფეისის დიზაინისთვის სასურველია, რომ ეს ფუნქცია ჩართული იყოს.
    • ა. გადალაგება არის ლოგიკა, რომელიც რამდენიმე ბრძანებას წინასწარ ითვალისწინებს და მომხმარებლის ბრძანებების თანმიმდევრობას ცვლის ისე, რომ მეხსიერებისგან თავისუფალმა ბრძანებებმა არ დაიკავონ სწორი გამტარუნარიანობა. შესრულება ასევე დაკავშირებულია ფაქტობრივ ტრაფიკის ნიმუშთან.
    • ბ. მისამართის შაბლონზე დაყრდნობით, ხელახალი თანმიმდევრობა ხელს უწყობს წინასწარი დატენვისა და გააქტიურების ბრძანებების გამოტოვებას და tRCD-სა და tRP-ს მონაცემთა გამტარობის დაკავების საშუალება არ აძლევს.XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (29)
  3. შეეცადეთ გაზარდოთ საბანკო მანქანების რაოდენობა.
    • ა. კონტროლერის ლოგიკის უმეტესი ნაწილი ბანკომატებშია და ისინი DRAM ბანკებს შეესაბამება.
    • ბ. მოცემული საბანკო აპარატი ნებისმიერ დროს მართავს ერთ DRAM ბანკს.
    • გ. საბანკო აპარატის მინიჭება დინამიურია, ამიტომ არ არის აუცილებელი თითოეული ფიზიკური ბანკისთვის ბანკომატის ქონა.
    • დ. ბანკომატების კონფიგურაცია შესაძლებელია, მაგრამ ეს არის კომპრომისი ფართობსა და მუშაობას შორის.
    • ე. ბანკომატების დასაშვები რაოდენობა 2-დან 8-მდე მერყეობს.
    • ვ. ნაგულისხმევად, 4 საბანკო აპარატი კონფიგურირებულია RTL პარამეტრების მეშვეობით.
    • ზ. ბანკომატების შესაცვლელად, გაითვალისწინეთ პარამეტრი nBANK_MACHS = 8, რომელიც შეიცავს memc_ui_top-ს.

Example 8 საბანკო აპარატისთვის – nBANK_MACHS = 8
ახლა თქვენ იცით იმ ფაქტორების შესახებ, რომლებიც გავლენას ახდენენ მუშაობაზე. განვიხილოთ ზემოთ მიმართული აპლიკაცია, რომელიც გაძლევთ 512 მონაცემთა ბაიტს თითო პაკეტზე, t, და თქვენ უნდა შეინახოთ ისინი მეხსიერების სხვადასხვა ადგილას. რადგან 512 მონაცემთა ბაიტი უდრის 64 DDR3 მონაცემთა აფეთქებას, ხელახლა გაუშვით exampდიზაინი სტიმულით file შეიცავს 512 ჩაწერას, 512 წაკითხვას და სტრიქონების გადართვას ყოველ 64 ჩაწერაზე ან წაკითხვაზე:

XILINX-63234-ENXILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (29)D-FPGA-დისტრიბუტორი-სურ.- (30)

სიმულაციის ბოლოს ნახავთ, რომ ავტობუსის დატვირთვა 77 პროცენტია.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (31)
სურათი 11: შესრულების სტატისტიკა 512 ჩაწერისთვის და 512 წაკითხვისთვის - მწკრივის გადართვა 64 ჩაწერისთვის ან წაკითხვისთვის.

ახლა შეგიძლიათ გამოიყენოთ წინა ნაწილში შეძენილი ცოდნა ეფექტურობის გასაუმჯობესებლად. რიგის შეცვლის ნაცვლად ყველა ბანკის გამოსაყენებლად, შეცვალეთ მისამართის ნიმუში ბანკის შესაცვლელად, როგორც ეს ნაჩვენებია ქვემოთ. ეს ეკვივალენტურია MIG GUI-ში მეხსიერების მისამართების მიმაგრების პარამეტრში ROW_BANK_Column-ის დაყენებისა.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (32)

სიმულაციის ბოლოს თქვენ ნახავთ, რომ ავტობუსის გამოყენების ადრეული 77 პროცენტი ახლა 87-ია!

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (33)
თუ მაინც გჭირდებათ უფრო მაღალი ეფექტურობა, შეგიძლიათ გამოიყენოთ დიდი ზომის პაკეტი 1024 ან 2048 ბაიტი, ან განიხილოთ ხელით განახლება.
შენიშვნა: Xilinx არ გირჩევთ კონტროლერის განახლების გვერდის ავლას, რადგან არ ვართ დარწმუნებული, შეძლებთ თუ არა JEDEC-ის ავტომატური განახლების დროის დაკმაყოფილებას, რაც გავლენას ახდენს მონაცემთა სანდოობაზე. კონტროლერის მუშაობის გაუმჯობესების სანახავად შეგიძლიათ შეცვალოთ NBANNBANk_MACH. თუმცა, ამან შეიძლება გავლენა მოახდინოს თქვენი დიზაინის დროზე. nBANk_MACH-ის შესახებ დამატებითი ინფორმაციისთვის იხილეთ (Xilinx Answer 36505).

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (33)

გახსენით core_name_mig_sim.v file და შეცვალეთ nBANK_MACHS პარამეტრები 4-დან 8-მდე და ხელახლა გაუშვით სიმულაცია.
აპარატურაზე პარამეტრის მნიშვნელობის ასამოქმედებლად, თქვენ უნდა განაახლოთ core_name_mig.v ფაილი. fileიგივე სქემა გამოვიყენე, სადაც ავტობუსის გამოყენების მაჩვენებელი 87% იყო (სურათი 2). nBANK_MACHS-ის 8-ზე დაყენების შემდეგ, ეფექტურობა ახლა 90%-ია.

XILINX-63234-END-FPGA-დისტრიბუტორი-სურ.- (35)

ასევე, გაითვალისწინეთ, რომ ½ და ¼ კონტროლერები უარყოფითად მოქმედებენ ეფექტურობაზე მათი შეყოვნების გამო. მაგალითადampმაგალითად, რადგან ბრძანებების გაგზავნა მხოლოდ ყოველ 4 CK ციკლში შეგვიძლია, DRAM-ის მინიმალური დროის სპეციფიკაციების დაცვისას ზოგჯერ დამატებითი შევსება ხდება, რამაც შეიძლება თეორიულთან შედარებით ეფექტურობა შეამციროს. სცადეთ სხვადასხვა კონტროლერები, რათა იპოვოთ ის, რომელიც შეესაბამება თქვენს ეფექტურობის მოთხოვნებს. ლიტერატურა

  1. Zynq-7000 AP SoC და 7 სერიის FPGA MIS v2.3 [UG586]
  2. Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html

გადასინჯვის ისტორია
13/03/2015 – პირველადი გამოშვება..

დოკუმენტები / რესურსები

XILINX 63234 END FPGA დისტრიბუტორი [pdf] მომხმარებლის სახელმძღვანელო
63234 END FPGA დისტრიბუტორი, 63234, END FPGA დისტრიბუტორი, FPGA დისტრიბუტორი

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *