2012-11-07 3 views
1

VHDL code이 있고 BDF desing입니다.내 프로그램은 ModelSim에서 작동하지만 실제 FPGA 보드에서는 작동하지 않습니다.

ModelSim에서 VHDL 코드를 시뮬레이트하면 정상적으로 작동하지만 Quartus에서 시뮬레이션하거나 FPGA Cyclone 보드에 업로드 할 때 LED에 신호가 없습니다. IDK, 내가 바라는 방식으로.

+0

간단한 VHDL 코드를 보드에 업로드 해 보셨습니까? Cyclone 보드에는 기본 동작을 확인하기위한 테스트 비트 스트림이 있습니까? –

+0

사이클론이 작동하지 않는다는 뜻입니까? 대학 책상 (> 10)과 내 프로그램은 Quartus 시뮬레이션에서도 작동하지 않습니다. – JohnDow

+0

먼저 한 LED를 켜고 끄는 디자인을 천천히하고 있습니까? 그게 단지 12 라인의 코드입니다. 당신이 그 방법을 가지고 어떻게 작동하는지 이해할 때까지는 "시뮬레이션에서 작동합니다"에서 "칩에서 작동합니다"라는 큰 도약이 있습니다. –

답변

5

코드를 신속하게 살펴 보았지만 구문이 올바르지 만 실제로는 합성 가능으로 보이지 않습니다. 예를 들어

:

led_size : process(clk, size) 
begin 
    if size = '1' then  
    led_size_f <= led_size_f +1; 
    end if; 
    if led_size_f > 4 then 
    led_size_f <=1; 
    end if; 
end process; 

그것도 clk를 사용하지 않으며, (당신이 무슨 일을하는지 확신 아니라면, 일반적으로 나쁜 일) 그것은 또한 래치를 생성합니다, 것입니다 아마도 FPGA에서 실행할 때 문제가 발생할 수 있습니다.

더 많은 예제를 게시 할 수 있지만 내가 너라면 합성 도구에서 얻는 경고 목록을 살펴볼 것입니다.

또한 IDE에 동기식 디자인을위한 템플릿이 제공되는지 확인한 다음이를 준수하여 실제로 원하는 하드웨어를 추론하고 있는지 확인하십시오.

+0

그래서 나는 그것을 사용하지 않는 clk를 ​​삭제하고 프로그램을 컴파일하고 '경고 : 래치 기본형'knight_rider2 : inst | led3 "가 영구적으로 비활성화 됨"을 봅니다. 어쩌면 뭔가를 잊어 버린 것일 수도 있습니다. – JohnDow

+0

정보 : 핀 "LEDR [0]"은 출력 핀로드 커패시턴스가 지정되지 않았습니다. - 타이밍 분석을 위해 0pF의 기본 부하 커패시턴스를 가정하면 ' – JohnDow

+0

'은 사용되지 않는 곳에서 'clk' VHDL 개발을 할 때 "Think Hardware"(tm)가 필요합니다. 코드를 FPGA 디바이스에서 사용할 수있는 하드웨어로 합성하고 매핑해야합니다. 구문 적으로 올바른 VHDL을 작성하는 것은 불가능합니다. 마찬가지로 코드 맵을 하드웨어에 올바르게 작성하려면 특정 템플릿을 고수해야합니다. 좋은 VHDL 서적을 통해이 문제를 해결할 수 있으며 IDE의 도움말 기능도 가능합니다. – sonicwave