6 / 24 · Conceito
Planeje o uso de recursos compartilhados com uma FSM
Acumule quatro valores com um único somador, definindo as transições de estado e a captura.
As aulas podem ser lidas gratuitamente. Inscreva-se para salvar o progresso.
O estado de controle expressa um cronograma de operações
Um recurso compartilhado exige que as operações sejam planejadas ao longo do tempo. Considere somar x0 a x3 com um único somador e um acumulador de dez bits. Capture os quatro operandos quando uma solicitação for aceita. Mudanças externas posteriores não devem alterar uma solicitação pendente. O controlador seleciona um operando, habilita a acumulação e decide quando o resultado se torna válido.
Use os estados IDLE, ADD0, ADD1, ADD2, ADD3 e DONE. A borda de aceitação em IDLE captura as entradas e zera acc. As quatro bordas seguintes somam um operando armazenado por vez. Imediatamente após a borda de ADD3, a soma final está armazenada e o estado torna-se DONE. DONE mantém o resultado até o consumidor aceitá-lo. Esta versão simples retorna a IDLE nessa borda e não aceita simultaneamente uma nova solicitação.
| Borda | Estado anterior | Ação | acc novo |
|---|---|---|---|
| 0 | IDLE | Capturar 3,5,7,9 e zerar acc | 0 |
| 1 | ADD0 | Somar 3 | 3 |
| 2 | ADD1 | Somar 5 | 8 |
| 3 | ADD2 | Somar 7 | 15 |
| 4 | ADD3 | Somar 9, entrar em DONE | 24 |
| 5 | DONE | O consumidor aceita o resultado | 24 |
Distinga a disponibilização após a borda 4 da transferência na borda 5. Pausas do consumidor podem prolongar DONE indefinidamente. Reutilizar recursos reduz o hardware aritmético, mas limita a taxa de processamento em comparação com um pipeline que aceita entradas a cada ciclo. Suportar a conclusão simultânea com uma nova solicitação exige uma prioridade explícita entre a entrega do resultado anterior e a inicialização da nova solicitação.
- IDLE: Aceitar e capturar os quatro valores
- ADD0..ADD3: Reutilizar um único somador em quatro bordas
- DONE: Manter o resultado até seu consumo
Derive os controles do estado: habilitação do acumulador nos estados ADD, seleção do operando correspondente ao estado e validade do resultado em DONE. Forneça valores padrão para as saídas combinacionais de controle. Defina a aceitação de modo que uma solicitação continuamente ativa não se repita por acidente. O reset retorna a IDLE e descarta o trabalho pendente. Uma implementação baseada em contador pode reduzir a codificação de estados, mas ainda precisa do mesmo cronograma borda a borda.
Experimente
Quais são os valores de acc após ADD0 até ADD3 para quatro entradas de 255? O que deve acontecer quando ready da saída vale zero na borda 5?
Ler a explicação
Os valores são 255, 510, 765 e 1020, todos cabendo em dez bits. Com ready=0, não ocorre entrega; mantenha DONE, acc=1020 e valid=1.