O que significa “fechar o relógio”?


11

Nas minhas anotações de aula, continuo lendo "não feche o relógio". Tentei pesquisar na Internet, mas não consigo encontrar o significado exato dessa frase.



3
@ user129048 existem outras perguntas que tratam deste assunto neste site. Em resumo, se você bloquear o relógio, terá um atraso ruim. A maioria dos FPGA possui linhas de relógio dedicadas e o uso do relógio não usa essas linhas.
Voltage Spike

1
Assim como você usa um portão para deixar seu cachorro / cavalo / etc entrar e sair, eles podem passar se o portão estiver aberto. Relógio e redefinição são apenas sinais transmitidos a um módulo de lógica, assim como os outros sinais. Você pode permitir ou impedir que o relógio continue, não deixando passar. Impedindo que a lógica do outro lado tenha esse sinal como entrada.
old_timer

Respostas:


19

"Portar o relógio" significa colocar um portão lógico na linha do relógio para ligá-lo ou desligá-lo.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Os diagramas acima são mostrados e AND e OR usados ​​para controlar o relógio. Uma força o relógio baixo e o outro alto.

Para evitar pulsos de clock 'muito curtos', altos ou baixos ("pulsos de execução"), devemos garantir que:

  • O sinal de controle para o portão AND deve mudar apenas quando o relógio estiver baixo .
  • O sinal de controle para o portão OR deve mudar apenas quando o relógio estiver alto .

Os relógios fechados são muito úteis para reduzir a energia no CMOS, pois a lógica permanece "quieta" enquanto o relógio está parado. Você descobrirá que as ferramentas de síntese modernas têm uma opção especial para inserir o clock gating automaticamente.

esquemático

simule este circuito

Acima estão dois circuitos que geram com segurança um relógio fechado. Os circuitos dependem do fato de que existe um pequeno atraso (clock para Q) para o sinal de controle sair do registrador. Assim, o sinal de controle muda no portão quando o relógio tem uma polaridade conhecida.


3
Resposta muito boa. Vou apenas expandir os benefícios de energia dos relógios fechados. A rede de clock em um CI, especialmente em complexos como microprocessadores, pode ser realmente vasta. Tão vasto que foi mostrado (desculpe, eu não tenho a referência em mãos) que a comutação da rede de clock sozinha pode representar 30% do consumo total de energia. Isso é consumido mesmo que a lógica real cronometrada por ela não tenha nada a ver, por exemplo. os registros e saídas não mudam. Ativar o relógio pode desativá-lo completamente nas partes afetadas da rede, reduzindo significativamente o consumo de energia.
precisa saber é o seguinte

4
@ Curd: Quando o OP lê "não feche o relógio", o professor significa "não feche o relógio literalmente como em um único portão lógico". Esse é um bom conselho. Na prática, embora "clock gating" signifique "desativar o relógio" ou ser capaz de fazer isso, é recomendável fazê-lo por razões de energia, desde que você saiba como fazê-lo corretamente (ou seja, não com uma lógica). portão, mas com lógica suficiente para evitar ruídos e falhas na linha do relógio).
Ultima

8
Eu tenho que adivinhar aqui por que o professor diz isso: o clock gating, embora apresentado aqui como simples, tem muitas armadilhas. Portanto, é muito desaprovado. No design do ASIC (de onde eu venho), isso é feito apenas pelas ferramentas, que devem ser confiáveis, ou pelos principais engenheiros seniores, também considerados confiáveis ​​para saber o que estão fazendo.
Oldfart

4
@ oldfart Essa é provavelmente a explicação. Especialmente se OP está em uma classe de FPGA, é improvável que eles devem sempre ser gating um relógio.
mbrig

3
@MITURAJ, o clock gating certamente pode ser feito na entrada do design. Eu acho que você está descrevendo o que deve ser feito, e não o que 'normalmente' é feito. A liberdade dos FPGAs permite a qualquer pessoa implementar más idéias. Muitos projetos ruins por aí.
TonyM

6

Gating, neste contexto, significa passar um sinal através de uma porta lógica para controlá-lo.

Passá-lo por uma entrada de uma porta AND de 2 entradas permite que um bit de controle na outra entrada force a saída da porta AND baixa ou deixe o sinal passar através e fora. Uma função semelhante pode ser realizada por uma porta OR, com o sinal sendo forçado alto ou liberado.

Portanto, acionar um relógio significa forçá-lo baixo / alto ou deixá-lo passar.

Não usar relógios é um bom conselho. Isso pode ser feito, com cuidado e compreensão completa das possíveis consequências. Isso inclui metaestabilidade ao receber sinais de clock no domínio do clock fechado e piores resultados da síntese / layout orientados por tempo.

Mas quase sempre existem outras maneiras de obter o mesmo controle sobre um circuito que o relógio, sem todos esses riscos e penalidades.


6

Significa:
Não use uma porta AND ou OR (ou qualquer termo combinatório mais complexo) para derivar um sinal de relógio de outro sinal de relógio.

O motivo dessa regra é que as condições de corrida entre as várias entradas do termo combinatório podem causar várias arestas do relógio (falhas), nas quais você espera apenas uma aresta do relógio.


2
Seria bom se o desobediente pudesse explicar o que ele considera errado com esta resposta.
Coalhada

4

Para alta velocidade, implica não adicionar portas lógicas que adicionem atraso de propagação ao relógio, pois isso pode causar condições de corrida ao trabalhar com dados usando o relógio original.


Eu nunca ouvi o termo clock gating usado dessa maneira, você tem uma fonte para isso?
precisa saber é

@ BeB00: apenas google para "relógio gating falha livre" e você encontrará a abundância
Curd


Este foi o meu primeiro pensamento de não ter ouvido o termo usado antes, mas há momentos em que o buffer será necessário e o gating provavelmente pretende significar mais do que o buffer nesse caso. As características de giro e borda podem mudar com o buffer simples e precisam ser consideradas em qualquer caso.
KalleMP 28/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.