MICROCHIP -logo

Unit Titik Terapung Teras MICROCHIP CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-produxt

 

pengenalan 

  • Unit Titik Terapung Teras (CoreFPU) direka untuk operasi aritmetik dan penukaran titik terapung, untuk nombor titik terapung ketepatan tunggal dan berganda. CoreFPU menyokong penukaran titik tetap ke titik terapung dan titik terapung ke titik tetap dan operasi penambahan, penolakan dan pendaraban titik terapung. Piawaian IEEE® untuk Aritmetik Titik Terapung (IEEE 754) ialah standard teknikal untuk pengiraan titik terapung.
  • Penting: CoreFPU menyokong pengiraan dengan nombor biasa sahaja dan hanya bahasa Verilog yang disokong; VHDL tidak disokong.

Ringkasan
Jadual berikut menyediakan ringkasan ciri CoreFPU.

Jadual 1. Ciri-Ciri TerasFPU 

Versi Teras Dokumen ini digunakan untuk CoreFPU v3.0.
Keluarga Peranti yang Disokong
  • SoC PolarFire®
  • PolarFire
  • RTG4™
Aliran Alat yang Disokong Memerlukan Libero® SoC v12.6 atau keluaran yang lebih baru.
Pelesenan CoreFPU tidak dikunci lesen.
Arahan Pemasangan CoreFPU mesti dipasang pada Katalog IP Libero SoC secara automatik melalui fungsi kemas kini Katalog IP. Sebagai alternatif, CoreFPU boleh dimuat turun secara manual daripada katalog. Sebaik sahaja teras IP adalah

dipasang, ia dikonfigurasikan, dijana dan dijadikan instantiated dalam SmartDesign untuk dimasukkan ke dalam projek.

Penggunaan dan Prestasi Peranti Ringkasan maklumat penggunaan dan prestasi untuk CoreFPU disenaraikan dalam Penggunaan dan Prestasi Sumber Peranti.

Maklumat Log Perubahan CoreFPU
Bahagian ini menyediakan lebih komprehensifview ciri yang baru diperbadankan, bermula dengan keluaran terbaru. Untuk maklumat lanjut tentang masalah yang diselesaikan, lihat bahagian Isu Selesai.

Versi Apa yang Baru
v3.0 Melaksanakan bendera keluaran tambahan untuk meningkatkan ketepatan IP
v2.1 Menambah ciri ketepatan berganda
v2.0 Mengemas kini bentuk gelombang masa
v1.0 Keluaran pengeluaran pertama CoreFPU

1. Ciri-ciri

CoreFPU mempunyai ciri utama berikut:

  • Menyokong Nombor Terapung Ketepatan Tunggal dan Berganda mengikut Piawaian IEEE-754
  • Menyokong Penukaran seperti yang disenaraikan:
    • Penukaran mata tetap kepada mata terapung
    • Penukaran titik terapung kepada mata tetap
  • Menyokong Operasi Aritmetik seperti yang disenaraikan:
    • Penambahan titik terapung
    • Penolakan titik terapung
    • Pendaraban titik terapung
  • Menyediakan Skim Pembundaran (Bundarkan kepada genap terdekat) untuk Operasi Aritmetik sahaja
  • Menyediakan Bendera untuk Limpahan, Aliran Bawah, Infiniti (Infiniti Positif, Infiniti Negatif), NaN Tenang (QNaN) dan NaN Isyarat (SNaN) untuk Nombor Titik Terapung.
  • Menyokong pelaksanaan Saluran Aritmetik sepenuhnya
  • Menyediakan Peruntukan untuk mengkonfigurasi Teras untuk Keperluan Reka Bentuk

