Come Scrivere Verilog per la selezione di una parte del bus

J

jfzhan

Guest
Cari tutti,

Ci sono un bus [0:100], B [0:15], e la lunghezza del registro [3:0].
La lunghezza del registro può essere impostato dall'utente.
Se la lunghezza = 0, il B [0:15] = A [0:15],
Se la lunghezza = 1, il B [0:15] = A [1:16],
Se la lunghezza = 2, il B [0:15] = A [2:17],
Se la lunghezza = 3, il B [0:15] = A [3:18], e così via.

posso scrivere come questo,
assegnare s_point = lunghezza;
assegnare e_point = lunghezza 15;
assegnare B [0:15] = A [s_point: e_point];

Il metodo migliore è il seguente metodo?

sempre @ (lunghezza o una) iniziano
caso (lunghezza)
0: B [0:15] = A [0:15];
1: B [0:15] = A [1:15];
2: B [0:15] = A [2:15];
...
15: B [0:15] = A [15:30];
endcase
fine

Non c'è alcun buon metodo per scrivere?

Grazie!

 
Salve,
Verilog non in pianura.Ma in SystemVerilog, si può fare:

Codice:assegnare B [0:15] = A [s_point : 15];
 
Credo che il modo migliore è

sempre @ (lunghezza o una) iniziano
caso (lunghezza)
0: B [0:15] = A [0:15];
1: B [0:15] = A [1:15];
2: B [0:15] = A [2:15];
...
15: B [0:15] = A [15:30];
endcase
fine

 

Welcome to EDABoard.com

Sponsor

Back
Top