MICROCHIP CoreFPU Core მცურავი წერტილის ბლოკი
შესავალი
- მცურავი წერტილების ბირთვის მოწყობილობა (CoreFPU) შექმნილია მცურავი წერტილების არითმეტიკული და გარდამქმნელი ოპერაციებისთვის, ერთ და ორმაგად ზუსტი მცურავი წერტილების რიცხვებისთვის. CoreFPU მხარს უჭერს ფიქსირებული წერტილიდან მცურავ წერტილში და მცურავი წერტილიდან ფიქსირებულ წერტილში გარდაქმნებს, ასევე მცურავი წერტილების შეკრებას, გამოკლებას და გამრავლებას. IEEE® სტანდარტი მცურავი წერტილების არითმეტიკისთვის (IEEE 754) არის ტექნიკური სტანდარტი მცურავი წერტილების გამოთვლებისთვის.
- მნიშვნელოვანია: CoreFPU მხარს უჭერს მხოლოდ ნორმალიზებული რიცხვებით გამოთვლებს და მხარდაჭერილია მხოლოდ Verilog ენა; VHDL არ არის მხარდაჭერილი.
რეზიუმე
ქვემოთ მოცემულ ცხრილში მოცემულია CoreFPU-ს მახასიათებლების შეჯამება.
ცხრილი 1. CoreFPU-ს მახასიათებლები
ძირითადი ვერსია | ეს დოკუმენტი ეხება CoreFPU v3.0-ს. |
მხარდაჭერილი მოწყობილობების ოჯახები |
|
მხარდაჭერილი ხელსაწყოების ნაკადი | საჭიროებს Libero® SoC v12.6 ან უფრო გვიან გამოშვებებს. |
ლიცენზირება | CoreFPU ლიცენზიით დაბლოკილი არ არის. |
ინსტალაციის ინსტრუქციები | CoreFPU უნდა დაინსტალირდეს Libero SoC-ის IP კატალოგში ავტომატურად, IP კატალოგის განახლების ფუნქციის მეშვეობით. ალტერნატიულად, CoreFPU შეიძლება ხელით გადმოიწეროს კატალოგიდან. მას შემდეგ, რაც IP ბირთვი დაინსტალირდება
ინსტალაციის შემდეგ, ის კონფიგურირებული, გენერირებული და ინსტანცირებულია SmartDesign-ში პროექტში ჩართვის მიზნით. |
მოწყობილობის გამოყენება და შესრულება | CoreFPU-ს გამოყენებისა და მუშაობის შესახებ ინფორმაციის შეჯამება მოცემულია მოწყობილობის რესურსების გამოყენებისა და მუშაობის განყოფილებაში. |
CoreFPU ცვლილებების ჟურნალის ინფორმაცია
ეს განყოფილება გთავაზობთ ყოვლისმომცველ მიმოხილვასview ახლად ჩართული ფუნქციების სია, დაწყებული უახლესი ვერსიიდან. გადაჭრილი პრობლემების შესახებ დამატებითი ინფორმაციისთვის იხილეთ განყოფილება „გადაჭრილი პრობლემები“.
ვერსია | რა არის ახალი |
v3.0 | IP-ის სიზუსტის გასაუმჯობესებლად დანერგილია დამატებითი გამომავალი დროშები |
v2.1 | დაემატა ორმაგი სიზუსტის ფუნქცია |
v2.0 | განახლებულია დროის ტალღის ფორმები |
v1.0 | CoreFPU-ს პირველი საწარმოო გამოშვება |
1. მახასიათებლები
CoreFPU-ს აქვს შემდეგი ძირითადი მახასიათებლები:
- IEEE-754 სტანდარტის მიხედვით, მხარს უჭერს ერთ და ორმაგ სიზუსტის მცურავ რიცხვებს
- მხარს უჭერს ქვემოთ ჩამოთვლილ კონვერტაციებს:
- ფიქსირებული წერტილიდან მცურავ წერტილად გარდაქმნა
- მცურავი წერტილიდან ფიქსირებულ წერტილში გადაყვანა
- მხარს უჭერს არითმეტიკულ ოპერაციებს, როგორც ჩამოთვლილია:
- მცურავი წერტილების შეკრება
- მცურავი წერტილის გამოკლება
- მცურავი წერტილის გამრავლება
- მხოლოდ არითმეტიკული ოპერაციებისთვის გთავაზობთ დამრგვალების სქემას (დამრგვალება უახლოეს ლუწ რიცხვამდე).
- მცურავი წერტილოვანი რიცხვებისთვის გთავაზობთ დროშებს გადატვირთვისთვის, გადატვირთვისთვის, უსასრულობისთვის (დადებითი უსასრულობა, უარყოფითი უსასრულობა), მშვიდი NaN-ისთვის (QNaN) და სიგნალიზაციისთვის NaN-ისთვის (SNaN).
- მხარს უჭერს არითმეტიკული ოპერაციების სრულად დამუშავებას
- უზრუნველყოფს დიზაინის მოთხოვნების ბირთვის კონფიგურაციის დებულებას
ფუნქციური აღწერა
- IEEE-ს მცურავი წერტილების არითმეტიკის სტანდარტი (IEEE 754) არის მცურავი წერტილების გამოთვლების ტექნიკური სტანდარტი. ტერმინი „მცურავი წერტილები“ ეხება რიცხვის ძირეულ წერტილს (ათწილადი ან ორობითი წერტილი), რომელიც მოთავსებულია რიცხვის მნიშვნელოვანი ციფრების მიმართ ნებისმიერ ადგილას.
მცურავი წერტილოვანი რიცხვი, როგორც წესი, გამოისახება სამეცნიერო ნოტაციით, გარკვეული რადიქსის (r) წილადით (F) და ხარისხით (E), F × r^E ფორმით. ათწილადი რიცხვები იყენებენ 10-ის რადიქსს (F × 10^E); ხოლო ორობითი რიცხვები იყენებენ 2-ის რადიქსს (F × 2^E). - მცურავი წერტილოვანი რიცხვის წარმოდგენა უნიკალური არ არის. მაგ.ampმაგალითად, რიცხვი 55.66 წარმოდგენილია როგორც 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 და ა.შ. წილადი ნაწილი ნორმალიზებულია. ნორმალიზებულ ფორმაში, რადიქსის წერტილის წინ მხოლოდ ერთი არანულოვანი ციფრია. მაგალითადampმაგალითად, ათობითი რიცხვი 123.4567 ნორმალიზებულია, როგორც 1.234567 × 10^2; ორობითი რიცხვი 1010.1011B ნორმალიზებულია, როგორც 1.0101011B × 2^3.
- მნიშვნელოვანია აღინიშნოს, რომ მცურავი წერტილოვანი რიცხვები კარგავენ სიზუსტეს, როდესაც წარმოდგენილია ბიტების ფიქსირებული რაოდენობით (მაგ.ampმაგალითად, 32-ბიტიანი ან 64-ბიტიანი). ეს იმიტომ ხდება, რომ არსებობს რეალური რიცხვების უსასრულო რაოდენობა (0.0-დან 0.1-მდე მცირე დიაპაზონშიც კი). მეორეს მხრივ,
n-ბიტიანი ორობითი სქემა წარმოადგენს სასრულ 2^n განსხვავებულ რიცხვს. შესაბამისად, ყველა ნამდვილი რიცხვი არ არის წარმოდგენილი. მის ნაცვლად გამოიყენება უახლოესი მიახლოება, რაც სიზუსტის დაკარგვას იწვევს.
ერთმნიშვნელოვანი მცურავი წერტილიანი რიცხვი წარმოდგენილია შემდეგნაირად:
- ნიშნის ბიტი: 1-ბიტი
- ექსპონენტის სიგანე: 8 ბიტი
- მნიშვნელოვანი სიზუსტე: 24 ბიტი (23 ბიტი ინახება ექსპლიციტურად)
სურათი 2-1. 32-ბიტიანი ჩარჩო
ორმაგი სიზუსტის მცურავი წერტილოვანი რიცხვი წარმოდგენილია შემდეგნაირად:
- ნიშნის ბიტი: 1-ბიტი
- ექსპონენტის სიგანე: 11 ბიტი
- მნიშვნელოვანი სიზუსტე: 53 ბიტი (52 ბიტი ინახება ექსპლიციტურად)
სურათი 2-2. 64-ბიტიანი ჩარჩო CoreFPU წარმოადგენს ორი კონვერტაციის მოდულის (Fixed to Float point და Float to Fixed point) და სამი არითმეტიკული ოპერაციის (FP ADD, FP SUB და FP MULT) უმაღლესი დონის ინტეგრაციას. მომხმარებელს შეუძლია ნებისმიერი ოპერაციის კონფიგურაცია მოთხოვნის მიხედვით ისე, რომ რესურსები გამოყენებული იქნას არჩეული ოპერაციისთვის.
ქვემოთ მოცემულ ფიგურაზე ნაჩვენებია CoreFPU-ს ზედა დონის ბლოკ-დიაგრამა პორტებით.
სურათი 2-3. CoreFPU პორტების ბლოკ-დიაგრამა
შემდეგ ცხრილში მოცემულია შეყვანის და გამოყვანის პორტების სიგანე. ცხრილი 2-1. შეყვანის და გამოყვანის პორტების სიგანე
სიგნალი | ერთი ზუსტი სიგანე | ორმაგი სიზუსტის სიგანე |
აინ | [31:0] | [63:0] |
ურნა | [31:0] | [63:0] |
გარეთ | [31:0] | [63:0] |
შეკრთილი | [31:0] | [63:0] |
ფიქსირებული წერტილიდან მცურავ წერტილამდე (კონვერტაცია)
CoreFPU, რომელიც კონფიგურირებულია როგორც ფიქსირებული მცურავი წერტილიდან მცურავ წერტილამდე გარდაქმნის მოდული, ნიშნავს ფიქსირებული წერტილიდან მცურავ წერტილამდე გარდაქმნის მოდულს. CoreFPU-ში შემავალი (ain) არის ნებისმიერი ფიქსირებული წერტილის რიცხვი, რომელიც შეიცავს მთელ და წილად ბიტებს. CoreFPU კონფიგურატორს აქვს შეყვანის მთელი და წილადის სიგანის არჩევის ვარიანტები. შემავალი სიგნალი ვალიდურია di_valid სიგნალზე, ხოლო გამომავალი ვალიდურია do_valid სიგნალზე. ფიქსირებული მცურავი წერტილიდან ოპერაციის გამომავალი (aout) არის ერთ ან ორმაგად ზუსტი მცურავი წერტილის ფორმატში.
Exampფიქსირებული წერტილიდან მცურავ წერტილში გარდაქმნის ოპერაციის le მოცემულია შემდეგ ცხრილში.
ცხრილი 2-2. მაგample ფიქსირებული წერტილიდან მცურავ წერტილზე გადაყვანისთვის
ფიქსირებული წერტილის ნომერი | მცურავი წერტილის რიცხვი | |||||
აინ | მთელი რიცხვი | ფრაქცია | გარეთ | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
0x12153524 (32-ბიტიანი) | 00010010000101010 | 011010100100100 | 0x4610a9a9 | 0 | 10001100 | 00100001010100110101001 |
0x0000000000008CCC
(64 ბიტიანი) |
0000000000000000000000000000000000000000000000001 | 000110011001100 | 0x3FF199999999999A | 0 | 01111111111 | 0001100110011001100110011001100110011001100110011010 |
მცურავი წერტილიდან ფიქსირებულ წერტილამდე (კონვერტაცია)
CoreFPU, რომელიც კონფიგურირებულია როგორც მცურავიდან ფიქსირებულ წერტილამდე, ნიშნავს მცურავი წერტილიდან ფიქსირებულ წერტილამდე გარდაქმნის მოდულს. CoreFPU-ში შემავალი (ain) არის ნებისმიერი ერთ ან ორმაგად ზუსტი მცურავი წერტილიანი რიცხვი და წარმოქმნის გამოსავალს (aout) ფიქსირებული წერტილის ფორმატში, რომელიც შეიცავს მთელ და წილად ბიტებს. შემავალი სიგნალი ვალიდურია di_valid სიგნალზე, ხოლო გამომავალი ვალიდურია do_valid სიგნალზე. CoreFPU კონფიგურატორს აქვს გამომავალი რიცხვის მთელი და წილადის სიგანის არჩევის ვარიანტები.
Exampმცურავი წერტილიდან ფიქსირებულ წერტილში გადაყვანის ოპერაციის le მოცემულია შემდეგ ცხრილში.
ცხრილი 2-3. მაგample მცურავი წერტილიდან ფიქსირებულ წერტილში გადაყვანისთვის
მცურავი წერტილის რიცხვი | ფიქსირებული წერტილის ნომერი | |||||
აინ | მოაწერეთ ხელი | ექსპონენტი | მანტისა | გარეთ | მთელი რიცხვი | ფრაქცია |
0x41bd6783 (32-ბიტიანი) | 0 | 10000011 | 01111010110011110000011 | 0x000bd678 | 00000000000010111 | 101011001111000 |
0x4002094c447c30d3
(64 ბიტიანი) |
0 | 10000000000 | 0010000010010100110001000100011111000011000011010011 | 0x0000000000012095 | 0000000000000000000000000000000000000000000000010 | 010000010010101 |
მცურავი წერტილების შეკრება (არითმეტიკული ოპერაცია)
FP ADD-ად კონფიგურირებული CoreFPU გამოთვლის მცურავი წერტილების შეკრების მოდულს. ის აგროვებს ორ მცურავ წერტილოვან რიცხვს (ain და bin) და იძლევა გამოსავალს (pout) მცურავი წერტილოვანი ფორმატით. შემავალი და გამომავალი მონაცემები არის ერთჯერადი ან ორმაგი სიზუსტის მცურავი წერტილოვანი რიცხვები. შემავალი მონაცემები ვალიდურია di_valid სიგნალზე, ხოლო გამომავალი - do_valid სიგნალზე. ბირთვი წარმოქმნის ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) და ninf_fg (Negative Infinity) დროშებს შეკრების ოპერაციის საფუძველზე.
Exampმცურავი წერტილების შეკრების ოპერაციების les ჩამოთვლილია შემდეგ ცხრილებში.
ცხრილი 2-4. მაგample მცურავი წერტილოვანი შეკრების ოპერაციისთვის (32-ბიტიანი)
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1 ain (0x4e989680) | 0 | 10011101 | 00110001001011010000000 |
მცურავი წერტილის შეყვანა 2 ბინით (0x4f191b40) | 0 | 10011110 | 00110010001101101000000 |
მცურავი წერტილის შეკრების გამომავალი ტონი (0x4f656680) | 0 | 10011110 | 11001010110011010000000 |
ცხრილი 2-5. მაგample მცურავი წერტილოვანი შეკრების ოპერაციისთვის (64-ბიტიანი)
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1
ain (0x3ff4106ee30caa32) |
0 | 01111111111 | 0100000100000110111011100011000011001010101000110010 |
მცურავი წერტილის შეყვანა 2
bin (0x40020b2a78798e61) |
0 | 10000000000 | 0010000010110010101001111000011110011000111001100001 |
მცურავი წერტილის შეკრების გამომავალი ღიზიანდება (0x400c1361e9ffe37a) | 0 | 10000000000 | 1100000100110110000111101001111111111110001101111010 |
მცურავი წერტილის გამოკლება (არითმეტიკული ოპერაცია)
FP SUB-ის სახით კონფიგურირებული CoreFPU გამოთვლის მცურავი წერტილის გამოკლების მოდულს. ის აკლებს ორ მცურავ წერტილოვან რიცხვს (ain და bin) და გამომავალს (pout) მცურავი წერტილის ფორმატში იძლევა. შემავალი და გამომავალი მონაცემები არის ერთჯერადი ან ორმაგი სიზუსტის მცურავი წერტილოვანი რიცხვები. შემავალი მონაცემები ვალიდურია di_valid სიგნალზე, ხოლო გამომავალი - do_valid სიგნალზე. გამოკლების ოპერაციის საფუძველზე, ბირთვი წარმოქმნის ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) და ninf_fg (Negative Infinity) დროშებს.
Exampმცურავი წერტილის გამოკლების ოპერაციის les ჩამოთვლილია შემდეგ ცხრილებში.
ცხრილი 2-6. მაგample მცურავი წერტილის გამოკლების ოპერაციისთვის (32-ბიტიანი)
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1 ain (0xac85465f) | 1 | 01011001 | 00001010100011001011111 |
მცურავი წერტილის შეყვანა 2 ბინით (0x2f516779) | 0 | 01011110 | 10100010110011101111001 |
მცურავი წერტილის გამოკლების გამომავალი ღილაკები (0xaf5591ac) | 1 | 01011110 | 10101011001000110101011 |
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1
აინ (0x405569764adff823) |
0 | 10000000101 | 0101011010010111011001001010110111111111100000100011 |
მცურავი წერტილის შეყვანა 2
bin (0x4057d04e78dee3fc) |
0 | 10000000101 | 0111110100000100111001111000110111101110001111111100 |
მცურავი წერტილის გამოკლების გამომავალი ღიზიანდება (0xc02336c16ff75ec8) | 1 | 10000000010 | 0011001101101100000101101111111101110101111011001000 |
მცურავი წერტილების გამრავლება (არითმეტიკული ოპერაცია)
FP MULT-ად კონფიგურირებული CoreFPU გამოთვლის მცურავი წერტილების გამრავლების მოდულს. ის ამრავლებს ორ მცურავ წერტილოვან რიცხვს (ain და bin) და იძლევა გამოსავალს (pout) მცურავი წერტილების ფორმატში. შემავალი და გამომავალი არის ერთჯერადი ან ორმაგი სიზუსტის მცურავი წერტილების რიცხვები. შემავალი სიგნალი ვალიდურია di_valid სიგნალზე, ხოლო გამომავალი ვალიდურია do_valid სიგნალზე. გამრავლების ოპერაციის საფუძველზე, ბირთვი წარმოქმნის ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) და ninf_fg (Negative Infinity) დროშებს.
Exampმცურავი წერტილოვანი გამრავლების ოპერაციების les ჩამოთვლილია შემდეგ ცხრილებში.
ცხრილი 2-8. მაგample მცურავი წერტილის გამრავლების ოპერაციისთვის (32-ბიტიანი)
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1 ain (0x1ec7a735) | 0 | 00111101 | 10001111010011100110101 |
მცურავი წერტილის შეყვანა 2 ბინით (0x6ecf15e8) | 0 | 11011101 | 10011110001010111101000 |
მცურავი წერტილის გამრავლების გამომავალი ტონი (0x4e21814a) | 0 | 10011100 | 01000011000000101001010 |
მცურავი წერტილის მნიშვნელობა | მოაწერეთ ხელი | ექსპონენტი | მანტისა |
მცურავი წერტილის შეყვანა 1
ain (0x40c1f5a9930be0df) |
0 | 10000001100 | 0001111101011010100110010011000010111110000011011111 |
მცურავი წერტილის შეყვანა 2
bin (0x400a0866c962b501) |
0 | 10000000000 | 1010000010000110011011001001011000101011010100000001 |
მცურავი წერტილის გამრავლების გამომავალი ტონი (0x40dd38a1c3e2cae9) | 0 | 10000001101 | 1101001110001010000111000011111000101100101011101001 |
შეკრებისა და გამოკლების ჭეშმარიტების ცხრილი
შემდეგ ჭეშმარიტების ცხრილებში ჩამოთვლილია შეკრებისა და გამოკლების ოპერაციების მნიშვნელობები. ცხრილი 2-10. შეკრების ჭეშმარიტების ცხრილი
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნულოვანი | ნულოვანი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოსტფინიტი(y) | 0 | პოსტფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | ნეგსფინიტი(y) | 1 | ნეგსფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნულოვანი | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოსტფინიტი(y) | ნულოვანი | 0 | პოსტფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
მაგიდა 2-10. შეკრების ჭეშმარიტების ცხრილი (გაგრძელება) | |||||||||
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
პოსტფინიტი | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგსფინიტი(y) | ნულოვანი | 1 | ნეგსფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნეგფინიტი | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოზინფინიტი | ნულოვანი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | პოსტფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნეგფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნეგინიტის | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგინიტის | ნულოვანი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | პოსტფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნეგფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | პოზინფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგინიტის | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოსტფინიტი | პოსტფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი | პოსტფინიტი | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგფინიტი | ნეგფინიტი | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნულოვანი | ნულოვანი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოსტფინიტი(y) | 1 | ნეგსფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | ნეგსფინიტი(y) | 0 | პოსტფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნულოვანი | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი(y) | ნულოვანი | 0 | პოსტფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოსტფინიტი | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნეგსფინიტი(y) | ნულოვანი | 1 | ნეგსფინიტი(y) | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
მაგიდა 2-11. გამოკლების ჭეშმარიტების ცხრილი (გაგრძელება) | |||||||||
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
ნეგფინიტი | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნულოვანი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | პოსტფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნეგფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | პოზინფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოზინფინიტი | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნეგინიტის | ნულოვანი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | პოსტფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნეგფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნეგინიტის | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი | ნეგფინიტი | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგფინიტი | პოსტფინიტი | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
მნიშვნელოვანია:
- წინა ცხრილებში ისინი აღნიშნავენ ნებისმიერ რიცხვს.
- წინა ცხრილებში მითითებულია „არ მაინტერესებს“ მდგომარეობა.
გამრავლების სიმართლის ცხრილი
შემდეგ ჭეშმარიტების ცხრილში მოცემულია გამრავლების ოპერაციის მნიშვნელობები.
ცხრილი 2-12. გამრავლების სიმართლის ცხრილი
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნულოვანი | ნულოვანი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოსტფინიტი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | ნეგფინიტი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნულოვანი | პოზინფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნულოვანი | ნეგინიტის | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
მაგიდა 2-12. გამრავლების სიმართლის ცხრილი (გაგრძელება) | |||||||||
დათა ა | დათა ბ | Sign Bit | შედეგი | გადინება | წყალქვეშა ნაკადი | SNaN | QNaN | PINF | NINF |
პოსტფინიტი | ნულოვანი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგფინიტი | ნულოვანი | 0 | პოსზერო | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგფინიტი | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნულოვანი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოზინფინიტი | პოსტფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნეგფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოზინფინიტი | პოზინფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოზინფინიტი | ნეგინიტის | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნულოვანი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგინიტის | პოსტფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნეგფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნეგინიტის | პოზინფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგინიტის | ნეგინიტის | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
პოსტფინიტი | ნეგფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
პოსტფინიტი | ნეგფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 1 | ნეგფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 1 | ნეგინიტის | 0 | 0 | 0 | 0 | 0 | 1 |
ნეგფინიტი | პოსტფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | პოსტფინიტი | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | პოსტფინიტი | 0 | 0 | 0 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | პოზინფინიტი | 0 | 0 | 0 | 0 | 1 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSQNaN | 0 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSQNaN | 1 | 0 | 1 | 0 | 0 | 0 |
ნეგფინიტი | ნეგფინიტი | 0 | POSQNaN | 0 | 1 | 1 | 0 | 0 | 0 |
მნიშვნელოვანია:
ნიშნის ბიტი '0' განსაზღვრავს დადებით გამოსავალს, ხოლო '1' - უარყოფით გამოსავალს.
წინა ცხრილში x აღნიშნავს „არ მაინტერესებს“ პირობას.
CoreFPU პარამეტრები და ინტერფეისის სიგნალები
ეს განყოფილება განიხილავს CoreFPU Configurator-ის პარამეტრებსა და I/O სიგნალებს.
კონფიგურაციის GUI პარამეტრები
როგორც ქვემოთ მოცემულ ცხრილშია ნაჩვენები, FPU ბლოკზე ვრცელდება კონფიგურირებადი პარამეტრების მთელი რიგი. თუ საჭიროა ნაგულისხმევი კონფიგურაციისგან განსხვავებული კონფიგურაცია, კონფიგურაციის დიალოგური ფანჯარა გამოიყენება კონფიგურირებადი ვარიანტისთვის შესაბამისი მნიშვნელობების შესარჩევად.
ცხრილი 3-1. CoreFPU კონფიგურაციის GUI პარამეტრები
პარამეტრის სახელი | ნაგულისხმევი | აღწერა |
სიზუსტე | მარტოხელა | აირჩიეთ ოპერაცია საჭიროებისამებრ:
ერთჯერადი სიზუსტე |
კონვერტაციის ტიპი | ფიქსირებული წერტილიდან მცურავ წერტილად გარდაქმნა | აირჩიეთ ოპერაცია საჭიროებისამებრ:
|
შეყვანის ფრაქციის სიგანე1 | 15 | ახდენს შეყვანის ain და bin სიგნალებში წილადური წერტილის კონფიგურაციას.
ვალიდური დიაპაზონია 31–1 |
გამომავალი ფრაქციის სიგანე2 | 15 | ახდენს გამომავალი aut სიგნალებში წილადური წერტილის კონფიგურაციას.
ვალიდური დიაპაზონია 51–1 |
მნიშვნელოვანია:
- ეს პარამეტრი კონფიგურირებადია მხოლოდ ფიქსირებული წერტილიდან მცურავ წერტილზე გადაყვანის დროს.
- ეს პარამეტრი კონფიგურირებადია მხოლოდ მცურავი წერტილიდან ფიქსირებულ წერტილზე გადაყვანის დროს.
შემავალი და გამომავალი სიგნალები (დასვით შეკითხვა)
შემდეგ ცხრილში მოცემულია CoreFPU-ს შემავალი და გამომავალი პორტის სიგნალები.
ცხრილი 3-2. პორტის აღწერა
სიგნალის სახელი | სიგანე | ტიპი | აღწერა |
clk | 1 | შეყვანა | სისტემის მთავარი საათი |
rstn | 1 | შეყვანა | აქტიური-დაბალი ასინქრონული გადატვირთვა |
di_valid | 1 | შეყვანა | აქტიური-მაღალი შეყვანა ვალიდურია
ეს სიგნალი მიუთითებს, რომ ain[31:0], ain[63:0] და bin[31:0], bin[63:0]-ზე არსებული მონაცემები სწორია. |
აინ | 32/64 | შეყვანა | შეყვანის ავტობუსი (გამოიყენება ყველა ოპერაციისთვის) |
ურნა1 | 32/64 | შეყვანა | B შეყვანის ავტობუსი (გამოიყენება მხოლოდ არითმეტიკული ოპერაციებისთვის) |
გარეთ2 | 32/64 | გამომავალი | გამომავალი მნიშვნელობა, როდესაც არჩეულია მცურავი წერტილის ფიქსირებული ან მცურავი წერტილის ფიქსირებულ წერტილში გადაყვანის ოპერაციები. |
შეკრთილი1 | 32/64 | გამომავალი | გამომავალი მნიშვნელობა, როდესაც არჩეულია შეკრების, გამოკლების ან გამრავლების ოპერაციები. |
მაგიდა 3-2. პორტის აღწერა (გაგრძელება) | |||
სიგნალის სახელი | სიგანე | ტიპი | აღწერა |
do_valid | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს, რომ pout/aout მონაცემთა ავტობუსზე არსებული მონაცემები სწორია. |
ovfl_fg3 | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს გადავსებაზე მცურავი წერტილის ოპერაციების დროს. |
unfl_fg | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს ნაკადზე მცურავი წერტილის ოპერაციების დროს. |
qnan_fg3 | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს „მშვიდი რიცხვი არ არის“ (QNaN)-ზე მცურავი წერტილის ოპერაციების დროს. |
snan_fg | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს სიგნალიზაციის არარიცხვზე (SNaN) მცურავი წერტილის ოპერაციების დროს. |
pinf_fg3 | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს დადებით უსასრულობაზე მცურავი წერტილის ოპერაციების დროს. |
ნინფ_ფგ | 1 | გამომავალი | აქტიური-მაღალი სიგნალი
ეს სიგნალი მიუთითებს უარყოფით უსასრულობაზე მცურავი წერტილის ოპერაციების დროს. |
მნიშვნელოვანია:
- ეს პორტი ხელმისაწვდომია მხოლოდ მცურავი წერტილოვანი შეკრების, გამოკლების ან გამრავლების ოპერაციებისთვის.
- ეს პორტი ხელმისაწვდომია მხოლოდ ფიქსირებული წერტილიდან მცურავ წერტილში და მცურავი წერტილიდან ფიქსირებულ წერტილში გარდაქმნის ოპერაციებისთვის.
- ეს პორტი ხელმისაწვდომია მცურავი წერტილიდან ფიქსირებულ წერტილზე, მცურავი წერტილის შეკრებისთვის, მცურავი წერტილის გამოკლებისთვის და მცურავი წერტილის გამრავლებისთვის.
CoreFPU-ს იმპლემენტაცია Libero Design Suite-ში
ეს განყოფილება აღწერს CoreFPU-ს იმპლემენტაციას Libero Design Suite-ში.
SmartDesign
CoreFPU ხელმისაწვდომია ჩამოსატვირთად Libero IP კატალოგში შემდეგი ბმულის საშუალებით: web საცავი. კატალოგში მისი სიის შეტანის შემდეგ, ბირთვი იქმნება SmartDesign ნაკადის გამოყენებით. SmartDesign-ის გამოყენების შესახებ ინფორმაციისთვის ბირთვების კონფიგურაციის, დაკავშირების და გენერირებისთვის იხილეთ Libero SoC-ის ონლაინ დახმარება.
ძირითადი ეგზემპლარის კონფიგურაციისა და გენერირების შემდეგ, ძირითადი ფუნქციონალობა სიმულირდება CoreFPU-სთან ერთად მოწოდებული testbench-ის გამოყენებით. Testbench-ის პარამეტრები ავტომატურად რეგულირდება CoreFPU კონფიგურაციასთან. CoreFPU იქმნება, როგორც უფრო დიდი დიზაინის კომპონენტი.
სურათი 4-1. SmartDesign CoreFPU ეგზემპლარი არითმეტიკული ოპერაციებისთვის
სურათი 4-2. SmartDesign CoreFPU ეგზემპლარი კონვერტაციის ოპერაციისთვის
ფიქსირებული წერტილიდან მცურავ წერტილად გარდაქმნა
ფიქსირებული წერტილიდან მცურავ წერტილში გარდაქმნის დროს, შეყვანის წილადის სიგანის კონფიგურაციაა შესაძლებელი. გამომავალი სიგანე ნაგულისხმევად დაყენებულია 32-ბიტიანზე ერთსიზუსტიანი მნიშვნელობისთვის და 64-ბიტიანზე ორმაგი სიზუსტის მცურავ წერტილში გადაყვანისთვის.
ფიქსირებული წერტილიდან მცურავ წერტილზე გადასაყვანად, აირჩიეთ ფიქსირებული წერტილიდან მცურავ წერტილზე გადაყვანის ტიპი, როგორც ეს ნაჩვენებია შემდეგ ფიგურაში.
მცურავი წერტილიდან ფიქსირებულ წერტილამდე
მცურავი წერტილიდან ფიქსირებულ წერტილში გარდაქმნის დროს, გამომავალი წილადური სიგანის კონფიგურირება შესაძლებელია, ხოლო შეყვანის სიგანე ნაგულისხმევად დაყენებულია 32-ბიტიანზე ერთსიზუსტიანი სიმბოლოებისთვის და 64-ბიტიანზე ორმაგი სიზუსტის მცურავი წერტილისთვის.
მცურავი წერტილიდან ფიქსირებულ წერტილში გადასაყვანად, აირჩიეთ მცურავი წერტილიდან ფიქსირებულ წერტილში კონვერტაციის ტიპი, როგორც ეს ნაჩვენებია შემდეგ ფიგურაში.
სურათი 4-4. CoreFPU კონფიგურატორი მცურავი წერტილიდან ფიქსირებულზე მცურავი წერტილის შეკრება/გამოკლება/გამრავლება
მცურავი წერტილების შეკრების, გამოკლებისა და გამრავლების ოპერაციების დროს, შეყვანის წილადის სიგანის და გამომავალი წილადის სიგანის კონფიგურაცია შეუძლებელია, რადგან ეს ოპერაციები მცურავი წერტილების არითმეტიკულია და შეყვანის/გამოყვანის სიგანე ნაგულისხმევად დაყენებულია 32-ბიტიან ერთსიზუსტეზე და 64-ბიტიანზე ორმაგი სიზუსტის მცურავი წერტილებისთვის.
შემდეგ ფიგურაზე ნაჩვენებია CoreFPU კონფიგურატორი მცურავი წერტილების გამოკლების ოპერაციისთვის.
სურათი 4-5. CoreFPU კონფიგურატორი მცურავი წერტილის გამოკლებისთვისსიმულაცია (დასვით შეკითხვა)
სიმულაციების გასაშვებად, ძირითადი კონფიგურაციის ფანჯარაში აირჩიეთ User Testbench. CoreFPU-ს გენერირების შემდეგ, სინთეზამდელი testbench-ის აპარატურის აღწერის ენა (HDL) files დაინსტალირებულია Libero-ში.
სიმულაციური ტალღის ფორმები (დასვით კითხვა)
ეს განყოფილება განიხილავს CoreFPU-ს სიმულაციური ტალღის ფორმებს.
ქვემოთ მოცემულ ფიგურებში ნაჩვენებია ფიქსირებული წერტილიდან მცურავ წერტილად გარდაქმნის ტალღური ფორმა როგორც 32-ბიტიანი, ასევე 64-ბიტიანი ვერსიებისთვის.
სისტემის ინტეგრაცია
ქვემოთ მოყვანილი სურათი გვიჩვენებს ყოფილსampბირთვის გამოყენების წესი. ამ შემთხვევაშიampმაგალითად, დიზაინის UART გამოიყენება როგორც საკომუნიკაციო არხი დიზაინსა და მასპინძელ კომპიუტერს შორის. სიგნალები ain და bin (თითოეული 32-ბიტიანი ან 64-ბიტიანი სიგანის) წარმოადგენს UART-დან დიზაინის შემავალ სიგნალებს. მას შემდეგ, რაც CoreFPU მიიღებს di_valid სიგნალს, ის ითვლის შედეგს. შედეგის გამოთვლის შემდეგ, do_valid სიგნალი გადადის მაღალ სიმძლავრეზე და ინახავს შედეგს (aout/pout მონაცემები) გამომავალ ბუფერში. იგივე პროცედურა გამოიყენება კონვერტაციისა და არითმეტიკული ოპერაციებისთვის. კონვერტაციის ოპერაციებისთვის საკმარისია მხოლოდ ain შეყვანა, ხოლო არითმეტიკული ოპერაციებისთვის საჭიროა როგორც ain, ასევე bin შეყვანა. გამომავალი aout ჩართულია კონვერტაციის ოპერაციებისთვის, ხოლო pout პორტი ჩართულია არითმეტიკული ოპერაციებისთვის.
სურათი 4-16. მაგampCoreFPU სისტემის le
- სინთეზი (კითხვის დასმა)
CoreFPU-ზე სინთეზის გასაშვებად, დიზაინის root-ად დააყენეთ IP კომპონენტის ინსტანცია და Libero-ს დიზაინის ნაკადის პანელიდან გაუშვით სინთეზის ინსტრუმენტი.
ადგილი და მარშრუტი (დასვით კითხვა)
დიზაინის სინთეზირების შემდეგ, გაუშვით Place-and-Route ინსტრუმენტი. CoreFPU არ საჭიროებს place-and-route-ის სპეციალურ პარამეტრებს. - მომხმარებლის სატესტო მაგიდა (კითხვის დასმა)
CoreFPU IP ვერსიას მოყვება მომხმარებლის სატესტო მაგიდა. ამ სატესტო მაგიდის გამოყენებით შეგიძლიათ გადაამოწმოთ CoreFPU-ს ფუნქციური ქცევა.
მომხმარებლის სატესტო სადგურის გამარტივებული ბლოკ-დიაგრამა ნაჩვენებია შემდეგ ფიგურაში. მომხმარებლის სატესტო სადგური ახდენს კონფიგურირებული CoreFPU დიზაინის (UUT) ინსტანცირებას და მოიცავს ქცევითი ტესტის მონაცემების გენერატორს, საჭირო საათისა და გადატვირთვის სიგნალებს.
სურათი 4-17. CoreFPU მომხმარებლის სატესტო მაგიდა
მნიშვნელოვანია: ModelSim სიმულატორში გამომავალი სიგნალების მონიტორინგი უნდა განახორციელოთ, იხილეთ სიმულაციის განყოფილება.
დამატებითი ცნობები (დასვით კითხვა)
ეს განყოფილება გთავაზობთ დამატებით ინფორმაციას სიაში.
განახლებებისა და დამატებითი ინფორმაციისთვის პროგრამული უზრუნველყოფის, მოწყობილობებისა და აპარატურის შესახებ ეწვიეთ
ინტელექტუალური საკუთრების გვერდები მიკროჩიპების FPGA-ებსა და PLD-ებზე webსაიტი.
- ცნობილი პრობლემები და გადაჭრის გზები (დასვით კითხვა)
CoreFPU v3.0-ისთვის ცნობილი პრობლემები და შემოვლითი გზები არ არსებობს. - შეწყვეტილი ფუნქციები და მოწყობილობები (დასვით კითხვა)
ამ IP ვერსიაში არ არსებობს შეწყვეტილი ფუნქციები და მოწყობილობები.
ლექსიკონი
ქვემოთ მოცემულია დოკუმენტში გამოყენებული ტერმინებისა და განმარტებების სია.
ცხრილი 6-1. ტერმინები და განმარტებები
ვადა | განმარტება |
FPU | მცურავი წერტილის ერთეული |
FP დამატება | მცურავი წერტილების შეკრება |
FP სუბტიტრები | მცურავი წერტილის გამოკლება |
FP MULT | მცურავი წერტილის გამრავლება |
მოგვარებული საკითხები
შემდეგ ცხრილში ჩამოთვლილია CoreFPU-ს სხვადასხვა ვერსიის ყველა გადაჭრილი პრობლემა.
ცხრილი 7-1. მოგვარებული საკითხები
გათავისუფლება | აღწერა |
3.0 | ქვემოთ მოცემულია v3.0 ვერსიაში მოგვარებული ყველა პრობლემის სია:
საქმის ნომერი: 01420387 და 01422128 დაემატა დამრგვალების სქემის ლოგიკა (დამრგვალება უახლოეს ლუწ რიცხვამდე). |
2.1 | ქვემოთ მოცემულია v2.1 ვერსიაში მოგვარებული ყველა პრობლემის სია: დიზაინს პრობლემები ექმნება დუბლირებული მოდულების არსებობის გამო, როდესაც მრავალი ბირთვი იქმნება. CoreFPU IP ინსტანციის სახელის შეცვლა იწვევს „Undefined Module“ შეცდომას. |
1.0 | საწყისი გამოშვება |
მოწყობილობის რესურსების გამოყენება და შესრულება
CoreFPU მაკრო დანერგილია შემდეგ ცხრილში ჩამოთვლილ ოჯახებში.
ცხრილი 8-1. FPU PolarFire მოწყობილობის გამოყენება 32-ბიტიანი პროცესორისთვის
FPGA რესურსები | უტილიზაცია | |||||||
ოჯახი | 4LUT | DFF | სულ | მათემატიკის ბლოკი | მოწყობილობა | პერჩენიtage | შესრულება | შეყოვნება |
ფიქსირებული წერტილიდან მცურავ წერტილამდე გადაყვანა | ||||||||
PolarFire® | 260 | 104 | 364 | 0 | MPF300T | 0.12 | 310 MHz | 3 |
მცურავი წერტილიდან ფიქსირებულ წერტილამდე | ||||||||
PolarFire | 591 | 102 | 693 | 0 | MPF300T | 0.23 | 160 MHz | 3 |
მცურავი წერტილების შეკრება | ||||||||
PolarFire | 1575 | 1551 | 3126 | 0 | MPF300T | 1.06 | 340 MHz | 16 |
მცურავი წერტილის გამოკლება | ||||||||
PolarFire | 1561 | 1549 | 3110 | 0 | MPF300T | 1.04 | 345 MHz | 16 |
მცურავი წერტილის გამრავლება | ||||||||
PolarFire | 465 | 847 | 1312 | 4 | MPF300T | 0.44 | 385 MHz | 14 |
FPGA რესურსები | უტილიზაცია | |||||||
ოჯახი | 4LUT | DFF | სულ | მათემატიკის ბლოკი | მოწყობილობა | პერჩენიtage | შესრულება | შეყოვნება |
ფიქსირებული წერტილიდან მცურავ წერტილამდე გადაყვანა | ||||||||
RTG4™ | 264 | 104 | 368 | 0 | RT4G150 | 0.24 | 160 MHz | 3 |
მცურავი წერტილიდან ფიქსირებულ წერტილამდე | ||||||||
RTG4 | 439 | 112 | 551 | 0 | RT4G150 | 0.36 | 105 MHz | 3 |
მცურავი წერტილების შეკრება | ||||||||
RTG4 | 1733 | 1551 | 3284 | 0 | RT4G150 | 1.16 | 195 MHz | 16 |
მცურავი წერტილის გამოკლება | ||||||||
RTG4 | 1729 | 1549 | 3258 | 0 | RT4G150 | 1.16 | 190 MHz | 16 |
მცურავი წერტილის გამრავლება | ||||||||
RTG4 | 468 | 847 | 1315 | 4 | RT4G150 | 0.87 | 175 MHz | 14 |
FPGA რესურსები | უტილიზაცია | |||||||
ოჯახი | 4LUT | DFF | სულ | მათემატიკის ბლოკი | მოწყობილობა | პერჩენიtage | შესრულება | შეყოვნება |
ფიქსირებული წერტილიდან მცურავ წერტილამდე გადაყვანა | ||||||||
PolarFire® | 638 | 201 | 849 | 0 | MPF300T | 0.28 | 305 MHz | 3 |
მცურავი წერტილიდან ფიქსირებულ წერტილამდე | ||||||||
PolarFire | 2442 | 203 | 2645 | 0 | MPF300T | 0.89 | 110 MHz | 3 |
მცურავი წერტილების შეკრება | ||||||||
PolarFire | 5144 | 4028 | 9172 | 0 | MPF300T | 3.06 | 240 MHz | 16 |
მცურავი წერტილის გამოკლება | ||||||||
PolarFire | 5153 | 4026 | 9179 | 0 | MPF300T | 3.06 | 250 MHz | 16 |
მცურავი წერტილის გამრავლება | ||||||||
PolarFire | 1161 | 3818 | 4979 | 16 | MPF300T | 1.66 | 340 MHz | 27 |
FPGA რესურსები | უტილიზაცია | |||||||
ოჯახი | 4LUT | DFF | სულ | მათემატიკის ბლოკი | მოწყობილობა | პერჩენიtage | შესრულება | შეყოვნება |
ფიქსირებული წერტილიდან მცურავ წერტილამდე გადაყვანა | ||||||||
RTG4™ | 621 | 201 | 822 | 0 | RT4G150 | 0.54 | 140 MHz | 3 |
მცურავი წერტილიდან ფიქსირებულ წერტილამდე | ||||||||
RTG4 | 1114 | 203 | 1215 | 0 | RT4G150 | 0.86 | 75 MHz | 3 |
მცურავი წერტილების შეკრება | ||||||||
RTG4 | 4941 | 4028 | 8969 | 0 | RT4G150 | 5.9 | 140 MHz | 16 |
მცურავი წერტილის გამოკლება | ||||||||
RTG4 | 5190 | 4026 | 9216 | 0 | RT4G150 | 6.07 | 130 MHz | 16 |
მცურავი წერტილის გამრავლება | ||||||||
RTG4 | 1165 | 3818 | 4983 | 16 | RT4G150 | 3.28 | 170 MHz | 27 |
მნიშვნელოვანია: სიხშირის გასაზრდელად, სინთეზის პარამეტრებში აირჩიეთ „ხელახალი დროის ჩართვა“.
გადასინჯვის ისტორია
გადასინჯვის ისტორია აღწერს ცვლილებებს, რომლებიც განხორციელდა დოკუმენტში. ცვლილებები ჩამოთვლილია გადასინჯვით, დაწყებული უახლესი პუბლიკაციით.
მიკროჩიპის FPGA მხარდაჭერა
Microchip FPGA პროდუქტების ჯგუფი მხარს უჭერს თავის პროდუქტებს სხვადასხვა დამხმარე სერვისებით, მათ შორის მომხმარებელთა სერვისით, მომხმარებელთა ტექნიკური დახმარების ცენტრით, webსაიტი და გაყიდვების ოფისები მთელს მსოფლიოში. კლიენტებს სთავაზობენ ეწვიონ Microchip-ის ონლაინ რესურსებს, სანამ დაუკავშირდებიან მხარდაჭერას, რადგან დიდია ალბათობა, რომ მათ შეკითხვებს უკვე გაეცეს პასუხი.
დაუკავშირდით ტექნიკური დახმარების ცენტრს webსაიტი ზე www.microchip.com/support. ახსენეთ FPGA მოწყობილობის ნაწილის ნომერი, აირჩიეთ შესაბამისი საქმის კატეგორია და ატვირთეთ დიზაინი fileტექნიკური დახმარების საქმის შექმნისას.
დაუკავშირდით მომხმარებელთა მომსახურებას პროდუქტის არატექნიკური მხარდაჭერისთვის, როგორიცაა პროდუქტის ფასები, პროდუქტის განახლება, განახლებული ინფორმაცია, შეკვეთის სტატუსი და ავტორიზაცია.
- ჩრდილოეთ ამერიკიდან დარეკეთ 800.262.1060
- დანარჩენი მსოფლიოდან დარეკეთ 650.318.4460
- ფაქსი, მსოფლიოს ნებისმიერი ადგილიდან, 650.318.8044
მიკროჩიპის ინფორმაცია
სავაჭრო ნიშნები
"Microchip" სახელი და ლოგო, "M" ლოგო და სხვა სახელები, ლოგოები და ბრენდები არის Microchip Technology Incorporated-ის ან მისი შვილობილი და/ან შვილობილი კომპანიების რეგისტრირებული და დაურეგისტრირებელი სავაჭრო ნიშნები შეერთებულ შტატებში და/ან სხვა ქვეყნებში ("Microchip" სავაჭრო ნიშნები”). ინფორმაცია მიკროჩიპის სავაჭრო ნიშნებთან დაკავშირებით შეგიძლიათ იხილოთ აქ https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3
იურიდიული ცნობა
ეს პუბლიკაცია და აქ არსებული ინფორმაცია შეიძლება გამოყენებულ იქნას მხოლოდ Microchip-ის პროდუქტებთან, მათ შორის მიკროჩიპის პროდუქტების დიზაინის, ტესტირებისა და ინტეგრაციისთვის თქვენს აპლიკაციაში. ამ ინფორმაციის ნებისმიერი სხვა გზით გამოყენება არღვევს წინამდებარე პირობებს. ინფორმაცია მოწყობილობის აპლიკაციებთან დაკავშირებით მოწოდებულია მხოლოდ თქვენი მოხერხებულობისთვის და შეიძლება შეიცვალოს განახლებებით. თქვენი პასუხისმგებლობაა უზრუნველყოთ, რომ თქვენი აპლიკაცია აკმაყოფილებს თქვენს სპეციფიკაციებს. დაუკავშირდით თქვენს ადგილობრივ მიკროჩიპის გაყიდვების ოფისს დამატებითი მხარდაჭერისთვის ან მიიღეთ დამატებითი მხარდაჭერა აქ www.microchip.com/en-us/support/design-help/client-support-services
ეს ინფორმაცია მოწოდებულია მიკროჩიპის მიერ "როგორც არის". მიკროჩიპი არ იძლევა რაიმე სახის წარმომადგენლობას ან გარანტიას, იქნება ეს გამოხატული თუ ნაგულისხმევი, წერილობითი თუ ზეპირი, კანონიერი ან სხვაგვარად, დაკავშირებული ინფორმაციასთან, მათ შორის, მაგრამ არა შეზღუდული შეზღუდული არადარღვევა, ვაჭრობა და ვარგისიანობა კონკრეტული მიზნისთვის, ან მის მდგომარეობასთან, ხარისხთან ან შესრულებასთან დაკავშირებული გარანტიები.
არავითარ შემთხვევაში მიკროჩიპი არ იქნება პასუხისმგებელი რაიმე სახის ირიბი, სპეციალური, სადამსჯელო, შემთხვევითი ან თანმიმდევრული დანაკარგისთვის, ზიანის, ღირებულების ან რაიმე სახის ხარჯზე, რაც არ უნდა იყოს დაკავშირებული აშშ-სთან, ჩვენთან მაშინაც კი, თუ მიკროჩიპს მიეცა რეკომენდაცია შესაძლებლობის ან დაზიანების შესახებ. კანონით ნებადართული სრულყოფილად, მიკროჩიპის მთლიანი პასუხისმგებლობა ყველა პრეტენზიაზე რაიმე ფორმით, რომელიც დაკავშირებულია ინფორმაციასთან ან მის გამოყენებასთან, არ აღემატება საკომისიოების ოდენობას, ასეთის არსებობის შემთხვევაში, ინფორმაცია.
მიკროჩიპის მოწყობილობების გამოყენება სიცოცხლის მხარდაჭერისა და/ან უსაფრთხოების აპლიკაციებში მთლიანად მყიდველის რისკის ქვეშაა და მყიდველი თანახმაა დაიცვას, აანაზღაუროს და შეინახოს უვნებელი მიკროჩიპი ნებისმიერი და ყველა ზიანისგან, პრეტენზიისგან, სარჩელისგან ან ხარჯისგან. არანაირი ლიცენზია არ არის გადაცემული, ირიბად ან სხვაგვარად, ნებისმიერი მიკროჩიპის ინტელექტუალური საკუთრების უფლებით, თუ სხვა რამ არ არის მითითებული.
მიკროჩიპური მოწყობილობების კოდის დაცვის ფუნქცია
გაითვალისწინეთ კოდის დაცვის ფუნქციის შემდეგი დეტალები მიკროჩიპის პროდუქტებზე:
- მიკროჩიპის პროდუქტები აკმაყოფილებს სპეციფიკაციებს, რომლებიც მოცემულია მიკროჩიპის მონაცემთა ფურცელში.
- Microchip თვლის, რომ მისი ოჯახის პროდუქტები უსაფრთხოა, როდესაც გამოიყენება დანიშნულებისამებრ, ოპერაციული სპეციფიკაციების ფარგლებში და ნორმალურ პირობებში.
- მიკროჩიპი აფასებს და აგრესიულად იცავს მის ინტელექტუალურ საკუთრების უფლებებს. მიკროჩიპის პროდუქტების კოდების დაცვის მახასიათებლების დარღვევის მცდელობა მკაცრად აკრძალულია და შესაძლოა არღვევდეს ციფრული ათასწლეულის საავტორო უფლებების აქტს.
- არც მიკროჩიპი და არც ნახევარგამტარების სხვა მწარმოებელი არ იძლევა მისი კოდის უსაფრთხოების გარანტიას. კოდის დაცვა არ ნიშნავს იმას, რომ ჩვენ გარანტიას ვაძლევთ პროდუქტის „შეურღვევია“. კოდის დაცვა მუდმივად ვითარდება. მიკროჩიპი მოწოდებულია მუდმივად გააუმჯობესოს ჩვენი პროდუქციის კოდის დაცვის მახასიათებლები.
დოკუმენტები / რესურსები
![]() |
MICROCHIP CoreFPU Core მცურავი წერტილის ბლოკი [pdf] მომხმარებლის სახელმძღვანელო v3.0, v2.1, v2.0, v1.0, CoreFPU Core მცურავი წერტილის ერთეული, Core მცურავი წერტილის ერთეული, მცურავი წერტილის ერთეული, წერტილის ერთეული |