Как построить логическую схему деления? [закрыто]

Я понимаю деление в двоичном формате, но применение его в схеме сбивает с толку. до сих пор я построил схемы сумматоров/вычитания и умножения. я думаю, что у меня должны быть дополнительные биты для битов счисления. простая схема, которая, возможно, даст мне представление о логической схеме деления.

Это слишком широко, просто взгляните на варианты, которые Википедия предлагает для алгоритмов деления . Вы не можете реализовать «простой» целочисленный делитель цифровой логики.
Деление обычно выполняется серией умножений, при этом каждый выходной бит выбирается последовательно.
Вы должны использовать очень маленький CPLD для выполнения вашего деления. Altera и Xilinx предоставляют необходимые для этого примитивы.

Ответы (1)

Отдельные частичные остатки должны быть получены из ранее вычисленных частичных остатков в цепочке. Так что это сложнее.

Это только для того, чтобы дать пинка, так сказать. Я не проверил это хорошо. Но я думаю, что это снижает подход. Однако это комбинаторно. Не уверен, что ты этого хочешь.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Выше приведено 8-битное делимое (A) и 4-битный делитель (B). (Ну, если я не ошибся в написании, что может быть и так.) Происходит перестроение. Если вы посмотрите на выход мультиплексора, вы увидите, что старший бит выходного сигнала просто отбрасывается, а младшие 3 бита заменяются на старшие три новой шины, где его младший бит происходит от следующего бита A. (деленное.) Вход стороны A следующего сумматора тогда представляет собой композицию, как описано. Кроме того, верхний «мультиплексор» на самом деле не является мультиплексором. Вместо этого я просто использовал этот символ для компаратора. это тестирование А [ 7 : 4 ] Б [ 3 : 0 ] , так как если эта часть A больше или равна, то для деления потребуется частное больше 4 бит. Надеюсь, так понятнее.

Выход вашего мультиплексора 2:1 находится на том же проводе, что и входы A. Это может быть приемлемо, если предположить, что вы можете отключить входы A, но в вашей схеме это невозможно. Таким образом, выход мультиплексора 2:1 будет постоянно конфликтовать с входами A. Или эти линии сливаются в 4:0? Я имею в виду соединение A[1] с [3:0]->[4:1]
@ jbord39: Там есть перестроения. Разве ты их не видишь? Возможно, мне придется отредактировать это во что-то меньшее!
@ jbord39: Надеюсь, так понятнее. Мне также, возможно, придется подумать о деталях больше. Но основная идея состоит в том, чтобы инвертировать B (поэтому перенос всегда устанавливается равным «1») и выполнять каждый этап, как показано.
Довольно интерпретирующая схема. Возможно, вы захотите пометить узлы до и после каждой смены полосы движения. Например, область, которая производит Q[2] (которая является CO предыдущегоAdder[3], если я правильно понимаю). CO предыдущегоAdder[2:0] используется как выбор для 2to1Mux[2:0]. Возможно, даже если просто указать количество параллельных ворот, представленных каждым символом, это станет намного яснее.
@ jbord39: Хотел бы я знать, как использовать этот редактор для создания более толстых линий шины. Тогда тонкую линию можно было бы рассматривать как один бит. Не уверен. Я посмотрю, смогу ли я улучшить диаграмму. Позвольте мне подумать.
@ jbord39: Ну, я попробовал еще раз. Становится утомительно делать намного лучше. Надеюсь, это прояснит ситуацию (и/или прояснит ошибки, которые я допустил).