ψηφιακή pick calcultion

S

shadeslayer

Guest
Hi all

Έγραψα τον παρακάτω κώδικα, μπορεί κάποιος να μου πει αν thr είναι κάτι που λείπει;

Κωδικός:

-----------------------------------

-----------------------------------

--- Ψηφιακό ενισχυτή pick Calc --------

-----------------------------------

-----------------------------------χρήση ieee.std_logic_1164.all?

χρήση ieee.std_logic_arith.all?

χρήση ieee.std_logic_unsigned.all?

IEEE βιβλιοθήκη?
οντότητα Σάββατο είναιλιμένα (

DIN: σε srd_logic_vector (7 downto 0)? ---- Δεδομένων γραμμές

DOUT: out std_logic-vector (7 downto 0)? ---- Δεδομένα εξόδου γραμμής

reset: στην std_logic? ---- ηδενίσετε μήνυμα

nochange: σε std_logic? ---- για να δείχνει την αλλαγή των δεδομένων δεν γίνεται

)?τέλος το Σάββατο?αρχιτεκτονική συμπεριφοράς του Σαββάτου είναι

τύπος είναι rega array (0 έως 7) λίγο? --------- RegA = refrance initialy 0

τύπος είναι regb array (0 έως 7) λίγο? --------- RegB = δεδομένα που λαμβάνονται από το χρήστηαρχίζωδιαδικασίας (ένα)

μεταβλητή reg1: rega?

μεταβλητή reg2: regb?αρχίζωδιαδικασία μεταβίβασης είναιαρχίζωreg1 (0) <= reg2 (0)? ---------------- υπορουτίνα για αλλαγή των δεδομένων

reg1 (1) <= reg2 (1)?

reg1 (2) <= reg2 (2)?

reg1 (3) <= reg2 (3)?

reg1 (4) <= reg2 (4)?

reg1 (5) <= reg2 (5)?

reg1 (6) <= reg2 (6)?

reg1 (7) <= reg2 (7)?τέλος διαδικασία μεταβίβασης?DIN (0) => reg2 (0)? --------------

DIN (1) => reg2 (1)? --------

DIN (2) => reg2 (2)? -----

DIN (3) => reg2 (3)? - Teken δεδομένων σε RegB

DIN (4) => reg2 (4)? --

DIN (5) => reg2 (5)? -----

DIN (6) => reg2 (6)? --------

DIN (7) => reg2 (7)? --------------reg1 (0): = 0? --------------

reg1 (1): = 0? --------

reg1 (2): = 0? -----

reg1 (3): 0 =? - RegA ξεκινά με μηδέν

reg1 (4): = 0? --

reg1 (5): = 0? -----

reg1 (6): = 0? --------

reg1 (7): = 0? --------------εάν (reg2 (0)> reg1 (0)) τότε ---------------------------------

μεταφορά?elseif (reg2 (1)> reg1 (1)), τότε -----------------------------

μεταφορά?elseif (reg2 (2)> reg1 (2)), τότε -------------------------

μεταφορά?elseif (reg2 (3)> reg1 (3)), τότε ----------------- μεταφορά δεδομένων αν RegB> RegA

μεταφορά?elseif (reg2 (4)> reg1 (4)), τότε ----------------- έτσι στο τέλος θα έχουμε μέγιστη τιμή

μεταφορά?elseif (reg2 (5)> reg1 (5)), τότε -------------------------

μεταφορά?elseif (reg2 (6)> reg1 (6)), τότε -----------------------------

μεταφορά?elseif (reg2 (7)> reg1 (7)), τότε ---------------------------------

μεταφορά?άλλος

nochange? = 1? ---- δεν υποδεικνύουν αλλαγή (δεν απαιτείται)τέλος, αν?reg1 (0) => DOUT (0)? ----------- δεδομένα που έχουν συναφθεί

reg1 (1) => DOUT (1)?

reg1 (2) => DOUT (2)?

reg1 (3) => DOUT (3)?

reg1 (4) => DOUT (4)?

reg1 (5) => DOUT (5)?

reg1 (6) => DOUT (6)?

reg1 (7) => DOUT (7)?τέλος της διαδικασίας?τέλος συμπεριφοράς?
 
1.nochange πρέπει να καθορίζονται
2.πρέπει να χρησιμοποιήσετε <= nochange σε σύνδεση
3.δεν έχετε ορίσει το όνομα ενός σήματος (στη διαδικασία sensitivety λίστα)
4.έχετε ένα συντακτικό λάθος στον din δήλωση (srd_logic. ..)Προστέθηκε μετά από 7 λεπτά:Και πολλά άλλα

 
plz να μου πει που άλλοι;;

