2009년

C

completelyuseless

Guest
안녕 모두,

난 그 어떤 방식으로 비트를 조작하는 몇 가지 VHDL 코드를 하는데는있다.

의 벡터에 'n'을 비트, 나는 가장 중요한 '1 '벡터의 위치를 발견하고 0의가 필요하다고 바꾸란 그것의 왼쪽에있다.

예 :
말할 수있는가 9 비트 길이는 벡터가, 그리고 인공 지능 자의 말을 000,110,100입니다

거기에 3 0 1 obove 벡터에서 가장 중요한 그래서 난 그 0 바꾸란 것이다 마스킹 시스템의 영리한 정렬이 필요하기 전에, 111,110,100하고있다.
가장 중요한 경우에도
'1 '변화의 위치,
일반적인 방법이어야하며 어떤 경우 작동, () 과정을 변경하지 않고 크기를 제공하는 벡터

저도이 훨씬 더 잘 할 수 있고 다른 사람의 경우와 같은 경우에는 좀 똑똑하지만 빠른 마스킹 시스템이 난 그것에 대해이 문제를 대처하기 위해 존재 dont 알고 있는지 알고 ID입니다.

사전에 감사합니다

 
비슷한 작업을 가장 쉽게 구현할 수있는 루프를 반복 구성표.일반적으로 당신은 그
모든 상응하는 디자인을 설명 같은 코드는 VHDL 컴파일러의 최적화 작업으로 인해 끝낼 수 있을런지 고려해야한다.따라서 코드의 가독성을 compactness 주요 기준입니다.

 
당신도 .. 사건을 진술하거나 루프를 사용할 수있는 것

 
이 어떻게 그럴 수 있나이다.

입력 및 출력은 동일한 길이의 신호입니다.

코드 :프로세스 (CLK)

변수 leading_zeros : 부울;

시작

만약 rising_edge (CLK) 다음

대한 input'high dowoto input'low 루프에서

leading_zeros : = 진정한;

만약 입력은 (a) = '0 '과 leading_zeros 다음

출력은 (a) <= '1 ';

그 밖의

출력은 (a) <= 입력은 (a);

leading_zeros : = 거짓;

끝;

최종 루프;

끝;

엔드 프로세스;

 

Welcome to EDABoard.com

Sponsor

Back
Top