프로 시저 근처> : 구문 오류 - 오류 메시지

V

Vlsi_lok

Guest
안녕 모두,
다음 코드 예는 컴파일프로 시저 ApplyReset (신호 i_clk : std_logic에
신호 i_reset가 : 아웃 std_logic)입니다
시작
기다릴 때까지 i_clk = '1 '; i_reset <= '1';
기다릴 때까지 i_clk = '1 '; i_reset <= '0';
끝 ApplyReset;다음과 같은 오류 메시지가 표시됩니다;
절차를 가까이 : 구문 오류

내가 시간을 주셔서 감사합니다 여러분의 도움과

감사
Lok

 
안녕하세요,

세미콜론이 매개 변수는 프로 시저 두 가지입니다 누락 간의 :

신호 i_clk : std_logic에, 신호 i_reset : 아웃 std_logic

Devas

 
안녕하세요, 답장을 보내주셔서 감사합니다.이 경우에도 역시 오류를주는 같은.
Infact 제가상의 의무 testbench 오전주는 나의 완료.제발 도와주세요.그것은 오류 문법을 많이주고있다.
당신들이 매핑을 포트 및 구성 요소 인스턴스를 실행할 수에 의해 삭제됩니다.

제발 도와주세요.그것은 시간을 내가 먹는 모든
-------------------------------------------------- ------------------------------
도서관의 IEEE;
사용이 ieee.std_logic_1164.ALL;
를 사용 ieee.std_logic_unsigned.all;
사용이 ieee.numeric_std.ALL;

엔티티 testbench 시니
End를 testbench;

testbench의 문제는 아키텍처 IS

- 매개 변수 선언;
상수 WL : 정수 : = 8;
지속적인 투자 정보 : 정수 : = 4;
상수 IC에서 : 정수 : = 5;
쓰레 쉬 홀드 상수 : 정수 : = 0;

단위 테스트에서 선언에 대한 부품 - (UUT)

부품 harris_corner_top
WL 일반 :) 정수 : = 8;
투자 정보 : 정수 : = 5;
IC에서 : 정수 : = 5;
쓰레 쉬 홀드 : 정수 : = 5
);
포트 (
i_clk : 인디애나 std_logic;
i_reset : 인디애나 std_logic;
i_R : 인디애나 std_logic_vector (12 downto 0);
i_C : 인디애나 std_logic_vector (12 downto 0);
i_start_image : 인디애나 std_logic;
i_end_image : 인디애나 std_logic;
i_data_valid : 인디애나 std_logic;
i_pixel_data : 인디애나 std_logic_vector (7 downto 0);
o_data_valid : 출력 std_logic;
o_corner_data : 출력 std_logic;
o_start_image : 출력 std_logic;
o_end_image : 출력 std_logic
);
최종 구성 요소;- 입력
신호 i_clk : std_logic : = '0 ';
신호 i_reset : std_logic : = '0 ';
i_R 신호 : std_logic_vector (12 downto 0) : = (기타 => '0 ');
i_C 신호 : std_logic_vector (12 downto 0) : = (기타 => '0 ');
신호 i_start_image : std_logic : = '0 ';
신호 i_end_image : std_logic : = '0 ';
신호 i_data_valid : std_logic : = '0 ';
신호 i_pixel_data : std_logic_vector (7 downto 0) : = (기타 => '0 ');

- 출력
신호 o_data_valid : std_logic;
신호 o_corner_data : std_logic;
신호 o_start_image : std_logic;
신호 o_end_image : std_logic;

- 시계 기간 정의
상수 i_clk_period : 시간 : = 1us;