i dont θέλουν σε οποιαδήποτε αλλαγή στην ημερομηνία εάν υπάρχουν συνθήκες δεν είναι setisfied,, θα okie β αν i dnt χρήση nochange σήμα αλλά αντί wht i shuld χρήση;

 
Λοιπόν, δεν έχω χρόνο να εξηγήσω, αλλά δεν προσδιορίζει τη διαδικασία σωστά, και δεν είναι σωστά.Αλλά δεν μπορώ να σας διορθώσει, γιατί δεν μπορεί να είναι ακριβώς αυτό που κάνει.Έχετε αναπτύξει κάθε αλγόριθμος;Ποιο λογισμικό εργαλείο χρησιμοποιείτε;Προστέθηκε μετά από 7 λεπτά:Θα μπορούσα να σας συστήσει κάποια χρήσιμα βιβλία, όπως:
RTL Υλικού Σχεδιασμός Χρησιμοποιώντας VHDL από Πονγκ σ. Chu,
Σχεδίαση Κυκλωμάτων με VHDL από VA Pedroni,
Σχεδιασμός για FPGAs Συνταγές από τον P. Wilson, κλπ.

 
Εδώ έκανα ένα παράδειγμα:

IEEE βιβλιοθήκη?
χρήση IEEE.STD_LOGIC_1164.ALL?
χρήση IEEE.STD_LOGIC_ARITH.ALL?
χρήση IEEE.STD_LOGIC_UNSIGNED.ALL?

οντότητα d_p είναι
Port (DIN: σε STD_LOGIC_VECTOR (7 downto 0)?
dout: out STD_LOGIC_VECTOR (7 downto 0)?
reset: στην STD_LOGIC)?
τέλος d_p?

Behavioral d_p αρχιτεκτονική του είναι

αρχίζω
διαδικασία (din, reset)
μεταβλητή dat: std_logic_vector (7 downto 0)?
αρχίζω
if (reset ='1 '), τότε dat: = "00000000"?
elsif din> dat τότε dat: = din?
τέλος, αν?
dout <= dat?
τέλος της διαδικασίας?
Behavioral τέλος?Προστέθηκε μετά από 8 λεπτά:Εδώ είναι η προσομοίωση:
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
oh την όμορφη,,,, thx,,,

i xilinx9.2i χρήση και activehdl7.1Προστέθηκε μετά από 2 λεπτά:Θα ήθελα ακόμη να προσθέσω,, refrence, και αντιπαραγωγική,,,

δηλαδή, αν πάρω 03 ως refrence THN θα ChK πόσα έχω χρόνο πάνω από 03 δεδομένα και εάν έχω στοιχεία countinuously 03 για 1 λεπτό THN Θέλω να σταματήσει η διαδικασία,,,

Νόμιζα ότι με τη χρήση των protmaping, και συνδυάζουν συστατικά,,, αλλά δεν im βέβαιος πώς να προσθέσετε αυτό σε αυτόν τον κώδικα,,,

 
Για την αντιμετώπιση που μπορείτε να χρησιμοποιήσετε Πρότυπα Γλώσσας από το εσωτερικό ISE (μενού Επεξεργασία).
Για την τιμή αναφοράς, μπορείτε να χρησιμοποιήσετε γενική εντολή.
Για να συνδυάζουν συστατικά πρέπει να χρησιμοποιήσετε δομή περιγραφή.Είναι καλό να εξετάσει το "ISE σε βάθος Tutorial", καθώς και ISE Quick Start Tutorial.
Μπορείτε να τους βρείτε στο εσωτερικό:
... Xilinx \ doc \ usenglish \ βιβλία \ docs

 
IEEE βιβλιοθήκη?
χρήση IEEE.STD_LOGIC_1164.ALL?
χρήση IEEE.STD_LOGIC_ARITH.ALL?
χρήση IEEE.STD_LOGIC_UNSIGNED.ALL?

οντότητα d_p είναι
Port (DIN: σε STD_LOGIC_VECTOR (7 downto 0)?
αναφ.: σε STD_LOGIC_VECTOR (7 downto 0)?
dout: out STD_LOGIC_VECTOR (7 downto 0)?
h_out: out STD_LOGIC_VECTOR (3 downto 0)?
reset: στην STD_LOGIC)?
τέλος d_p?

