Obecnie buduję 16-bitową jednostkę ALU przy użyciu Logisim (tj. Tylko bramki logiczne) i utknąłem w procesie podziału. Obecnie tylko przy użyciu prostego standardu „pętli algorytmu podziału” (jak pokazano poniżej):Algorytm szybkiego podziału liczb binarnych
- odczyt wartości wejściowych;
- Porównaj wartości wejściowe. Poczekaj na zakończenie procesu porównywania;
- Jeśli A < B przejdź do kroku 10. Jeśli A ≥ B, przejdź do następnego kroku;
- Odejmij B od A;
- Poczekaj, aż proces odejmowania zakończy się;
- Dodaj do policzenia;
- Poczekaj, aż proces liczenia się zakończy;
- Zapis wartości z procesu odejmowania do wejścia;
- Przejdź do kroku 1;
- Odpowiedź jest liczba pozostała
To jednak trwa bardzo długo dla procesów z dużymi odpowiedzi (powtarzając cykl 300 Tick 65,000 razy nie jest zabawa). Zastanawiam się tylko, czy istnieją podobne algorytmy, które są szybsze (używają wyłącznie dodawania i/lub odejmowania i/lub mnożenia i dowolnej logiki boolowskiej), które mogłyby być zaimplementowane za pomocą bramek logicznych. Każda pomoc lub pomysły będą mile widziane! Fraser
Z pewnością istnieją inne algorytmy podziału. Na które z nich patrzysz i co sprawia, że nie nadają się do Twojej pracy? – delnan