Logo MICROCHIP

Unit Titik Mengambang Inti MICROCHIP CoreFPU

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

 

Perkenalan 

  • Core Floating Point Unit (CoreFPU) dirancang untuk operasi aritmatika dan konversi floating-point, untuk bilangan floating-point presisi tunggal dan ganda. CoreFPU mendukung konversi titik tetap ke floating-point dan floating-point ke titik tetap, serta operasi penjumlahan, pengurangan, dan perkalian floating-point. Standar IEEE® untuk Aritmatika Floating-Point (IEEE 754) adalah standar teknis untuk komputasi floating-point.
  • Penting: CoreFPU hanya mendukung perhitungan dengan angka yang dinormalisasi, dan hanya bahasa Verilog yang didukung; VHDL tidak didukung.

Ringkasan
Tabel berikut memberikan ringkasan karakteristik CoreFPU.

Tabel 1. Karakteristik CoreFPU 

Versi Inti Dokumen ini berlaku untuk CoreFPU v3.0.
Keluarga Perangkat yang Didukung
  • SoC PolarFire®
  • Api Kutub
  • RTG4™
Alur Alat yang Didukung Membutuhkan rilis Libero® SoC v12.6 atau yang lebih baru.
Lisensi CoreFPU tidak terkunci lisensi.
Petunjuk Instalasi CoreFPU harus diinstal ke Katalog IP SoC Libero secara otomatis melalui fungsi pembaruan Katalog IP. Sebagai alternatif, CoreFPU dapat diunduh secara manual dari katalog. Setelah inti IP diinstal,

Setelah terinstal, dikonfigurasikan, dibuat, dan diwujudkan dalam SmartDesign untuk disertakan dalam proyek.

Pemanfaatan dan Kinerja Perangkat Ringkasan informasi pemanfaatan dan kinerja untuk CoreFPU tercantum dalam Pemanfaatan dan Kinerja Sumber Daya Perangkat.

Informasi Log Perubahan CoreFPU
Bagian ini memberikan penjelasan yang komprehensifview fitur-fitur baru yang disertakan, dimulai dengan rilis terbaru. Untuk informasi lebih lanjut tentang masalah yang telah diatasi, lihat bagian Masalah yang Telah Diatasi.

Versi Apa yang Baru
Bahasa Inggris v3.0 Menerapkan bendera keluaran tambahan untuk meningkatkan akurasi IP
Bahasa Inggris v2.1 Menambahkan fitur presisi ganda
Bahasa Inggris v2.0 Memperbarui bentuk gelombang waktu
Bahasa Inggris v1.0 Rilis produksi pertama CoreFPU

1. Fitur

CoreFPU memiliki fitur utama berikut:

  • Mendukung Angka Mengambang Presisi Tunggal dan Ganda sesuai Standar IEEE-754
  • Mendukung Konversi seperti yang tercantum:
    • Konversi Titik Tetap ke Titik Mengambang
    • Konversi Titik Mengambang ke Titik Tetap
  • Mendukung Operasi Aritmatika seperti yang tercantum:
    • Penambahan titik mengambang
    • Pengurangan titik mengambang
    • Perkalian titik-mengambang
  • Menyediakan Skema Pembulatan (Bulatkan ke bilangan genap terdekat) hanya untuk Operasi Aritmatika
  • Menyediakan Bendera untuk Overflow, Underflow, Infinity (Positif Infinity, Negatif Infinity), Quiet NaN (QNaN) dan Signalling NaN (SNaN) untuk Bilangan Floating-Point.
  • Mendukung implementasi Operasi Aritmatika yang sepenuhnya menggunakan pipeline
  • Menyediakan Ketentuan untuk mengonfigurasi Inti untuk Persyaratan Desain

Deskripsi Fungsional

  • Standar IEEE untuk Aritmatika Titik-Mengambang (IEEE 754) adalah standar teknis untuk komputasi titik-mengambang. Istilah titik-mengambang mengacu pada titik radix dari angka (titik desimal atau titik biner), yang ditempatkan di mana saja sehubungan dengan digit signifikan dari angka tersebut.
    Bilangan floating-point biasanya dinyatakan dalam notasi ilmiah, dengan pecahan (F), dan eksponen (E) dengan radix (r) tertentu, dalam bentuk F × r^E. Bilangan desimal menggunakan radix 10 (F × 10^E); sedangkan bilangan biner menggunakan radix 2 (F × 2^E).
  • Representasi bilangan floating-point tidaklah unik. MisalnyaampMisalnya, angka 55.66 direpresentasikan sebagai 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, dan seterusnya. Bagian pecahan dinormalisasi. Dalam bentuk normalisasi, hanya ada satu digit bukan nol sebelum titik radix. Misalnyaample, angka desimal 123.4567 dinormalisasi sebagai 1.234567 × 10^2; angka biner 1010.1011B dinormalisasi sebagai 1.0101011B × 2^3.
  • Penting untuk dicatat bahwa angka floating-point mengalami kehilangan presisi ketika direpresentasikan dengan jumlah bit yang tetap (misalnyaample, 32-bit atau 64-bit). Hal ini karena ada jumlah bilangan riil yang tak terbatas (bahkan dalam rentang kecil dari 0.0 hingga 0.1). Di sisi lain,
    Pola biner n-bit merepresentasikan 2^n bilangan berbeda yang terbatas. Oleh karena itu, tidak semua bilangan riil terwakili. Pendekatan terdekat digunakan sebagai gantinya, yang mengakibatkan hilangnya akurasi.