Behavioral d_p αρχιτεκτονική του είναι
αρχίζω
διαδικασία (din, reset)
μεταβλητή dat: std_logic_vector (7 downto 0)?
μεταβλητή CNT: integer?
αρχίζω
if (reset ='1 '), τότε
dat: = ref?
CNT: = 0?
elsif din> dat τότε
dat: = din?
CNT: CNT = 1?
τέλος, αν?
dout <= dat?
h_out <= CONV_STD_LOGIC_VECTOR (CNT, 4)?
τέλος της διαδικασίας?
Behavioral τέλος?
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
I didn't πήρε αυτόν τον κώδικα;;συγχέεται ,,,,,

i ας εξηγήσει λεπτομερώς το τι πρέπει να γίνει β,,, THN νομίζω ότι σαφώς και θα καταλάβει τι im προσπαθούν να κάνουν,,,

im χρησιμοποιώντας συγκριτές 2,, μία θα υπολογίσει την αξία ή την ανάκαμψη και μπορεί να πει μέγιστη αξία,
μια άλλη μπορεί να δώσει σιγοκλαίω όποτε μου είναι μεγαλύτερη εισροή THN πω
αναφ. 03, τώρα
αν μου εισροών dontgo παραπάνω 03 για 2mins ή 3mins τότε μου όλη διαδικασία θα σταματήσει,,,

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

BTW thx για αυτόν τον κώδικα, αν και μου πει litel bit Abt παρόντος κώδικα,,Προστέθηκε μετά από 3 λεπτά:i thout επίσης να χρησιμοποιήσετε την αντιμετώπιση, έτσι ώστε θα έλθω να γνωρίζουμε πόσες φορές μου πηγαίνει πάνω από την είσοδο refrence τάσης

 
Γεια σου,
Ι που επισυνάπτεται το σύμβολο.
Όταν επαναφέρετε = 1 τότε h_out = 0.
Οι πρώτες τιμές των d_out είναι η τιμή αναφοράς.
Κάθε φορά d_in γίνεται μεγαλύτερη από την τρέχουσα αξία των d_out, τότε d_out = d_in.
Κάθε φορά d_out αλλαγές στην αξία τους, h_out αυξάνεται κατά 1 (αυτό που μετράει πόσες φορές d_in είχαν μεγαλύτερη από d_out).
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
Τώρα που είδα, θα σήμαινε h_out πρέπει να μετρούν πόσες φορές η συμβολή είναι μεγαλύτερη από ό, τι τιμή αναφοράς, οπότε μια μικρή αλλαγή του κώδικα, θα μπορούσε να γίνει.

 
ναι, αλλά και την επαναφορά του σήματος shuld b 1 δηλαδή όλα shuld διαδικασία σταματά όταν είναι κάτω din ref 2or για 3 λεπτά,,, και το 1ο κώδικα και έδωσε επίσης shuld β thr,,,

ώστε στο τέλος της διαδικασίας shuld i get η ανάκαμψη αξία κατά την έξοδο countinuously,,,

 
Πώς θα λάβετε 2 ή 3 λεπτά.περίοδο;Θέλω να πω, σκοπεύετε να συνθέτω ή δεν είναι;Εάν δεν πρόκειται να συνθέτω τον κωδικό, μπορείτε να χρησιμοποιήσετε το "μετά", αλλιώς πρέπει να έχει κάποια αναφορά ρολόι σήμα τέλος συνειδητοποιείς άλλο με το ρολόι συχνότητα χάσματος.

 
τι?Λόγω i got u,, ur τι προσπαθώ να πω;Προστέθηκε μετά από 7 λεπτά:θέλω να πω ότι με τη βοήθεια μιας σύγκρισης, θα πρέπει να διαλέξω geting αξία,,,

και με τη βοήθεια του άλλου σύγκρισης i μπορεί να howmany φορά το σήμα μου πηγαίνει πάνω μου refrance τάσης,,,

βλέπε i wll δώσει αποσβεστικό wavefor ως συμβολή στο ADC, και η ψηφιακή έξοδος θα χρησιμοποιήσετε για την προσομοίωση,, ryt,,,im αν τώρα έχουν daping κυματομορφής κατά την είσοδο THN μετά από κάποιο χρονικό διάστημα μου μήνυμα θα φθάσει σε σταθερή κατάσταση,,, οπότε μετά από αυτό i dont έχουν ανάγκη για να ελέγξετε για παραλαβή amplitude,,,

ναι, τι σκέφτηκα είναι αν i dont λάβετε μήνυμα πάνω μου
αναφ. τάσης 2or για 3 λεπτά, στη συνέχεια θ shuld επαναφέρετε το σύστημά μου, και θα φυλάσσεται η αξία μου pick somewher FRM όπου i μπορεί να είναι στην έξοδο,,,,

