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

Linguagem descritiva de hardware

Moderadores: 51, guest2003

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

Mensagempor andre_luis » 18 Nov 2014 11:28

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 ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

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

Mensagempor marcelo_asm » 18 Nov 2014 12:46

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.
marcelo_asm
Byte
 
Mensagens: 280
Registrado em: 04 Fev 2009 13:11

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

Mensagempor andre_luis » 18 Nov 2014 12:53

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 !
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

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

Mensagempor pbernardi » 19 Nov 2014 09:52

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.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR

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

Mensagempor andre_luis » 19 Nov 2014 12:04

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;
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

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

Mensagempor msamsoniuk » 19 Nov 2014 23:08

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;
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

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

Mensagempor andre_luis » 19 Nov 2014 23:56

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.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

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

Mensagempor mastk » 27 Jan 2015 16:52

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.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

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

Mensagempor msamsoniuk » 28 Jan 2015 02:29

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
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

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

Mensagempor marcelo_asm » 28 Jan 2015 07:41

Já pensei diversas vezes em me dedicar a aprender VHDL. Mas sempre que a coisa aperta acabo resolvendo as coisas em verilog.
marcelo_asm
Byte
 
Mensagens: 280
Registrado em: 04 Fev 2009 13:11

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

Mensagempor msamsoniuk » 28 Jan 2015 10:38

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!
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

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

Mensagempor andre_luis » 28 Jan 2015 18:08

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:
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

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

Mensagempor msamsoniuk » 29 Jan 2015 00:40

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:
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

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

Mensagempor xultz » 29 Jan 2015 10:12

Marcelo, seria possível explicar as vantagens do Verilog sobre o VHDL de forma que um semi-analfabeto como eu consiga entender?
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

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

Mensagempor Red Neck Guy » 29 Jan 2015 11:07

Tem um pessoal aí utilizando python descrição de hardware, sei lá, sou preconceituoso e acho que é besteira, será mesmo?
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Próximo

Voltar para Verilog, VHDL, SystemC ( PLAs, CPLDs, FPGAs, etc... )

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x