Necesita ayuda para ordenar una cadena de 32 bits

0

Tengo que programar un circuito combinado que ordena una matriz de 32 bits como esta: 10011011010101010101010101010110010 == > 00000000000000011111111111111111

La entrada debe ser paralela y de 32 bits. La salida debe ser serial y 32 tacts.

Espero que quede claro lo que quiere el problema. No me está yendo muy bien con verilog, así que necesito ayuda con un proyecto. Ni siquiera sé cómo empezar.

    
pregunta Alex Mihai

2 respuestas

2

Creo que ver esto como ordenar es una forma complicada de resolver este problema. Barajar los bits hasta el final en Verilog sin duda sería un dolor.

A menos que no haya entendido bien el problema, parece que se reduce a contar los bits que se establecen en 1 y emitir una cadena que tiene este número de 1 a la derecha. Creo que esta sería una forma más adecuada de resolver este problema en Verilog.

La parte más difícil aquí es contar los bits. Se preguntó cómo hacerlo aquí y aquí . Una forma sencilla es agregar todos los bits (y confiar en el optimizador para generar una forma eficiente de combinar la lógica).

Luego, envíe en serie el número apropiado de 0 seguido del número apropiado de 1 (dependiendo del resultado).

    
respondido por el dim
1

Comience por reducir el problema. ¿Y si solo tuvieras dos bits? Entonces tendrías la tabla de verdad

0 0 => 0 0
0 1 => 0 1
1 0 => 0 1
1 1 => 1 1

Observe que el LSB es el OR de los bits de entrada y el MSB es el AND de los bits de entrada. Luego piense en una estructura repetitiva que podría aplicarse para darle el resultado que está buscando.

    
respondido por el dave_59

Lea otras preguntas en las etiquetas