Στην 1η πρόγραμμα και θα δίνει β chaknig για παραλαβή αξίες και την καλή woriknig,,, αλλά όπως σας ρεμβασμός απόσβεσης κύματος (acostic εκπομπής σήματος) ως εισροή THN μετά από κάποια thim σήμα β σταθερή,, έτσι ώστε θα β τέλος ενός γεγονότος ,,, THN πάλι μετά από κάποιο χρονικό διάστημα, θα λάβετε άλλο μήνυμα απόσβεση,
η οποία θα βα απόσβεση μήνυμα αυτό είναι το δεύτερο επεισόδιο ...

ελπίδα και κατανοητό

 
Τι εννοείς με το "2 ή 3 λεπτά."Πιστεύω πως θα σήμαινε πρακτικά.Έτσι, σε VHDL δεν έχετε τη δυνατότητα για τη μέτρηση του χρόνου, εκτός αν έχουν συχνότητα αναφοράς σας μετράνε και τα ποδήλατα.Αυτός είναι ο λόγος για τον οποίο εσείς θα nead αντικοινοποίηση.Ή, θα πρέπει να βρεις άλλο τρόπο για να βρείτε το steade κατάσταση (ας πούμε, αν ο αριθμός των φορών που η εισροή αφήνει υπό την ανάκαμψη επίπεδο? Αλλά ας μην ξεχνάμε και θα μπορούσαν να υπάρχουν ορισμένες επιλογές παραπάνω και υπό την steade κατάσταση).

 
ναι im talknig περίπου miutes,,, θα β καλύτερο να χρησιμοποιήσετε το conter που genrated puleses ποτέ μετά από λίγα secnods και από conting tm tht που μπορούμε να κάνουμε, αλλά δεν im Abel με τον κωδικό που,,, επίκλισης που χρησιμοποιούμε είναι η καθυστέρηση που περιμένετε λίγο τύπου δηλώσεις;;;

παρακαλώ γράψτε τον κωδικό και ανάλογα με το τι έχεις, νομίζω και έχεις πλήρη πράγμα Αυτό που θέλω να πω, όπως και explaind μένα Abt πώς μπορούμε να χρησιμοποιήσουμε conter να πάρετε 2 ή 3 λεπτά chkout,,,

thx

 
IEEE βιβλιοθήκη?
χρήση IEEE.STD_LOGIC_1164.ALL?
χρήση IEEE.STD_LOGIC_ARITH.ALL?
χρήση IEEE.STD_LOGIC_UNSIGNED.ALL?

οντότητα d_p είναι
Port (DIN: σε STD_LOGIC_VECTOR (7 downto 0)?
αναφ.: σε STD_LOGIC_VECTOR (7 downto 0)?
ηδενίσετε: STD_LOGIC σε?
άλλαξε: out STD_LOGIC?
dout: out STD_LOGIC_VECTOR (7 downto 0))?
τέλος d_p?

Behavioral d_p αρχιτεκτονική του είναι
αρχίζω
διαδικασία (din, reset)
μεταβλητή dat: std_logic_vector (7 downto 0)?
αρχίζω
if (reset ='1 '), τότε dat: = ref?
elsif din> dat τότε dat: = din? άλλαξε <='1 '?
άλλο άλλαξε <='0 '?
τέλος, αν?
dout <= dat?
τέλος της διαδικασίας?
Behavioral τέλος?
IEEE βιβλιοθήκη?
χρήση IEEE.STD_LOGIC_1164.ALL?
χρήση IEEE.STD_LOGIC_ARITH.ALL?
χρήση IEEE.STD_LOGIC_UNSIGNED.ALL?

οντότητα χρονόμετρο είναι
Port (reset: στην STD_LOGIC?
CLK: σε STD_LOGIC?
σταθερή: out STD_LOGIC)?
τέλος χρονοδιακόπτη?

