2016-08-25 7 views
0

우리는 지연을 제공하기 위해 [약간 지연] 진술을 사용하고 시뮬레이션에서 분석 할 수 있습니다. 그러나 우리가 FPGA에이 모델을로드 할 때 VHDL 코드로 만들어진 실제 하드웨어가 지연에 영향을 미치거나이 지연이 시뮬레이션에만 국한되어 있습니까?[몇 초 지연] 진술 후 VHDL에서 FPGA에로드 할 시뮬레이션 또는 실제 합성 모델에서만 지연을 제공합니까?

a <= not b after 1s; 

그래서 b 하나 개의 스위치를 연결 그래서 스위치를 누르면 LED 상태를 업데이트하는 사이에 1 초 지연을 얻을 것이다 a에 LED 가정?

+2

'1 초 후' –

+1

신디사이저가 'a <= 1 b 이후'를 구현하기 위해 어떤 하드웨어를 생성한다고 가정합니까? ' –

+0

신디사이저 (synthases) 이후에 하드웨어를 보았고 a에만 연결된 b가 생성되지 않았다. –

답변

0

시뮬레이션 할 때 상황이 발생하고 입력이 어떻게되는지를 제공해야합니다. FPGA에서 구현 한 후, 외부 이벤트는 입력을 생성하고 시뮬레이션은 그것에 대해 아무런 관련이 없습니다.

귀하의 질문을 올바르게 이해한다면 그렇습니다. 귀하가 보여주는 지연은 시뮬레이션에만 영향을 미칩니다.

편집 : 타이머에 관해서는 FPGA의 클럭 주파수를 알고 있습니다. 그래서 변수를 만들고 각각을 clk_up (내가 사용하는 CLK = '1' and CLK'Event하지만 더 좋은 방법이 있습니다)에 증가시킬 수 있고, 클럭 주파수와 같은 값에 도달하면 1 초가 지났습니다.

그리 의사 코드 : 같은

signal clock: unsigned (9 downto 0); 
if CLK = '1' and CLK'Event then 
    clock<= clock + 1; 
    if clock = "1100100000" then --clock frequency (this is an example) 
     clock <= "0000000000" 
     -- 1 secound passed! 
    end if; 
end if; 
+1

간단히 말해, 'wait'및 'after'문을 합성 할 수 없습니다. –

+0

그래서 합성 수있는 지연을 생성 할 수 있습니까? –

+2

@NeilTerminator는 클럭 신호를 사용하여 타이머를 구현합니다.이와 관련하여 다른 질문이 있습니다. –

1

전에, 대기 문을 합성 할 수 없으며 시뮬레이션에 영향을 미칠 것이라고 말했다. 그러나 시뮬레이션에서조차도 기대 한 바를 얻지 못할 수도 있다고 덧붙여 야합니다. 설명 할 수있게 해줘.

VHDL은 전송 지연과 관성 지연의 두 가지 모델을 제공합니다. 후자는 기본값이며 후자는 사용할 모델을 지정하지 않음으로써 선택했습니다.

지연 과정에서 b가 안정적이지 않은 경우, 500ms마다 토글되며, 원하는대로 토글하지 않습니다. 다음과 같이 정말 순수한 지연을 소개하기 위해, 전송 지연 모델을 선택 : 물론

a <= transport not b after 1s; 

, 다시이 합성 및 시뮬레이션 목적으로 만 사용됩니다 수 없습니다.