Angka floating-point presisi tunggal direpresentasikan sebagai berikut:

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

Gambar 2-1. Bingkai 32-bit

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (2)Angka floating-point presisi ganda direpresentasikan sebagai berikut:

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

Gambar 2-2. Bingkai 64-bit MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (3)CoreFPU adalah integrasi tingkat atas dari dua modul konversi (Fixed to Float point dan Float to Fixed point) dan tiga operasi aritmatika (FP ADD, FP SUB, dan FP MULT). Pengguna dapat mengonfigurasi salah satu operasi berdasarkan persyaratan sehingga sumber daya digunakan untuk operasi yang dipilih.
Gambar berikut menunjukkan diagram blok CoreFPU tingkat atas dengan port.

Gambar 2-3. Diagram Blok Port CoreFPU

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (4)Tabel berikut mencantumkan lebar port Input dan Output. Tabel 2-1. Lebar Port Input dan Output

Sinyal Lebar Presisi Tunggal Lebar Presisi Ganda
tidak [31:0] [63:0]
tempat sampah [31:0] [63:0]
tentang [31:0] [63:0]
merengut [31:0] [63:0]

Titik Tetap ke Titik Mengambang (Konversi)

CoreFPU yang dikonfigurasi sebagai fixed to floating-point menyimpulkan modul konversi fixed-point ke floating-point. Input (ain) ke CoreFPU adalah angka fixed-point yang berisi bit integer dan fraksional. Konfigurator CoreFPU memiliki opsi untuk memilih lebar integer dan fraksional input. Input valid pada sinyal di_valid dan output valid pada do_valid. Output (aout) dari operasi fixed to float dalam format floating-point presisi tunggal atau ganda.
Example untuk operasi konversi titik tetap ke titik mengambang tercantum dalam tabel berikut.
Tabel 2-2. Mantanample untuk Konversi Titik Tetap ke Titik Mengambang

Nomor Titik Tetap Angka Titik Mengambang
tidak Bilangan bulat Pecahan tentang Tanda Eksponen Belalang sembah
0x12153524 (32-bit) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bit)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Titik Mengambang ke Titik Tetap (Konversi) 
CoreFPU yang dikonfigurasi sebagai floating to fixed-point menyimpulkan modul konversi floating-point ke fixed-point. Input (ain) ke CoreFPU adalah angka floating-point presisi tunggal atau ganda dan menghasilkan output (aout) dalam format fixed-point yang berisi bit integer dan pecahan. Input valid pada sinyal di_valid dan output valid pada do_valid. Konfigurator CoreFPU memiliki opsi untuk memilih lebar integer dan pecahan output.
Example untuk operasi konversi titik-mengambang ke titik-tetap tercantum dalam tabel berikut.

Tabel 2-3. Mantanample untuk Konversi Titik-Mengambang ke Titik-Tetap

Angka Titik Mengambang Nomor Titik Tetap
tidak Tanda Eksponen Belalang sembah tentang Bilangan bulat Pecahan
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bit)

0 10000000000 0010000010010100110001000100011111000011000011010011 ukuran 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Penjumlahan Titik Mengambang (Operasi Aritmatika)
CoreFPU yang dikonfigurasi sebagai FP ADD menyimpulkan modul penjumlahan floating-point. Modul ini menambahkan dua bilangan floating-point (ain dan bin) dan memberikan keluaran (pout) dalam format floating-point. Masukan dan keluarannya berupa bilangan floating-point presisi tunggal atau ganda. Masukan valid pada sinyal di_valid dan keluaran valid pada do_valid. Inti menghasilkan flag ovfl_fg (Overflow), qnan_fg (Quiet Bukan Angka), snan_fg (Signalling Bukan Angka), pinf_fg (Positif Tak Terhingga), dan ninf_fg (Negatif Tak Terhingga) berdasarkan operasi penjumlahan.
ExampFile untuk operasi penjumlahan floating-point tercantum dalam tabel berikut.
Tabel 2-4. Mantanample untuk Operasi Penjumlahan Titik-Mengambang (32-bit)

Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik-mengambang 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Input titik-mengambang 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Output penambahan titik-mengambang pout (0x4f656680) 0 10011110 11001010110011010000000

