Πώς να Μετατροπή από "STD_LOGIC_VECTOR να STD_LOGIC"

X

xtcx

Guest
Guys!Θα μπορούσε κανείς να με βοηθήσει με τον τρόπο μετατροπής ενός μητρώου ρυθμιστεί ως STD_LOGIC_VECTOR (0 downto 0) για να STD_LOGIC; ... Σε γενιάς FIFO ΠΕ, θα ρυθμιστεί 1 πλάτος bit και 32 bit βάθος ... Ο σχεδιασμός έχει δημιουργήσει Din και Dout ως είδος " STD_LOGIC_VECTOR (0 downto 0) ", αλλά στο σχεδιασμό μου όλα τα είδη είναι STD_LOGIC? ... Και οι δύο είναι 1-bit, αλλά δεν ξέρουν πώς να αλλάξει.Αν αλλάξω τον τύπο της IP δημιουργούνται FIFO αρχείο ως "STD_LOGIC", όπως το σχέδιο μου, θα δείτε σφάλματα στη μετάφραση! ... Παρακαλώ βοηθήστε φίλους! ... Δεξαμενές

 
Γεια σου,

Αν θέλετε να μεταφράσετε ένα σήμα STD_LOGIC_VECTOR bits για ν STD_LOGIC σήματα που μπορείτε να κάνετε κάτι σαν αυτό για παράδειγμα:

test_vector μήνυμα: std_logic_vector (3 downto 0)?
σήμα b0, Β1, Β2, Β3: std_logic?
....
b0 <= test_vector (0)?
b1 <= test_vector (1)?
β2 <= test_vector (2)?
β3 <= test_vector (3)?

Χαιρετισμοί,
Franck.

 
Ευχαριστώ φράγκο, αλλά ξέρω ότι ... ωστόσο η υπόθεση είναι "STD_LOGIC_VECTOR (0 downto 0)".Πώς μπορείτε να περάσετε το μήνυμα αυτού του τύπου σε "STD_LOGIC "?.... Έχετε κάποια ιδέα ?....

 
STD_LOGIC_VECTOR (0 downto 0) έχει ένα μόνο λίγο
έτσι όπως προτείνεται από τον προηγούμενο εργοδότη θα πρέπει να είναι σε θέση να το μετατρέψει σε std_logic ως

ur_std_logic <= ur_std_vector (0)?

 
Hey προσπαθήσουμε για το εαυτό σας ya ... Θα βρείτε σφάλματα.
Όπως είπα, μόλις δούμε πώς θα κωδικοποιηθεί.Μόνο Din, Dout αντιστοιχεί std_logic_vector (0 downto 0). Αυτές παράγονται από core.any FIFO ΠΕ αξίες περάσει σε Din ή Dout πρέπει επίσης να είναι του ίδιου τύπου δεδομένων, αλλιώς θα δείχνει λάθη ....
------------------------------------
SDR οντότητα
ΛΙΜΑΝΙ (
sclk: σε STD-λογική? - codec CLK
SDI: out std_logic? - στοιχεία για codec
SDO: σε std_logic? - στοιχεία από codec
din: σε STD-logic_vector (0 downto 0)? --- FIFO εισαγωγή δεδομένων
dout: out std_logic_vector (0 downto 0)? - FIFO εξόδου δεδομένων
wr_clk, rd_clk: out std_logic? - Indpendant λειτουργία CLK FIFO για στοίβαγμα
wr_en, rd_en: out std_logic? - επιτρέπουν καρφίτσες
πλήρης, κενός: std_logic - σημαίες
)?
SDR αρχιτεκτονική της συμπεριφοράς είναι
σήμα count1, count2: εύρος ακέραιος 0 έως 40: = 0?
αρχίζω

διαδικασία (sclk) είναι
αρχίζω

αν rising_edge (sclk) τότε
count1 <= count1 1?
περίπτωση count1 είναι
όταν επιτρέψει 0 => rd_en <= '1 '? - ανάγνωσης δεδομένων από FIFO
όταν 1 => SDI <= din? - αρχίσετε την ανάγνωση των δεδομένων και την αποστέλλει στον SDI λεωφορείο (codec)
όταν 3 => SDI <= din?
όταν 33 => count2 <= 0?
rd_en <= '0 '?
όταν 34 =>
count2 <= count2 1?
count1 <= 34?
περίπτωση count2 είναι
όταν 0 => wr_en <= '1 '?
όταν 1 => dout <= SDO?
όταν 2 => dout <= SDO?
όταν 33 => count 1 <= 0?
wr_en <= '0 '?
όταν οι άλλοι => null?
περίπτωση τέλος?
όταν οι άλλοι => null?
περίπτωση τέλος?
τέλος αν?
διαδικασία τέλος?
----------------------------------
Εδώ SDI έχει ανατεθεί σε dout .... Αλλά και οι δύο είναι της std_logic και std_logi_vector (0 downto 0) type.If περάσετε αξίες τότε δείχνει λάθη .. δεν χρησιμοποιούν !.... Έχεις καμία ιδέα;.

 
Διστάσετε.Μπορείτε να μετατρέψετε "std_logic_vector (0 downto 0)" σε "std_logic".Θα λειτουργήσει πρόστιμο.Αλλά θα πρέπει να μετατρέψετε όλες φορέα.εάν είχατε κάποιο πρόβλημα με ειδοποιήσετε ...

 
Zerox100 έγραψε:

Διστάσετε.
Μπορείτε να μετατρέψετε "std_logic_vector (0 downto 0)" σε "std_logic".
Θα λειτουργήσει πρόστιμο.
Αλλά θα πρέπει να μετατρέψετε όλες φορέα.
εάν είχατε κάποιο πρόβλημα με ειδοποιήσετε ...
 
Χρησιμοποιήστε ένα σήμα για την είσοδο και την έξοδο.Δεν χρειάζεται καμία λειτουργία για να γίνει αυτό.

Μια απλή ανάθεση θα πρέπει να επαρκεί για τους δύο.

 
αυτόν τον κώδικα θα δουλέψει:

διαδικασία (sclk) είναι
αρχίζω

αν rising_edge (sclk) τότε
count1 <= count1 1?
περίπτωση count1 είναι
όταν επιτρέψει 0 => rd_en <= '1 '? - ανάγνωσης δεδομένων από FIFO
όταν 1 => SDI <= din (0)? - ξεκινήσει η ανάγνωση των δεδομένων και την αποστέλλει στον SDI λεωφορείο (codec)
όταν 3 => SDI <= din (0)?
όταν 33 => count2 <= 0? rd_en <= '0 '?
όταν 34 => count2 <= count2 1? count1 <= 34?
περίπτωση count2 είναι
όταν 0 => wr_en <= '1 '?
όταν 1 => dout (0) <= SDO?
όταν 2 => dout (0) <= SDO?
όταν 33 => count1 <= 0? wr_en <= '0 '?
όταν οι άλλοι => null?
περίπτωση τέλος?
όταν οι άλλοι => null?
περίπτωση τέλος?
τέλος αν?

διαδικασία τέλος?

 
αν ορίσετε din σαν φορέας, ακόμη και αν ήταν ενιαίο φορέα λίγο έχετε αντιστοιχίσει την επίκλιση σε λίγο.αλλά σε κάθε φορέα, μπορείτε να επιλέξετε λίγο και να αναθέσει σε άλλο κομμάτια όπως το παρακάτω:

--///////////////////////////

όταν 1 => SDI <= din (0)?

--///////////////////////////

 
crevars έγραψε:

Και τι γίνεται με: dout (0) <= SDO?
 

Welcome to EDABoard.com

Sponsor

Back
Top