VHDL comando para: if (mudanças de sinal), então fazer algo

T

tooh83

Guest
oi eu preciso de saber se existe um comando em VHDL que pode fazer o seguinte: if (mudanças de sinal), então fazer sth .. e se a resposta for não, então como posso fazer isso? thnx antecipadamente
 
você pode usar 'evento como: if (signal'event) ...... Isto irá executar o que você deseja mudanças de sinal sempre que ur.
 
processo (clk, reset) começar se reset = '0 'então prev_sig fim se; fim se; processo final;
 
Processo (sinal) começa fazer alguma coisa; processo final;
 
Foo: Processo Comece Espere até signal'event; ... Fim do processo Foo;
 
por um sinal .... vc pode usar o "evento" atributo para testar se as suas mudanças de valor ou não signal'event
 
u pode sim, passar por este código. Se qualquer taxa livre de problemas para entrar em contato biblioteca ieee; ieee.std_logic_1164.all utilização; flipflopT entidade é a porta (RCL, t: em std_logic; q, qq: fora std_logic); flipflopT fim; arco arquitetura de flipflopT é tmp sinal: std_logic; iniciar o processo (RCL) começar se clk'event e (clk = '1 ') e t = '1' tmp depois
 
Por que não usar isso? processo (sinal) começam fazer processo final st;
 
é um processo de construção tht pode ser utilizada para resolver o problema de ur. A outra maneira é possível utilizar u evento para o que será como se segue. ex: se o sinal em que espera ur é dizer "ret", então código é como abaixo do processo (ret) começar / / / / fazer algo processo final, isso resulta em uma lógica combinacional se o evento for usado, que também resultaria em um seqüencial lógica ....
 
[Quote = tooh83] oi eu preciso saber se existe um comando em VHDL que pode fazer o seguinte: if (mudanças de sinal), então fazer sth .. e se a resposta for não, então como posso fazer isso? thnx antecipadamente [/quote] Claro! u pode tentar, como esta declaração seqüencial: IF (clk = '1 'e clk'event) ENTÃO Zout
 
oi há 3 maneiras 1. uma declaração de espera no final ou no início do processo, por exemplo. esperar em um caso 'a' muda então o processo com re-avaliar 2. uma lista de sensibilidade no processo, por exemplo. processo (lista de sensibilidade) - o processo (a) 3. e se comunicado com uma sorte bom evento
 
Eu prefiro usar rising_edge (SIG) e falling_edge (SIG) funções :)
 
eu tenho nome de sinal "NUM" (8 bits), eu quero começar uma máquina de estado, enquanto NUM é alterado, e isso machin estado está sob um processo (RCL), eu tentei estes 1> i escreveu se NUM'event então --- início máquina estatal ================= aqui o erro é a linha 97: Declaração Relógio suportado 2> i escreveu esperar NUM; ============ o erro é declaração não esperar permitidos em um processo com uma lista de sensibilidade 3> i incluem o NUM para processar lista de sensibilidade também o erro é ============= Sinal "nome do estado atual de minha máquina do Estado" não pode ser sintetizado, descrição síncrona ruim.
 
Você deve tentar obter uma compreensão mais profunda do conceito de evento VHDL. Você pode ter um sincronismo (clock sensível) ou um processo (estado sensível) combinacional. Além disso, uma condição assíncrona pode ser combinado com um processo cronometrado, por exemplo, como um reset. Mas você não pode ter eventos adicionais dentro de um processo de clock. Percebo, que o seu perseguindo a idéia de eventos adicionais em um processo há muito tempo. Aparentemente você ainda não chegar até os conceitos básicos de VHDL para trás. Em minha opinião, não há espaço para eventos adicionais em um processo de clock, por exemplo, uma máquina de estado. Se você deseja detectar uma mudança na condição de entrada em particular, você pode comparar o estado do sinal presente com o estado anterior registrado e agir de acordo com o resultado de comparação.
 

Welcome to EDABoard.com

Sponsor

Back
Top