Ir ao conteúdo
  • Cadastre-se

Somador de série


Posts recomendados

Boa tarde pessoal,

 

Estou com um problema e preciso de ajuda/ideia/iluminação.

 

Eu recebo um número binário de 7 bits a cada pulso de clock, esses números são termos de uma série, por ex: no primeiro pulso eu tenho o número 2, depois tenho 3... até um determinado valor. O problema é que eu tenho que pegar cada número desse e somar com o anterior, assim fica: 2+3+...+n.

 

Se alguém puder da essa força ai, pelo menos com uma ideia, eu to quebrando minha cabeça nisso.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

2^7 = 128 ( numero com 7 bits  ou 1111111(2) ) cara não sei se isso está certo mas você pode verificar.

int x;int soma=0;for(x=2;x<=128;x++)soma= soma +x; 

Taí o codigo, um laço que vai até o 128 ( 7 bits ) e vai somando todos os valores.. se não for isso que queria, é só falar que releio

Link para o comentário
Compartilhar em outros sites

Estime o máximo de bits que a soma total poderá ter e construa um registrador de flip-flops D com essa capacidade de armazenamento. Depois estenda os números de 7 bits para o número de bits do registrador F5Rua4D.gif.

 

 

 

Com isso, use o registrador para armazenar o número 0 (em decimal) e faça com que ele, a cada ciclo de clock, armazene a soma calculada do número que há nele com o número transferido pelo clock, ficando nele o número 0 + 2 no primeiro ciclo, 0 + 2 + 3 no segundo ciclo e assim sucessivamente. Dessa forma o registrador trabalhará como um acumulador que conterá a soma que você quer após uma determinada quantidade de ciclos de clock.

 

 

 

Espero ter ajudado GbhmuXl.gif.

Link para o comentário
Compartilhar em outros sites

@FrogPaloso,

Poxa ainda bem que perguntei, porque isso é um daqueles "pequenos detalhes" que complica prá caramba ....

Bom, serão necessários somadores de 16 bits, meu amigo ..... se fossem de 8 bits eu tinha a tua solução prontinha. Vou te passar a ideia prá você implementar :

Use 2 MC14008B, que é um duplo 4 bits adder, pode usar apenas 4 + 4 + 4 = 12 bits . Precisaremos de apenas 10 bits no total, certo ?

Na saída dele, use 2 latchs de 8 bits tipo o 74HC273, que mediante uma pequena lógica vai pegar esses 10 bits de resultado, fazer o latch, e vai aplicar novamente à entrada do somador !!!!!

Assim, um dos números sempre será a própria saída do somador, o que vai fazer um acumulador !!!!!

O outro numero serão os seus 7 bits.

Vai ter de implementar uma pequena lógica para que quando ocorrer o pulso, espere tipo 1 microsegundo para garantir, e aí aplica um pulso aos latchs, para eles memorizarem e colocarem de novo o resultado na entrada. Quando terminar a soma, tem de zerar os latchs, mediante uma sinalização também....

Viu, não é complicado, agora é com você !!!!

Paulo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Permita-me...

A solução do amigo Paulo é bem bacana. Agora diga que precisa implementar isso com portas nand e flip flops...me inclua fora desta kk

Confesso que só vejo aplicação "prática" deste checksum por hw no mundo didático-pedagógico

abç

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz,

Pior é que ví no datasheet que prá obter o resultado fazendo um somador com 16 bits, tem de esperar 900 nanosegundos no mínimo para garantir os Carrys .... fazendo um chute para 12 bits, o tempo deve ser no mínimo uns 650 nanosegundos . Eu escreví 1 microsegundo por precaução ....

Para ser mais rápido, teria de usar CI's TTL da família 74F, difíceis de encontrar e caros .....

Atualização - escrevi a medida de tempo errada.... Agora está certo !!!!

Paulo

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz,

Pior é que ví no datasheet que prá obter o resultado fazendo um somador com 16 bits, tem de esperar 900 nanosegundos no mínimo para garantir os Carrys .... fazendo um chute para 12 bits, o tempo deve ser no mínimo uns 650 nanosegundos . Eu escreví 1 milisegundo por precaução ....

Para ser mais rápido, teria de usar CI's TTL da família 74F, difíceis de encontrar e caros .....

Eu usaria um Atmega da vida, rodando a 20 Mhz, e faria isso em menos de 3 nanosegundos fácil fácil....

Paulo

Calma @aphawk, kkkkkk tambem nem tanto...

O periodo de 20Mhz é 50ns, pra fazer todo esse trabalho, irao varios ciclos... Nao conheco esse processador e nem quantos ciclos ele precisa pra executar uma instrucao, e também nao conheco seu SET, nao sei quantas instrucoes sao necessaria pra fazer essa tarefa nesse processador..: Mas menos que 200ns acho que nao leva hehhe

então, acho que usando o primeiro exemplo compensaria mais...

Link para o comentário
Compartilhar em outros sites

@mroberto98,

Nossa voce tem razão !!!!!! Depois do nanosegundo vem o microsegundo, eu me esqueçí totalmente dele kkkkkkk !!!!

Eu fiz as contas todas como se o nanosegundo fosse o microsegundo.....

Valei pela correção !!!!!!

Eu chutei que para fazer todo o processo, somar 16 bits, resetar a soma quando necessário, e mostrar essa soma em duas portas de saída usaria uns 60 ciclos de máquina, que na verdade são 3 microsegundos.... Revendo com calma creio que dá para fazer em 2 microsegundos , mesmo assim é o dobro do tempo que o 4008 demoraria.

Paulo

Link para o comentário
Compartilhar em outros sites

@MOR,

Isso mesmo, mas achei melhor incluir os latchs entre a saida da soma e a entrada, pois o CI MC14008 não é "clockado" , ele fica fazendo a soma a todo instante e ficaria se "realimentando". Os Latchs resolveriam isso.

Paulo

É! Ficou meio genérico, mas a ideia seria esta mesmo. Com latchs. Daí a entrada de clock para efetivar a soma e os latchs armazenarem o último valor.

MOR_AL

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!