Dúvidas do EP3

Dúvidas do EP3

por Fabricio Sousa Nascimento -
Número de respostas: 37
Duas Perguntas:

Tamanho do Grupo?

Podemos fazer o opcional em uma linguagem mais amigável? (e.g. Ruby, Python ou etc.. )

Obrigado
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por Marcos Takechi Hirata -
Hugo, quando dou o make no exemplo que vc deixou, aparece isso:

ghdl -r verificador_test
test/verificador_test.vhdl:65:10:@1nstristeassertion error): Verificador disse que '0''0''0''0''0''0''0''0' com check '0''0' devolve d0 '0'.
test/verificador_test.vhdl:73:9:@1nstristeassertion error): Verificador mandou mais ou menos de um sinal de desconto.
test/verificador_test.vhdl:67:10:@2nstristeassertion error): Verificador disse que '0''0''0''0''0''0''0''0' com check '0''0' devolve d5 '0'.
test/verificador_test.vhdl:73:9:@2nstristeassertion error): Verificador mandou mais ou menos de um sinal de desconto.
test/verificador_test.vhdl:69:10:@3nstristeassertion error): Verificador disse que '0''0''0''0''0''0''0''0' com check '0''0' devolve d10 '0'.
test/verificador_test.vhdl:73:9:@3nstristeassertion error): Verificador mandou mais ou menos de um sinal de desconto.
test/verificador_test.vhdl:71:9:@4nstristeassertion error): Verificador disse que '0''0''0''0''0''0''0''0' com check '0''0' devolve d20 '0'.
test/verificador_test.vhdl:73:9:@4nstristeassertion error): Verificador mandou mais ou menos de um sinal de desconto.

Isso deveria acontecer?
Em resposta à Marcos Takechi Hirata

Re: Dúvidas do EP3

por Hugo Corbucci -
Sim!
Se você olhar o código, ele sempre responde com '0', '0', '0', '0'.
Os testes que estão lá esperam uma resposta '1','0','0','0' ou '0','1','0','0' ou '0','0','1','0' ou '0','0','0','1'. Foi só para vocês terem um exemplo de cada falha que pode acontecer.
O trabalho de vocês é justamente sumir com tudo isso (sem apagar os testes) e me dar mais alguns casos.
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por Hugo Corbucci -
Tamanho do grupo: 2
Como está no exemplo.

Hmmm, acho que não. Eu prefiro MESMO em C. A idéia é que vocês precisem manipular bits como no EP e isso não existe nessas linguagens mais amigáveis.
No melhor dos casos, nelas, vocês manipulam um objeto que simula um bit que não é bem a idéia.

O mais legal do VHDL é que, com o que vocês gerarem, vocês podem mandar para uma empresa de construção de circuitos (o .vhdl) que eles implementam numa placa pra você (diz o Alfredo).

Isso dará para vocês um comparativo das diferenças que podem existir entre duas linguagens de baixo nível.
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Douglas Alves dos Reis -
Não é possível fazer o ep em grupo de três pessoas???

[]s
Em resposta à Douglas Alves dos Reis

Re: Dúvidas do EP3

por Hugo Corbucci -
Não!
Já tá fácil o suficiente com 2 pessoas sorriso
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Fabio Yoshio Sato -
alguma alternativa pra fazer esse ep em windows?
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por Eduardo Menezes de Morais -
Mais algumas duvidas:
Nao seria melhor usar como entrada um array de bit?
Precisamos seguir a mesma proporcao entre identificacao e verificacao que a mostrada no exemplo? (eu tava planejando usar uma verificacao bem maior, ate porque nao devem ter 216 alunos e se temos apenas 24 possibilidades de verificacao, usando numeros aleatorios ate da pra conseguir passar com algumas tentativas...)
A saida deve ser como no exemplo?

Em resposta à Eduardo Menezes de Morais

Re: Dúvidas do EP3

por Hugo Corbucci -
Sem array de bits.
Placas lógicas não tem arrays sorriso
Quer dizer, tem, mas são um monte de "cabos" de um bit um ao lado do outro (eu acho). De toda forma, vocês têm que tratar os bits 1 a 1.

Quanto ao exemplo, é um exemplo sorriso
Vocês estão livres para usar os bits como quiserem. Mas precisa ter um certo número de bits de verificação suficiente para ela ser útil.

A saída deve ser d0, d5, d10 ou d20 sim.

Respondi?
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Douglas Alves dos Reis -
alguém sabe se jah tem GHDL instalado na rede linux???

vlww
Em resposta à Douglas Alves dos Reis

Re: Dúvidas do EP3

por Eduardo Apolinário -
Alguem saberia responder?
Em resposta à Eduardo Apolinário

Re: Dúvidas do EP3

por Hugo Corbucci -
Eu suponho que os admins da rede Linux que estão cursando a matéria poderiam responder.
Eu posso ajudar aqueles que tiverem problemas em suas máquinas mas é só isso.
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Daniel Santos -
Quando vc fala em fazer o EP em C , isso quer dizer que eu não preciso usar o vhdl?.