- 내부의 신호 선언 ....
유형 memory_0입니다 (0 배열 투자에 * IC에서 - 1) 정수의;
유형 memory_1하는 배열 (0

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

의 실제;
유형 memory_2입니다 (0 배열 투자에 * IC에서 - 1) 실제의;

신호 pixelImage : memory_0;
신호 DX를, 다이, 가우스 : memory_1;

하는 BEGIN

-) (UUT 인스턴스 단위에서 테스트
uut : harris_corner_top
일반지도 (WL => 8, 투자 => 5, IC에서 => 5, 쓰레 쉬 홀드 => 0)
포트 맵 (
i_clk => i_clk,
i_reset => i_reset,
i_R => i_R,
i_C => i_C,
i_start_image => i_start_image,
i_end_image => i_end_image,
i_data_valid => i_data_valid,
i_pixel_data => i_pixel_data,
o_data_valid => o_data_valid,
o_corner_data => o_corner_data,
o_start_image => o_start_image,
o_end_image이 => o_end_image
);

- 시계 프로세스 정의
i_clk_process : 프로세스
시작
i_clk의 <= '0 ';
2 / 기다에 대한 i_clk_period;
i_clk의 <= '1 ';
2 / 기다에 대한 i_clk_period;
최종 처리;프로 시저 ApplyReset (신호 CLK : std_logic에;
신호 리셋 : 아웃 std_logic)입니다
시작
CLK 때까지 기다려 falling_edge (); - 재설정 <= '1 ';
CLK 때까지 기다려 falling_edge (); - 재설정 <= '0 ';
끝 ApplyReset;

절차 PrepareInput입니다
시작
DX를 (0) <= -1; 마구 (0) <= -1;
DX를 (1) <= 0; 마구 (1) <= -1;
DX를 (2) <= 1; 마구 (2) <= -1;
DX를 (3) <= -1; 마구 (3) <= 0;
DX를 (4) <= 0; 마구 (4) <= 0;
DX를 (5) <= 1; 마구 (5) <= 0;
DX를 (6) <= -1; 마구 (6) <= 1;
DX를 (7) <= 0; 마구 (7) <= 1;
DX를 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

<= 1; 마구 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

<= 1;

- 시그마 = 1.4 --- G33
<가우스 (0) = 0.0924; 가우스 (1) <= 0.1192; 가우스 (2) <= 0.0924;
<가우스 (3) = 0.1192; 가우스 (4) <= 0.1538; 가우스 (5) <= 0.1192;
<가우스 (6) = 0.0924; 가우스 (7) <= 0.1192; 가우스 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

<= 0.0924;

- file_in 파일 : 텍스트 열 read_mode는 ""data/input/lena_64_64.txt;
-) file_open read_mode (file_in를, "data/input/lena_64_64.txt";

0은 (i =; 나 <투자; 전 = 전 1) 루프
IC에서에 대한 (일본 = 0; 일본 <; 일본 = j를 1) 루프
pixelImage은 (i * IC에서 일본) = buf_in;
끝 루프;
끝 루프;
최종 PrepareInput;프로 시저 convolution_task ()
d 개의 변수, rowTotal, colTotal, 센터, conv_address : 정수;
시작
센터 : = 1;
conv_address : = 0;
0에 행이 투자에 대한 루프
0에 열 IC를위한 루프
d 개의 <= 0;
기능을 중심으로 중심 rowOffset에 대한 루프를
기능을 중심으로 중심 colOffset에 대한 루프를
rowTotal : = 행 내용 rowOffset;
colTotal : = 열 colOffset;
rowTotal면 (<0 또는 rowTotal> 투자 정보 - 1 또는 colTotal <0 또는 colTotal> IC에서 - 1) 다음
피 (라) <= 0;
다른 사람
피 (라) <= conv_in (rowTotal * IC에서 의 colTotal);
종료면;
d 개의 <= d 개 1;
끝 루프;
끝 루프;

conv_out (conv_address) = 피 (0) * 커널 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

피 (1) * 커널 (7) 피 (2) * 커널 (6)
피 (3) * 커널 (5) 피 (4) * 커널 (4) 피 (5) * 커널 (3)
피 (6) * 커널 (2) 피 (7) * 커널 (1) 피 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />

* 커널 (0);

conv_address : = conv_address 1;
끝 루프;
끝 루프;
최종 절차;프로 시저 find_mult ()
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
ix2는 (i * IC에서 일본) = 9 (1 * IC에서 일본) * 9 세는 (i * IC에서 J를);
iy2는 (i * IC에서 일본) = IY은 (i * IC에서 일본) ※ IY는 (i * j를 IC에서 );
ixiy은 (i * IC에서 일본) = 9 (1 * IC에서 일본) ※ IY은 (i * j를 IC에서 );
끝 루프;
끝 루프;
최종 절차;절차 find_cornernessmap ();
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
옥수수 = ((A_matrix은 (i * IC에서 일본) * B_matrix은 (i * j를 IC에서 )) - (C_matrix은 (i * IC에서 일본) * C_matrix은 (i * IC에서 j를))) - (0.05 * (A_matrix ( 난 * IC에서 일본) j를 B_matrix은 (i * IC에서 )) * (A_matrix은 (i * j를 IC에서 ) ) B_matrix은 (i * IC에서 j를));

cornerness은 (i * j를 IC에서 ) <= 옥수수;
끝 루프;
끝 루프;
최종 절차;절차 non_maximal_sppression ();
정수 디 rowTotal, colTotal, 카운트, 중앙 = 1;
시작
0에 행이 투자에 대한 루프
0에 열 IC를위한 루프
d 개의 <= 0;
기능을 중심으로 중심 rowOffset에 대한 루프를
기능을 중심으로 중심 colOffset에 대한 루프를
rowTotal <= 행 내용 rowOffset;
colTotal <= 열 colOffset;
rowTotal면 (<0 또는 rowTotal> 투자 정보 - 1 또는 colTotal <0 또는 colTotal> IC에서 - 1) 다음
비 (라) <= 0;
다른 사람
비 (라) <= cornerness (rowTotal * IC에서 의 colTotal);
d 개의 <= d 개 1;
끝 루프;
끝 루프;

계산 <= 0;
0에 내가 3 루프
0에 일본 3 루프
그때면 (cornerness (행 * IC에서 를 열) <비은 (i * 3 j를))
계산 <= 1;
종료면;
끝 루프;
끝 루프;

그때면 (계산 = '0 ')
non_max (행 * IC에서 를 열) <= cornerness (행 * IC에서 를 열);
다른 사람
non_max (행 * IC에서 를 열) <= 0;
종료면;

끝 루프;
끝 루프;
최종 절차;절차 Thresholding;
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
다음 non_max은 (i * IC에서 일본)>면 (쓰레 쉬 홀드)
타작 [나는 * IC에서 j를] = 1;
다른 사람
타작 [나는 * IC에서 j를] = 0;
종료면;
끝 루프;
끝 루프;
최종 절차;

절차 ready_ix입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
conv_in은 (i * j를 IC에서 ) <= pixelImage은 (i * j를 IC에서 );
끝 루프;
끝 루프;

0에 내가 K_SIZE위한 루프
0에 일본 K_SIZE위한 루프
커널은 (i * j를 K_SIZE ) <= DX를은 (i * j를 K_SIZE );
끝 루프;
끝 루프;
끝 ready_ix;

절차 copy_ix입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
9 (1 * IC에서 일본) <= conv_out은 (i * j를 IC에서 );
끝 루프;
끝 루프;
최종 절차;

절차 ready_iy입니다
시작
0에 내가 K_SIZE위한 루프
0에 일본 K_SIZE위한 루프
커널은 (i * j를 K_SIZE ) <= 마구은 (i * j를 K_SIZE );
끝 루프;
끝 루프;
최종 ready_iy;

절차 copy_iy입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
IY은 (i * j를 IC에서 ) <= conv_out은 (i * j를 IC에서 );
끝 루프;
끝 루프;
최종 copy_iy;

절차 ready_a입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
conv_in은 (i * j를 IC에서 ) <= ix2는 (i * j를 IC에서 );
끝 루프;
끝 루프;

0에 내가 K_SIZE위한 루프
0에 일본 K_SIZE위한 루프
커널은 (i * j를 K_SIZE ) <= 가우스는 (i * j를 K_SIZE );
끝 루프;
끝 루프;
최종 ready_a;

절차 copy_a입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
은 (i * j를 IC에서 ) <= conv_out은 (i * j를 IC에서 );
끝 루프;
끝 루프;
최종 copy_a;

절차 ready_b입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
conv_in은 (i * j를 IC에서 ) <= iy2은 (i * j를 IC에서 );
끝 루프;
끝 루프;
끝 ready_b;

절차 copy_b입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
b는 (i * j를 IC에서 ) <= conv_out은 (i * j를 IC에서 );
끝 루프;
끝 루프;
끝 copy_b;

절차 ready_c입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
conv_in은 (i * j를 IC에서 ) <= iy2은 (i * j를 IC에서 );
끝 루프;
끝 루프;
끝 ready_c;

절차 copy_c입니다
시작
0에 내가 투자에 대한 루프
0에 일본 IC를위한 루프
b는 (i * j를 IC에서 ) <= conv_out은 (i * j를 IC에서 );
끝 루프;
끝 루프;
끝 copy_c;- 자극 과정
stim_proc : 프로세스
시작
- 마무리 재설정 글로벌 NS를위한 100 잠깐 만요
- # 500;

- 초기화 신청
ApplyReset (i_clk, i_reset);
보고서는 "ApplyReset"는 n을 완료 \입니다;

- # 300;

PrepareInput ();
보고서는 "PrepareInput"는 n을 완료 \입니다;

erady_ix ();
convolution_task ();
copy_ix ();
보고서 "9 계산"는 n을 완료 \입니다;

erady_iy ();
convolution_task ();
copy_iy ();
보고서 "IY 계산"는 n을 완료 \입니다;

find_mult ();
곱셈은 차별 "리포트"n을 완료 \입니다;

ready_a ();
convolution_task ();
copy_a ();
보고서 "계산"는 n을 완료 \입니다;

ready_b ();
convolution_task ();
copy_b ();
보고서 "B 계산"는 n을 완료 \입니다;

) ready_c (;
convolution_task ();
) copy_c (;
보고서 "C_matrix 계산은"n을 완료 \입니다;

find_cornernessmap ();
보고서 "Cornerness지도"는 n을 완료 \입니다;

non_maximal_sppression ();
보고서 "비 최대 억제"는 n을 완료 \입니다;

Thresholding ();
보고서는 "Thresholding"는 n을 완료 \입니다;

PrepareInput_RTL ();
보고서는 "PrepareInputRTL"는 n을 완료 \입니다;

잠깐;
최종 처리;

끝;

 
안녕하세요,

당신은 프로세스 또는 건축 부분에서 선언 절차를 가지고 당신의 선언 :

의 실체 rtl이 아키텍처는

<declaration의 part>

시작

끝프로세스

<declaration의 part>

시작



Devas

 
안녕 Devas,

ThankQ 많은 yaar.내가 VHDL 새로운입니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top