Página 1 de 2

Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 18 Nov 2014 11:28
por andre_luis
Pessoal,


Estou com uma dúvida que talvez seja trivial, e conceitualmente talvez independe da linguagem.
Mas o fato é que costumo ver implementações onde o CLK usualmente vem antes do EN, como abaixo:
Código: Selecionar todos
wait until clk = '1';
if en = '1' then
     a := b;
end if;

Mas, na lógica do meu raciocínio, faria mais sentido implementar o EN antes do CLK, algo parecido com isso ( não compilei ainda ):
Código: Selecionar todos
if en = '1' then
     wait until clk = '1';
     a := b;
end if;


Faz sentido, ou na compilação dá na mesma ?

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 18 Nov 2014 12:46
por marcelo_asm
compile para ver se o circuito que vai ser gerado é coerente com o que deve realmente ser, mas pensando em implementação de circuito digital, não vejo sentido condicionar o clock ao sinal de enable.

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 18 Nov 2014 12:53
por andre_luis
marcelo_asm escreveu:pensando em implementação de circuito digital, não vejo sentido condicionar o clock ao sinal de enable.


Claro, tem toda razão...aí a lógica deixaria de ser sincrona.

Valeu !

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 19 Nov 2014 09:52
por pbernardi
Acho que o Hardware seria diferente também:

- O primeiro gera um flip-flop direto.
- O segundo, imagino eu, usaria dois elementos: um latch e um flip-flop. O EN seria entrada do latch, e ficaria ligado ao flip-flop que faria a transferência.

Isso depende um pouco de qual FPGA você está usando, pois existem vários tipos de Células diferentes dependendo da FPGA.

Além de usar mais lógia, inferir latches na FPGA não é algo recomendável, uma vez que latches atrapalha/atrasam/dificultam a sincronia da FPGA.

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 19 Nov 2014 12:04
por andre_luis
Poisé, é que antigamente nos projetos de circuitos baseados em CIs 74xx/40xx, o Enable meio que era um sinal comum para vários componentes, e nesse ponto de vista - na minha opinião - num programa extenso faria mais sentido ele encapsular todo mundo, algo como :

Código: Selecionar todos
if en = '1' then
     -- Coloca aqui os demais circuitos --
end if;

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 19 Nov 2014 23:08
por msamsoniuk
francamente, nunca vi essa construcao esquisita... eu coloquei isso no ISE e ele disse q wait nao pode ser usado em um processo com lista de sensitividade (no caso, ele precisa dos eventos de clk).

daih eu fiz assim:

Código: Selecionar todos
    process (CLK) is
    begin
    if E = '1' then
    if CLK = '1' and CLK'event then
       Q <= D;
    end if;
    end if;
    end process;


e tambem:

Código: Selecionar todos
    process (CLK) is
    begin
    if CLK = '1' and CLK'event then
    if E = '1' then
       Q <= D;
    end if;
    end if;
    end process;


ele sintetizou e gerou exatamente o mesmo resultado: um flip-flop com enable. e nem tem como ser diferente neh, eh o que tem dentro da fpga! :v

em verilog a construcao nao pode ser invertida e a ordem da sintaxe sempre vai ser fixa:

Código: Selecionar todos
    always@(posedge CLK)
       if(E)
           Q <= D;

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 19 Nov 2014 23:56
por andre_luis
Havia esquecido que na verdade tenho que me abstrair da implementação do hardware e focar apenas na descrição do comportamento que desejo. Como tudo gira em função da sintetização no CI final, e como quem lida com essa alocação dos recursos dentro da macrocelula é o compilador, não cabe a mim ficar imaginando o que acontece alí dentro, já que supostamente há otimização.

Obrigado mais uma vez... eu estava misturando as coisas; um vício do design do circuito direto no esquema.

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 27 Jan 2015 16:52
por mastk
msamsoniuk escreveu:francamente, nunca vi essa construcao esquisita... eu coloquei isso no ISE e ele disse q wait nao pode ser usado em um processo com lista de sensitividade (no caso, ele precisa dos eventos de clk).

daih eu fiz assim:

process (CLK) is
begin
if E = '1' then
if CLK = '1' and CLK'event then
Q <= D;
end if;
end if;
end process;

e tambem:

process (CLK) is
begin
if CLK = '1' and CLK'event then
if E = '1' then
Q <= D;
end if;
end if;
end process;

ele sintetizou e gerou exatamente o mesmo resultado: um flip-flop com enable. e nem tem como ser diferente neh, eh o que tem dentro da fpga! :v

em verilog a construcao nao pode ser invertida e a ordem da sintaxe sempre vai ser fixa:

