Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-08-2004, 14:19   #1
BlackWinterDay
Member
 
L'Avatar di BlackWinterDay
 
Iscritto dal: Dec 2003
Città: Parabiago (MI)
Messaggi: 206
[VHDL] seno e coseno in virgola mobile

Devo realizzare un ALU floating-point in vhdl..
la cosa che mi da più problemi è come fare per il calcolo del seno e del coseno. Qualcuno mi saprebbe aiutare?
BlackWinterDay è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 14:48   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Interessante...me lo sono sempre chiesto... Come si realizzano seno e coseno in una FPU ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 15:43   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Normalmente per interpolazione, eventualmente in congiunzione con uno sviluppo di Taylor locale, credo.
Non è un argomento facile, ti consiglio di rivolgerti presso www.opencores.org per vedere se possono aiutarti. Hanno realizzato delle fpu e dei processor core "open source", forse puoi trovare qualche spunto.
Però ti ripeto che _non_ è facile.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 15:47   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ci sta che sia generati in aniera tabellare...e poi per interpolazione fra i due punti della tabella più vicini ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 15:50   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
E' un modo. Poi se al posto della semplice interpolazione usi uno sviluppo in serie locale, dovrebbe essere un _buon_ modo.
Farlo in vhdl però non è la cosa più divertente del mondo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 15:52   #6
BlackWinterDay
Member
 
L'Avatar di BlackWinterDay
 
Iscritto dal: Dec 2003
Città: Parabiago (MI)
Messaggi: 206
Quote:
Originariamente inviato da ilsensine
Normalmente per interpolazione, eventualmente in congiunzione con uno sviluppo di Taylor locale, credo.
Non è un argomento facile, ti consiglio di rivolgerti presso www.opencores.org per vedere se possono aiutarti. Hanno realizzato delle fpu e dei processor core "open source", forse puoi trovare qualche spunto.
Però ti ripeto che _non_ è facile.
Anche io pensavo a Taylor.. ho già guardato la fpu di opencores ma non ha seno e coseno.

Ho appena scoperto che esiste un algoritmo chiamato CORDIC (COrdinate Rotation DIgital Computer). Qualcuno lo conosce?
BlackWinterDay è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 16:02   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da BlackWinterDay
Anche io pensavo a Taylor.. ho già guardato la fpu di opencores ma non ha seno e coseno.
Hanno anche diversi core di cpu, ma non so se hanno sin/cos. Dovresti spulciarti i sorgenti.

Sono tanti anni che non vedo il vhdl, bei ricordi...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 16:06   #8
BlackWinterDay
Member
 
L'Avatar di BlackWinterDay
 
Iscritto dal: Dec 2003
Città: Parabiago (MI)
Messaggi: 206
Quote:
Originariamente inviato da ilsensine

Sono tanti anni che non vedo il vhdl, bei ricordi...
Io non vedo l'ora di accantonarlo

CORDIC sembra promettente.. cerco di capirci qualche cosa.
BlackWinterDay è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2004, 16:13   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Io conosco solo Verilog...sorry
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 07:15   #10
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originariamente inviato da BlackWinterDay
Io non vedo l'ora di accantonarlo

CORDIC sembra promettente.. cerco di capirci qualche cosa.
Il CORDIC è la formula ricorsiva per il calcolo di sin(x) e cos(x) attraverso rotazioni in un sistema polare.

Su www.opencores.org ci sono core verilog/VHDL free, per esempio quello del CORDIC è:

http://www.opencores.org/projects.cg...ordic/overview
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 10:59   #11
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947

Ultima modifica di repne scasb : 03-02-2005 alle 15:18.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 15:07   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Bello
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 16:52   #13
BlackWinterDay
Member
 
L'Avatar di BlackWinterDay
 
Iscritto dal: Dec 2003
Città: Parabiago (MI)
Messaggi: 206
Quote:
Originariamente inviato da repne scasb
Questo e' l'algoritmo base con cui un Intel i80486DX esegue l'istruzione assembly float FSIN:

1) Sia X l'argomento della funzione Seno.
2) Viene calcolata la quantita' intera A=X/(Pi/2). NOTA: Pi=Pgreco, la divisione e' float.
3) Viene calcolata la quantita' float B=(X/(Pi/2)-Q)*(Pi/2).
4) Vengono salvati i bit 0 e 1 di A, il resto viene ignorato.
5) Se il bit 0 di A e' 0 allora B=B; se il bit 0 di A=1 allora B=(Pi/2)-B.
6) B viene "normalizzato" mediante trasformazione da float a intero.
7) L'operazione di normalizzazione genera un indice e un sub-indice interi.
8) L'indice viene utilizzato come puntatore ad una tabella in cui risiedono i valori precalcolati di SIN(X).
9) Il sub-indice viene utilizzato come puntatore ad una sotto-sotto-tabelle contenente il valore di correzione.
10) Sia C il valore trovato al punto 8) e D il valore trovato al punto 9).Y=SIN(X)=C+D.
11) Se il bit 1 di A e' 0 allora Y=Y; se il bit 1 di A=1 allora Y=-Y.

Mediamente vengono utilizzati 241 cicli di clock.

NOTA(1): i punti 2) e 3) vengono eseguiti contemporaneamente.
NOTA(2): il punto 7) e' molto piu' complessa di quello che sembra.
NOTA(3): i punti 8) e 9) vengono eseguti contemporaneamente.

Devo però ricorrere comunque a una tabella con dei valori precalcolati del seno.,
BlackWinterDay è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 16:54   #14
BlackWinterDay
Member
 
L'Avatar di BlackWinterDay
 
Iscritto dal: Dec 2003
Città: Parabiago (MI)
Messaggi: 206
Quote:
Originariamente inviato da lombardp
Il CORDIC è la formula ricorsiva per il calcolo di sin(x) e cos(x) attraverso rotazioni in un sistema polare.

Su www.opencores.org ci sono core verilog/VHDL free, per esempio quello del CORDIC è:

http://www.opencores.org/projects.cg...ordic/overview
Pensi che possa servirmi di Cordic?
BlackWinterDay è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2004, 07:08   #15
lombardp
Senior Member
 
L'Avatar di lombardp
 
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
Quote:
Originariamente inviato da BlackWinterDay
Pensi che possa servirmi di Cordic?
Questo non so dirtelo con certezza, però praticamente TUTTI i core verilog/VHDL usano il CORDIC per fare le operazioni trigonometriche.

Ti invito nuovamente a dare un'occhiata al core su www.opencores.org, almeno per capire come hanno affrontato il problema.
__________________
---> Lombardp
CSS Certified Expert (Master Level) at Experts-Exchange
Proud user of LITHIUM forum : CPU technology
Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo
lombardp è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Formula V vi farà cambiare l'airf...
Netflix usa l'IA generativa per battere ...
Quando l'AI costruisce sé stessa:...
Meno ventole, più raffreddamento:...
Adidas Trionda: come funziona la tecnolo...
Withings BodyFit, la bilancia che va ben...
QNAP annuncia QuTS hero h6.0: il sistema...
ColorOS 17 con Android 17: la lista dei ...
DDR4, il ritorno che nessuno si aspettav...
Corsair vuole un singolo cavo per colleg...
Linux 7.2 si avvierà sui Mac M3, ...
Xiaomi 17T e 17T Pro a prezzi mai visti:...
Microsoft annuncia Majorana 2 e prevede ...
Windows 11: addio ai menu contestuali ca...
Maxi raid internazionale contro la pirat...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v