MICROCHIP -logo

Unit Titik Ngambang Inti MICROCHIP CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-produk

 

Pambuka 

  • Unit Titik Ngambang Inti (CoreFPU) dirancang kanggo operasi aritmetika lan konversi floating-point, kanggo nomer floating-point presisi tunggal lan kaping pindho. CoreFPU ndhukung konversi titik tetep nganti titik ngambang lan titik ngambang menyang titik tetep lan operasi tambahan, pengurangan, lan perkalian floating-point. IEEE® Standard for Floating-Point Aritmetic (IEEE 754) minangka standar teknis kanggo komputasi floating-point.
  • Penting: CoreFPU ndhukung petungan mung karo nomer normal, lan mung basa Verilog didhukung; VHDL ora didhukung.

Ringkesan
Tabel ing ngisor iki nyedhiyakake ringkesan karakteristik CoreFPU.

Tabel 1. Karakteristik CoreFPU 

Versi inti Dokumen iki ditrapake kanggo CoreFPU v3.0.
Kulawarga Piranti sing Didhukung
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Aliran Alat sing Didhukung Mbutuhake Libero® SoC v12.6 utawa rilis sing luwih anyar.
Lisensi CoreFPU ora dikunci lisensi.
Pandhuan Instalasi CoreFPU kudu diinstal menyang Katalog IP Libero SoC kanthi otomatis liwat fungsi nganyari Katalog IP. Utawa, CoreFPU bisa diundhuh kanthi manual saka katalog. Sawise inti IP punika

diinstal, wis diatur, kui lan instantiated ing SmartDesign kanggo Gawan ing project.

Panggunaan lan Kinerja Piranti Ringkesan informasi panggunaan lan kinerja kanggo CoreFPU kadhaptar ing Panggunaan lan Kinerja Sumber Daya Piranti.

Informasi Log Ganti CoreFPU
Bagian iki nyedhiyakake luwih lengkapview fitur sing mentas digabung, diwiwiti kanthi rilis paling anyar. Kanggo informasi luwih lengkap babagan masalah sing ditanggulangi, deleng bagean Masalah sing Ditanggulangi.

Versi Apa Anyar
v3.0 Dilaksanakake flag output tambahan kanggo nambah akurasi IP
v2.1 Ditambahake fitur presisi ganda
v2.0 Dianyari wangun gelombang wektu
v1.0 Rilis produksi pertama CoreFPU

1. Fitur

CoreFPU nduweni fitur utama ing ngisor iki:

  • Ndhukung Single lan Double Precision Floating Numbers miturut IEEE-754 Standard
  • Ndhukung Konversi kaya sing kadhaptar:
    • Titik tetep menyang konversi Floating-point
    • Floating-point menyang Konversi titik tetep
  • Ndhukung Operasi Aritmetika kaya sing kadhaptar:
    • Tambahan floating-point
    • Pengurangan titik ngambang
    • Floating-point multiplikasi
  • Nyedhiyakake Skema Pembulatan (Bunder nganti paling cedhak) mung kanggo Operasi Aritmetika
  • Nyedhiyakake Flags kanggo Overflow, Underflow, Infinity (Positive Infinity, Negative Infinity), Quiet NaN (QNaN) lan Signaling NaN (SNaN) kanggo Floating-Point Numbers.
  • Ndhukung implementasine kanthi lengkap saka Operasi Aritmetika
  • Nyedhiyani Pranata kanggo ngatur Inti kanggo Requirements Design

Deskripsi Fungsional

  • IEEE Standard for Floating-Point Arithmetic (IEEE 754) minangka standar teknis kanggo komputasi floating-point. Istilah floating-point nuduhake titik radix saka nomer (titik desimal utawa titik biner), sing diselehake ing ngendi wae sing ana hubungane karo digit sing signifikan saka nomer kasebut.
    Nomer floating-point biasane ditulis ing notasi ilmiah, kanthi fraksi (F), lan eksponen (E) saka radix tartamtu (r), ing wangun F × r ^ E. Nomer desimal nggunakake radix 10 (F × 10^E); dene angka biner nggunakake radix 2 (F × 2^E).
  • Perwakilan saka nomer floating-point ora unik. Kanggo example, nomer 55.66 dituduhake minangka 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, lan sateruse. Bagean pecahan dinormalisasi. Ing wangun normal, mung ana siji digit non-nol sadurunge titik radix. Kanggo example, angka desimal 123.4567 dinormalisasi dadi 1.234567 × 10^2; angka binar 1010.1011B dinormalisasi dadi 1.0101011B × 2^3.
  • Wigati dicathet menawa angka floating-point ngalami mundhut presisi nalika diwakili kanthi jumlah bit sing tetep (kanggo ex.ample, 32-bit utawa 64-bit). Iki amarga ana nomer tanpa wates nomer nyata (malah ing sawetara cilik saka 0.0 kanggo 0.1). Ing tangan liyane, an
    Pola biner n-bit nggambarake 2^n nomer sing beda-beda. Mula, ora kabeh nomer nyata diwakili. Perkiraan paling cedhak digunakake tinimbang, sing nyebabake mundhut akurasi.

Nomer floating-point presisi tunggal dituduhake kaya ing ngisor iki:

  • Bit tandha: 1-bit
  • Jembar eksponen: 8 bit
  • Presisi pinunjul: 24 bit (23 bit disimpen sacara eksplisit)

Gambar 2-1. Bingkai 32-bit

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (2)Nomer floating-point presisi ganda diwakili kaya ing ngisor iki:

  • Bit tandha: 1-bit
  • Jembar eksponen: 11 bit
  • Presisi pinunjul: 53 bit (52 bit disimpen sacara eksplisit)

Gambar 2-2. Bingkai 64-bit MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (3)CoreFPU minangka integrasi tingkat paling dhuwur saka rong modul konversi (Fixed to Float point lan Float to Fixed point) lan telung operasi aritmetika (FP ADD, FP SUB, lan FP MULT). Pangguna bisa ngatur salah sawijining operasi adhedhasar syarat supaya sumber daya bisa digunakake kanggo operasi sing dipilih.
Tokoh ing ngisor iki nuduhake diagram blok CoreFPU tingkat ndhuwur kanthi port.

Gambar 2-3. Diagram Blok Port CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (4)Tabel ing ngisor iki nampilake jembaré port Input lan Output. Tabel 2-1. Input lan Output Port Jembar

Sinyal Jembar Presisi Tunggal Jembar Precision pindho
ain [31:0] [63:0]
bin [31:0] [63:0]
aut [31:0] [63:0]
pout [31:0] [63:0]

Fixed-Point to Floating-Point (Konversi)

CoreFPU dikonfigurasi minangka tetep kanggo floating-point infers tetep-titik kanggo modul konversi floating-point. Input (ain) menyang CoreFPU minangka nomer titik tetep sing ngemot bit integer lan pecahan. Konfigurator CoreFPU duwe pilihan kanggo milih integer input lan jembar fraksi. Input sah ing sinyal di_valid lan output sah ing do_valid. Output (aout) saka operasi tetep kanggo ngambang ana ing format floating-point presisi siji utawa kaping pindho.
Example kanggo operasi konversi titik tetep dadi titik ngambang kapacak ing tabel ing ngisor iki.
Tabel 2-2. Example kanggo Konversi Titik Tetap menyang Titik Ngambang

Nomer Titik Tetap Nomer Floating Point
ain integer Fraksi aut mlebu Eksponen Mantissa
0x12153524 (32-dicokot) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bit)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Floating-Point menyang Fixed-Point (Konversi) 
CoreFPU sing dikonfigurasi minangka floating to fixed-point infers floating-point to fixed-point conversion module. Input (ain) menyang CoreFPU minangka nomer floating-point presisi siji utawa kaping pindho lan ngasilake output (aout) ing format titik tetep sing ngemot integer lan bit pecahan. Input sah ing sinyal di_valid lan output sah ing do_valid. Konfigurator CoreFPU duwe pilihan kanggo milih integer output lan jembar fraksi.
Example kanggo operasi konversi floating-point menyang titik tetep kadhaptar ing tabel ing ngisor iki.

Tabel 2-3. Example kanggo Floating-Point kanggo Konversi Titik Tetap

Nomer Floating Point Nomer Titik Tetap
ain mlebu Eksponen Mantissa aut integer Fraksi
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000b678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bit)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Penambahan Titik Apung (Operasi Aritmatika)
CoreFPU sing dikonfigurasi minangka FP ADD nyimpulake modul tambahan floating-point. Nambahake rong angka floating-point (ain lan bin) lan nyedhiyakake output (pout) ing format floating-point. Input lan output minangka nomer floating-point presisi siji utawa kaping pindho. Input sah ing sinyal di_valid lan output sah ing do_valid. Inti ngasilake ovfl_fg (Overflow), qnan_fg (Sepi Ora Nomer), snan_fg (Signalling Ora Nomer), pinf_fg (Positif Tanpa wates), lan ninf_fg (Negatif Tanpa wates) adhedhasar operasi tambahan.
Examples kanggo operasi tambahan floating-point kapacak ing tabel ing ngisor iki.
Tabel 2-4. Example kanggo Operasi Tambahan Titik Ngambang (32-bit)

Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Input titik ngambang 2 tong (0x4f191b40) 0 10011110 00110010001101101000000
Pout output tambahan titik ngambang (0x4f656680) 0 10011110 11001010110011010000000