Então eu poderia entender os bits como um vetor de "bits".

Eu nunca mexi em VHDL e não vou ter tempo de aprender em tempo.
Em resposta à Daniel Santos

Re: Dúvidas do EP3

por Hugo Corbucci -
Eu nunca falei em fazer o EP em C.
Eu falei em fazer o item extra do EP em C. Isso está lá no enunciado.

O EP é para ser feito em VHDL para que vocês vejam um pouco de VHDL. Acho que ninguém aqui sabe VHDL (eu também não sabia). É bem fácil de aprender e o trabalho é bem simples também. E em VHDL, vocês vão receber vários bits sim e não um vetor de bits.
Em resposta à Daniel Santos

Re: Dúvidas do EP3

por Douglas Alves dos Reis -
Tbm não entendemos qual a função dos arquivos verificador e verificador_teste
Alguem sabe explicar?

vlw
Em resposta à Douglas Alves dos Reis

Re: Dúvidas do EP3

por Hugo Corbucci -
São apenas exemplos para vocês. Tentei facilitar a vida de todos montando o projeto e só deixando para vocês implementarem a lógica. E o relatório é claro sorriso
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por Marcos Takechi Hirata -

Hugo, não entendi como funciona direito esses d0, d5, d10 e d20. Eu sei que são os descontos que vc vai dar ao aluno.

No seu arquivo teste, tá algo parecido com isso: d5 = pattern(i).d5 ...

o primeiro d5 é o resultado da minha decisão de eu dar esse desconto?

Uma outra dúvida, por exemplo, fiz a manipulação dos bits e decidi dar um desconto de 10 ... então eu seto d10 <= 1, certo?! E o resto dos d's, seto eles como zero ou não preciso colocar nada?

E uma última pergunta por enquanto, para eu adicionar mais casos, eu coloco mais linha no pattern lá né? E aquele sum faz a verificação d0 > d5 > d10 > d20? Ou será que eu estou viajando? ^^"

Em resposta à Marcos Takechi Hirata

Re: Dúvidas do EP3

por Hugo Corbucci -
Isso.
O primeiro d5 é o resultado que eu obtive da execução do seu programa.

Na verdade, d10 <= 1 manda um sinal 1 para o canal d10 (se você pensar em circuito). Então se você não "setar" os outros, eles não recebem sinal e ficam 0. Mas pode enviar 0 para deixar mais claro se você preferir.

Sim. Basta adicionar mais uma linha no pattern para adicionar um teste.
O sum faz (ou deveria fazer) a verificação de que não há mais de um desconto atribuído.
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Marcos Takechi Hirata -
Hugo, só posso usar os operadores lógicos no arquivo verificador.vhdl ou posso usar If tb?
Em resposta à Marcos Takechi Hirata

Re: Dúvidas do EP3

por Hugo Corbucci -
A idéia era ficar nos bits mesmo. Para que o código de vocês pudesse ser transformado num circuito. A realidade é que um if pode ser feito com operadores lógicos. sorriso
Digamos que pode usar if mas eu acho melhor se forem só os operadores lógicos. Ou seja, considero o EP e dou nota com if mas ela é um pouco menor do que a sem if sorriso Se você estiver mirando no 10, não use if. Se você estiver atolado de trabalho, vai com if mesmo.
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Douglas Alves dos Reis -
Hugo,

no enuciado vc fala q o verificador_teste deve enviar um sinal com o desconto do aluno,(isso seria imprimir o desconto do msm na tela?). Já no paragrafo seguinte fala que o verificador_teste não deve imprimir nada.Não entendi como isso funciona.
Também não entendi o que cada verificador deve fazer ( verificador e verificador_teste)

Valeu!
Em resposta à Douglas Alves dos Reis

Re: Dúvidas do EP3

por Hugo Corbucci -
O verificador deve enviar um sinal com o desconto.
Isso não é imprimir na tela não. É enviar um sinal mesmo.

O verificador_teste recebe esse sinal. Pensa nisso como se fosse um return.

O verificador_teste é um teste automatizado. Ele vai imprimir erros se detectar alguma coisa anormal ou incorreta. Logo, se o EP de vocês estiver funcionando, o verificador_teste não deveria imprimir nada. Fez sentido?

Pensem no verificador como um sistema lógico mesmo. Não tem impressão. São sinais elétricos que entram e sinais elétricos que saem. Só isso.

O verificador_teste é um programinha que verifica que dados sinais de entradas, os sinais de saída estão corretos.

Melhorou?
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Douglas Alves dos Reis -
melhorou bastante

então no verificador_test somente devemos acrescentar mais testes, certo?!

valeu!
Em resposta à Douglas Alves dos Reis

Re: Dúvidas do EP3

por Hugo Corbucci -
E talvez tirar os que já existem pois eles provavelmente não fazem sentido sorriso

