2014-01-19 3 views
2

나는 알테라 10.2을 사용하여 VHDL 코드의 조각을 컴파일하려면 노력하고 있어요,하지만 난이 오류 :지원되지 않는 기능 오류

Unsupported feature error: non-locally-static attribute names are not supported

나는 내 강사이 오류 메시지에 대한 도움을 요청하지만, 그는 말했다 내 소스 코드는 그에게 잘 보였다. 그리고 올바르게 컴파일해야했다.

if ((ina'event AND ilvla=ilvlb) AND (ilvla=NOT ilvlc)) then 
    if (ilvla=lvla AND ilvlb=lvlb AND ilvlc=lvlc) then 
     ilvla <= '0'; 
     ilvlb <= '0'; 
     ilvlc <= '0'; 
     clk <= '1'; 
    else 
     ilvla <= (ilvlc AND ilvlb AND NOT ilvla) OR (ilvla AND NOT ilvlc) OR (ilvla AND NOT ilvlb); 
     ilvlb <= ilvlb XOR ilvlc; 
     ilvlc <= NOT ilvlc; 
    end if; 
else 
    rst <= '1'; 
end if; 

if 문과 함께 첫 줄에 오류가 발생합니다.

+1

시뮬레이션 또는 합성을 위해 컴파일 하시겠습니까? 그 첫 번째 라인은 확실히 합성하지 않을 것입니다! –

+0

모르겠다 ... 시뮬레이션을하려고하는데 알테라 메뉴에 컴파일 옵션이 하나 뿐이다 ... –

답변

1

'이벤트에 대한 귀하의 의도는 무엇입니까? 플립 플롭을 만들려고하십니까? 그렇지 않은 경우 '이벤트'를 사용해서는 안됩니다. 그렇다면, 당신은 상승 에지를 찾는 기초를 놓쳤습니다. 그들은 다음 세 가지 중 하나입니다 :

정말 당신이 어떤 신호의 이벤트 '를 확인하고 일치 및/또는하지 여부를 다른 신호와 일치 할 수없는 형태가 없습니다
if Clk = '1' and Clk'event then 
if Clk'event and Clk = '1' then 
if rising_edge(Clk) then -- *** Preferred for readability. 

.

또한 사용중인 구조가 플립 플롭에 적합하지 않습니다. 도구의 불행을 초래할 시계의 else 분기에 값을 지정합니다. 또한 시계가 분기의 경우에만 가장 외부에 있으면 합성 도구가 가장 행복합니다. 다음 두 플립 플롭에 대한 일반적인 : 당신이 코드를 작성하는 동안, 당신은 하드웨어를 만드는

SimpleFF : process(Clk) 
begin 
    if rising_edge(Clk) then 
    -- other stuff 
    end if ; 
end process SimpleFF ; 

    AsyncResetFF : process(Clk, nReset) 
    begin 
    if nReset = '0' then 
     -- reset stuff 
    elsif rising_edge(Clk) then 
     -- other stuff 
    end if ; 
    end process SimpleFF ; 

. 이것을 잊지 마십시오. 1 단계는 항상 원하는 것을 대략적으로 그리는 것입니다. 특히, 플립 플롭, 조합 논리 및 산술 논리와 같은 하드웨어 요소 식별. 그런 다음 그림에있는 내용을 캡처하는 코드를 작성하십시오.

+0

당신이 말한 변경을했지만 지금은 새로운 오류가 발생한다 : '[% DLS -F-NullArg, FindAttibute에 대한 널 (Null) 소유자 노드 인수. ''그러나 여기에는 강조 표시된 행이 없습니다. 어떤 아이디어? –

+0

나누고 정복하십시오! 의미있는 프로젝트는 잘못된 파일을 컴파일하는 것입니다. 코드의 절반을 제거하십시오. 오류가 사라 졌습니까? 그렇지 않은 경우 오류는 코드의이 부분에 있지 않습니다. 코드의 나머지 절반을 수행하십시오. 그렇다면 코드를 다시 반으로 나누고 반복하십시오. 초기 EDA 도구는 오늘날과 같이 좋지 않았지만 때때로 디버그 기술이 돌아 왔습니다. –

관련 문제