verilog κώδικα για Hamming κωδικοποιητή

S

sniya

Guest
γεια
ανάγκη για verilog κώδικα Hamming κώδικα
plz απάντηση ...........

 
Είμαι έχοντας για ίδιο κωδικό σε VHDL. Δείτε το κατά πόσο είναι χρήσιμο να σας ή μη.
Αν ΧΡΗΣΙΜΕΣ PLEASE HELP ΤΥΠΟΣ κουμπί.

Κωδικός για Hamming Distance Transmission & Reception.

- Πρόγραμμα για Hamming ΚΩΔΙΚΟΣ ΔΙΑΒΙΒΑΣΗΣ & ΥΠΟΔΟΧΗΣ.
- (Ηλεκτροπαραγωγά κώδικας Hamming parellely, σειριακά ssending αυτό &
- Παράλληλα για την παραλαβή της κατά λάθος detecttion & διόρθωση.)
- (ΠΡΟΣΟΧΗ: - αντιστοιχίσετε το PIN ΤΟΥ CPLDD ΣΤΟ CLK I / P, από την οποία μπορείτε να επιλέξετε ΤΟ
- CLOCK με διακόπτη ΠΑΡΕΧΟΝΤΑΙ ΓΙΑ ΤΗ CPLLD BOARD.)

IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
χρήση IEEE.std_logic_arith.all?
χρήση IEEE.std_logic_unsigned.all?
οντότητα hammgen είναι
λιμένα (
δ: σε STD_LOGIC_VECTOR (3 downto 0)? - i / p μήνυμα δυφία
CLK: σε STD_LOGIC? - Ρολόι I / P
δέκα: σε STD_LOGIC? - πομπού-επιτρέψουν (επιτρέψει MUX)
πλανώμαι: σε STD_LOGIC? - σφάλμα εισαγωγή I / P
ren: σε STD_LOGIC? - δέκτη-επιτρέψουν (επιτρέψει Demux)
DH: out STD_LOGIC_VECTOR (7 downto 1)? - Detected & διορθωθεί κώδικας Hamming.
σφάλμα: out STD_LOGIC_VECTOR (6 downto 0) - 7-τμήμα O / P για την εμφάνιση σφάλματος.
)?
τέλος hammgen?

hammgen_arch αρχιτεκτονική του είναι hammgen
h μήνυμα: STD_LOGIC_VECTOR (7 downto 1)?
mh μήνυμα: STD_LOGIC?
σήμα dmh: STD_LOGIC_VECTOR (7 downto 1)?
σήμα sipoh: STD_LOGIC_VECTOR (7 downto 1)?
σήμα ripoh: STD_LOGIC_VECTOR (7 downto 1)?
sum1 μήνυμα: STD_LOGIC?
sum2 μήνυμα: STD_LOGIC?
σήμα sum4: STD_LOGIC?
p1 μήνυμα: STD_LOGIC?
p2 μήνυμα: STD_LOGIC?
P4 μήνυμα: STD_LOGIC?
en μήνυμα: STD_LOGIC_VECTOR (7 downto 1)?
σήμα sum5: STD_LOGIC?
σήμα sum6: STD_LOGIC?
σήμα sum8: STD_LOGIC?
σήμα y: STD_LOGIC_VECTOR (7 downto 0)?
σήμα countx: STD_LOGIC_VECTOR (2 downto 0)?
σήμα countr: STD_LOGIC_VECTOR (2 downto 0)?

αρχίζω
- Πρόγραμμα για την ενότητα Hamming ΚΩΔΙΚΟΣ GENERATTION.

διαδικασία (sum1, sum2, sum4, p1, p2, p4, δ)
αρχίζω
sum1 <= δ (0) XOR δ (1) XOR δ (3)? - Ισοτιμία bits βρίσκονται εδώ.
sum2 <= δ (0) XOR δ (2) XOR δ (3)?
sum4 <= δ (1) XOR δ (2) XOR δ (3)?
αν sum1 ='0 'τότε
p1 <='0 '?
άλλος
p1 <='1 '?
τέλος, αν?