Tabel 2-5. Mantanample untuk Operasi Penjumlahan Titik-Mengambang (64-bit)

Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik mengambang 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Masukan titik mengambang 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Output penambahan titik mengambang pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Pengurangan Titik Mengambang (Operasi Aritmatika) 
CoreFPU yang dikonfigurasikan sebagai FP SUB menyimpulkan modul pengurangan floating-point. Modul ini mengurangi dua angka floating-point (ain dan bin) dan menyediakan output (pout) dalam format floating-point. Input dan output berupa angka floating-point presisi tunggal atau ganda. Input valid pada sinyal di_valid dan output valid pada do_valid. Inti menghasilkan tanda ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity), dan ninf_fg (Negative Infinity) berdasarkan operasi pengurangan.
ExampFile untuk operasi pengurangan titik-mengambang tercantum dalam tabel berikut.
Tabel 2-6. Mantanample untuk Operasi Pengurangan Titik-Mengambang (32-bit)

Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik-mengambang 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Input titik-mengambang 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Output pengurangan titik-mengambang pout (0xaf5591ac) 1 01011110 10101011001000110101011
Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik mengambang 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Masukan titik mengambang 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Output pengurangan titik mengambang pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Perkalian Titik Mengambang (Operasi Aritmatika)
CoreFPU yang dikonfigurasikan sebagai FP MULT menyimpulkan modul perkalian floating-point. Ia mengalikan dua angka floating-point (ain dan bin) dan menyediakan output (pout) dalam format floating-point. Input dan output berupa angka floating-point presisi tunggal atau ganda. Input valid pada sinyal di_valid dan output valid pada do_valid. Inti menghasilkan tanda ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity), dan ninf_fg (Negative Infinity) berdasarkan operasi perkalian.
ExampFile untuk operasi perkalian titik-mengambang tercantum dalam tabel berikut.
Tabel 2-8. Mantanample untuk Operasi Perkalian Titik-Mengambang (32-bit)

Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik-mengambang 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Input titik-mengambang 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Output perkalian titik-mengambang pout (0x4e21814a) 0 10011100 01000011000000101001010
Nilai Titik Mengambang Tanda Eksponen Belalang sembah
Masukan titik mengambang 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Masukan titik mengambang 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Output perkalian titik mengambang pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Tabel Kebenaran untuk Penjumlahan dan Pengurangan 
Tabel kebenaran berikut mencantumkan nilai untuk operasi penjumlahan dan pengurangan. Tabel 2-10. Tabel Kebenaran untuk Penjumlahan

Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: 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
nol nol 0 POSZERO 0 0 0 0 0 0
nol posfinit(y) 0 posfinit(y) 0 0 0 0 0 0
nol tak terhingga(y) 1 tak terhingga(y) 0 0 0 0 0 0
nol tak terhingga 0 tak terhingga 0 0 0 0 1 0
nol tak terbatas 1 tak terbatas 0 0 0 0 0 1
posfinit(y) nol 0 posfinit(y) 0 0 0 0 0 0
posfinit tak terhingga 0 tak terhingga 0 0 0 0 1 0
Meja 2–10. Tabel Kebenaran untuk Penjumlahan (lanjutan)
Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: SNaN QNaN PINF NINF
posfinit tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terhingga(y) nol 1 tak terhingga(y) 0 0 0 0 0 0
tak terbatas tak terhingga 0 tak terhingga 0 0 0 0 1 0
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terhingga nol 0 tak terhingga 0 0 0 0 1 0
tak terhingga posfinit 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terhingga 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terbatas 0 POSQNaN 0 0 0 1 0 0
tak terbatas nol 1 tak terbatas 0 0 0 0 0 1
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terhingga 0 POSQNaN 0 0 0 1 0 0
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 1
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 tak terhingga 0 0 0 0 1 0
posfinit posfinit 0/1 QNaN 0 0 0 1 0 0
posfinit posfinit 0/1 Bahasa Indonesia: SNaN 0 0 1 0 0 0
posfinit posfinit 0 MUNGKIN 1 0 1 0 0 0
posfinit tak terbatas 0 posfinit 0 0 0 0 0 0
posfinit tak terbatas 1 tak terbatas 0 0 0 0 0 0
posfinit tak terbatas 0 MUNGKIN 0 1 1 0 0 0
tak terbatas posfinit 0 posfinit 0 0 0 0 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 0
tak terbatas posfinit 0 MUNGKIN 0 1 1 0 0 0
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 0
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 0/1 QNaN 0 0 0 1 0 0
tak terbatas tak terbatas 0/1 Bahasa Indonesia: SNaN 0 0 1 0 0 0
tak terbatas tak terbatas 0 MUNGKIN 1 0 1 0 0 0
Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: 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
nol nol 0 POSZERO 0 0 0 0 0 0
nol posfinit(y) 1 tak terhingga(y) 0 0 0 0 0 0
nol tak terhingga(y) 0 posfinit(y) 0 0 0 0 0 0
nol tak terhingga 1 tak terbatas 0 0 0 0 0 1
nol tak terbatas 0 tak terhingga 0 0 0 0 1 0
posfinit(y) nol 0 posfinit(y) 0 0 0 0 0 0
posfinit tak terhingga 1 tak terbatas 0 0 0 0 0 1
posfinit tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terhingga(y) nol 1 tak terhingga(y) 0 0 0 0 0 0
tak terbatas tak terhingga 1 tak terbatas 0 0 0 0 0 1
Meja 2–11. Tabel Kebenaran untuk Pengurangan (lanjutan)
Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: SNaN QNaN PINF NINF
tak terbatas tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terhingga nol 0 tak terhingga 0 0 0 0 1 0
tak terhingga posfinit 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terhingga 0 POSQNaN 0 0 0 1 0 0
tak terhingga tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terbatas nol 1 tak terbatas 0 0 0 0 0 1
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terhingga 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 0 POSQNaN 0 0 0 1 0 0
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 1 tak terbatas 0 0 0 0 0 0
posfinit posfinit 0 MUNGKIN 0 1 1 0 0 0
posfinit tak terbatas 0 posfinit 0 0 0 0 0 0
posfinit tak terbatas 0 tak terhingga 0 0 0 0 1 0
posfinit tak terbatas 0/1 QNaN 0 0 0 1 0 0
posfinit tak terbatas 0/1 Bahasa Indonesia: SNaN 0 0 1 0 0 0
posfinit tak terbatas 0 MUNGKIN 1 0 1 0 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 1
tak terbatas posfinit 0/1 QNaN 0 0 0 1 0 0
tak terbatas posfinit 0/1 Bahasa Indonesia: SNaN 0 0 1 0 0 0
tak terbatas posfinit 0 MUNGKIN 1 0 1 0 0 0
tak terbatas tak terbatas 0 posfinit 0 0 0 0 0 0
tak terbatas tak terbatas 1 tak terbatas 0 0 0 0 0 0
tak terbatas tak terbatas 0 MUNGKIN 0 1 1 0 0 0

