Numeri primi in VHDL ? aiuto

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

Numeri primi in VHDL ? aiuto

Postby m.brox » 15 Nov 2012, 22:05

Salve a tutti, sono al mio primo post.
ho necessità di scrivere un codice in VHDL
c'è qualcuno che potrebbe aiutarmi per scrivere e capire il codice che realizza la funzione per il calcolo dei numeri primi compresi tra 0 e 15 ?
e cioè 1, 2, 3, 5, 7, 11, 13.

magari prima attraverso il circuito logico utilizzando porte e poi in vhdl.
vi sarò molto grato se potrete aiutarmi.

buonasera
m.brox
 
Posts: 22
Joined: 08 Nov 2012, 21:02

Re: Numeri primi in VHDL ? aiuto

Postby flz47655 » 15 Nov 2012, 22:51

Ciao,
Devi realizzare le operazioni matematiche? Altrimenti tramite un semplice multiplexer puoi risolvere facendo due calcoli con carta e penna e poche porte logiche. Col VHDL diventa ancora più semplice, prova a vedere un esempio di multiplexer in VHDL e prova ad adattarlo al tuo caso, in 5 minuti risolvi

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Numeri primi in VHDL ? aiuto

Postby deluca » 16 Nov 2012, 18:24

Per realizzare il circuito logico descrivi la tabella della verità con le 16 combinazioni.
Setta a 1 l'uscita in riferimento del numero primo.
Riporta gli uni su mappa di karnough, minimizza e ricava la funzione logica.
a questo punto hai il circuito logico che puoi minimizzare ancora con uno dei teoremi di bool o di de-morgan.

PS. Puoi scrivere il codice VHDL in modo strutturato seguendo il circuito logico oppure in modo comportamentale sapendo già a priori i numeri primi nell'intervallo 0-15 usando IF o when ...... ecc

Buonaserata.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Numeri primi in VHDL ? aiuto

Postby m.brox » 17 Nov 2012, 20:51

nel range 1-15 ho 7 numeri primi che diventano 4 implicanti se minimizzo con la mappa di karnough.

abcd
0--1
001-
-011
-101

quindi avrei: A'D + A'B'C + B'CD + BC'D
potete dirmi se la mia funzione è esatta?

come posso scrivere questa funzione in VHDL?
mi potete aiutare con un semplice esempio giusto per iniziare a capire?

grazie e ciao a tutti
m.brox
 
Posts: 22
Joined: 08 Nov 2012, 21:02

Re: Numeri primi in VHDL ? aiuto

Postby flz47655 » 18 Nov 2012, 05:07

Partendo dalla tua mappa, se corretta, ottengo: CD'+BC+AB'C', hai minimizzato bene utilizzando i don't care?

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Numeri primi in VHDL ? aiuto

Postby m.brox » 18 Nov 2012, 15:31

min.jpg
min.jpg (65.28 KiB) Viewed 6822 times


escludendo l'uno, secondo questa forma minima i valori dovrebbero essere:

abcd
001-
0-11
-011
-101

e quindi la funzione d'uscita:

BC'D + B'CD + CD

non riesco a capire dove starebbe l'inghippo.
mi potresti spiegare?

con Logic Friday la funzione di uscita è:
F0 = A'CD + A'B'C + BC'D + B'CD;
m.brox
 
Posts: 22
Joined: 08 Nov 2012, 21:02

Re: Numeri primi in VHDL ? aiuto

Postby flz47655 » 18 Nov 2012, 15:42

Avevo seguito la tabella che credevo una mappa di karnough senza controllare se fosse giusta, alcune dritte:
- Perché i don't care? Non vuoi che la funzione restituisca 0 quando un numero è non primo?
- Supponendo che i numeri siano codificati in binario con 4 bit chiamati ABCD dove ad esempio A=0 B=0 C=0 D=1 è il numero 1, minimizzando la funzione si ottiene: A'D' + A'B'C + CD'B + B'CD
- Quando crei la mappa ti ricordi della codifica Grey? Dal risultato che avevi ottenuto mi sembra che hai invertito qualche riga
- Lascia perdere programmi, è talmente semplice che conviene fare a mano, ti aiuta a capire meglio i meccanismi

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16


Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 1 guest

cron