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

σειριακός αθροιστής....βοήθεια!!


zipxii2mb

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

Δημοσ.

Γεια χαρά σε όλους...

όπως βλέπετε είμαι νέο μέλος και χρειάζομαι μια μικρή βοήθεια...

έχω ένα προτζεκτ για την σχολή μου που έχει να κάνει με τον σχεδιασμό ενός σειριακού αθροιστή με κώδικα νΗΔΙ και μέσω του προγράμματος μαξπλάς ΙΙ...

τα έχω ψιλοχαμένα με αυτά τα πράγματα...δεν το πολυκατέχω... :(

έκανα ανω κάτω το διαδικτυο μπάς και βρώ τίποτα αλλά δεν βρίκα κάτι χρήσιμο...

κάθε βοήθεια σεβαστή...

ευχαριστώ προκαταβολικά...

Δημοσ.
Γεια χαρά σε όλους...

όπως βλέπετε είμαι νέο μέλος και χρειάζομαι μια μικρή βοήθεια...

έχω ένα προτζεκτ για την σχολή μου που έχει να κάνει με τον σχεδιασμό ενός σειριακού αθροιστή με κώδικα νΗΔΙ και μέσω του προγράμματος μαξπλάς ΙΙ...

τα έχω ψιλοχαμένα με αυτά τα πράγματα...δεν το πολυκατέχω... :(

έκανα ανω κάτω το διαδικτυο μπάς και βρώ τίποτα αλλά δεν βρίκα κάτι χρήσιμο...

κάθε βοήθεια σεβαστή...

ευχαριστώ προκαταβολικά...

 

1ον ειναι VHDL...

 

2ον ειναι max-plus II για τα Altera FPGAs

 

3ον αυτο που ζητας ειναι πολυ απλο και ειναι ουσιαστικα ενας διακριτος ολοκληρωτης! Αυτο που κανεις ειναι να σωζεις την προηγουμενη τιμη σου (την χ(n-1) ας πουμε) και αθροιζεις με την τρεχουσα χ(n) καθε φορα. Αρα χρειαζεσαι εναν αθροιστη (combinatorial-συνδιαστικη λογικη) και μια sequential process με ρολοι για να κρατας το προηγουμενο αποτελεσμα.

 

Παρακατω σου δινω εναν σκελετο σε VHDL για αυτο που θες. Αν καταλαβεις τα παραπανω που σου γραφω και διαβασεις λιγο μπορεις να συμπληρωσεις αυτα που λειπουν.

 

Ο λογος που δεν σου δινω ολο τον κωδικα ειναι διοτι θεωρω οτι πρεπει να ασχοληθεις και ο ιδιος για να μαθεις ορισμενα πραγματα. Ξεκινα να το δουλευεις και οτι θες με ρωτας! :-)

 

>
-------------------------------------------------------------------------------
-- LIBRARIES
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_signed.all;

-------------------------------------------------------------------------------
-- ENTITY
-------------------------------------------------------------------------------
entity integrator is
 port (
   clk   : in  std_logic; -- clock
   rst_n : in  std_logic; -- reset (active low)
   x     : in  std_logic_vector(ip_sz-1 downto 0); -- input
   clear : in  std_logic; -- clear accumulator
   y     : out std_logic_vector(ip_no+ip_sz-1 downto 0)); -- summed output
end entity integrator ;

------------------------------------------------------------------------------- 
-- ARCHITECTURE
-------------------------------------------------------------------------------
architecture rtl of integrator  is

 signal x_p1 : std_logic_vector(y'length-1 downto 0);
 signal y_c  : std_logic_vector(y'length-1 downto 0);

begin  -- architecture rtl

 -- add previous input

 -- output integrated result

 -- previous input value
 prev_ip : process (clk, rst_n) is
 begin  -- process previous input value
   if rst_n = '0' then                 -- asynchronous reset (active low)

   elsif rising_edge(clk) then         -- rising clock edge

   end if;
 end process prev_ip;

end architecture rtl;

Δημοσ.

αρχικά θέλω να σε ευχαριστήσω για την βοήθεια σου...

σχόλιο:ξέρω ότι λέγονται vhdl και maxplusII απλά προσπάθησα να τιρήσω τους κανόνες του forum: "μηνύματα γραμμένα σε greeklish θα διαγράφονται. Παρακαλούμε χρησιμοποιήστε ελληνικούς χαρακτήρες στα μηνύματα σας. "

τέλοσπάντων το θέμα είναι αλλού...στο βιβιλίο μου έχει κατασκευή σειριακού αθροιστή με την χρήση καταχωρητών ολίσθησης, ενός αθροιστή, και ενός μετρητή...

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

 

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

 

-- left-to-right shift register with parallel load and enable

ENTITY shiftrne IS

GENERIC ( N : INTEGER := 4 ) ;

PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;

L, E, w : IN STD_LOGIC ;

Clock : IN STD_LOGIC ;

Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;

END shiftrne ;

 

ARCHITECTURE Behavior OF shiftrne IS

BEGIN

PROCESS

BEGIN

WAIT UNTIL Clock'EVENT AND Clock = '1' ;

IF E = '1' THEN

IF L = '1' THEN

Q <= R ;

ELSE

Genbits: FOR i IN 0 TO N-2 LOOP

Q(i) <= Q(i+1) ;

END LOOP ;

Q(N-1) <= w ;

END IF ;

END IF ;

END PROCESS ;

END Behavior ;

 

και το θέμα είναι ότι δεν μπορώ να τον φτιάξω με το maxplus II όπως είναι...δηλαδή με παράλληλο load και enable

τον μετρητη και τον αθροιστή τον έχω φτιάξει...σε επίπεδο σχεδιασμού τουλάχιστον...

Δημοσ.
αρχικά θέλω να σε ευχαριστήσω για την βοήθεια σου...

σχόλιο:ξέρω ότι λέγονται vhdl και maxplusII απλά προσπάθησα να τιρήσω τους κανόνες του forum: "μηνύματα γραμμένα σε greeklish θα διαγράφονται. Παρακαλούμε χρησιμοποιήστε ελληνικούς χαρακτήρες στα μηνύματα σας. "

τέλοσπάντων το θέμα είναι αλλού...στο βιβιλίο μου έχει κατασκευή σειριακού αθροιστή με την χρήση καταχωρητών ολίσθησης, ενός αθροιστή, και ενός μετρητή...

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

 

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

 

-- left-to-right shift register with parallel load and enable

ENTITY shiftrne IS

GENERIC ( N : INTEGER := 4 ) ;

PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;

L, E, w : IN STD_LOGIC ;

Clock : IN STD_LOGIC ;

Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;

END shiftrne ;

 

ARCHITECTURE Behavior OF shiftrne IS

BEGIN

PROCESS

BEGIN

WAIT UNTIL Clock'EVENT AND Clock = '1' ;

IF E = '1' THEN

IF L = '1' THEN

Q <= R ;

ELSE

Genbits: FOR i IN 0 TO N-2 LOOP

Q(i) <= Q(i+1) ;

END LOOP ;

Q(N-1) <= w ;

END IF ;

END IF ;

END PROCESS ;

END Behavior ;

 

και το θέμα είναι ότι δεν μπορώ να τον φτιάξω με το maxplus II όπως είναι...δηλαδή με παράλληλο load και enable

τον μετρητη και τον αθροιστή τον έχω φτιάξει...σε επίπεδο σχεδιασμού τουλάχιστον...

 

Ο κωδικας που μου δειχνεις ειναι behavioral και δεν μπορει να γινει synthesized σε πυλες παρα μονο simulation για να κανεις verify το σωστο functionality του κυκλωματος. Πρεπει να γραψεις RTL κωδικα (δες το παραδειγμα που σου εδωσα), και διαβασε στο βιβλιο σου για να καταλαβεις τις διαφορες! Υπαρχουν εντολες που δεν γινονται synthesis! Για τα υπολοιπα ισχυει οτι σου εγραψα στο πρωτο μυνημα και ουσιαστικα ο κωδικας που βρηκες ειναι περιπου αυτο. :-)

Δημοσ.
Ο κωδικας που μου δειχνεις ειναι behavioral και δεν μπορει να γινει synthesized σε πυλες παρα μονο simulation για να κανεις verify το σωστο functionality του κυκλωματος. Πρεπει να γραψεις RTL κωδικα (δες το παραδειγμα που σου εδωσα), και διαβασε στο βιβλιο σου για να καταλαβεις τις διαφορες! Υπαρχουν εντολες που δεν γινονται synthesis! Για τα υπολοιπα ισχυει οτι σου εγραψα στο πρωτο μυνημα και ουσιαστικα ο κωδικας που βρηκες ειναι περιπου αυτο. :-)

 

ουσιαστικά να το κάνω simulation θέλω...

για να είμαι ακριβής πρέπει πρώτα να το σχεδιάσω μέσω max plus II και μετα να το εκρφράσω σε vhdl κώδικα.Αλλα το πρόβλημα μου είναι πώς για αρχή δεν μπορώ να τον σχεδιάσω σαν gdf γιατί δεν μπορώ να φτιάξω σωστά τον shift register ώστε να τον συνδέσω με τον full adder και τον counter...θεωρώ πως θα καταφέρω να εκφράσω τον σειριακό αθροιστή σε vhdl έχοντας σωστά φτιάξει σε επίπεδο σχεδιασμού με πύλες η ολοκληρωμένα τέλοσπάντων τον σειριακό...αυτό που με εκνευρίζει είναι πώς προσπάθησα να φτιάξω τον shift register με πύλες και μετα να τον κάνω symbol αλλα δεν δούλευε σωστα...έψαχα μετα στο help να δώ μήπως υπάρχει έτοιμο ολοκληκωμένο της σειράς 74## και δεν βρίκα κάτι που να με καλύπτει...τέλος χρησιμοποίησα τον wizard αλλά και πάλι δεν μπόρεσα να βάλω όλες τις εισόδους και εξόδους που χρειάζομαι... :cry:

Το γαμώτο της υπόθεσης είναι πως δεν με ενδιαφέρει να ασχοληθώ με αυτά τα πράγματα με αποτέλεσμα να τα κάνω αναγκαστηκά μόνο και μόνο για να τελειώσω κάποια στιγμή με την σχολή...ήθελα να ξερα γιατί μπήκα σε αυτήν την σχολή...:cry:

Δημοσ.

Εχεις μπλεξει το schematic entry με το digital design με HDL γλωσσες και γενικοτερα δεν ξερω απο που να αρχισω να σου εξηγω, διοτι απο αυτα που διαβαζω καταλαβαινω οτι επικρατει ενα χαος στις γνωσεις σου οσον αναφορα το VLSI...

 

Σου εχω στειλει πμ με το τηλεφωνο μου, οποτε αν θες παρε με να προσπαθησω να σε βοηθησω τηλεφωνικος! :-)

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

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

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