Penting:

  • Mereka dalam tabel sebelumnya menunjukkan angka apa pun.
  • Angka pada tabel sebelumnya menunjukkan kondisi tidak peduli.

Tabel Kebenaran untuk Perkalian 
Tabel kebenaran berikut mencantumkan nilai untuk operasi perkalian.

Tabel 2-12. Tabel Kebenaran untuk Perkalian

Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: 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
nol nol 0 POSZERO 0 0 0 0 0 0
nol posfinit 0 POSZERO 0 0 0 0 0 0
nol tak terbatas 0 POSZERO 0 0 0 0 0 0
nol tak terhingga 0 POSQNaN 0 0 0 1 0 0
nol tak terbatas 0 POSQNaN 0 0 0 1 0 0
Meja 2–12. Tabel Kebenaran untuk Perkalian (lanjutan)
Data A DataB Tanda Tangan Sedikit Hasil Meluap Arus bawah Bahasa Indonesia: SNaN QNaN PINF NINF
posfinit nol 0 POSZERO 0 0 0 0 0 0
posfinit tak terhingga 0 tak terhingga 0 0 0 0 1 0
posfinit tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terbatas nol 0 POSZERO 0 0 0 0 0 0
tak terbatas tak terhingga 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terhingga nol 0 POSQNaN 0 0 0 1 0 0
tak terhingga posfinit 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terhingga tak terhingga 0 tak terhingga 0 0 0 0 1 0
tak terhingga tak terbatas 1 tak terbatas 0 0 0 0 0 1
tak terbatas nol 0 POSQNaN 0 0 0 1 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terbatas tak terhingga 1 tak terbatas 0 0 0 0 0 1
tak terbatas tak terbatas 0 tak terhingga 0 0 0 0 1 0
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 tak terhingga 0 0 0 0 1 0
posfinit posfinit 0 POSQNaN 0 0 0 1 0 0
posfinit posfinit 0 MUNGKIN 0 0 1 0 0 0
posfinit posfinit 0 MUNGKIN 1 0 1 0 0 0
posfinit posfinit 0 MUNGKIN 0 1 1 0 0 0
posfinit tak terbatas 1 tak terbatas 0 0 0 0 0 0
posfinit tak terbatas 1 tak terbatas 0 0 0 0 0 1
posfinit tak terbatas 0 POSQNaN 0 0 0 1 0 0
posfinit tak terbatas 0 MUNGKIN 0 0 1 0 0 0
posfinit tak terbatas 0 MUNGKIN 1 0 1 0 0 0
posfinit tak terbatas 0 MUNGKIN 0 1 1 0 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 0
tak terbatas posfinit 1 tak terbatas 0 0 0 0 0 1
tak terbatas posfinit 0 POSQNaN 0 0 0 1 0 0
tak terbatas posfinit 0 MUNGKIN 0 0 1 0 0 0
tak terbatas posfinit 0 MUNGKIN 1 0 1 0 0 0
tak terbatas posfinit 0 MUNGKIN 0 1 1 0 0 0
tak terbatas tak terbatas 0 posfinit 0 0 0 0 0 0
tak terbatas tak terbatas 0 tak terhingga 0 0 0 0 1 0
tak terbatas tak terbatas 0 POSQNaN 0 0 0 1 0 0
tak terbatas tak terbatas 0 POSQNaN 0 0 1 0 0 0
tak terbatas tak terbatas 0 POSQNaN 1 0 1 0 0 0
tak terbatas tak terbatas 0 POSQNaN 0 1 1 0 0 0

