S
sjamil02
Guest
Όλα Hi,
Είμαι νέος στην ψηφιακή σχεδίαση.Προσπάθησα να προσομοίωση κωδικό μου VHDL, συμπεριλαμβανομένης της testbench (βλέπε παρακάτω).
IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
tb_keypad οντότητα
τέλος tb_keypad?
συμπεριφορά αρχιτεκτονική του είναι tb_keypad
keypad_in μήνυμα: std_logic_vector (6 downto 0)?
- Dec_in σήμα: std_logic_vector (3 downto 0)?
CLK μήνυμα: std_logic: = '0 '?
reset_N μήνυμα: std_logic?
καταμέτρηση μήνυμα: std_logic_vector (2 downto 0)?
- Καταμέτρηση μήνυμα: std_logic?
dec_out μήνυμα: std_logic_vector (3 downto 0)?
accept_out μήνυμα: std_logic?
error_out μήνυμα: std_logic?
συνιστώσα πληκτρολόγιο
λιμένα (keypad_in: σε std_logic_vector (6 downto 0)?
- Dec_in: σε std_logic_vector (3 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
count: std_logic_vector InOut (2 downto 0)?
dec_out: std_logic_vector InOut (3 downto 0)?
- Καταμέτρηση: έξω std_logic?
accept_out: std_logic έξω?
error_out: std_logic out)?
τέλος συνιστώσα?
αρχίσει
test_unit: πληκτρολόγιο
λιμένα χάρτη (keypad_in => keypad_in,
CLK => CLK,
count = μετράνε>,
dec_out = dec_out>,
reset_N = reset_N>,
accept_out = accept_out>,
error_out => error_out)?test_block: block
αρχίσει
<Keypad_in = "0001010",
"0000010" μετά από 100 ns,
"0000100" μετά από 200 ns,
"0000110" μετά από 300 ns,
"0001000" μετά από 400 ns,
"0001011" μετά από 500 ns,
"1111010" μετά από 600 ns,
"1110010" μετά από 700 ns,
"1110100" μετά από 800 ns,
"1110110" μετά από 900 ns,
"1111001" μετά το 1000 ns,
"1111011" μετά το 1100 ns?
<Reset_N = «0», «1» μετά από 50 ns, «0» μετά από 100 ns, «0» μετά από 200 ns?
<CLK = δεν CLK μετά από 30 ns?
τέλος μπλοκ?
συμπεριφορά τέλος?IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
keypad_dec_lb οντότητα
τέλος keypad_dec_lb?decoder_logicblock αρχιτεκτονική του είναι keypad_dec_lb
σήματος σύνδεση: std_logic_vector (3 downto 0)?
keypad_dec_lb συνιστώσα είναι
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic έξω?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος keypad_dec_lb συνιστώσα?
skey_pad μήνυμα: std_logic_vector (6 downto 0)?
sclk μήνυμα: std_logic?
sreset_N μήνυμα: std_logic?
slogblk_input μήνυμα: std_logic_vector (3 downto 0)?
saccept_out μήνυμα: std_logic?
serror_out μήνυμα: std_logic?
sdec_out μήνυμα: std_logic_vector (0 έως 3)?
αρχίσει
keypad_unit: keypad_dec_lb
λιμένα χάρτη (key_pad> = skey_pad,
CLK => sclk,
reset_N = sreset_N>,
logblk_input = sdec_out>,
accept_out = saccept_out>,
error_out = serror_out>,
dec_out => συνδεθείτε
)?
decoder_logicblock τέλος?IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
πληκτρολόγιο οντότητα
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic out: = '0 '?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος πληκτρολόγιο?Αρχιτεκτονική rtl_decoder του πληκτρολογίου είναι
αρχίσει
διαδικασία (CLK)
αρχίσει
key_pad υπόθεση
ΟΤΑΝ "0110111" => dec_out <= "0001"?
ΟΤΑΝ "1010111" => dec_out <= "0010"?
ΟΤΑΝ "1100111" => dec_out <= "0011"?
ΟΤΑΝ "0111011" => dec_out <= "0100"?
ΟΤΑΝ "1011011" => dec_out <= "0101"?
ΟΤΑΝ "1101011" => dec_out <= "0110"?
ΟΤΑΝ "0111101" => dec_out <= "0111"?
ΟΤΑΝ "1011101" => dec_out <= "1000"?
ΟΤΑΝ "1101101" => dec_out <= "1001"?
ΟΤΑΝ "0111110" => dec_out <= "0000"?
ΟΤΑΝ "1011110" => dec_out <= "1010"?
ΟΤΑΝ "1101110" => dec_out <= "1011"?
Όταν οι άλλοι => dec_out <= "XXXX"?
περίπτωση λήξης?
διαδικασία τέλος?
rtl_decoder τέλος?
IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
keypad_lb οντότητα
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic out: = '0 '?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος keypad_lb?logic_block_rtl αρχιτεκτονική του είναι keypad_lb
σήμα εισόδου: std_logic_vector (3 downto 0)?
σήματος output_1: std_logic_vector (3 downto 0)?
σήματος output_2: std_logic_vector (3 downto 0)?
σήματος output_3: std_logic_vector (3 downto 0)?
σήματος output_4: std_logic_vector (3 downto 0)?
σήματος output_5: std_logic_vector (3 downto 0)?
σήματος output_6: std_logic_vector (3 downto 0)?
ΤΥΠΟΣ byte_cnt IS (cnt1, cnt2, cnt3, cnt4, cnt5, cnt6)?
ΣΗΜΑ byte_cnt_state: byte_cnt: = cnt1?
αρχίσει
διαδικασία (CLK, byte_cnt_state)
μεταβλητή count: ακέραιος: = 0?
αρχίσει
IF (reset_N = '1 ') ΤΟΤΕ
<Accept_out = "0"?
<Error_out = "0"?
count: = 0?
byte_cnt_state <= cnt1?
ΑΛΛΟ
byte_cnt_state <= cnt1?
τέλος, αν?
byte_cnt_state υπόθεση
όταν cnt1 =>
output_1 <= logblk_input?
εάν (output_1 = "1010"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt2?
αλλιώς
byte_cnt_state <= cnt2?
τέλος, αν?
όταν cnt2 =>
output_2 <= logblk_input?
εάν (output_2 = "0010"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt3?
αλλιώς
byte_cnt_state <= cnt3?
τέλος, αν?
όταν cnt3 =>
output_3 <= logblk_input?
εάν (output_3 = "0100"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt3?
αλλιώς
byte_cnt_state <= cnt3?
τέλος, αν?
όταν cnt4 =>
output_4 <= logblk_input?
εάν (output_4 = "0110"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt5?
αλλιώς
byte_cnt_state <= cnt5?
τέλος, αν?
όταν cnt5 =>
output_5 <= logblk_input?
εάν (output_1 = "1000"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt6?
αλλιώς
byte_cnt_state <= cnt6?
τέλος, αν?
όταν cnt6 =>
output_6 <= logblk_input?
εάν (output_1 = "1011"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt1?
αλλιώς
byte_cnt_state <= cnt1?
τέλος, αν?
όταν οι άλλοι =>
byte_cnt_state <= cnt1?
περίπτωση λήξης?
if (count = 6), στη συνέχεια
<Accept_out = '1 '?
<Error_out = "0"?
byte_cnt_state <= cnt1?
αλλιώς
<Accept_out = "0"?
<Error_out = '1 '?
byte_cnt_state <= cnt1?
τέλος, αν?
διαδικασία τέλος?
logic_block_rtl τέλος?
************************************************** *****************
Μπορώ να καταρτίζουν το αρχείο με επιτυχία, ωστόσο αυτό gaves σφάλμα όταν θα ξεκινήσει η προσομοίωση μου.
# ** Error: C: / ModelSim 6.4/VHDL/Keypad/src/KeypadTB.vhd (42): Bad προεπιλογή δεσμευτική για παράδειγμα συνιστώσα "test_unit: πληκτρολόγιο".
# (Component port "μετράνε" δεν είναι κατά της οντότητας.)
# ** Προειδοποίηση: [1] C: / ModelSim 6.4/VHDL/Keypad/src/KeypadTB.vhd (42): (Vopt-3473), Component παράδειγμα "test_unit: πληκτρολόγιο" δεν είναι συνδεδεμένο.
# Βελτιστοποίηση απέτυχε
# Σχεδιασμού φόρτωσης Error
Παρακαλώ βοηθήστε.
εβίβα
sj
Είμαι νέος στην ψηφιακή σχεδίαση.Προσπάθησα να προσομοίωση κωδικό μου VHDL, συμπεριλαμβανομένης της testbench (βλέπε παρακάτω).
IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
tb_keypad οντότητα
τέλος tb_keypad?
συμπεριφορά αρχιτεκτονική του είναι tb_keypad
keypad_in μήνυμα: std_logic_vector (6 downto 0)?
- Dec_in σήμα: std_logic_vector (3 downto 0)?
CLK μήνυμα: std_logic: = '0 '?
reset_N μήνυμα: std_logic?
καταμέτρηση μήνυμα: std_logic_vector (2 downto 0)?
- Καταμέτρηση μήνυμα: std_logic?
dec_out μήνυμα: std_logic_vector (3 downto 0)?
accept_out μήνυμα: std_logic?
error_out μήνυμα: std_logic?
συνιστώσα πληκτρολόγιο
λιμένα (keypad_in: σε std_logic_vector (6 downto 0)?
- Dec_in: σε std_logic_vector (3 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
count: std_logic_vector InOut (2 downto 0)?
dec_out: std_logic_vector InOut (3 downto 0)?
- Καταμέτρηση: έξω std_logic?
accept_out: std_logic έξω?
error_out: std_logic out)?
τέλος συνιστώσα?
αρχίσει
test_unit: πληκτρολόγιο
λιμένα χάρτη (keypad_in => keypad_in,
CLK => CLK,
count = μετράνε>,
dec_out = dec_out>,
reset_N = reset_N>,
accept_out = accept_out>,
error_out => error_out)?test_block: block
αρχίσει
<Keypad_in = "0001010",
"0000010" μετά από 100 ns,
"0000100" μετά από 200 ns,
"0000110" μετά από 300 ns,
"0001000" μετά από 400 ns,
"0001011" μετά από 500 ns,
"1111010" μετά από 600 ns,
"1110010" μετά από 700 ns,
"1110100" μετά από 800 ns,
"1110110" μετά από 900 ns,
"1111001" μετά το 1000 ns,
"1111011" μετά το 1100 ns?
<Reset_N = «0», «1» μετά από 50 ns, «0» μετά από 100 ns, «0» μετά από 200 ns?
<CLK = δεν CLK μετά από 30 ns?
τέλος μπλοκ?
συμπεριφορά τέλος?IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
keypad_dec_lb οντότητα
τέλος keypad_dec_lb?decoder_logicblock αρχιτεκτονική του είναι keypad_dec_lb
σήματος σύνδεση: std_logic_vector (3 downto 0)?
keypad_dec_lb συνιστώσα είναι
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic έξω?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος keypad_dec_lb συνιστώσα?
skey_pad μήνυμα: std_logic_vector (6 downto 0)?
sclk μήνυμα: std_logic?
sreset_N μήνυμα: std_logic?
slogblk_input μήνυμα: std_logic_vector (3 downto 0)?
saccept_out μήνυμα: std_logic?
serror_out μήνυμα: std_logic?
sdec_out μήνυμα: std_logic_vector (0 έως 3)?
αρχίσει
keypad_unit: keypad_dec_lb
λιμένα χάρτη (key_pad> = skey_pad,
CLK => sclk,
reset_N = sreset_N>,
logblk_input = sdec_out>,
accept_out = saccept_out>,
error_out = serror_out>,
dec_out => συνδεθείτε
)?
decoder_logicblock τέλος?IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
πληκτρολόγιο οντότητα
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic out: = '0 '?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος πληκτρολόγιο?Αρχιτεκτονική rtl_decoder του πληκτρολογίου είναι
αρχίσει
διαδικασία (CLK)
αρχίσει
key_pad υπόθεση
ΟΤΑΝ "0110111" => dec_out <= "0001"?
ΟΤΑΝ "1010111" => dec_out <= "0010"?
ΟΤΑΝ "1100111" => dec_out <= "0011"?
ΟΤΑΝ "0111011" => dec_out <= "0100"?
ΟΤΑΝ "1011011" => dec_out <= "0101"?
ΟΤΑΝ "1101011" => dec_out <= "0110"?
ΟΤΑΝ "0111101" => dec_out <= "0111"?
ΟΤΑΝ "1011101" => dec_out <= "1000"?
ΟΤΑΝ "1101101" => dec_out <= "1001"?
ΟΤΑΝ "0111110" => dec_out <= "0000"?
ΟΤΑΝ "1011110" => dec_out <= "1010"?
ΟΤΑΝ "1101110" => dec_out <= "1011"?
Όταν οι άλλοι => dec_out <= "XXXX"?
περίπτωση λήξης?
διαδικασία τέλος?
rtl_decoder τέλος?
IEEE βιβλιοθήκη?
χρήση IEEE.std_logic_1164.all?
keypad_lb οντότητα
λιμένα (key_pad: σε std_logic_vector (6 downto 0)?
CLK: σε std_logic?
reset_N: σε std_logic?
logblk_input: σε std_logic_vector (3 downto 0)?
accept_out: std_logic out: = '0 '?
error_out: std_logic έξω?
dec_out: std_logic_vector έξω (0 έως 3))?
τέλος keypad_lb?logic_block_rtl αρχιτεκτονική του είναι keypad_lb
σήμα εισόδου: std_logic_vector (3 downto 0)?
σήματος output_1: std_logic_vector (3 downto 0)?
σήματος output_2: std_logic_vector (3 downto 0)?
σήματος output_3: std_logic_vector (3 downto 0)?
σήματος output_4: std_logic_vector (3 downto 0)?
σήματος output_5: std_logic_vector (3 downto 0)?
σήματος output_6: std_logic_vector (3 downto 0)?
ΤΥΠΟΣ byte_cnt IS (cnt1, cnt2, cnt3, cnt4, cnt5, cnt6)?
ΣΗΜΑ byte_cnt_state: byte_cnt: = cnt1?
αρχίσει
διαδικασία (CLK, byte_cnt_state)
μεταβλητή count: ακέραιος: = 0?
αρχίσει
IF (reset_N = '1 ') ΤΟΤΕ
<Accept_out = "0"?
<Error_out = "0"?
count: = 0?
byte_cnt_state <= cnt1?
ΑΛΛΟ
byte_cnt_state <= cnt1?
τέλος, αν?
byte_cnt_state υπόθεση
όταν cnt1 =>
output_1 <= logblk_input?
εάν (output_1 = "1010"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt2?
αλλιώς
byte_cnt_state <= cnt2?
τέλος, αν?
όταν cnt2 =>
output_2 <= logblk_input?
εάν (output_2 = "0010"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt3?
αλλιώς
byte_cnt_state <= cnt3?
τέλος, αν?
όταν cnt3 =>
output_3 <= logblk_input?
εάν (output_3 = "0100"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt3?
αλλιώς
byte_cnt_state <= cnt3?
τέλος, αν?
όταν cnt4 =>
output_4 <= logblk_input?
εάν (output_4 = "0110"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt5?
αλλιώς
byte_cnt_state <= cnt5?
τέλος, αν?
όταν cnt5 =>
output_5 <= logblk_input?
εάν (output_1 = "1000"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt6?
αλλιώς
byte_cnt_state <= cnt6?
τέλος, αν?
όταν cnt6 =>
output_6 <= logblk_input?
εάν (output_1 = "1011"), τότε
count: = αριθμός 1?
byte_cnt_state <= cnt1?
αλλιώς
byte_cnt_state <= cnt1?
τέλος, αν?
όταν οι άλλοι =>
byte_cnt_state <= cnt1?
περίπτωση λήξης?
if (count = 6), στη συνέχεια
<Accept_out = '1 '?
<Error_out = "0"?
byte_cnt_state <= cnt1?
αλλιώς
<Accept_out = "0"?
<Error_out = '1 '?
byte_cnt_state <= cnt1?
τέλος, αν?
διαδικασία τέλος?
logic_block_rtl τέλος?
************************************************** *****************
Μπορώ να καταρτίζουν το αρχείο με επιτυχία, ωστόσο αυτό gaves σφάλμα όταν θα ξεκινήσει η προσομοίωση μου.
# ** Error: C: / ModelSim 6.4/VHDL/Keypad/src/KeypadTB.vhd (42): Bad προεπιλογή δεσμευτική για παράδειγμα συνιστώσα "test_unit: πληκτρολόγιο".
# (Component port "μετράνε" δεν είναι κατά της οντότητας.)
# ** Προειδοποίηση: [1] C: / ModelSim 6.4/VHDL/Keypad/src/KeypadTB.vhd (42): (Vopt-3473), Component παράδειγμα "test_unit: πληκτρολόγιο" δεν είναι συνδεδεμένο.
# Βελτιστοποίηση απέτυχε
# Σχεδιασμού φόρτωσης Error
Παρακαλώ βοηθήστε.
εβίβα
sj