¿Cómo se escribe el código Verilog para el codificador de cabina modificado?
`` `Verilog
módulo modificado_booth_encoder (
Entrada [3:0] multiplicando, // multiplicando de 4 bits
Entrada [3:0] multiplicador, // multiplicador de 4 bits
salida [7:0] producto // producto de 8 bits
);
// registros internos para productos parciales
reg [7:0] parcial_product [0:3];
// Inicialización de productos parciales a 0
comienzo inicial
parcial_product [0] <=0;
parcial_product [1] <=0;
parcial_product [2] <=0;
parcial_product [3] <=0;
fin
// lógica de codificación de stand
siempre @(*) comienza
// iterar a través de cada bit del multiplicador
para (entero i =0; i <4; i =i + 1) Comienza
// Verifique los patrones de codificación de stand
Caso ({multiplicador [i], multiplicador [i-1]})
2'B00:comenzar
parcial_product [i] <=parcial_product [i];
fin
2'B01:Comienza
parcial_product [i] <=parcial_product [i] + multiplicand;
fin
2'B10:Comienza
parcial_product [i] <=parcial_product [i] - multiplicand;
fin
2'B11:comienza
parcial_product [i] <=parcial_product [i];
fin
Valor predeterminado:comenzar
parcial_product [i] <=parcial_product [i];
fin
funda
fin
fin
// Calcular el producto final
asignar producto =parcial_product [0] + (parcial_product [1] <<1) + (parcial_product [2] <<2) + (parcial_product [3] <<3);
módulo final
`` `` ``
Explicación:
1. Entradas y salidas:
- `Multiplicand`:entrada de 4 bits que representa el multiplicando.
- `Multiplicador`:entrada de 4 bits que representa el multiplicador.
- `Producto`:salida de 8 bits que representa el producto de multiplicando y multiplicador.
2. Registros internos:
- `parcial_product`:una matriz de 4 registros, cada uno almacenando un producto parcial. Estos registros se actualizarán en función de la codificación de la cabina.
3. Inicialización:
- El bloque inicial establece todos los registros de productos parciales a 0 al comienzo.
4. Lógica de codificación de cabina:
- El bloque `siempre @(*)` implementa el algoritmo de codificación de la cabina.
- Se itera a través de cada bit del multiplicador (desde MSB hasta LSB).
- Para cada bit, verifica el bit actual y el bit anterior para determinar el patrón de codificación de la cabina.
- Basado en el patrón, realiza la operación apropiada en el producto parcial:
- 00: No hay operación (el producto parcial permanece sin cambios).
- 01: Agregue el multiplicando al producto parcial.
- 10: Resta el multiplicando del producto parcial.
- 11: No hay operación (el producto parcial permanece sin cambios).
5. Cálculo final del producto:
- La declaración `Asignar` calcula el producto final agregando los productos parciales desplazados.
- Cada producto parcial se desplaza a la izquierda por su posición de bits correspondiente.
Cómo funciona el código:
El algoritmo de codificación de cabina modificado reemplaza el proceso de multiplicación con una serie de adiciones y sustracciones basadas en los patrones en el multiplicador. Al inspeccionar pares de bits consecutivos en el multiplicador, podemos realizar eficientemente la multiplicación.
Ejemplo:
Suponga `multiplicand =5` (binario:` 0101`) y `multiplicador =3` (binario:` 0011`).
1. iteración 1: `Multiplicador [3:2] =00` - Sin operación.
2. iteración 2: `Multiplicador [2:1] =01` - Agregar` multiplicand` a `parcial_product [1]`.
3. iteración 3: `Multiplicador [1:0] =11` - Sin operación.
Después del bucle, tendremos:
- `parcial_product [0] =0`
- `parcial_product [1] =5`
- `parcial_product [2] =0`
- `parcial_product [3] =0`
Finalmente, `producto =0 + (5 <<1) + (0 <<2) + (0 <<3) =10` (binario:` 1010`), que es el producto correcto de 5 y 3.
- ·Cómo Stick un registrador de cinta Mini debajo de un escritorio
- ·¿Cómo puedo convertir una grabación de audio a texto
- ·¿Puedes conseguir una grabadora de pantalla y la tarjeta de captura deslumbra?
- ·¿Cómo se envía sonidos de su computadora a teléfono?
- ·Viene el Olympus WS311M Con Dragon Software
- ·¿Qué es la codificación de audio digital?
- ·Cómo convertir hablado de audio a texto
- ·¿Alguien conoce algún buen programa de captura de pantalla gratuito para grabar juegos que también grabe audio?
- ¿Cuáles son algunas opciones de software de grabación recomendadas para usuarios de Linux?
- ¿Existe algún programa de grabación que pueda cambiar el tono de mi voz a una nota o melodía determinada tocada con una guitarra, etc.?
- Cómo convertir los auriculares de su iPod en Micrófonos
- ¿Es grabable y grabadora lo mismo?
- Cómo solucionar problemas de una Tascam DR1
- ¿Cómo se guarda una canción en PC o móvil DESDE tube?