Penting:

Tanda Bit '0' mendefinisikan keluaran positif dan '1' mendefinisikan keluaran negatif.
Tanda x pada tabel sebelumnya menunjukkan kondisi tidak peduli.

Parameter CoreFPU dan Sinyal Antarmuka
Bagian ini membahas parameter dalam pengaturan Konfigurator CoreFPU dan sinyal I/O.

Parameter GUI Konfigurasi 
Ada sejumlah opsi yang dapat dikonfigurasi yang berlaku untuk unit FPU seperti yang ditunjukkan pada tabel berikut. Jika konfigurasi selain default diperlukan, kotak dialog konfigurasi digunakan untuk memilih nilai yang sesuai untuk opsi yang dapat dikonfigurasi.

Tabel 3-1. Parameter GUI Konfigurasi CoreFPU 

Nama Parameter Bawaan Keterangan
Presisi Lajang Pilih operasi sesuai kebutuhan:

Presisi Tunggal
Presisi Ganda

Jenis Konversi Konversi Titik Tetap ke Titik Mengambang Pilih operasi sesuai kebutuhan:
  • Konversi Titik Tetap ke Titik Mengambang
  • Konversi Titik Mengambang ke Titik Tetap
  • Penambahan titik mengambang
  • Pengurangan titik mengambang
  • Perkalian titik-mengambang
Lebar Fraksi Input1 15 Mengonfigurasi titik pecahan pada sinyal Input ain dan bin

Rentang yang valid adalah 31–1

Lebar Fraksi Keluaran2 15 Mengonfigurasi titik pecahan dalam sinyal Output aout

Rentang yang valid adalah 51–1

Penting:

  1. Parameter ini dapat dikonfigurasi hanya selama konversi titik tetap ke titik mengambang.
  2. Parameter ini dapat dikonfigurasi hanya selama konversi titik-mengambang ke titik-tetap.

Sinyal Input dan Output (Ajukan Pertanyaan)
Tabel berikut mencantumkan sinyal port input dan output CoreFPU.

Tabel 3-2. Deskripsi Port 

Nama Sinyal Lebar Jenis Keterangan
klik 1 Masukan Jam sistem utama
pertama 1 Masukan Reset asinkron aktif-rendah
di_sah 1 Masukan Masukan aktif-tinggi valid

Sinyal ini menunjukkan bahwa data yang ada pada ain[31:0], ain[63:0] dan bin[31:0], bin[63:0] valid.

tidak 32/64 Masukan Bus Input (Digunakan untuk semua operasi)
tempat sampah1 32/64 Masukan B Input Bus (Hanya digunakan untuk operasi aritmatika)
tentang2 32/64 Keluaran Nilai keluaran dipilih saat operasi konversi tetap ke titik mengambang atau mengambang ke titik tetap.
merengut1 32/64 Keluaran Nilai keluaran saat operasi penjumlahan, pengurangan, atau perkalian dipilih.
Meja 3–2. Deskripsi Pelabuhan (lanjutan)
Nama Sinyal Lebar Jenis Keterangan
melakukan_valid 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan bahwa data yang ada pada bus data pout/aout valid.

ovfl_fg3 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan luapan selama operasi floating-point.

tidak_fg 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan underflow selama operasi floating point.

qnan_fg3 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan Quiet Not a Number (QNaN) selama operasi floating-point.

snan_fg 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan Signalling Not-a-Number (SNaN) selama operasi floating point.

pinf_fg3 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan positif tak terhingga selama operasi floating-point.

ninf_fg 1 Keluaran Sinyal aktif-tinggi

Sinyal ini menunjukkan negatif tak terhingga selama operasi floating-point.

Penting:

  1. Port ini hanya tersedia untuk operasi penambahan, pengurangan, atau perkalian titik mengambang.
  2. Port ini hanya tersedia untuk operasi konversi titik tetap ke titik mengambang dan titik mengambang ke titik tetap.
  3. Port ini tersedia untuk operasi titik-mengambang ke titik-tetap, penambahan titik-mengambang, pengurangan titik-mengambang, dan perkalian titik-mengambang.

Implementasi CoreFPU di Libero Design Suite

Bagian ini menjelaskan implementasi CoreFPU di Libero Design Suite.

Desain Cerdas 

CoreFPU tersedia untuk diunduh di katalog IP Libero melalui web repositori. Setelah tercantum dalam katalog, inti tersebut diwujudkan menggunakan alur SmartDesign. Untuk informasi tentang penggunaan SmartDesign untuk mengonfigurasi, menghubungkan, dan membuat inti, lihat bantuan daring Libero SoC.
Setelah mengonfigurasi dan membuat instans inti, fungsionalitas dasar disimulasikan menggunakan testbench yang disertakan dengan CoreFPU. Parameter testbench secara otomatis menyesuaikan dengan konfigurasi CoreFPU. CoreFPU diwujudkan sebagai komponen dari desain yang lebih besar.
Gambar 4-1. Instansi SmartDesign CoreFPU untuk Operasi Aritmatika

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (5)Gambar 4-2. Instansi SmartDesign CoreFPU untuk Operasi Konversi MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (6)

 

Konversi Titik Tetap ke Titik Mengambang
Selama konversi titik tetap ke titik mengambang, Lebar Fraksi Input dapat dikonfigurasi. Lebar Output ditetapkan ke 32-bit untuk presisi tunggal dan 64-bit untuk titik mengambang presisi ganda secara default.
Untuk mengonversi dari titik tetap ke titik mengambang, pilih Jenis konversi tetap ke titik mengambang, seperti ditunjukkan dalam gambar berikut.

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (7)Titik Mengambang ke Titik Tetap 
Selama konversi titik-mengambang ke titik-tetap, Lebar Pecahan Keluaran dapat dikonfigurasi, dan Lebar Masukan ditetapkan ke 32-bit untuk presisi tunggal dan 64-bit untuk titik-mengambang presisi ganda secara default.
Untuk mengonversi dari titik-mengambang ke titik-tetap, pilih Titik-mengambang ke tetap Jenis konversi, seperti ditunjukkan pada gambar berikut.
Gambar 4-4. Konfigurator CoreFPU untuk Floating Point ke Fixed MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (8)Penjumlahan/Pengurangan/Perkalian Titik Mengambang
Selama operasi penambahan, pengurangan, dan perkalian titik-mengambang, Lebar Pecahan Input dan Lebar Pecahan Output tidak dapat dikonfigurasi karena merupakan operasi aritmatika titik-mengambang, dan Lebar Input/Output ditetapkan ke presisi tunggal 32-bit dan 64-bit untuk titik-mengambang presisi ganda secara default.
Gambar berikut menunjukkan konfigurator CoreFPU untuk operasi pengurangan titik mengambang.

Gambar 4-5. Konfigurator CoreFPU untuk Pengurangan Titik MengambangMICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (9)Simulasi (Ajukan Pertanyaan)
Untuk menjalankan simulasi, di jendela konfigurasi inti, pilih User Testbench. Setelah membuat CoreFPU, Hardware Description Language (HDL) pra-sintesis testbench files terinstal di Libero.

Bentuk Gelombang Simulasi (Ajukan Pertanyaan)
Bagian ini membahas bentuk gelombang simulasi untuk CoreFPU.
Gambar berikut menunjukkan bentuk gelombang konversi titik tetap ke titik mengambang untuk 32-bit dan 64-bit.MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (10)

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (11) MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (12) MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (13)

Integrasi Sistem
Gambar berikut menunjukkan mantanamppenggunaan inti. Dalam contoh iniample, desain UART digunakan sebagai saluran komunikasi antara desain dan PC host. Sinyal ain dan bin (masing-masing dengan lebar 32-bit atau 64-bit) merupakan input ke desain dari UART. Setelah CoreFPU menerima sinyal di_valid, ia menghitung hasilnya. Setelah menghitung hasilnya, sinyal do_valid menjadi tinggi dan menyimpan hasilnya (data aout/pout) dalam buffer output. Prosedur yang sama ini berlaku untuk operasi konversi dan aritmatika. Untuk operasi konversi, hanya input ain yang cukup sedangkan untuk operasi aritmatika, diperlukan input ain dan bin. Output aout diaktifkan untuk operasi konversi dan port pout diaktifkan untuk operasi aritmatika.
Gambar 4-16. Mantanampbagian dari Sistem CoreFPU

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (14)

 

  1. Sintesis (Ajukan Pertanyaan)
    Untuk menjalankan sintesis pada CoreFPU, atur akar desain ke instans komponen IP dan dari panel alur desain Libero, jalankan alat Sintesis.
    Tempat dan Rute (Ajukan Pertanyaan)
    Setelah desain disintesis, jalankan alat Place-and-Route. CoreFPU tidak memerlukan pengaturan Place-and-Route khusus.
  2. Uji Coba Pengguna (Ajukan Pertanyaan)
    Sebuah testbench pengguna disediakan dengan rilis IP CoreFPU. Dengan menggunakan testbench ini, Anda dapat memverifikasi perilaku fungsional CoreFPU.