always@(posedge CLK)
if(E)
Q <= D;



Assim vc me faz mudar para Verilog Sam, vira e mexe tenho o mesmo problemas Andre, ando tentando modular as minhas bibliotecas, mas ja fazem meses que nao brinco com FPGA, anda aparecendo outras opcoes como colocar um *.m para rodar no FPGA e assim por diante, mas me parece muito mirabolante.

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 28 Jan 2015 02:29
por msamsoniuk
mastk escreveu:
msamsoniuk escreveu:francamente, nunca vi essa construcao esquisita... eu coloquei isso no ISE e ele disse q wait nao pode ser usado em um processo com lista de sensitividade (no caso, ele precisa dos eventos de clk).

daih eu fiz assim:

process (CLK) is
begin
if E = '1' then
if CLK = '1' and CLK'event then
Q <= D;
end if;
end if;
end process;

e tambem:

process (CLK) is
begin
if CLK = '1' and CLK'event then
if E = '1' then
Q <= D;
end if;
end if;
end process;

ele sintetizou e gerou exatamente o mesmo resultado: um flip-flop com enable. e nem tem como ser diferente neh, eh o que tem dentro da fpga! :v

em verilog a construcao nao pode ser invertida e a ordem da sintaxe sempre vai ser fixa:

always@(posedge CLK)
if(E)
Q <= D;



Assim vc me faz mudar para Verilog Sam, vira e mexe tenho o mesmo problemas Andre, ando tentando modular as minhas bibliotecas, mas ja fazem meses que nao brinco com FPGA, anda aparecendo outras opcoes como colocar um *.m para rodar no FPGA e assim por diante, mas me parece muito mirabolante.


verilog! <3

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 28 Jan 2015 07:41
por marcelo_asm
Já pensei diversas vezes em me dedicar a aprender VHDL. Mas sempre que a coisa aperta acabo resolvendo as coisas em verilog.

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 28 Jan 2015 10:38
por msamsoniuk
marcelo_asm escreveu:Já pensei diversas vezes em me dedicar a aprender VHDL. Mas sempre que a coisa aperta acabo resolvendo as coisas em verilog.


qual o sentido de usar VHDL? fora o fato de ser forte em paises que sao fracos na area de semicondutores, como o brasil... hahaha

Imagem
Imagem

no paises fortes na area de semicondutores, o uso de verilog esta caindo apenas na mesma proporcao do crescimento de systemverilog!

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 28 Jan 2015 18:08
por andre_luis
msamsoniuk escreveu:qual o sentido de usar VHDL? fora o fato de ser forte em paises que sao fracos na area de semicondutores, como o brasil... hahaha


Legal ter visto esse tópico atualizado hoje: Coincidentemente, recebi agora a pouco pelo Correio um livro de Verilog que comprei no Ebay, e também justamente hoje fiquei livre de um martírio de uma certificação em gerenciamento pra qual estou estudando já faz 3 meses, e fiz a prova mais cedo e passei !

Estou livre para poder voltar a estudar o que gosto, ou seja, coisas da área técnica, e com certeza vão me ver por aqui fazendo mais perguntas, mas agora sobre Verilog, não mais sobre VHDL...já fui convertido :lol:

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 29 Jan 2015 00:40
por msamsoniuk
junte-se aos bons e seja um deles! hahaha =D

andre_teprom escreveu:
msamsoniuk escreveu:qual o sentido de usar VHDL? fora o fato de ser forte em paises que sao fracos na area de semicondutores, como o brasil... hahaha


Legal ter visto esse tópico atualizado hoje: Coincidentemente, recebi agora a pouco pelo Correio um livro de Verilog que comprei no Ebay, e também justamente hoje fiquei livre de um martírio de uma certificação em gerenciamento pra qual estou estudando já faz 3 meses, e fiz a prova mais cedo e passei !

Estou livre para poder voltar a estudar o que gosto, ou seja, coisas da área técnica, e com certeza vão me ver por aqui fazendo mais perguntas, mas agora sobre Verilog, não mais sobre VHDL...já fui convertido :lol:

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 29 Jan 2015 10:12
por xultz
Marcelo, seria possível explicar as vantagens do Verilog sobre o VHDL de forma que um semi-analfabeto como eu consiga entender?

Re: Dúvida VHDL: precedencia na declaração de Enable e Clock

MensagemEnviado: 29 Jan 2015 11:07
por Red Neck Guy
Tem um pessoal aí utilizando python descrição de hardware, sei lá, sou preconceituoso e acho que é besteira, será mesmo?