αν sum2 ='0 'τότε
p2 <='0 '?
άλλος
p2 <='1 '?
τέλος, αν?

αν sum4 ='0 'τότε
p4 <='0 '?
άλλος
p4 <='1 '?
τέλος, αν?
τέλος της διαδικασίας?

h (1) <= p1? - Η parity bits βρέθηκαν αναφέρονται στον παραπάνω διαδικασία μπλοκ
h (2) <= p2? - να τίθενται σε μητρώο "h" (που δηλώθηκαν ως σήμα).
h (3) <= δ (0)?
h (4) <= P4?
h (5) <= d (1)?
h (6) <= d (2)?
h (7) <= d (3)?

- Πρόγραμμα για την ενότητα MUX & xmit μετράνε & iintroducing σφάλμα.

διαδικασία (CLK, countx, δέκα) - A 3-bit counter μέχρι O / P (countx) είναι συνδεδεμένο
αρχίσει - για να το επιλέξετε γραμμές του MUX που θα
αν CLK 'event και CLK ='1', στη συνέχεια - την αύξηση της ststus Επιλέξτε γραμμές
εάν δέκα ='1 'τότε - αυτόματα.
εάν (countx < "111" ή countx = "111"), τότε
countx <= countx 1?
άλλος
countx <= "000"?
τέλος, αν?
άλλος
countx <= "ZZZ"?
τέλος, αν?
τέλος, αν?
τέλος της διαδικασίας?

διαδικασία (countx, CLK, h, πλανώμαι, MH) - Σε αυτό το τμήμα της Hamming code bits αποστέλλονται
αρχίσει - thro 'το MUX.Εάν το σφάλμα I / p = 1 είναι σφάλμα
αν και clk'event CLK ='1 'τότε - έχει εισαχθεί στην Hamming κώδικα bit (μέσα
περίπτωση countx είναι - ότι λίγο συμπληρώνεται.)
όταν "000" => - MH είναι MUX o / σ.
αν πλανώμαι ='0 'τότε
MH <= h (7)?
άλλος
MH <= δεν h (7)?
τέλος, αν?
όταν
το "001" => MH <= h (6)?
αν πλανώμαι ='0 'τότε
MH <= h (6)?
άλλος
MH <= δεν h (6)?
τέλος, αν?
όταν "010" => MH <= h (5)?
αν πλανώμαι ='0 'τότε
MH <= h (5)?
άλλος
MH <= δεν h (5)?
τέλος, αν?
όταν "011" => MH <= h (4)?
αν πλανώμαι ='0 'τότε
MH <= h (4)?
άλλος
MH <= δεν h (4)?
τέλος, αν?
όταν "100" => MH <= h (3)?
αν πλανώμαι ='0 'τότε
MH <= h (3)?
άλλος
MH <= δεν h (3)?
τέλος, αν?
όταν "101" => MH <= h (2)?
αν πλανώμαι ='0 'τότε
MH <= h (2)?
άλλος
MH <= δεν h (2)?
τέλος, αν?
όταν "110" => MH <= h (1)?
αν πλανώμαι ='0 'τότε
MH <= h (1)?
άλλος
MH <= δεν h (1)?
τέλος, αν?
όταν οι άλλοι => Null?
τέλος περίπτωση?
τέλος, αν?
τέλος της διαδικασίας?

- Πρόγραμμα ενότητα για De-MUX & Λήψ.μετράνε.

διαδικασία (ren, CLK, countr, MH) - διαδικασία (r, CLK, ren, κανάλια, countr)
αρχίζω
αν CLK 'event και CLK ='1' τότε - Α 3 bit counter O / P
αν ren = «1» τότε -
όπως και με την MUX,
εάν (countr < "111" ή countr = "111"), στη συνέχεια - είναι να δοθεί η επιλογή
countr <= countr 1? - γραμμές.

