2012-05-04 7 views
1

Нужно разработать простой для школы. Более конкретно Moore FSM. Я не уверен, как происходят состояния, происходит ли следующее состояние каждого часа? Мне нужно знать, потому что им интересно, могу ли я сдвинуть регистр и добавить к нему значение, все в одном состоянии ... Могут ли использовать ребра волны?В FSMs одно государство занимает один такт или больше?

РЕДАКТИРОВАТЬ:

Я должен спроектировать АЛУ часть с регистрами в качестве схемы из ворот уровня, так что нет целевой процессора.

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

Например, в состоянии S1, я имею следующие операции: y0 = сдвиг влево Reg1; y1 = Reg1 = Reg1 + Reg2. Таким образом, микрокоманда, что управляющая часть Moore выходов FSM будет 0000011 (yn ... y1, y0). Этот микрокоманда должен быть входной частью ALU, которую мне нужно спроектировать. Теперь я понял y1, y0 будет конфликтовать друг с другом, поскольку оба используют Reg1.

Его проблемный вопрос, поскольку на самом деле у меня нет элемента управления, я должен представить основной FSM и создать только ALU с регистрами. Вот почему мне было интересно, если я получаю больше одного такта, поэтому я могу выполнить последовательность y0, y1 или мне нужно завершить всю операцию за один такт?

Я планирую создавать параллельные параллельные регистры без сдвига, очевидно, что я не могу выполнять две операции микрокоманды в одно и то же время. Так что я могу сделать:

1. make extra states? which i really dont want to do 
2.use edges of a single clock? (might cause problems?) 
3.Assume i get a preset amount of ticks from the clock to complete the microcommand ? 
This would make the most sense, but i dont know if its the case. 
The control unit does "know" the algorithm and thus how many operations need to be performed 

Я должен еще раз отметить, что управляющая часть является полностью абстрактным и я понятия не имею, как это обрабатывается на практике.

ответ

0

A FSM сам по себе не имеет неотъемлемого понятия времени (хотя его можно определить). A Moore machine является упрощенной моделью и не имеет возможности даже формально представлять постоянно прогрессирующее «время» (без, конечно, полного выполнения учета состояний); помните, что существует только конечный набор состояний.

В любом случае, время может быть введено в . деталь конкретного FSM, и количество времени, которое может потребоваться для изменения между отдельными состояниями, может быть не постоянным. (Особый FSM может также отличаться друг от друга на разные версии .) В случае clocked system для этого потребуется посмотреть, как каждый «тактовый сигнал» определен в реализации ; это может быть передний край, задний край, оба или что-то совершенно другое.

Вместо того, чтобы смотреть на FSM здесь для руководства (это просто логическая прогрессия состояний), посмотрите на коды операций (или независимо от реализации), которые представляет FSM, и как CPU (или что-то другое) в вопросе «исполняет» их.

(Что говорят книги? ;-)

+0

Я объяснил ситуацию немного больше в своем редактировании. (studyign IT at uni, What books; p?) Считаете ли вы, что третье предположение - это то, что я могу сделать? – ollo

+0

@Ollosaurusrex Я понятия не имею :) Поговорите с одноклассниками/TA/учителем для руководства. Одна вещь, которую я изучил, - это * явно заявить * [новые] предположения и поддерживать их с обоснованиями. Даже если это неправильно, это дает начало для понимания и документирует сделанные выборы. –