Penerangan Fungsian

  • Piawaian IEEE untuk Aritmetik Titik Terapung (IEEE 754) ialah standard teknikal untuk pengiraan titik terapung. Istilah titik terapung merujuk kepada titik radix nombor (titik perpuluhan atau titik binari), yang diletakkan di mana-mana berkenaan dengan digit bererti nombor itu.
    Nombor titik terapung biasanya dinyatakan dalam tatatanda saintifik, dengan pecahan (F), dan eksponen (E) bagi radix tertentu (r), dalam bentuk F × r^E. Nombor perpuluhan menggunakan jejari 10 (F × 10^E); manakala nombor binari menggunakan radix 2 (F × 2^E).
  • Perwakilan nombor titik terapung bukanlah unik. Untuk example, nombor 55.66 diwakili sebagai 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, dan seterusnya. Bahagian pecahan dinormalisasi. Dalam bentuk ternormal, hanya terdapat satu digit bukan sifar sebelum titik radix. Untuk example, nombor perpuluhan 123.4567 dinormalkan sebagai 1.234567 × 10^2; nombor perduaan 1010.1011B dinormalkan sebagai 1.0101011B × 2^3.
  • Adalah penting untuk ambil perhatian bahawa nombor titik terapung mengalami kehilangan ketepatan apabila diwakili dengan bilangan bit tetap (untuk example, 32-bit atau 64-bit). Ini kerana terdapat bilangan nombor nyata yang tidak terhingga (walaupun dalam julat kecil dari 0.0 hingga 0.1). Sebaliknya, an
    Corak binari n-bit mewakili nombor terhingga 2^n yang berbeza. Oleh itu, tidak semua nombor nyata diwakili. Sebaliknya, anggaran terdekat digunakan, yang mengakibatkan kehilangan ketepatan.

Nombor titik terapung ketepatan tunggal diwakili seperti berikut:

  • Bit tanda: 1-bit
  • Lebar eksponen: 8 bit
  • Ketepatan ketara: 24 bit (23 bit disimpan secara eksplisit)

Rajah 2-1. Bingkai 32-bit

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (2)Nombor titik terapung berketepatan ganda diwakili seperti berikut:

  • Bit tanda: 1-bit
  • Lebar eksponen: 11 bit
  • Ketepatan ketara: 53 bit (52 bit disimpan secara eksplisit)

Rajah 2-2. Bingkai 64-bit MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (3)CoreFPU ialah penyepaduan peringkat atas bagi dua modul penukaran (Tetap kepada Titik Terapung dan Terapung kepada Titik Tetap) dan tiga operasi aritmetik (FP ADD, FP SUB dan FP MULT). Pengguna boleh mengkonfigurasi mana-mana satu operasi berdasarkan keperluan supaya sumber digunakan untuk operasi yang dipilih.
Rajah berikut menunjukkan rajah blok CoreFPU peringkat atas dengan port.

Rajah 2-3. Rajah Blok Pelabuhan TerasFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (4)Jadual berikut menyenaraikan lebar port Input dan Output. Jadual 2-1. Lebar Port Input dan Output

isyarat Lebar Ketepatan Tunggal Lebar Ketepatan Berganda
ain [31:0] [63:0]
tong sampah [31:0] [63:0]
keluar [31:0] [63:0]
pout [31:0] [63:0]

Titik Tetap kepada Titik Terapung (Penukaran)

CoreFPU yang dikonfigurasikan sebagai tetap kepada titik terapung menyimpulkan modul penukaran titik tetap kepada titik terapung. Input (ain) kepada CoreFPU ialah sebarang nombor titik tetap yang mengandungi integer dan bit pecahan. Konfigurator CoreFPU mempunyai pilihan untuk memilih integer input dan lebar pecahan. Input adalah sah pada isyarat di_valid dan output sah pada do_valid. Output (aout) operasi tetap kepada terapung adalah dalam format titik terapung ketepatan tunggal atau dua kali ganda.
Example untuk operasi penukaran titik tetap kepada titik terapung disenaraikan dalam jadual berikut.
Jadual 2-2. Cthample untuk Penukaran Titik Tetap kepada Titik Terapung

Nombor Titik Tetap Nombor Titik Terapung
ain Integer Pecahan keluar Tanda Eksponen Mantissa
0x12153524 (32-bit) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bit)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Titik Terapung ke Titik Tetap (Penukaran) 
CoreFPU yang dikonfigurasikan sebagai terapung ke titik tetap menyimpulkan modul penukaran titik terapung ke titik tetap. Input (ain) kepada CoreFPU ialah sebarang nombor titik terapung ketepatan tunggal atau dua kali ganda dan menghasilkan output (aout) dalam format titik tetap yang mengandungi integer dan bit pecahan. Input adalah sah pada isyarat di_valid dan output sah pada do_valid. Konfigurator CoreFPU mempunyai pilihan untuk memilih integer output dan lebar pecahan.
Example untuk operasi penukaran titik terapung kepada titik tetap disenaraikan dalam jadual berikut.

Jadual 2-3. Cthample untuk Penukaran Titik Terapung kepada Titik Tetap