dmh <= MH & dmh (7 downto 2)? - Εδώ αύξοντα να παραλλαγές
αλλού - μετατροπή του ληφθέντος
countr <= "000"? - αύξοντα Hamming κώδικα από την
- MUX (δηλαδή mh σήμα), γίνεται.
τέλος, αν? - (Shift μητρώο έννοια)
άλλος
countr <= "ZZZ"?
dmh <= "ZZZZZZZ"?
τέλος, αν?
τέλος, αν?
τέλος της διαδικασίας?
sipoh <= dmh? - Όταν ο αύξων δεδομένων (MH) μετατοπίζεται για να γίνει παράλληλα
- Το MSB πηγαίνει στην LSB θέση.Έτσι, η μετατοπίστηκε δυφία
- Των dmh (Demux O / P) που είναι αποθηκευμένα στο μητρώο ssipoh
ripoh (7) <= sipoh (1)? - (δηλώνονται ως σήμα), οι οποίοι τίθενται σε ripoh το μητρώο
ripoh (6) <= sipoh (2)? - (δηλώνονται ως σήμα) σε αντίστροφη σειρά.
ripoh (5) <= sipoh (3)?
ripoh (4) <= sipoh (4)?
ripoh (3) <= sipoh (5)?
ripoh (2) <= sipoh (6)?
ripoh (1) <= sipoh (7)?

- Πρόγραμμα για Hamming ΚΩΔΙΚΑ ΑΝΙΧΝΕΥΣΗΣ.

sum5 <= ripoh (1) XOR ripoh (3) XOR ripoh (5) XOR ripoh (7)? - Σφάλμα ανίχνευσης μέρος
sum6 <= ripoh (2) XOR ripoh (3) XOR ripoh (6) XOR ripoh (7)?
sum8 <= ripoh (4) XOR ripoh (5) XOR ripoh (6) XOR ripoh (7)?y (0) <= δεν sum8 και δεν sum6 και δεν sum5? - Αποκωδικοποιητή χρησιμοποιείται για την αποκωδικοποίηση
y (1) <= δεν sum8 και δεν sum6 και sum5? - η θέση του λίγο κατά λάθος.
y (2) <= δεν sum8 και sum6 και δεν sum5?
y (3) <= δεν sum8 και sum6 και sum5?
y (4) <= sum8 και δεν sum6 και δεν sum5?
y (5) <= sum8 και δεν sum6 και sum5?
y (6) <= sum8 και sum6 και δεν sum5?
y (7) <= sum8 και sum6 και sum5?en (1) <= y (1)? - Ο αποκωδικοποιητής O / P γραμμών είναι να δοθεί η
en (2) <= y (2)? -
enable (en, το οποίο έχει κηρυχθεί ως σήμα) i / p
en (3) <= y (3)? - ενός inverter, ώστε να συμπληρώσουν το λίγο σε
en (4) <= y (4)? - κατά λάθος.Η συμπλήρωση γίνεται με την επόμενη
en (5) <= y (5)? - διαδικασία μπλοκάρει.
en (6) <= y (6)?
en (7) <= y (7)?

διαδικασία (el, ripoh)
αρχίζω
en περίπτωση είναι
-
7.654.321όταν "0000001" => DH <= ripoh (7 downto 2) & δεν ripoh (1)? - Μόνο το λίγο σε πλάνη συμπληρώνεται
όταν "0000010" => DH <= ripoh (7 downto 3) & δεν ripoh (2) & ripoh (1)? - Να διατηρούνται αμετάβλητες.
όταν "0000100" => DH <= ripoh (7 downto 4) & δεν ripoh (3) & ripoh (2 downto 1)?
όταν "0001000" => DH <= ripoh (7 downto 5)
και δεν ripoh (4) & ripoh (3 downto 1)?
όταν "0010000" => DH <= ripoh (7 downto 6)
και δεν ripoh (5) & ripoh (4 downto 1)?
όταν "0100000" => DH <= ripoh (7)
και δεν ripoh (6) & ripoh (5 downto 1)?
όταν "1000000" => DH <= δεν ripoh (7) & ripoh (6 downto 1)?
όταν "0000000" => DH <= ripoh?
όταν οι άλλοι => Null?
τέλος περίπτωση?

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

 

Welcome to EDABoard.com

Sponsor

Back
Top