Diagram blok yang disederhanakan dari user testbench ditunjukkan pada gambar berikut. User testbench ini menginstansiasi desain CoreFPU Terkonfigurasi (UUT), dan mencakup generator data uji perilaku, clock yang diperlukan, dan sinyal reset.
Gambar 4-17. Uji Coba Pengguna CoreFPU

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (15)Penting: Anda harus memantau sinyal keluaran di simulator ModelSim, lihat bagian Simulasi.

Referensi Tambahan (Ajukan Pertanyaan)
Bagian ini menyediakan daftar informasi tambahan.
Untuk pembaruan dan informasi tambahan tentang perangkat lunak, perangkat, dan perangkat keras, kunjungi

Halaman Kekayaan Intelektual pada FPGA dan PLD Microchip weblokasi.

  1. Masalah yang Diketahui dan Solusinya (Ajukan Pertanyaan)
    Tidak ada masalah yang diketahui dan solusi untuk CoreFPU v3.0.
  2. Fitur dan Perangkat yang Dihentikan (Ajukan Pertanyaan)
    Tidak ada fitur dan perangkat yang dihentikan dengan rilis IP ini.

Glosarium

Berikut ini adalah daftar istilah dan definisi yang digunakan dalam dokumen tersebut.
Tabel 6-1. Istilah dan Definisi

Ketentuan Definisi
FPU Satuan Titik Mengambang
FP TAMBAHKAN Penambahan Titik Mengambang
FP SUB Pengurangan Titik Mengambang
FP BERBAGAI MACAM Perkalian Titik-Mengambang

Masalah yang Terselesaikan 
Tabel berikut mencantumkan semua masalah yang teratasi untuk berbagai rilis CoreFPU.

Tabel 7-1. Masalah yang Terselesaikan

Melepaskan Keterangan
3.0 Berikut ini adalah daftar semua masalah yang terselesaikan dalam rilis v3.0:

Nomor Kasus: 01420387 dan 01422128

Menambahkan logika skema pembulatan (membulatkan ke angka genap terdekat).

2.1 Berikut ini adalah daftar semua masalah yang terselesaikan dalam rilis v2.1:
Desain tersebut menemui masalah karena adanya modul duplikat saat beberapa inti dibuat.
Mengganti nama instans IP CoreFPU menghasilkan kesalahan “Modul tidak terdefinisi”.
1.0 Rilis Awal

Pemanfaatan dan Kinerja Sumber Daya Perangkat

Makro CoreFPU diimplementasikan dalam keluarga yang tercantum dalam tabel berikut.
Tabel 8-1. Pemanfaatan Perangkat Unit FPU PolarFire untuk 32-Bit

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

Penting: Untuk meningkatkan frekuensi, pilih Aktifkan opsi pengaturan waktu ulang dalam pengaturan sintesis.

Riwayat Revisi

Riwayat revisi menjelaskan perubahan yang diterapkan dalam dokumen. Perubahan dicantumkan berdasarkan revisi, dimulai dari publikasi terkini.

MICROCHIP-CoreFPU-Cor-Unit-Titik-Mengambang- (1)

Dukungan FPGA Microchip

Grup produk Microchip FPGA mendukung produknya dengan berbagai layanan dukungan, termasuk Layanan Pelanggan, Pusat Dukungan Teknis Pelanggan, dan websitus, dan kantor penjualan di seluruh dunia. Pelanggan disarankan untuk mengunjungi sumber online Microchip sebelum menghubungi dukungan karena kemungkinan besar pertanyaan mereka telah dijawab.
Hubungi Pusat Dukungan Teknis melalui websitus di www.microchip.com/dukungan. Sebutkan nomor Bagian Perangkat FPGA, pilih kategori kasing yang sesuai, dan unggah desain files sambil membuat kasus dukungan teknis.
Hubungi Layanan Pelanggan untuk dukungan produk non-teknis, seperti harga produk, peningkatan produk, informasi pembaruan, status pesanan, dan otorisasi.

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

Informasi Mikrochip