Tabel 2-5. Example kanggo Operasi Tambahan Titik Ngambang (64-bit)

Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Input titik ngambang 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Pout output tambahan titik ngambang (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Pengurangan Titik Apung (Operasi Aritmatika) 
CoreFPU sing dikonfigurasi minangka FP SUB nyimpulake modul subtraction floating-point. Iku nyuda rong angka floating-point (ain lan bin) lan nyedhiyakake output (pout) ing format floating-point. Input lan output minangka nomer floating-point presisi siji utawa kaping pindho. Input sah ing sinyal di_valid lan output sah ing do_valid. Inti ngasilake ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Sepi Ora Nomer), snan_fg (Sinyal Ora Nomer), pinf_fg (Positif Tanpa wates), lan ninf_fg (Negatif Tanpa wates) adhedhasar operasi pengurangan.
Examples kanggo operasi subtraction floating-point kapacak ing tabel ing ngisor iki.
Tabel 2-6. Example kanggo Operasi Pengurangan Titik Ngambang (32-bit)

Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Input titik ngambang 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Pout output pengurangan titik ngambang (0xaf5591ac) 1 01011110 10101011001000110101011
Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1

iki (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Input titik ngambang 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Pout output pengurangan titik ngambang (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Perkalian Titik Apung (Operasi Aritmatika)
CoreFPU dikonfigurasi minangka FP MULT infer modul multiplikasi floating-point. Iki multiplies loro nomer floating-point (ain lan bin) lan menehi output (pout) ing format floating-point. Input lan output minangka nomer floating-point presisi siji utawa kaping pindho. Input sah ing sinyal di_valid lan output sah ing do_valid. Inti ngasilake ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Sepi Ora Nomer), snan_fg (Sinyal Ora Nomer), pinf_fg (Positif Tanpa wates), lan ninf_fg (Negatif Tanpa wates) adhedhasar operasi multiplikasi.
Examples kanggo operasi multiplikasi floating-point kapacak ing tabel ing ngisor iki.
Tabel 2-8. Example kanggo Operasi Multiplikasi Titik Ngambang (32-bit)

Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Input titik ngambang 2 tong (0x6ecf15e8) 0 11011101 10011110001010111101000
Floating-point Multiplikasi output pout (0x4e21814a) 0 10011100 01000011000000101001010
Nilai Floating-Point mlebu Eksponen Mantissa
Input titik ngambang 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Input titik ngambang 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Pout output multiplikasi titik ngambang (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Tabel Bebener kanggo Penambahan lan Pengurangan 
Tabel bebener ing ngisor iki nampilake nilai kanggo operasi tambahan lan pengurangan. Tabel 2-10. Tabel Bebener kanggo Tambahan

Data A Data B Mlebu Bit asil kebanjiran Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul pungkasan (y) 0 pungkasan (y) 0 0 0 0 0 0
nul negfinite (y) 1 negfinite (y) 0 0 0 0 0 0
nul posinfinite 0 posinfinite 0 0 0 0 1 0
nul neginfinite 1 neginfinite 0 0 0 0 0 1
pungkasan (y) nul 0 pungkasan (y) 0 0 0 0 0 0
posfinite posinfinite 0 posinfinite 0 0 0 0 1 0
Tabel 2-10. Tabel Kebenaran kanggo Penambahan (lanjutan)
Data A Data B Mlebu Bit asil kebanjiran Underflow SNaN QNaN PINF NINF
posfinite neginfinite 1 neginfinite 0 0 0 0 0 1
negfinite (y) nul 1 negfinite (y) 0 0 0 0 0 0
negfinite posinfinite 0 posinfinite 0 0 0 0 1 0
negfinite neginfinite 1 neginfinite 0 0 0 0 0 1
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinite 0 posinfinite 0 0 0 0 1 0
posinfinite negfinite 0 posinfinite 0 0 0 0 1 0
posinfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posinfinite neginfinite 0 POSQNaN 0 0 0 1 0 0
neginfinite nul 1 neginfinite 0 0 0 0 0 1
neginfinite posfinite 1 neginfinite 0 0 0 0 0 1
neginfinite negfinite 1 neginfinite 0 0 0 0 0 1
neginfinite posinfinite 0 POSQNaN 0 0 0 1 0 0
neginfinite neginfinite 1 neginfinite 0 0 0 0 0 1
posfinite posfinite 0 posfinite 0 0 0 0 0 0
posfinite posfinite 0 posinfinite 0 0 0 0 1 0
posfinite posfinite 0/1 QNaN 0 0 0 1 0 0
posfinite posfinite 0/1 SNaN 0 0 1 0 0 0
posfinite posfinite 0 POSSNaN 1 0 1 0 0 0
posfinite negfinite 0 posfinite 0 0 0 0 0 0
posfinite negfinite 1 negfinite 0 0 0 0 0 0
posfinite negfinite 0 POSSNaN 0 1 1 0 0 0
negfinite posfinite 0 posfinite 0 0 0 0 0 0
negfinite posfinite 1 negfinite 0 0 0 0 0 0
negfinite posfinite 0 POSSNaN 0 1 1 0 0 0
negfinite negfinite 1 negfinite 0 0 0 0 0 0
negfinite negfinite 1 neginfinite 0 0 0 0 0 1
negfinite negfinite 0/1 QNaN 0 0 0 1 0 0
negfinite negfinite 0/1 SNaN 0 0 1 0 0 0
negfinite negfinite 0 POSSNaN 1 0 1 0 0 0
Data A Data B Mlebu Bit asil kebanjiran Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul pungkasan (y) 1 negfinite (y) 0 0 0 0 0 0
nul negfinite (y) 0 pungkasan (y) 0 0 0 0 0 0
nul posinfinite 1 neginfinite 0 0 0 0 0 1
nul neginfinite 0 posinfinite 0 0 0 0 1 0
pungkasan (y) nul 0 pungkasan (y) 0 0 0 0 0 0
posfinite posinfinite 1 neginfinite 0 0 0 0 0 1
posfinite neginfinite 0 posinfinite 0 0 0 0 1 0
negfinite (y) nul 1 negfinite (y) 0 0 0 0 0 0
negfinite posinfinite 1 neginfinite 0 0 0 0 0 1
Tabel 2-11. Tabel Kebenaran kanggo Pengurangan (lanjutan)
Data A Data B Mlebu Bit asil kebanjiran Underflow SNaN QNaN PINF NINF
negfinite neginfinite 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinite 0 posinfinite 0 0 0 0 1 0
posinfinite negfinite 0 posinfinite 0 0 0 0 1 0
posinfinite posinfinite 0 POSQNaN 0 0 0 1 0 0
posinfinite neginfinite 0 posinfinite 0 0 0 0 1 0
neginfinite nul 1 neginfinite 0 0 0 0 0 1
neginfinite posfinite 1 neginfinite 0 0 0 0 0 1
neginfinite negfinite 1 neginfinite 0 0 0 0 0 1
neginfinite posinfinite 1 neginfinite 0 0 0 0 0 1
neginfinite neginfinite 0 POSQNaN 0 0 0 1 0 0
posfinite posfinite 0 posfinite 0 0 0 0 0 0
posfinite posfinite 1 negfinite 0 0 0 0 0 0
posfinite posfinite 0 POSSNaN 0 1 1 0 0 0
posfinite negfinite 0 posfinite 0 0 0 0 0 0
posfinite negfinite 0 posinfinite 0 0 0 0 1 0
posfinite negfinite 0/1 QNaN 0 0 0 1 0 0
posfinite negfinite 0/1 SNaN 0 0 1 0 0 0
posfinite negfinite 0 POSSNaN 1 0 1 0 0 0
negfinite posfinite 1 negfinite 0 0 0 0 0 0
negfinite posfinite 1 neginfinite 0 0 0 0 0 1
negfinite posfinite 0/1 QNaN 0 0 0 1 0 0
negfinite posfinite 0/1 SNaN 0 0 1 0 0 0
negfinite posfinite 0 POSSNaN 1 0 1 0 0 0
negfinite negfinite 0 posfinite 0 0 0 0 0 0
negfinite negfinite 1 negfinite 0 0 0 0 0 0
negfinite negfinite 0 POSSNaN 0 1 1 0 0 0

penting:

  • Ing tabel sadurunge nuduhake nomer apa wae.
  • Ing tabel sadurunge nuduhake kondisi ora peduli.

Tabel Bebener kanggo Multiplikasi 
Tabel bebener ing ngisor iki nampilake nilai kanggo operasi perkalian.

Tabel 2-12. Tabel Bebener kanggo Multiplikasi

Data A Data B Mlebu Bit asil kebanjiran Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul posfinite 0 POSZERO 0 0 0 0 0 0
nul negfinite 0 POSZERO 0 0 0 0 0 0
nul posinfinite 0 POSQNaN 0 0 0 1 0 0
nul neginfinite 0 POSQNaN 0 0 0 1 0 0
Tabel 2-12. Tabel Kebenaran kanggo Multiplikasi (lanjutan)
Data A Data B Mlebu Bit asil kebanjiran Underflow SNaN QNaN PINF NINF
posfinite nul 0 POSZERO 0 0 0 0 0 0
posfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posfinite neginfinite 1 neginfinite 0 0 0 0 0 1
negfinite nul 0 POSZERO 0 0 0 0 0 0
negfinite posinfinite 1 neginfinite 0 0 0 0 0 1
negfinite neginfinite 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 POSQNaN 0 0 0 1 0 0
posinfinite posfinite 0 posinfinite 0 0 0 0 1 0
posinfinite negfinite 1 neginfinite 0 0 0 0 0 1
posinfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posinfinite neginfinite 1 neginfinite 0 0 0 0 0 1
neginfinite nul 0 POSQNaN 0 0 0 1 0 0
neginfinite posfinite 1 neginfinite 0 0 0 0 0 1
neginfinite negfinite 0 posinfinite 0 0 0 0 1 0
neginfinite posinfinite 1 neginfinite 0 0 0 0 0 1
neginfinite neginfinite 0 posinfinite 0 0 0 0 1 0
posfinite posfinite 0 posfinite 0 0 0 0 0 0
posfinite posfinite 0 posinfinite 0 0 0 0 1 0
posfinite posfinite 0 POSQNaN 0 0 0 1 0 0
posfinite posfinite 0 POSSNaN 0 0 1 0 0 0
posfinite posfinite 0 POSSNaN 1 0 1 0 0 0
posfinite posfinite 0 POSSNaN 0 1 1 0 0 0
posfinite negfinite 1 negfinite 0 0 0 0 0 0
posfinite negfinite 1 neginfinite 0 0 0 0 0 1
posfinite negfinite 0 POSQNaN 0 0 0 1 0 0
posfinite negfinite 0 POSSNaN 0 0 1 0 0 0
posfinite negfinite 0 POSSNaN 1 0 1 0 0 0
posfinite negfinite 0 POSSNaN 0 1 1 0 0 0
negfinite posfinite 1 negfinite 0 0 0 0 0 0
negfinite posfinite 1 neginfinite 0 0 0 0 0 1
negfinite posfinite 0 POSQNaN 0 0 0 1 0 0
negfinite posfinite 0 POSSNaN 0 0 1 0 0 0
negfinite posfinite 0 POSSNaN 1 0 1 0 0 0
negfinite posfinite 0 POSSNaN 0 1 1 0 0 0
negfinite negfinite 0 posfinite 0 0 0 0 0 0
negfinite negfinite 0 posinfinite 0 0 0 0 1 0
negfinite negfinite 0 POSQNaN 0 0 0 1 0 0
negfinite negfinite 0 POSQNaN 0 0 1 0 0 0
negfinite negfinite 0 POSQNaN 1 0 1 0 0 0
negfinite negfinite 0 POSQNaN 0 1 1 0 0 0

penting:

Tandha Bit '0' nemtokake output positif lan '1' nemtokake output negatif.
X ing tabel sadurunge nuduhake kondisi ora peduli.

Parameter CoreFPU lan Sinyal Antarmuka
Bagean iki ngrembug paramèter ing setelan Configurator CoreFPU lan sinyal I / O.

Parameter GUI Konfigurasi 
Ana sawetara opsi configurable sing ditrapake kanggo unit FPU minangka ditampilake ing tabel ing ngisor iki. Yen konfigurasi liyane saka standar dibutuhake, kothak dialog konfigurasi digunakake kanggo milih nilai cocok kanggo pilihan configurable.

Tabel 3-1. Parameter GUI Konfigurasi CoreFPU 

Jeneng Parameter Default Katrangan
Precision Tunggal Pilih operasi sing dibutuhake:

Presisi Tunggal
Precision pindho

Tipe Konversi Titik tetep menyang konversi Floating-point Pilih operasi sing dibutuhake:
  • Titik tetep menyang konversi Floating-point
  • Floating-point menyang Konversi titik tetep
  • Tambahan floating-point
  • Pengurangan titik ngambang
  • Floating-point multiplikasi
Jembar Fraksi Input1 15 Ngatur titik pecahan ing Input ain lan sinyal bin

Rentang sing bener yaiku 31-1

Jembar pecahan Output2 15 Ngatur titik pecahan ing sinyal Output aout

Rentang sing bener yaiku 51-1

penting:

  1. Parameter iki mung bisa dikonfigurasi sajrone konversi titik tetep dadi titik ngambang.
  2. Parameter iki mung bisa dikonfigurasi sajrone konversi floating-point menyang fixed-point.

Sinyal Input lan Output (Tanya Pitakonan)
Tabel ing ngisor iki nampilake sinyal port input lan output saka CoreFPU.

Tabel 3-2. Katrangan Port 

Jeneng Sinyal Jembar Jinis Katrangan
clk 1 Input Jam sistem utama
rstn 1 Input Aktif-rendah reset asinkron
ora sah 1 Input Input aktif-dhuwur sah

Sinyal iki nuduhake yen data sing ana ing ain[31:0], ain[63:0] lan bin[31:0], bin[63:0] bener.

ain 32/64 Input Bus Input (Digunakake kanggo kabeh operasi)
bin1 32/64 Input B Input Bus (Mung digunakake kanggo operasi aritmetika)
aut2 32/64 Output Nilai output nalika tetep menyang floating-point utawa floating to fixed-point operasi konversi dipilih.
pout1 32/64 Output Nilai output nalika operasi tambahan, pangurangan, utawa perkalian dipilih.
Tabel 3-2. Deskripsi Port (lanjutan)
Jeneng Sinyal Jembar Jinis Katrangan
do_valid 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake yen data sing ana ing bus data pout / aout bener.

ovfl_fg3 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake overflow sajrone operasi floating-point.

unfl_fg 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake underflow sajrone operasi floating point.

qnan_fg3 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake Quiet Not a Number (QNaN) sajrone operasi floating-point.

snan_fg 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake Signaling Not-a-Number (SNaN) sajrone operasi floating point.

pinf_fg3 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake infinity positif sajrone operasi floating-point.

ninf_fg 1 Output Sinyal aktif-dhuwur

Sinyal iki nuduhake tanpa wates negatif sajrone operasi floating-point.

penting:

  1. Port iki mung kasedhiya kanggo operasi tambahan, subtraction, utawa multiplikasi floating-point.
  2. Port iki mung kasedhiya kanggo operasi konversi titik tetep menyang titik ngambang lan titik ngambang menyang titik tetep.
  3. Port iki kasedhiya kanggo floating-point menyang fixed-point, tambahan floating-point, subtraction floating-point, lan multiplikasi floating-point.

Implementasi CoreFPU ing Libero Design Suite

Bagean iki nggambarake implementasine CoreFPU ing Libero Design Suite.

SmartDesign 

CoreFPU kasedhiya kanggo diundhuh ing katalog IP Libero liwat web gudang. Sawise kadhaptar ing katalog, inti wis instantiated nggunakake aliran SmartDesign. Kanggo informasi babagan nggunakake SmartDesign kanggo ngatur, nyambungake, lan ngasilake inti, deleng bantuan online Libero SoC.
Sawise ngonfigurasi lan ngasilake conto inti, simulasi fungsionalitas dhasar nggunakake testbench sing diwenehake karo CoreFPU. Parameter testbench kanthi otomatis nyetel konfigurasi CoreFPU. CoreFPU wis instantiated minangka komponen saka desain luwih gedhe.
Gambar 4-1. SmartDesign CoreFPU Instance kanggo Operasi Aritmetika

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (5)Gambar 4-2. SmartDesign CoreFPU Instance kanggo Operasi Konversi MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (6)

 

Konversi Titik Tetap menyang Titik Ngambang
Sajrone konversi titik tetep dadi titik ngambang, Jembar Fraksi Input bisa dikonfigurasi. Jembar Output disetel dadi 32-bit kanggo presisi tunggal lan 64-bit kanggo floating-point presisi ganda kanthi standar.
Kanggo ngowahi saka titik tetep dadi titik ngambang, pilih Tipe Konversi tetep dadi titik ngambang, kaya sing ditampilake ing gambar ing ngisor iki.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (7)Floating-Point kanggo Fixed-Point 
Sajrone floating-point to fixed-point conversion, Output Fractional Width bisa dikonfigurasi, lan Input Width disetel dadi 32-bit kanggo presisi tunggal lan 64-bit kanggo floating-point presisi ganda kanthi standar.
Kanggo ngowahi saka floating-point menyang fixed-point, pilih Floating point menyang jinis Konversi tetep, kaya sing ditampilake ing gambar ing ngisor iki.
Gambar 4-4. CoreFPU Configurator kanggo Floating Point kanggo Telpon MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (8)Penambahan/Pengurangan/Penggandaan Titik Apung
Sajrone operasi tambahan, subtraction, lan multiplikasi floating-point, Jembar Fraksi Input lan Jembar Fraksi Output ora bisa dikonfigurasi amarga iki operasi aritmetika floating-point, lan Jembar Input/Output disetel dadi presisi tunggal 32-bit lan 64-bit kanggo floating-point presisi ganda kanthi standar.
Gambar ing ngisor iki nuduhake konfigurator CoreFPU kanggo operasi subtraction titik ngambang.

Gambar 4-5. CoreFPU Configurator kanggo Floating Point SubtractionMICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (9)Simulasi (Ask a Question)
Kanggo mbukak simulasi, ing jendhela konfigurasi inti, pilih User Testbench. Sawise ngasilake CoreFPU, pra-sintesis testbench Hardware Description Language (HDL) files diinstal ing Libero.

Bentuk Gelombang Simulasi (Aja Pitakonan)
Bagean iki mbahas bentuk gelombang simulasi kanggo CoreFPU.
Tokoh ing ngisor iki nuduhake wangun gelombang saka titik tetep kanggo konversi floating-point kanggo 32-bit lan 64-bit.MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (10)

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (11) MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (12) MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (13)

Integrasi Sistem
Gambar ing ngisor iki nuduhake mantanample saka nggunakake inti. Ing mantan ikiample, desain UART digunakake minangka saluran komunikasi antarane desain lan PC inang. Sinyal ain lan bin (saben ambane 32-bit utawa 64-bit) minangka input kanggo desain saka UART. Sawise CoreFPU nampa sinyal di_valid, ngetung asil. Sawise ngitung asil, sinyal do_valid dadi dhuwur lan nyimpen asil (data aout / pout) ing buffer output. Prosedur sing padha iki ditrapake kanggo operasi konversi lan aritmetika. Kanggo operasi konversi, mung input ain sing cukup, nanging kanggo operasi aritmetika, input ain lan bin dibutuhake. Output aout diaktifake kanggo operasi konversi lan port pout diaktifake kanggo operasi aritmetika.
Gambar 4-16. ExampSistem CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (14)

 

  1. Sintesis (Ask a Question)
    Kanggo mbukak sintesis ing CoreFPU, setel oyod desain kanggo conto komponen IP lan saka panel aliran desain Libero, jalanake alat Sintesis.
    Panggonan lan Rute (Tanya Pitakonan)
    Sawise desain disintesis, jalanake alat Place-and-Route. CoreFPU ora mbutuhake setelan panggonan lan rute khusus.
  2. Pangguna Testbench (Aja Pitakonan)
    Testbench pangguna diwenehake karo release IP CoreFPU. Nggunakake testbench iki, sampeyan bisa verifikasi prilaku fungsional CoreFPU.

Diagram blok sing disederhanakake saka testbench pangguna ditampilake ing gambar ing ngisor iki. Testbench pangguna instantiates desain CoreFPU Dikonfigurasi (UUT), lan kalebu generator data test prilaku, jam perlu, lan sinyal reset.
Gambar 4-17. Testbench Pangguna CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (15)Penting: Sampeyan kudu ngawasi sinyal output ing simulator ModelSim, ndeleng bagean Simulasi.

Referensi Tambahan (Tanya Pitakonan)
Bagian iki nyedhiyakake dhaptar kanggo informasi tambahan.
Kanggo nganyari lan informasi tambahan babagan piranti lunak, piranti, lan hardware, bukak

Kaca Kekayaan Intelektual ing FPGA lan PLD Microchip websitus.

  1. Masalah sing Dikenal lan Solusi (Tanya Pitakonan)
    Ora ana masalah lan solusi kanggo CoreFPU v3.0.
  2. Fitur lan Piranti sing Dihentikan (Tanya Pitakonan)
    Ora ana fitur lan piranti sing mandheg karo rilis IP iki.

Glosarium

Ing ngisor iki dhaptar istilah lan definisi sing digunakake ing dokumen kasebut.
Tabel 6-1. Sarat lan Definition

istilahe definisi
FPU Unit Titik Ngambang
FP ADD Penambahan Titik Ngambang
FP SUB Pengurangan Floating-Point
FP MULT Floating Point Multiplication

Masalah sing Ditanggulangi 
Tabel ing ngisor iki nampilake kabeh masalah sing ditanggulangi kanggo macem-macem rilis CoreFPU.

Tabel 7-1. Masalah sing Ditanggulangi

Ngeculake Katrangan
3.0 Ing ngisor iki dhaptar kabeh masalah sing wis dirampungake ing rilis v3.0:

Nomer kasus: 01420387 lan 01422128

Nambahake logika skema pembulatan (babak menyang nomer genap sing paling cedhak).

2.1 Ing ngisor iki dhaptar kabeh masalah sing wis dirampungake ing rilis v2.1:
Desain kasebut nemoni masalah amarga anane modul duplikat nalika sawetara intine dipasang.
Ganti jeneng conto IP CoreFPU nyebabake kesalahan "Modul sing ora ditemtokake".
1.0 Rilis dhisikan

Panggunaan lan Kinerja Sumber Daya Piranti

Makro CoreFPU dileksanakake ing kulawarga sing kadhaptar ing tabel ing ngisor iki.
Tabel 8-1. Panggunaan Piranti Unit PolarFire FPU kanggo 32-Bit

Sumber Daya FPGA Panggunaan
kulawarga 4 LUT DFF Total Blok Matematika piranti Persentage Kinerja Latensi
Telpon-Titik kanggo Floating-Titik
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Floating-Point kanggo Fixed-Point
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Penambahan Titik Ngambang
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Pengurangan Floating-Point
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Floating Point Multiplication
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
Sumber Daya FPGA Panggunaan
kulawarga 4 LUT DFF Total Blok Matematika piranti Persentage Kinerja Latensi
Telpon-Titik kanggo Floating-Titik
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Floating-Point kanggo Fixed-Point
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Penambahan Titik Ngambang
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Pengurangan Floating-Point
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Floating Point Multiplication
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
Sumber Daya FPGA Panggunaan
kulawarga 4 LUT DFF Total Blok Matematika piranti Persentage Kinerja Latensi
Telpon-Titik kanggo Floating-Titik
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Floating-Point kanggo Fixed-Point
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Penambahan Titik Ngambang
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Pengurangan Floating-Point
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Floating Point Multiplication
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
Sumber Daya FPGA Panggunaan
kulawarga 4 LUT DFF Total Blok Matematika piranti Persentage Kinerja Latensi
Telpon-Titik kanggo Floating-Titik
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Floating-Point kanggo Fixed-Point
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Penambahan Titik Ngambang
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Pengurangan Floating-Point
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Floating Point Multiplication
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Penting: Kanggo nambah frekuensi, pilih Aktifake opsi retiming ing setelan sintesis.

Riwayat Revisi

Riwayat revisi nggambarake owah-owahan sing ditindakake ing dokumen kasebut. Owah-owahan kasebut didhaptar kanthi revisi, diwiwiti saka publikasi paling anyar.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (1)

Dhukungan FPGA Microchip

Klompok produk Microchip FPGA ndhukung produk karo macem-macem layanan dhukungan, kalebu Layanan Pelanggan, Pusat Dhukungan Teknis Pelanggan, a websitus, lan kantor sales donya. Pelanggan disaranake ngunjungi sumber online Microchip sadurunge ngubungi dhukungan amarga kemungkinan pitakone wis dijawab.
Hubungi Pusat Dhukungan Teknis liwat websitus ing www.microchip.com/support. Sebutake nomer Komponen Piranti FPGA, pilih kategori kasus sing cocog, lan upload desain files nalika nggawe cilik support technical.
Hubungi Layanan Pelanggan kanggo dhukungan produk non-teknis, kayata rega produk, upgrade produk, informasi nganyari, status pesenan, lan wewenang.

  • Saka Amerika Utara, telpon 800.262.1060
  • Saka negara liya, hubungi 650.318.4460
  • Fax, saka ngendi wae ing donya, 650.318.8044

Informasi Microchip

merek dagang
Jeneng lan logo "Microchip", logo "M", lan jeneng, logo, lan merek liyane minangka merek dagang kadhaptar lan ora kadhaptar saka Microchip Technology Incorporated utawa afiliasi lan/utawa anak perusahaan ing Amerika Serikat lan/utawa negara liya ("Microchip merek dagang"). Informasi babagan Microchip Trademarks bisa ditemokake ing https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Kabar Legal
Publikasi iki lan informasi ing kene mung bisa digunakake karo produk Microchip, kalebu kanggo ngrancang, nguji, lan nggabungake produk Microchip karo aplikasi sampeyan. Panganggone informasi iki kanthi cara liya nglanggar syarat kasebut. Informasi babagan aplikasi piranti diwenehake mung kanggo penak sampeyan lan bisa uga diganti karo nganyari. Sampeyan tanggung jawab kanggo mesthekake yen aplikasi sampeyan cocog karo spesifikasi sampeyan. Hubungi kantor sales Microchip lokal kanggo dhukungan tambahan utawa, entuk dhukungan tambahan ing www.microchip.com/en-us/support/design-help/client-support-services

INFORMASI IKI DISEDIAKAN BY MICROCHIP "AS IS". MICROCHIP TANPA REPRESENTASI UTAWA JAMINAN APA SAJA APA SAJA UTAWA TERSURAT, TERTULIS UTAWA LISAN, STATUTORY UTAWA LAIN, sing ana hubungane karo informasi kasebut kalebu nanging ora winates karo JAMINAN NON-INFLARITY, NON-INFRINGEMENT. TUJUAN, Utawa JAMINAN sing ana gandhengane karo KONDISI, KUALITAS, UTAWA KINERJA.

MICROCHIP ORA TANGGUH TANGGUNG JAWAB ANGGAP, KHUSUS, PUNITIF, INSIDENTAL, UTAWA KONSEQUENTIAL RUGI, RUSAK, BIAYA, UTAWA BAYARAN APA SAJA KANGGO ING INFORMASI UTAWA PENGGUNAAN, NANGUN SING DIBUAT, SANAYAN ANA KEMUNGKINAN UTAWA KERUSAKAN SING BISA DIPIKIR. TO THE FULLEST EXTENT diijini dening hukum, TANGGUNG JAWAB TOTAL MICROCHIP ING ALL CLAIMS ing sembarang cara sing ana hubungane karo informasi utawa panggunaan ora ngluwihi jumlah biaya, yen ana, sing sampeyan wis mbayar langsung menyang microchip kanggo informasi.

Panggunaan piranti Microchip ing support urip lan / utawa aplikasi safety tanggung ing resiko panuku, lan panuku setuju kanggo defend, indemnify lan terus Microchip mbebayani saka samubarang lan kabeh karusakan, claims, cocog, utawa expenses asil saka nggunakake kuwi. Ora ana lisensi sing diwenehake, kanthi implisit utawa liya, miturut hak properti intelektual Microchip kajaba kasebut.

Fitur Proteksi Kode Piranti Microchip
Elinga rincian ing ngisor iki babagan fitur perlindungan kode ing produk Microchip:

  • Produk Microchip cocog karo spesifikasi sing ana ing Lembar Data Microchip tartamtu.
  • Microchip percaya yen kulawarga produk kasebut aman nalika digunakake kanthi cara sing dikarepake, ing spesifikasi operasi, lan ing kahanan normal.
  • Nilai Microchip lan agresif nglindhungi hak properti intelektual sawijining. Usaha kanggo nglanggar fitur perlindungan kode produk Microchip dilarang banget lan bisa uga nglanggar Digital Millennium Copyright Act.
  • Microchip utawa pabrikan semikonduktor liyane ora bisa njamin keamanan kode kasebut. Proteksi kode ora ateges manawa produk kasebut "ora bisa dipecah". Proteksi kode terus berkembang. Microchip nduweni komitmen kanggo terus ningkatake fitur perlindungan kode produk kita.

Dokumen / Sumber Daya

Unit Titik Ngambang Inti MICROCHIP CoreFPU [pdf] Pandhuan pangguna
v3.0, v2.1, v2.0, v1.0, CoreFPU Core Floating Point Unit, Core Floating Point Unit, Floating Point Unit, Point Unit

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *