tutorial software programacion librerias ejemplos bibliotecas arquitectura logic hardware vhdl verilog

logic - software - ¿Cómo implementaría esta lógica digital en Verilog o VHDL?



vhdl software (1)

¿Algo como esto?

module scheduler #( parameter K = 10 ) ( input wire [K:1] current, input wire [K:1] mask, output reg [K:1] next ); reg [K:1] a; reg [K:1] b; //''[i+1]'' busses that wrap. // eg, for a 4-bit bus... // a[i]: a[4],a[3],a[2],a[1] (obviously...) // a_wrap[i]: a[1],a[4],a[3],a[2] wire [K:1] mask_wrap = { mask[1],mask[K:2] }; wire [K:1] a_wrap = { a[1], a[K:2] }; wire [K:1] current_wrap = { current[1], current[K:2] }; integer i; always @( * ) begin for( i=1; i<=K; i=i+1 ) begin a[i] = ~current_wrap[i] && b[i]; b[i] = a_wrap[i] || mask_wrap[i]; next[i] = ~a[i] && mask_wrap[i]; end end endmodule

(Descargo de responsabilidad: con pelusa pero no simulado)

Publiqué una respuesta a otra pregunta de stackoverflow que requiere que se implemente una lógica digital en Verilog o VHDL para que pueda programarse en un FPGA.

¿Cómo implementaría el siguiente diagrama lógico en Verilog, VHDL o cualquier otro lenguaje de descripción de hardware?

Los cuadros numerados representan bits en un campo. Cada campo tiene K bits, y los bits para la corriente y la máscara serán proporcionados por un sistema informático (usando un registro bloqueado o equivalente). Los bits de la próxima se leerán en el mismo sistema informático.

texto alternativo http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg

Ver también: esta pregunta stackoverflow