Προς το περιεχόμενο

Έλεγχος διαιρετότητας αριθμού σε VHDL


jimmyomikron

Προτεινόμενες αναρτήσεις

Δημοσ.

παιδια καλησπερα!!!!

ειμαι φοιτητης στο τμημα ηλεκτρολογιας στο τει λαμιας.μιλωντας με εναν απο τους καθηγητεσ μου,ο οποιοσ με εχει κοψει 3 φορες, μου ζητησε να του πραγματοποιησω την παρακατω εργασια "ελεγχος διαιρετοτητας ενος αριθμου και υλοποιηση με VHDL " . οπως καταλαβαινετε ειμαι παντελωσ ασχετωσ με το αντικειμενο. Υπαρχει καποιος που μπορει να βοηθησει η καποιο link δεν ξερω απο που ν αρχισω....

Δημοσ.

3 Φορές δεν είναι και πολύ :P Υπομονή.....

 

Λοιπών, στο ίντερνετ υπάρχουν πολλά tutorial, ένα που έχω κρατήσει είναι αυτό.

 

Όσο για την άσκηση δεν φαίνεται και δύσκολη :/ Απλά ελέγχεις έναν αριθμό που εισάγεται και ανάλογα κάνεις κάτι;

Δημοσ.

ποσο πια υπομονη???? ;)

καλο tutorial και σ ευχαριστω... αλλα με το λογικο διαγραμμα τι γινεται???υποθέτω οτι θα ειναι στο στιλ των ψηφιακων συστηματων???μα τον δια δε βλεπω φως...πωσ θα διαιρεσω εναν αριθμό???

Δημοσ.

Είναι μερικά μαθήματα..... Χαλαρά όμως... Θα περάσου και αυτά...

 

Όσο για την άσκηση για πες τι θέλει ακριβώς (κάποια διευκρίνηση θα έδωσε, δεν μπορεί), τι εισόδους θα έχεις και το κυριότερο τι εξόδους θέλεις;(δώσε και κανένα παράδειγμα άμα γίνεται) Γιατί πάνω σε αυτό που είπες εγώ καταλαβαίνω οτι θέλει 2 εισόδους για 2 αριθμούς και όταν ο ένας αριθμός που εισήχθη διαιρεί τον άλλον να σου βγάζει κάποια συγκεκριμένη έξοδο, εναλλακτικά να βγάζει κάτι άλλο... Το θέμα βέβαια είναι τι ακριβός θέλει ο καθηγητής :/

 

Όσο για το λογικό διάγραμμα εντάξει, δεν είναι και κάτι πολύ δύσκολο, απλά πρέπει όταν το φτιάχνεις να έχεις στο μυαλό σου οτι δεν τρέχει σειριακά ο κώδικας των FPGA απλά ανάλογα με τα γεγονότα κάνει κάτι το κύκλωμα.

Δημοσ.

1 εισοδος και 1 εξοδος.ολα οσα μου ειπε ειναι αυτα...οσο για παραδειγμα μην περιμενεις οπως ειπα ειμαι παντελωσ ασχετοσ :blink:

βεβαια και για το λογικο διαγραμμα θα τοπεδεψω λιγο παραπανω...παντωσ παιδια ευχαριστω που ασχοληστε

Δημοσ.

Οκ, δηλαδή θέλει για τον αριθμό που θα δίνεις στην είσοδο να του λες άμα κάνει τέλεια διαίρεση με το 5 (χωρίς υπόλοιπο δηλαδή). Απο ότι είδα υπάρχει έτοιμη εντολή που το κάνει αυτό, άρα εσύ απλά ελέγχεις άμα ο αριθμός σε σύγκριση με το 5 αν βγάζει υπόλοιπο, άμα έχει τότε δεν σου κάνει αυτός ο αριθμός και βγάζεις 0 στην έξοδο, εναλλακτικά αμα δεν έχει σημαίνει οτι διαιρείται τέλεια με το 5 και σου κάνει, τότε βάζεις '1' στην έξοδο.

 

Σου έχει πει με ποιο πρόγραμμα να το γράψεις ή μόνο στο χαρτί θα είναι; Γιατί σε διαφορετικούς editor μπορεί να χτυπάει και σε άλλους να δουλεύει... Χαμός γίνεται...

Δημοσ.

ναι βασικα ετσι πιστευω κ εγω....<<να ελεγχει την διαιρετότητα αριθμού>>..το προγραμμα που ακολουθουμε ειναι το ModelSim αλλα μου ζητησε κ στο χαρτι...

Δημοσ.

Καλημέρα.

Δεν είμαι σε win για να τσεκάρω το πρόγραμμα, πιο μετά ίσως.... Το μόνο που σε απασχολεί για αυτό είναι άμα δέχεται την εντολή rem το πρόγραμμα για να σου βρίσκει το υπόλοιπο. Στο max plus που χρησιμοποιώ δεν θέλει να το δεί(όπως και πολλά άλλα)....

Βάλε εσυ 2 πόρτες στην οντότητα, μια εισόδου και μια εξόδου (integer λογικά) και συνέχισε παρακάτω. Στην αρχιτεκτονική απλά βάζεις μια if process με συνθήκη ((input rem 5)=0) then output<=1; else output<=1; end if;..... Δες αμα τρέχει κάτι τέτοιο και βλέπουμε...

 

Τρέξε 2-3 προγράμματα σε εξομοιωτή αμα θες, σε βοηθάει να καταλάβεις πως τρέχει το πρόγραμμα και πως λειτουργούν τα κυκλώματα αυτά. Άμα δεις και μερικά έτοιμα προγράμματα μετά λογικά θα μπορείς να γράψεις κανένα πρόγραμμα.

Δημοσ.

Η rem προέρχεται απο το remaining=υπόλοιπο. Δέχεται 2 δεδομένα, αριστερά τον αριθμό που ελέγχεις και δεξιά τον αριθμό με τον οποίο θες να βρεις πόσο υπόλοιπο σου αφήνει. Όταν έχεις 0 υπόλοιπο έχεις τέλεια διαίρεση άρα είσαι οκ.

Δημοσ.

H βιβλιοθήκη που έχει μέσα το rem είναι η numeric_std που δεν υποστηρίζεται απο το Max Plus II που χρησιμοποιώ και άρα δεν μπορώ να σου πω με σιγουριά πως θα δουλεύει το πρόγραμμα αλλά τσέκαρε το:

>LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.numeric_std.all;

ENTITY ask IS

PORT(

input    :IN integer;
output    :OUT STD_LOGIC);

END ask;

ARCHITECTURE elegxos OF ask IS
BEGIN

process
begin
if ((input rem 5) =0) then
output<='1';
else
output<='0';
end if;

end process;
END display;

 

Δες αμα περνάει compile και μετά έλα για επεξήγηση :P

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...