Behavioral αρχιτεκτονική των χρονομετρητή είναι
αρχίζω
διαδικασία (CLK, reset)
μεταβλητή CNT: integer: = 0?
μεταβλητή που έληξε: STD_LOGIC?
σταθερή t_per: integer: = 12? - 2min αν CLK = 0.1Hz (10 sec)
αρχίζω
εάν επαναφέρετε ='1 'τότε CNT: = 0? έληξε: ='0'?
elsif (clk'event και CLK ='1 'και έκλεισε ='0') τότε CNT: CNT = 1?
τέλος, αν?
αν CNT> = t_per τότε CNT: = 0? έληξε: ='1 '?
τέλος, αν?
σταθερή <= έκλεισε?
τέλος της διαδικασίας?
Behavioral τέλος?

χρήση IEEE.STD_LOGIC_1164.ALL?
χρήση IEEE.STD_LOGIC_ARITH.ALL?
χρήση IEEE.STD_LOGIC_UNSIGNED.ALL?

οντότητα pick_det είναι
λιμένα (ρολόι: std_logic σε?
DIN: σε std_logic_vector (7 downto 0)?
αναφ.: σε std_logic_vector (7 downto 0)?
reset: std_logic σε?
pick_value: out std_logic_vector (7 downto 0)?
έτοιμο: out std_logic)?
τέλος pick_det?Behavioral pick_det αρχιτεκτονική του είναι
σήμα RST: std_logic?
συνιστώσα d_p
λιμένα (reset: std_logic σε?
DIN: σε std_logic_vector (7 downto 0)?
αναφ.: σε std_logic_vector (7 downto 0)?
άλλαξε: out std_logic?
dout: out std_logic_vector (7 downto 0))?
τέλος συνιστώσα?

συνιστώσα χρονόμετρο
λιμένα (reset: std_logic σε?
CLK: σε std_logic?
σταθερή: out std_logic)?
τέλος συνιστώσα?

αρχίζω
U1: d_p
λιμένα χάρτη (din (7 downto 0) => din (7 downto 0),
ref (7 downto 0) => ref (7 downto 0),
reset => reset,
άλλαξε => RST,
dout (7 downto 0) => pick_value (7 downto 0))?

U2: χρονομετρητή
λιμένα χάρτη (CLK => ρολόι,
reset => RST,
σταθερή => έτοιμο)?

Behavioral τέλος?
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
και μπορεί να δώσει εξηγήσεις λίγο τι συμβαίνει,,, θα προκαλέσει-κυματομορφές δεν είναι σαφές, εννοώ valus i Abel μπορεί να δει σωστά,,, thxΠροστέθηκε μετά από 19 λεπτά:και cpuner shuld μετράνε πόσα χρόνο, τότε είναι greator
αναφ. σήμα δεν πόσες φορές μου pick αξία αλλαγές, νομίζω σε αυτό το πρόγραμμα που δείχνει τη πόσες φορές είναι cchanging,,,στον κωδικό μου που έδωσα στην αφετηρία i nochang σήμα χρησιμοποιείται μόνο σε tht φορά coz i didn't rememberd null δήλωση, αλλά ότι δεν είναι nochange req,,, θα μου πει την howmany παλμούς Εχω ref παραπάνω μήνυμα,,,στην calulation των σημάτων acostic αυτό βοηθά πολύ στη δύναμη clulating υλικό,,,

 
Όταν (reset = 1) τότε dout = ref.value.
Όταν (reset = 0 και DIN> dout) τότε dout = din, το χρονόμετρο αρχίζει να μετράει από την αρχή (0),
της εκκαθάρισης της εξόδου (σήμα) σταθερή.
Όταν επαναφέρετε και din = 0 <dout τότε αυξάνει το περιεχόμενό χρονόμετρο για κάθε αύξηση της ακμής του ρολογιού παλμό.Όταν φτάνει στο τέλος κατάσταση (12 αυτή την περίπτωση) θα επαναφέρει τον εαυτό της και καθορίζει το σήμα σταθερή.
Το κύκλωμα είναι μια διαρθρωτική κώδικα.Η πρώτη δήλωση οντότητας (pick_det) είναι το σύνολο της συσκευής.Στην αρχιτεκτονική το πρώτο συστατικό (d_p) είναι το συγκριτικό, το δεύτερο - το χρονόμετρο.U1 και U2 είναι instantiations από τα συστατικά.
Θα κάνω κάποιες αλλαγές για να μετρούν πόσες φορές η συμβολή είναι υψηλότερη από την τιμή αναφοράς.

 
ναι, πρέπει να μετρούν πόσες φορές την είσοδο είναι υψηλότερα από την τιμή αναφοράς,,, εδώ im γραπτώς την καλή εξήγηση μπορεί να δώσει tht i,,,

όταν επαναφέρετε = 1 τότε το σύστημα shuld σταματήσει ή να μην λειτουργούν

τώρα whn reset = 1 THN

dout = ανάκαμψη αξία των din (βρόχου θα λειτουργήσει ως ur 1η ίδιο κωδικό)

αν διαμέσου>
αναφ. THN αύξηση αυτή shuld μετράνε
και αν din <αναφ. πω για 12 CLK pules THN reset = 1 και sys θα σταματήσει,,,,

τώρα για να αρχίσει και πάλι να sys έργο μας shuld manualy να επαναφέρετε = 0

Πιστεύω ότι αυτό είναι λίγο σαφές,,,

 

Welcome to EDABoard.com

Sponsor

Back
Top