¿Cómo escribir una declaración para generar para generar múltiples instancias de este circuito de red de clasificación paralela?

1

Estoy tratando de implementar una red de clasificación paralela. Tengo curiosidad por saber cómo se escribiría una declaración para generar 128 instancias de este circuito de clasificación.

Se supone que ordena 256 números de 8 bits de menor a mayor sin un reloj que use solo lógica combinatoria.

Este es un enlace al documento en la red de clasificación que estoy tratando de usar:

enlace

Los enlaces al circuito y al diagrama de la red de clasificación se encuentran a continuación.

    
pregunta user124757

1 respuesta

1

Me gusta un desafío y me tomó varios intentos, pero lo conseguí trabajando para datos de W bits de ancho y D entradas. (D es una potencia de dos). Hice trampa un poco porque soy bastante más competente con Verilog. Esta es la vista RTL que me dio Xilinx:

No estoy regalando el código, solo para evitar que este sitio web se convierta en un '¡Ver: código libre!' pero puedo dar algunos consejos:

Comencé con la definición de D * (D + 1) buses de 8 bits. Esto hace que pueda usar el mismo nombre de bus en cualquier lugar de mi generación.

Conecte los primeros buses D a sus entradas, los últimos buses D a sus salidas.

En la etapa imparable usted pasa dos autobuses a lo largo de los cuales los índices de autobuses son muy desagradables. Una solución simple es que en la parte superior e inferior de cada estado impar renombro el bus. Para el bus superior esto es:
assign bus[stage*d+d] = bus[stage*d];
Ahora siempre tienes D buses por etapa y todos los bucles se vuelven regulares para los bucles.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas