설계"난

A

aris12

Guest
안녕하세요 모두들
내가 VHDL 새로운거야 그리고 난 후 디 12 사이클 후에 신호가 활성화 노력하고있어 - 다시 활성화합니다.예를 들어,
시작 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 엔드

난, ModelSim에서 이러한 오류가
오류 : 삽입사 연산자에 대한 실현 emtries " ".
오류 : 입력 오류 "삽입사 표현을 해결 "를 입력 ieee.std_logic_1164.std_logic_vector합니다.

사람이 무엇을 pls 일이에요 내가 어떻게 그것을 고칠 수 없다는 걸 알 수 있나요?코드 :

라이브러리는 IEEE;

사용 ieee.std_logic_1164.all;

사용 ieee.numeric_std.all;- =============== 인터페이스에 대한 설명 ===============엔티티 COUNTER_DEC입니다포트 (클럭 : std_logic에; - 긍정적인 첨단

리셋 : std_logic에;시작 : std_logic에; - 시작하는 프로세스를done_count : 아웃 std_logic - 프로세스의 종료);

최종 COUNTER_DEC;건축 COUNTER_DEC_RTL COUNTER_DEC입니다- =============== 신호 =============== 정의신호 tmp에 : std_logic;

활성 신호가 : std_logic;

신호 카운터 : std_logic_vector (3 downto 0);- =============== 데이터 이동 ===============시작START_COUNTER : (시계, 재설정) 프로세스시작만약 리셋 = '1 '을 선택한 다음

카운터 "= (다른 분들에게도 ="'0 ');

tmp를 "= '0 ';

활성 "= '0 ';elsif (시작 = '1 '또는 활성화 = '1') 다음만약 clock'event 및 클럭 = '1 '을 선택한 다음

카운터 "= (카운터 '1 ');

그 밖의

카운터 "= 카운터;

tmp를 "= tmp를;

최종면;

활성 "= 활성 xor 시작;

그 밖의

카운터 "="0000 ";

tmp를 "= '0 ';

활성 "= '0 ';

최종면;만약 카운터 = "1100"그때

tmp를 "= '1 ';

카운터 "="0000 ";

활성 "= '0 ';

그 밖의

tmp를 "= '0 ';

최종면;

done_count "= tmp를;최종 처리;최종 COUNTER_DEC_RTL;
 
' '구문 오류가 쉽습니다.당신은 숫자 값을 비트가 값을 추가할 수있습니다.'1 '비트 신호입니다, 그것을 추가할 수없습니다.

너, 그럼 당신 std_logic_vector로 서명되지 귀하의 카운터를 정의해야 numeric_std 패키지를 사용하고있습니다.
작자 미상 신호 1을 추가하여 늘릴 수있습니다.
코드 :

카운터 "= 카운터 1;
 
fvm 매우 U 답장을 보내주셔서 감사합니다.
당신 말이 맞아요.난 ""와 서명되지 않은 컴파일을 성공적으로 사용 complited.나쁜 .. 내가 원하는대로되지 않는다는 것입니다

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />

<img src="http://images.elektroda.net/17_1214589189_thumb.jpg" border="0" alt="i can't activate a signal after 12 cycles" title="난 12 사이클 후에 신호를 활성화할 수있습니다"/> 코드 :- ================================================ ===========================

- 프로젝트 : COUNTER_DEC

- 목적 :이 블록 후 12 시계는 하나의 펄스 출력을 활성화합니다.

- ================================================ ===========================라이브러리는 IEEE;

사용 ieee.std_logic_1164.all;

사용 ieee.std_logic_unsigned.all;

- ieee.numeric_std.all 사용;- ========= 인터페이스에 대한 설명 ================엔티티 COUNTER_DEC입니다포트 (클럭 : std_logic에; - 긍정적인 첨단

리셋 : std_logic에;시작 : std_logic에; - 시작하는 프로세스를done_count : 아웃 std_logic - 프로세스의 종료);

최종 COUNTER_DEC;건축 COUNTER_DEC_RTL COUNTER_DEC입니다- ========= 신호 ================ 정의신호 tmp에 : std_logic;

신호 active1 : std_logic;

신호 카운터 : std_logic_vector (3 downto 0);

- new_counter 신호 : std_logic_vector (3 downto 0);- ========= 데이터 이동 ================시작START_COUNTER : (시계, 재설정) 프로세스시작만약 리셋 = '1 '을 선택한 다음만약 리셋 = '1 '을 선택한 다음

카운터 "= (다른 분들에게도 ="'0 ');

tmp를 "= '0 ';

active1 "= '0 ';elsif () 후 = '1 '또는 active1 = '1'시작만약 clock'event 및 클럭 = '1 '을 선택한 다음

카운터 "= 카운터 1;

그 밖의

카운터 "= 카운터;

tmp를 "= tmp를;

최종면;

active1 "= active1 또는 시작합니다;- 다른 사람

- 카운터 "="0000 ";

- tmp에 "= '0 ';

- active1 "= '0 ';

최종면;

최종면;만약 카운터 = "0001"그때

tmp를 "= '1 ';

카운터 "="0000 ";

active1 "= '0 ';

그 밖의

tmp를 "= '0 ';

최종면;

done_count "= tmp를;최종 처리;최종 COUNTER_DEC_RTL;

 
당신은 FPGA에서 합성되지 않습니다 행동 코드를 사용하고있습니다.그것은 시뮬레이션 ony에서 사용할 수있습니다.도서, 당신은, 분명히이 중요한 차이점에 초점을 두지 않습니다 자문.

나도 루프에있는 합성 코드 클럭에 민감한 기다려 성명이나 시계 반대의 가장자리에 민감한 성명, 불행히도.(당신이 과정에서 다른 가장자리를 사용하거나 spearate 프로세스에서가 아니라 같은 신호를 설정할 수있습니다.)

이 제한에 대한 이유는 오히려 간단하고 내 의견을 이해.FPGA 코어 로직 게이트와 플립 - 퍼를 기반으로합니다., 플립 퍼 (항상 리셋, 때때로 동기로드 설정) 비동기이 그 가족의 FPGA 사이의 작은 차이지만, 기본적으로 기능 및 동기.동기 기능, 시계를 반전하여, 그것을 인접해 가장자리에서 작동할 수있는 첨단 민감한 클럭 입력을 활용합니다.아무것도, 그 샘플을 모두 가장자리에 신호를 허용하지 않을 거란 걸.

사실은 당신의 논리는 매우 간단합니다.그것은 간단 작성할 수있습니다 :

코드 :

만약 리셋 = '1 '을 선택한 다음

카운터 "= (다른 분들에게도 ="'0 ');

done_count "= '0 ';

elsif rising_edge (시계) 다음

카운터 "= 12 그리고 만약

카운터 "="0000 ";

done_count "= '1 ';

elsif 카운터를 "0 또는 시작 = '1 '을 선택한 다음

카운터 "= 카운터 1;

done_count "= '0 ';

그 밖의

카운터 "="0000 ";

done_count "= '0 ';

최종면;

최종면;
 
fvm 나의 영웅 통해 UR

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />

마 인류에 감사합니다.그것을 작동합니다.
난 모든 걸 이해 U했다.미국 감사합니다내가 그것을 작동하도록하는 절차, 기능 및 많은 다른 많은 것들을 만들려고 너무 많은 시간을 할애

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />
<img src="http://images.elektroda.net/38_1214609049_thumb.jpg" border="0" alt="i can't activate a signal after 12 cycles" title="난 12 사이클 후에 신호를 활성화할 수있습니다"/> 왜냐하면 이동 통신 사업자와 i를 사용하려고 해요 U, 나를 VHDL에 대한 좋은 가이드를 다시 제안할 수있는 오류

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />내가 사용하는,
ieee.numeric_std.all;
IEEE.NUMERIC_BIT;
그리고 난 예를 들어, 쓰기
테스트 "= 카운터 rol 1;
여기서 테스트 및 counder "std_logic_vector (3 downto 0)입니다;".
오류 : ""rol ""연산자의 정의를 확인할 수없습니다 - 0 가능한 정의를 찾을 수

 
하지만 거기에 분명 많은 내가 특정 VHDL 책을 몰라.개인적으로, 난 개요를 참조 설명서 http://www.cse.unsw.edu.au/ ~ cs3211/refs/vhdl1.pdf 사용
http://www.cse.unsw.edu.au/ ~ cs3211/refs/vhdl2.pdf,
가끔은 심지어는 IEEE 사양, 편리하지 비록 그것이 문학,하지만 몇 가지 유용한 구조는 다른 문헌에 언급되지 않습니다.

어떤 가져온 이동 통신 사업자에 대해서는, 그들이 패키지에 정의되어있는 문법과 가용성에 따라 다릅니다.필자는 개인적으로 일반적인 VHDL 표현 대신에 선호하는 :
코드 :

테스트 "= 계산 (2 downto 0) & 카운트 (3);
 
다시 한번 감사합니다.당신의 방법을 함께했다.
그리고 매뉴얼을 보이는 세부.
thnx

 

Welcome to EDABoard.com

Sponsor

Back
Top