вых воздействия – числа 9, 13 и 3. Перед каждым тестом схема сбрасывается сигналом RESET.
Рис. 5.6. Макроэлемент автомата для проверки делимости на 3
Рис. 5.7. Временная диаграмма работы автомата проверки делимости на 3
Расширим функционал данного автомата, добавив возможность формирования результата деления на 3. Для этого, во-первых, добавим буферизованный выход DNEXT; во-вторых, опишем правила формирования сигналов на данном выходе при выполнении переходов. Результат формируется, как результат деления суммы остатка, соответствующего состоянию, в котором находился автомат, умноженному на 2, и текущего разряда анализируемого числа. Действия по переходам для данного автомата приведены в табл. 5.5.
66
Таблица 5.5 Правила формирования выхода DNEXT автомата проверки делимости на 3
Номер перехода |
Правило формирования DNEXT |
1 |
DNEXT<=’0’ |
2 |
DNEXT<=’0’ |
3 |
DNEXT<=’1’ |
4 |
DNEXT<=’0’ |
5 |
DNEXT<=’1’ |
6 |
DNEXT<=’1’ |
RESET |
DNEXT<=’0’ |
Графическое представление логики работы спроектированного автомата в нотации Xilinx Foundation FSM Editor’а приведено на рис. 5.8. Отметим, что в данном графе присутствуют все переходы, представленные в табл. 5.3, так как по ним осуществляется изменение сигнала на выходе DNEXT.
Рис. 5.8. Граф переходов автомата проверки делимости на 3 с формированием результата деления
67
Макроэлемент спроектированного автомата приведен на рис. 5.9. Временная диаграмма работы автомата проверки делимости на 3 с формированием результата деления показана на рис. 5.10. Тестовые воздействия – числа 9, 13 и 3.
Рис. 5.9. Макроэлемент автомата для проверки делимости на 3 с формированием результата деления
Рис. 5.10. Временная диаграмма работы автомата проверки делимости на 3 с формированием результата деления
Теперь синтезируем автомат для проверки делимости на 4, при этом воспользуемся свойством, что признаком делимости числа в двоичной системе счисления на 4 является наличие двух нулей в младших разрядах (фактически мы синтезируем автомат (2×2)). Синтез данного автомата не вызывает особых сложностей; состояния автомата и переходы между ними приведены в табл. 5.6. Начальным состоянием автомата является S1, в которое автомат переходит по асинхронному входу RESET.
68
Принимающим состоянием является только S1, тогда значение на выходе RESULT можно задать согласно табл. 5.7. Графическое представление логики работы автомата приведено на рис. 5.11.
|
|
|
|
|
|
|
|
Таблица 5.6 |
|
|
|
Матрица переходов для автомата проверки делимости на 4 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
Из \ В |
|
|
S1 (00) |
|
S2(X1) |
|
S3(10) |
|
|
S1(00) |
|
1: not DATA and |
2: DATA and READ |
|
|
|
||
|
|
READ |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
S2(X1) |
|
|
|
3: DATA and READ |
4: not DATA and |
|
||
|
|
|
|
|
|
READ |
|
||
|
|
|
|
|
|
|
|
||
|
S3(10) |
|
5: not DATA and |
6: DATA and READ |
|
|
|
||
|
|
READ |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Таблица 5.7 |
|
|
Значение выхода RESULT в зависимости от состояния автомата проверки |
||||||||
|
|
|
|
делимости на 4 |
|
|
|
||
|
|
|
|
|
|
|
|
||
|
Состояние |
S1 (00) |
|
S2(X1) |
|
S3(10) |
|
||
|
RESULT |
RESULT<=’1’ |
RESULT<=’0’ |
|
RESULT<=’0’ |
|
|||
|
|
|
|
|
|
|
|
|
|
Рис. 5.11. Граф переходов автомата проверки делимости на 4
69
Макроэлемент спроектированного автомата приведен на рис. 5.10, а его временная диаграмма работы дана на рис. 5.13.
Рис. 5.12. Макроэлемент автомата для проверки делимости на 4
Рис. 5.13. Временная диаграмма работы автомата проверки делимости на 4
Спроектировав и синтезировав все базовые элементарные устройства, можно перейти непосредственно к синтезу логической схемы устройства проверки делимости.
Синтез логической схемы устройства проверки делимости на 36
Синтезируем схему устройства проверки делимости на 36 с использованием разработанных ранее элементарных устройств.
Согласно выбранному варианту реализации проекта, устройство состоит из двух параллельно работающих анализирующих блоков –
70