Merek Dagang
Nama dan logo “Microchip”, logo “M”, dan nama, logo, serta merek lain adalah merek dagang terdaftar dan tidak terdaftar milik Microchip Technology Incorporated atau afiliasi dan/atau anak perusahaannya di Amerika Serikat dan/atau negara lain (“Merek Dagang Microchip”). Informasi mengenai Merek Dagang Microchip dapat ditemukan di https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Pemberitahuan Hukum
Publikasi ini dan informasi di sini hanya dapat digunakan dengan produk Microchip, termasuk untuk merancang, menguji, dan mengintegrasikan produk Microchip dengan aplikasi Anda. Penggunaan informasi ini dengan cara lain melanggar ketentuan ini. Informasi mengenai aplikasi perangkat disediakan hanya untuk kenyamanan Anda dan dapat digantikan oleh pembaruan. Anda bertanggung jawab untuk memastikan bahwa aplikasi Anda memenuhi spesifikasi Anda. Hubungi kantor penjualan Microchip setempat untuk dukungan tambahan atau, dapatkan dukungan tambahan di www.microchip.com/en-us/support/design-help/client-support-services

INFORMASI INI DISEDIAKAN OLEH MICROCHIP “SEBAGAIMANA ADANYA”. MICROCHIP TIDAK MEMBERIKAN PERNYATAAN ATAU JAMINAN APAPUN BAIK SECARA TERSURAT MAUPUN TERSIRAT, TERTULIS MAUPUN LISAN, BERDASARKAN HUKUM ATAU LAINNYA, YANG TERKAIT DENGAN INFORMASI TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT TENTANG KETIDAKPELANGGARAN, KEMAMPUAN UNTUK DIPERDAGANGKAN, DAN KESESUAIAN UNTUK TUJUAN TERTENTU, ATAU JAMINAN YANG TERKAIT DENGAN KONDISI, KUALITAS, ATAU KINERJANYA.

DALAM KEADAAN APA PUN MICROCHIP TIDAK AKAN BERTANGGUNG JAWAB ATAS KERUGIAN, KERUSAKAN, BIAYA, ATAU PENGELUARAN TIDAK LANGSUNG, KHUSUS, HUKUMAN, INSIDENTAL, ATAU KONSEKUENSIAL DALAM BENTUK APA PUN YANG TERKAIT DENGAN INFORMASI ATAU PENGGUNAANNYA, BAGAIMANA PUN PENYEBABNYA, BAHKAN JIKA MICROCHIP TELAH DIBERITAHUKAN TENTANG KEMUNGKINAN TERSEBUT ATAU KERUSAKAN TERSEBUT DAPAT DIPREDIKSI. SEJAUH YANG DIIZINKAN OLEH HUKUM, TOTAL TANGGUNG JAWAB MICROCHIP ATAS SEMUA KLAIM DALAM CARA APA PUN YANG TERKAIT DENGAN INFORMASI ATAU PENGGUNAANNYA TIDAK AKAN MELEBIHI JUMLAH BIAYA, JIKA ADA, YANG TELAH ANDA BAYARKAN SECARA LANGSUNG KEPADA MICROCHIP UNTUK INFORMASI TERSEBUT.

Penggunaan perangkat Microchip dalam aplikasi pendukung kehidupan dan/atau keselamatan sepenuhnya menjadi risiko pembeli, dan pembeli setuju untuk membela, mengganti rugi, dan membebaskan Microchip dari segala kerusakan, klaim, tuntutan, atau biaya yang timbul akibat penggunaan tersebut. Tidak ada lisensi yang diberikan, secara tersirat atau sebaliknya, berdasarkan hak kekayaan intelektual Microchip kecuali dinyatakan sebaliknya.

Fitur Perlindungan Kode Perangkat Microchip
Perhatikan rincian berikut mengenai fitur perlindungan kode pada produk Microchip:

  • Produk mikrochip memenuhi spesifikasi yang tercantum dalam Lembar Data Mikrochip masing-masing.
  • Microchip yakin bahwa rangkaian produknya aman jika digunakan sesuai tujuan, sesuai spesifikasi pengoperasian, dan dalam kondisi normal.
  • Microchip menghargai dan secara agresif melindungi hak kekayaan intelektualnya. Upaya untuk melanggar fitur perlindungan kode produk Microchip sangat dilarang dan dapat melanggar Digital Millennium Copyright Act.
  • Baik Microchip maupun produsen semikonduktor lainnya tidak dapat menjamin keamanan kodenya. Perlindungan kode tidak berarti bahwa kami menjamin produk tersebut "tidak dapat dipecahkan". Perlindungan kode terus berkembang. Microchip berkomitmen untuk terus meningkatkan fitur perlindungan kode pada produk kami.

Dokumen / Sumber Daya

Unit Titik Mengambang Inti MICROCHIP CoreFPU [Bahasa Indonesia:] Panduan Pengguna
v3.0, v2.1, v2.0, v1.0, Unit Titik Mengambang Inti CoreFPU, Unit Titik Mengambang Inti, Unit Titik Mengambang, Unit Titik

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *