Attualmente sto creando un ALU a 16 bit utilizzando Logisim (vale a dire solo porte logiche) e sono bloccato su un processo di divisione. Attualmente sto semplicemente utilizzando il semplice standard "algoritmo di divisione loop" (come illustrato di seguito):Algoritmo di divisione rapida per numeri binari
- leggere i valori di input;
- Confrontare i valori di input. Attendere fino al termine del processo di confronto;
- Se A < B andare al punto 10. Se A ≥ B, andare al passaggio successivo;
- Sottrarre B da A;
- Attendere fino al termine del processo di sottrazione;
- Aggiungi uno a contare;
- Attendere fino al termine del processo di conteggio;
- Scrive il valore dal processo di sottrazione all'input;
- Passare al punto 1;
- risposta è conteggio restante Un
Questo, tuttavia, richiede un tempo molto lungo per processi con grandi risposte (ripetendo un ciclo di 300 tick 65.000 volte non è divertente). Mi chiedo se ci sono algoritmi simili che sono più veloci (che utilizzano esclusivamente addizione e/o sottrazione e/o moltiplicazione e qualsiasi logica booleana) che potrebbero essere implementati usando porte logiche. Qualsiasi aiuto o idea sarebbe molto apprezzato! Fraser
Ci sono certamente altri algoritmi di divisione. Quali hai guardato e cosa li rende inadatti al tuo lavoro? – delnan