Q&A Home > 고객지원 > 기술지원 > Q&A
[re]컴파일 문의
카테고리FPGA/SoC
작성자HB_SoC 아이피119.203.239.59
작성일11-02-21 21:52 조회수3311
파일
안녕하세요..

문의주신 내용을 잘 보았습니다.

MAX + plus II 등의 예전 Compiler의 경우 제시한 예제의 구문이 성립되었습니다.

하지만, 컴파일러의 버전이 올라가 이 구문은 더이상 성립되지 않습니다.

연산자와 결과가 같은 비트수를 가져야 합니다.

그렇기 때문에 TMP <= A + B; 에서  왼쪽 TMP와 오른쪽 A + B의 항목을 모두 3비트로 바꾸어주어야 합니다.  

아래와 같이 사용하시면 됩니다.

TMP <= ('0' & A) + ('0' & B);

&기호는 비트를 묶는 연산자입니다.

그럼, 즐거운 하루 보내세요.

>
예제 소스 EX_2_1_V.VHD를 컴파일시 "TMP<=A+B"가 에러가 납니다.
포트의 크기가 a,b와 tmp가 다른데 컴파일이 되나요??
예제의 에러입니까? 아니면 다른 방법이 있는겁니까? 답변부탁드립니다.^^;
///////////////////////////////////////////////////////////////////////////
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY EX_2_1_V IS
PORT(
A : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
B : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
C : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
S : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
END EX_2_1_V;
ARCHITECTURE HB OF EX_2_1_V IS
SIGNAL TMP : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
TMP <= A + B;
C(1) <= TMP(2);
C(0) <= A(0) AND B(0);
S <= TMP(1 DOWNTO 0);
END HB;

다음글 컴파일 문의
이전글 Zigbex 모듈로 원하는 data를 주고받는 프로그램 질문

댓글 등록은 로그인 하신후 이용하실 수 있습니다.