Vocês até podem mudar mais comportamentos mas acho que não é necessário. O importante é que esse arquivo verifique que seu programa funciona corretamente. A idéia é que, se eu tirar ou mudar uma linha de código qualquer da implementação, o verificador_teste vai imprimir algum erro.
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por Fabio Yoshio Sato -
Não entendi bem o que são os algoritmos mais alto nível... meu circuito por exemplo foi feito meio na raça...isso é um problema?

os algoritmos deveriam ser do tipo, pega os 18 primeiros bits ve o número que eles representam por exemplo n, ve n mod 4, e compara com os 2 bits finais que seriam de verificação.... algo desse tipo? ou estou viajando?

Grato,
Fábio.
Em resposta à Fabio Yoshio Sato

Re: Dúvidas do EP3

por Hugo Corbucci -
No relatório seria legal uma explicação assim. Para ter idéia do que vocês estavam pensando quando implementaram o algoritmo.

O código mesmo vai ficar bem baixo nível por outro lado porque é para usar bits e portas lógicas essencialmente.
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Fabio Yoshio Sato -
possibilidade de entrega atrasada? até qdo? qto de desconto?
Em resposta à Fabio Yoshio Sato

Re: Dúvidas do EP3

por Hugo Corbucci -
Dessa vez acho que não vai dar para entregar atrasado porque eu vou ter 1 dia para corrigir. Tenho que entregar as notas todas pro Alfredo dia 16 se me lembro bem.
Em resposta à Fabricio Sousa Nascimento

Re: Dúvidas do EP3

por César Machado -
Quão diferentes tem que ser os dois algoritmos alternativos?

Pensamos em um jeito de aumentar/diminuir as probabilidades sem mudar quase nada do nosso código.. Temos que pensar em uma idéia diferente??

Além disso, devemos aumentar/diminuir o número de cartões válidos/inválidos ou o número de cartões com descontos altos (ou ambos)?
Em resposta à César Machado

Re: Dúvidas do EP3

por Pedro P. de S. B. Silva -
hmm.. eu tb tenho uma duvida com relação a isso..
estamo lidando com 20 bits, o q me parece bem pouco.

a grosso modo, por melhor q seja a função de distribuição, se gerarmos um número, aleatoriamente, entre 0 e 2^16 (tirando os 4 dochecksum), teremos uma grande chance desse número estar dentro de algum dos descontos não é?

estou colocando aqui algo mais ou menos assim (porcentagem do total de possíveis identificadores):

d20 : 7.5%
d10 : 15%
d05 : 30%
d0 : 47.5%

dessa forma, se o cara chutar uma sequencia de bits ele tem 52,5% por cento de chances de acertar (desde q ele acerte o checksum tb)!

as distribuições estão corretas ou é necessário diminuí-las?
é isso mesmo ou entendi errado?


Em resposta à Pedro P. de S. B. Silva

Re: Dúvidas do EP3

por Bruno Vercelino da Hora -
Ok, mas pra ele acertar no desconto, ele tem que acertar o checksum tb.
Então dentre 2^20 cartões possíveis, ele só vai possuir 52,5% de 2^16 que batem com o cheksum respectivo, o que nas minhas contas dá 3% do total de cartões!!!
Em resposta à Pedro P. de S. B. Silva

Re: Dúvidas do EP3

por Hugo Corbucci -
Vocês não são obrigados a usar 4 bits de checksum como o Cadu já postou (eu tinha dito anteriormente que o exemplo era meramente um exemplo).

A grande dificuldade deveria estar em acertar o checksum. Sim, dentre todas as possibilidades, para que exista uma certa quantidade válida, se o cara chutar um número válido, ele vai se dar bem. Então se de todos os números válidos, 50% estiverem sendo usados para cartões válidos, a probabilidade de se ganhar um desconto chutando um número é 50%. Mas 2^20 = 1024*1024. É cartão pra dedéu! Vocês precisam de 500.000 cartões válidos? Pensem bem nisso.

As distribuições dependem do algoritmo que vocês resolverem implementar. Podem existir algoritmos que distribuem os descontos quase igualmente, outros que mudam essa probabilidade. Para mim tanto faz desde que vocês tenham controle sobre isso e me mostrem isso no relatório.
Em resposta à César Machado

Re: Dúvidas do EP3

por Hugo Corbucci -
Não precisa ser muito diferentes. Só precisa ter mais estudantes com descontos em um deles e menos no outro.

Não precisa de outra idéia não.

Aumentar/Diminuir o número de cartões com desconto (de 5, 10 e 20).
Em resposta à Hugo Corbucci

Re: Dúvidas do EP3

por Atol Fortin de Oliveira -
Quanto ao gerador em C, como deve ser a impressao?

devemos imprimir os 20 bits ( + os 4 que determinam o desconto )da forma :
"( 'x' , .... 'y' , '0, '0', '0', '1') ,"
(por exemplo, para um caso de 20% de desconto, (sem as aspas) )

ou basta :
x ... y

?
Em resposta à Atol Fortin de Oliveira

Re: Dúvidas do EP3

por Hugo Corbucci -
Quero os 20 bits que eu preciso para cadastrar um novo aluno. Inclusive os do checksum. Só imprimam isso de forma legível qualquer sorriso