Nombor Titik Terapung Nombor Titik Tetap
ain Tanda Eksponen Mantissa keluar Integer Pecahan
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bit)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Penambahan Titik Terapung (Kendalian Aritmetik)
CoreFPU yang dikonfigurasikan sebagai FP ADD menyimpulkan modul penambahan titik terapung. Ia menambah dua nombor titik terapung (ain dan bin) dan menyediakan output (pout) dalam format titik terapung. Input dan output ialah nombor titik terapung ketepatan tunggal atau dua kali ganda. Input adalah sah pada isyarat di_valid dan output sah pada do_valid. Teras menghasilkan bendera ovfl_fg (Limpahan), qnan_fg (Senyap Bukan Nombor), snan_fg (Isyarat Bukan Nombor), pinf_fg(Infiniti Positif) dan ninf_fg (Infiniti Negatif) berdasarkan operasi penambahan.
Examples untuk operasi penambahan titik terapung disenaraikan dalam jadual berikut.
Jadual 2-4. Cthample untuk Operasi Penambahan Titik Terapung (32-bit)

Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Input titik terapung 2 tong (0x4f191b40) 0 10011110 00110010001101101000000
Putik keluaran tambahan titik terapung (0x4f656680) 0 10011110 11001010110011010000000

Jadual 2-5. Cthample untuk Operasi Penambahan Titik Terapung (64-bit)

Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Input titik terapung 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Putik keluaran tambahan titik terapung (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Tolak Titik Terapung (Operasi Aritmetik) 
CoreFPU yang dikonfigurasikan sebagai FP SUB menyimpulkan modul penolakan titik terapung. Ia menolak dua nombor titik terapung (ain dan bin) dan menyediakan output (pout) dalam format titik terapung. Input dan output ialah nombor titik terapung ketepatan tunggal atau dua kali ganda. Input adalah sah pada isyarat di_valid dan output sah pada do_valid. Teras menghasilkan bendera ovfl_fg (Limpahan), unfl_fg (aliran bawah), qnan_fg (Senyap Bukan Nombor), snan_fg (Isyarat Bukan Nombor), pinf_fg (Infiniti Positif) dan ninf_fg (Infiniti Negatif) berdasarkan operasi penolakan.
Examples untuk operasi tolak titik terapung disenaraikan dalam jadual berikut.
Jadual 2-6. Cthample untuk Operasi Tolak Titik Terapung (32-bit)

Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Input titik terapung 2 tong (0x2f516779) 0 01011110 10100010110011101111001
Putik keluaran tolak titik terapung (0xaf5591ac) 1 01011110 10101011001000110101011
Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Input titik terapung 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Output tolak titik terapung pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Pendaraban Titik Terapung (Kendalian Aritmetik)
CoreFPU yang dikonfigurasikan sebagai FP MULT menyimpulkan modul pendaraban titik terapung. Ia mendarabkan dua nombor titik terapung (ain dan bin) dan menyediakan output (pout) dalam format titik terapung. Input dan output ialah nombor titik terapung ketepatan tunggal atau dua kali ganda. Input adalah sah pada isyarat di_valid dan output sah pada do_valid. Teras menghasilkan bendera ovfl_fg (Limpahan), unfl_fg (Underflow), qnan_fg (Senyap Bukan Nombor), snan_fg (Isyarat Bukan Nombor), pinf_fg (Infiniti Positif) dan ninf_fg (Infiniti Negatif) berdasarkan operasi darab.
Examples untuk operasi pendaraban titik terapung disenaraikan dalam jadual berikut.
Jadual 2-8. Cthample untuk Operasi Pendaraban Titik Terapung (32-bit)

Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Input titik terapung 2 tong (0x6ecf15e8) 0 11011101 10011110001010111101000
Pucuk keluaran Pendaraban titik terapung (0x4e21814a) 0 10011100 01000011000000101001010
Nilai Titik Terapung Tanda Eksponen Mantissa
Input titik terapung 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Input titik terapung 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Muncung keluaran pendaraban titik terapung (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Jadual Kebenaran untuk Penambahan dan Penolakan 
Jadual kebenaran berikut menyenaraikan nilai untuk operasi tambah dan tolak. Jadual 2-10. Jadual Kebenaran untuk Penambahan

Data A Data B Tanda Bit Hasilnya Limpahan Aliran bawah 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
sifar sifar 0 POSZERO 0 0 0 0 0 0
sifar posfinite(y) 0 posfinite(y) 0 0 0 0 0 0
sifar negfinite(y) 1 negfinite(y) 0 0 0 0 0 0
sifar posinfinite 0 posinfinite 0 0 0 0 1 0
sifar neginfinite 1 neginfinite 0 0 0 0 0 1
posfinite(y) sifar 0 posfinite(y) 0 0 0 0 0 0
posfinite posinfinite 0 posinfinite 0 0 0 0 1 0
Jadual 2-10. Jadual Kebenaran untuk Penambahan (bersambung)
Data A Data B Tanda Bit Hasilnya Limpahan Aliran bawah SNaN QNaN PINF NINF
posfinite neginfinite 1 neginfinite 0 0 0 0 0 1
negfinite(y) sifar 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 sifar 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 sifar 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 Tanda Bit Hasilnya Limpahan Aliran bawah 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
sifar sifar 0 POSZERO 0 0 0 0 0 0
sifar posfinite(y) 1 negfinite(y) 0 0 0 0 0 0
sifar negfinite(y) 0 posfinite(y) 0 0 0 0 0 0
sifar posinfinite 1 neginfinite 0 0 0 0 0 1
sifar neginfinite 0 posinfinite 0 0 0 0 1 0
posfinite(y) sifar 0 posfinite(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) sifar 1 negfinite(y) 0 0 0 0 0 0
negfinite posinfinite 1 neginfinite 0 0 0 0 0 1
Jadual 2-11. Jadual Kebenaran untuk Penolakan (bersambung)
Data A Data B Tanda Bit Hasilnya Limpahan Aliran bawah SNaN QNaN PINF NINF
negfinite neginfinite 0 posinfinite 0 0 0 0 1 0
posinfinite sifar 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 sifar 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:

  • Mereka dalam jadual sebelumnya menunjukkan sebarang nombor.
  • Dalam jadual sebelumnya menunjukkan keadaan tidak peduli.

Jadual Kebenaran untuk Pendaraban 
Jadual kebenaran berikut menyenaraikan nilai untuk operasi pendaraban.

Jadual 2-12. Jadual Kebenaran untuk Pendaraban

Data A Data B Tanda Bit Hasilnya Limpahan Aliran bawah 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
sifar sifar 0 POSZERO 0 0 0 0 0 0
sifar posfinite 0 POSZERO 0 0 0 0 0 0
sifar negfinite 0 POSZERO 0 0 0 0 0 0
sifar posinfinite 0 POSQNaN 0 0 0 1 0 0
sifar neginfinite 0 POSQNaN 0 0 0 1 0 0
Jadual 2-12. Jadual Kebenaran untuk Pendaraban (bersambung)
Data A Data B Tanda Bit Hasilnya Limpahan Aliran bawah SNaN QNaN PINF NINF
posfinite sifar 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 sifar 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 sifar 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 sifar 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:

Sign Bit '0' mentakrifkan output positif dan '1' mentakrifkan output negatif.
X dalam jadual sebelumnya menunjukkan keadaan tidak peduli.

Parameter TerasFPU dan Isyarat Antara Muka
Bahagian ini membincangkan parameter dalam tetapan Konfigurator CoreFPU dan isyarat I/O.

Parameter GUI Konfigurasi 
Terdapat beberapa pilihan boleh dikonfigurasikan yang digunakan pada unit FPU seperti yang ditunjukkan dalam jadual berikut. Jika konfigurasi selain daripada lalai diperlukan, kotak dialog konfigurasi digunakan untuk memilih nilai yang sesuai untuk pilihan boleh dikonfigurasikan.

Jadual 3-1. Parameter GUI Konfigurasi TerasFPU 

Nama Parameter Lalai Penerangan
Ketepatan Bujang Pilih operasi seperti yang diperlukan:

Ketepatan Tunggal
Ketepatan Berganda

Jenis Penukaran Penukaran mata tetap kepada mata terapung Pilih operasi seperti yang diperlukan:
  • Penukaran mata tetap kepada mata terapung
  • Penukaran titik terapung kepada mata tetap
  • Penambahan titik terapung
  • Penolakan titik terapung
  • Pendaraban titik terapung
Lebar Pecahan Input1 15 Mengkonfigurasi titik pecahan dalam isyarat Input ain dan bin

Julat yang sah ialah 31–1

Lebar Pecahan Keluaran2 15 Mengkonfigurasi titik pecahan dalam isyarat Output aout

Julat yang sah ialah 51–1

Penting:

  1. Parameter ini boleh dikonfigurasikan hanya semasa penukaran titik tetap kepada titik terapung.
  2. Parameter ini boleh dikonfigurasikan hanya semasa penukaran titik terapung kepada titik tetap.

Isyarat Input dan Output (Tanya Soalan)
Jadual berikut menyenaraikan isyarat port input dan output CoreFPU.

Jadual 3-2. Perihalan Pelabuhan 

Nama Isyarat Lebar taip Penerangan
clk 1 Input Jam sistem utama
rstn 1 Input Tetapan semula tak segerak aktif-rendah
tidak_sah 1 Input Input aktif-tinggi sah

Isyarat ini menunjukkan bahawa data yang ada pada ain[31:0], ain[63:0] dan bin[31:0], bin[63:0] adalah sah.

ain 32/64 Input Bas Input (Ia digunakan untuk semua operasi)
tong sampah1 32/64 Input Bas Input B (Ia digunakan untuk operasi aritmetik sahaja)
keluar2 32/64 Keluaran Nilai output apabila operasi penukaran titik terapung atau terapung kepada titik tetap dipilih.
pout1 32/64 Keluaran Nilai keluaran apabila operasi tambah, tolak atau darab dipilih.
Jadual 3-2. Perihalan Pelabuhan (bersambung)
Nama Isyarat Lebar taip Penerangan
do_valid 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan bahawa data yang terdapat pada bas data pout/aout adalah sah.

ovfl_fg3 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan limpahan semasa operasi titik terapung.

unfl_fg 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan aliran bawah semasa operasi titik terapung.

qnan_fg3 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan Quiet Not a Number (QNaN) semasa operasi titik terapung.

snan_fg 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan Isyarat Bukan Nombor (SNaN) semasa operasi titik terapung.

pinf_fg3 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan infiniti positif semasa operasi titik terapung.

ninf_fg 1 Keluaran Isyarat tinggi-aktif

Isyarat ini menunjukkan infiniti negatif semasa operasi titik terapung.

Penting:

  1. Port ini tersedia hanya untuk operasi penambahan, penolakan atau pendaraban titik terapung.
  2. Port ini tersedia hanya untuk operasi penukaran titik tetap ke titik terapung dan titik terapung ke titik tetap.
  3. Port ini tersedia untuk titik terapung ke titik tetap, penambahan titik terapung, penolakan titik terapung dan pendaraban titik terapung.

Pelaksanaan CoreFPU dalam Libero Design Suite

Bahagian ini menerangkan pelaksanaan CoreFPU dalam Libero Design Suite.

SmartDesign 

CoreFPU tersedia untuk dimuat turun dalam katalog IP Libero melalui web repositori. Sebaik sahaja ia disenaraikan dalam katalog, teras dibuat instantiated menggunakan aliran SmartDesign. Untuk mendapatkan maklumat tentang menggunakan SmartDesign untuk mengkonfigurasi, menyambung dan menjana teras, lihat bantuan dalam talian Libero SoC.
Selepas mengkonfigurasi dan menjana contoh teras, kefungsian asas disimulasikan menggunakan bangku ujian yang dibekalkan dengan CoreFPU. Parameter testbench melaraskan secara automatik kepada konfigurasi CoreFPU. CoreFPU dijadikan sebagai komponen reka bentuk yang lebih besar.
Rajah 4-1. Contoh SmartDesign CoreFPU untuk Operasi Aritmetik

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (5)Rajah 4-2. Contoh SmartDesign CoreFPU untuk Operasi Penukaran MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (6)

 

Penukaran Titik Tetap kepada Titik Terapung
Semasa penukaran titik tetap kepada titik terapung, Lebar Pecahan Input boleh dikonfigurasikan. Lebar Output ditetapkan kepada 32-bit untuk ketepatan tunggal dan 64-bit untuk titik terapung berketepatan dua secara lalai.
Untuk menukar daripada titik tetap kepada titik terapung, pilih Tetap kepada titik terapung Jenis penukaran, seperti ditunjukkan dalam rajah berikut.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (7)Titik Terapung ke Titik Tetap 
Semasa penukaran titik terapung kepada titik tetap, Lebar Pecahan Output boleh dikonfigurasikan, dan Lebar Input ditetapkan kepada 32-bit untuk ketepatan tunggal dan 64-bit untuk titik terapung ketepatan dua secara lalai.
Untuk menukar daripada titik terapung kepada titik tetap, pilih Titik terapung kepada jenis Penukaran tetap, seperti yang ditunjukkan dalam rajah berikut.
Rajah 4-4. Konfigurator CoreFPU untuk Titik Terapung kepada Tetap MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (8)Penambahan/Penolakan/Pendaraban Titik Terapung
Semasa operasi penambahan, penolakan dan pendaraban titik terapung, Lebar Pecahan Input dan Lebar Pecahan Output tidak boleh dikonfigurasikan kerana ini adalah operasi aritmetik titik terapung, dan Lebar Input/Output ditetapkan kepada ketepatan tunggal 32-bit dan 64-bit untuk titik terapung berketepatan dua secara lalai.
Rajah berikut menunjukkan konfigurator CoreFPU untuk operasi tolak titik terapung.

Rajah 4-5. Konfigurator CoreFPU untuk Penolakan Titik TerapungMICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (9)Simulasi (Tanya Soalan)
Untuk menjalankan simulasi, dalam tetingkap konfigurasi teras, pilih User Testbench. Selepas menjana CoreFPU, pra-sintesis testbench Hardware Description Language (HDL) files dipasang di Libero.

Bentuk Gelombang Simulasi (Tanya Soalan)
Bahagian ini membincangkan bentuk gelombang simulasi untuk CoreFPU.
Angka berikut menunjukkan bentuk gelombang penukaran titik tetap kepada titik terapung untuk kedua-dua 32-bit dan 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 berikut menunjukkan bekasample menggunakan teras. Dalam bekas iniampOleh itu, reka bentuk UART digunakan sebagai saluran komunikasi antara reka bentuk dan PC hos. Isyarat ain dan bin (setiap 32-bit atau 64-bit lebar) adalah input kepada reka bentuk daripada UART. Selepas CoreFPU menerima isyarat di_valid, ia mengira hasilnya. Selepas mengira keputusan, isyarat do_valid menjadi tinggi dan menyimpan hasil (data aout/pout) dalam penimbal keluaran. Prosedur yang sama ini terpakai untuk penukaran dan operasi aritmetik. Untuk operasi penukaran, hanya input ain yang mencukupi manakala untuk operasi aritmetik, kedua-dua input ain dan bin diperlukan. Output aout didayakan untuk operasi penukaran dan port pout didayakan untuk operasi aritmetik.
Rajah 4-16. Cthample Sistem CoreFPU

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

 

  1. Sintesis (Tanya Soalan)
    Untuk menjalankan sintesis pada CoreFPU, tetapkan akar reka bentuk kepada contoh komponen IP dan daripada anak tetingkap aliran reka bentuk Libero, jalankan alat Sintesis.
    Tempat dan Laluan (Tanya Soalan)
    Selepas reka bentuk disintesis, jalankan alat Place-and-Route. CoreFPU tidak memerlukan tetapan tempat dan laluan khas.
  2. Testbench Pengguna (Tanya Soalan)
    Meja ujian pengguna disediakan dengan keluaran IP CoreFPU. Menggunakan testbench ini, anda boleh mengesahkan kelakuan berfungsi CoreFPU.

Gambar rajah blok yang dipermudahkan bagi meja ujian pengguna ditunjukkan dalam rajah berikut. Meja ujian pengguna membuat reka bentuk CoreFPU Terkonfigurasi (UUT) dan termasuk penjana data ujian tingkah laku, jam yang diperlukan dan isyarat set semula.
Rajah 4-17. Meja Ujian Pengguna CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (15)Penting: Anda perlu memantau isyarat keluaran dalam simulator ModelSim, lihat bahagian Simulasi.

Rujukan Tambahan (Tanya Soalan)
Bahagian ini menyediakan senarai untuk maklumat tambahan.
Untuk kemas kini dan maklumat tambahan tentang perisian, peranti dan perkakasan, lawati laman web

Halaman Harta Intelek pada FPGA Microchip dan PLD webtapak.

  1. Isu Diketahui dan Penyelesaian (Tanya Soalan)
    Tiada isu dan penyelesaian yang diketahui untuk CoreFPU v3.0.
  2. Ciri dan Peranti Dihentikan (Tanya Soalan)
    Tiada ciri dan peranti yang dihentikan dengan keluaran IP ini.

Glosari

Berikut ialah senarai istilah dan takrifan yang digunakan dalam dokumen.
Jadual 6-1. Terma dan Definisi

Penggal Definisi
FPU Unit Titik Terapung
FP TAMBAH Penambahan Titik Terapung
FP SUB Tolak Titik Terapung
FP MULT Pendaraban Titik Terapung

Isu Selesai 
Jadual berikut menyenaraikan semua isu yang diselesaikan untuk pelbagai keluaran CoreFPU.

Jadual 7-1. Isu Selesai

Lepaskan Penerangan
3.0 Berikut ialah senarai semua isu yang diselesaikan dalam keluaran v3.0:

Nombor Kes: 01420387 dan 01422128

Menambah logik skema pembundaran (bulat kepada nombor genap terdekat).

2.1 Berikut ialah senarai semua isu yang diselesaikan dalam keluaran v2.1:
Reka bentuk menghadapi masalah kerana kehadiran modul pendua apabila berbilang teras dibuat seketika.
Menamakan semula tika IP CoreFPU mengakibatkan ralat "Modul tidak ditentukan".
1.0 Keluaran Awal

Penggunaan dan Prestasi Sumber Peranti

Makro CoreFPU dilaksanakan dalam keluarga yang disenaraikan dalam jadual berikut.
Jadual 8-1. Penggunaan Peranti Unit PolarFire FPU untuk 32-Bit

Sumber FPGA Penggunaan
Keluarga 4LUT DFF Jumlah Blok Matematik Peranti Peratustage Prestasi Latensi
Titik Tetap kepada Titik Terapung
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Titik Terapung ke Titik Tetap
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Penambahan Titik Terapung
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Tolak Titik Terapung
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Pendaraban Titik Terapung
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
Sumber FPGA Penggunaan
Keluarga 4LUT DFF Jumlah Blok Matematik Peranti Peratustage Prestasi Latensi
Titik Tetap kepada Titik Terapung
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Titik Terapung ke Titik Tetap
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Penambahan Titik Terapung
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Tolak Titik Terapung
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Pendaraban Titik Terapung
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
Sumber FPGA Penggunaan
Keluarga 4LUT DFF Jumlah Blok Matematik Peranti Peratustage Prestasi Latensi
Titik Tetap kepada Titik Terapung
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Titik Terapung ke Titik Tetap
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Penambahan Titik Terapung
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Tolak Titik Terapung
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Pendaraban Titik Terapung
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
Sumber FPGA Penggunaan
Keluarga 4LUT DFF Jumlah Blok Matematik Peranti Peratustage Prestasi Latensi
Titik Tetap kepada Titik Terapung
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Titik Terapung ke Titik Tetap
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Penambahan Titik Terapung
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Tolak Titik Terapung
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Pendaraban Titik Terapung
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Penting: Untuk meningkatkan kekerapan, pilih Dayakan pilihan pegun dalam tetapan sintesis.

Sejarah Semakan

Sejarah semakan menerangkan perubahan yang telah dilaksanakan dalam dokumen. Perubahan disenaraikan mengikut semakan, bermula dengan penerbitan terkini.

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

Sokongan FPGA mikrocip

Kumpulan produk Microchip FPGA menyokong produknya dengan pelbagai perkhidmatan sokongan, termasuk Khidmat Pelanggan, Pusat Sokongan Teknikal Pelanggan, a webtapak, dan pejabat jualan di seluruh dunia. Pelanggan dicadangkan untuk melawat sumber dalam talian Microchip sebelum menghubungi sokongan kerana kemungkinan besar pertanyaan mereka telah dijawab.
Hubungi Pusat Sokongan Teknikal melalui webtapak di www.microchip.com/support. Sebutkan nombor Bahagian Peranti FPGA, pilih kategori kes yang sesuai dan muat naik reka bentuk files semasa mencipta kes sokongan teknikal.
Hubungi Khidmat Pelanggan untuk mendapatkan sokongan produk bukan teknikal, seperti harga produk, peningkatan produk, maklumat kemas kini, status pesanan dan kebenaran.

  • Dari Amerika Utara, hubungi 800.262.1060
  • Dari seluruh dunia, hubungi 650.318.4460
  • Faks, dari mana-mana sahaja di dunia, 650.318.8044

Maklumat Mikrocip

Tanda dagangan
Nama dan logo “Microchip”, logo “M” dan nama, logo dan jenama lain adalah tanda dagangan berdaftar dan tidak berdaftar bagi Microchip Technology Incorporated atau sekutunya dan/atau anak syarikatnya di Amerika Syarikat dan/atau negara lain (“Microchip Tanda dagangan”). Maklumat mengenai Cap Dagangan Microchip boleh didapati di https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Notis Undang-undang
Penerbitan ini dan maklumat di sini hanya boleh digunakan dengan produk Microchip, termasuk untuk mereka bentuk, menguji dan menyepadukan produk Microchip dengan aplikasi anda. Penggunaan maklumat ini dalam apa-apa cara lain melanggar syarat ini. Maklumat mengenai aplikasi peranti disediakan hanya untuk kemudahan anda dan mungkin digantikan dengan kemas kini. Adalah menjadi tanggungjawab anda untuk memastikan permohonan anda memenuhi spesifikasi anda. Hubungi pejabat jualan Microchip tempatan anda untuk mendapatkan sokongan tambahan atau, dapatkan sokongan tambahan di www.microchip.com/en-us/support/design-help/client-support-services

MAKLUMAT INI DISEDIAKAN OLEH MICROCHIP "SEBAGAIMANA ADANYA". MICROCHIP TIDAK MEMBUAT SEBARANG JENIS PERWAKILAN ATAU WARANTI SAMA ADA TERNYATA MAUPUN TERSIRAT, BERTULIS ATAU LISAN, BERKANUN ATAU SEBALIKNYA, BERKAITAN DENGAN MAKLUMAT TERMASUK TETAPI TIDAK TERHAD KEPADA MANA-MANA ​​WARANTI TERSIRAT, BUKAN PENYERTAAN DAN PEMESANAN TUJUAN ATAU WARANTI BERKAITAN DENGAN KEADAAN, KUALITI ATAU PRESTASINYA.

MICROCHIP TIDAK AKAN AKAN BERTANGGUNGJAWAB KE ATAS SEBARANG KERUGIAN, KEROSAKAN, KOS ATAU AKIBAT YANG TIDAK LANGSUNG, KHAS, PUNITIF, SAMPINGAN ATAU AKIBAT APA-APA JENIS APA SAJA YANG BERKAITAN DENGAN MAKLUMAT ATAU PENGGUNAANNYA, WALAUPUN BERPUNCA, WALAUPUN TERJADI. KEMUNGKINAN ATAU KEROSAKAN ADALAH BOLEH DIRAMALKAN. SEJAUH YANG DIBENARKAN OLEH UNDANG-UNDANG, JUMLAH LIABILITI MICROCHIP ATAS SEMUA TUNTUTAN DALAM APA-APA CARA BERKAITAN DENGAN MAKLUMAT ATAU PENGGUNAANNYA TIDAK AKAN MELEBIHI JUMLAH YURAN, JIKA ADA, YANG ANDA TELAH BAYAR TERUS KEPADA MICROCHIP UNTUK MAKLUMAT.

Penggunaan peranti Microchip dalam sokongan hayat dan/atau aplikasi keselamatan adalah sepenuhnya atas risiko pembeli, dan pembeli bersetuju untuk mempertahankan, menanggung rugi dan menahan Microchip yang tidak berbahaya daripada sebarang dan semua kerosakan, tuntutan, saman atau perbelanjaan akibat daripada penggunaan tersebut. Tiada lesen disampaikan, secara tersirat atau sebaliknya, di bawah mana-mana hak harta intelek Microchip melainkan dinyatakan sebaliknya.

Ciri Perlindungan Kod Peranti Mikrocip
Perhatikan butiran berikut tentang ciri perlindungan kod pada produk Microchip:

  • Produk Microchip memenuhi spesifikasi yang terkandung dalam Helaian Data Microchip tertentu mereka.
  • Microchip percaya bahawa keluarga produknya selamat apabila digunakan mengikut cara yang dimaksudkan, dalam spesifikasi operasi dan dalam keadaan biasa.
  • Nilai mikrocip dan melindungi hak harta inteleknya secara agresif. Percubaan untuk melanggar ciri perlindungan kod produk Microchip adalah dilarang sama sekali dan mungkin melanggar Akta Hak Cipta Milenium Digital.
  • Microchip mahupun pengeluar semikonduktor lain tidak boleh menjamin keselamatan kodnya. Perlindungan kod tidak bermakna kami menjamin produk itu "tidak boleh pecah". Perlindungan kod sentiasa berkembang. Microchip komited untuk terus menambah baik ciri perlindungan kod produk kami.

Dokumen / Sumber

Unit Titik Terapung Teras MICROCHIP CoreFPU [pdf] Panduan Pengguna
v3.0, v2.1, v2.0, v1.0, Unit Titik Terapung TerasFPU, Unit Titik Terapung Teras, Unit Titik Terapung, Unit Titik

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *