-"도와줘 ... 고정 소수점 VHDL을 사용하여 번식

G

Guest

Guest
안녕, 친구,

내가 VHDL에서 손을 녹색이고 매우 간단하고 FFT.첫 번째 문제는 내가 어떻게 encouter 16 비트 지점을 8 비트 분수와 배율을 고정 프로그램입니다.심지어 그들은 논리 게이트의 거대한 번호를 저장할 수있는 모든 배율 모듈을 사용하고 싶지 않아요.난 그냥 ""곱셈 할 * 사용하고 싶습니다.

계산 후 "*에 의해"옮겨 될 이후 데이터 형식 분수와 시점의 수정 프로그램입니다하지만, 결과를 생각했다.하지만 난 그것에 대해 확실하지 오전과이 프로그램을 시작하는 방법을 모르겠어요.

아무도이 문제에 대한 예를 보여 드려도 될까요?

고마워.

 
첫째, 만약 당신이 xxx.xxx처럼 고정 소수점 표기법을 사용하려는 경우, 다음 8 왼쪽 정수로 그들을 고려해 각 피연산자를 이동하여 곱셈을 수행할 수있습니다. 그렇다면, 당신은 어떤하여 수행할 수있습니다 정수 곱셈을 수행할 수있습니다 " 당신이 8 각 피연산자가 바뀌 * ". 곱셈 마친 후, 당신은 16에 의해 결과를 이동해야합니다.만을 가리킨 후, 당신은 단순히 비트의 나머지를 삭제 할 수 8 비트 필요합니다.
당신은 또한 당신의 IEEE 로그인 지수와 규모로 수를 나타내는 수있습니다. 당신은 단순히 같이 규모 증식 및 exponents 추가할 수있습니다. 참고 :이 형식은 진도 곱셈 후 1.xxxeyyy 즉 수를 고려 지점, 즉 부동 표기법을 사용할 수있습니다 당신까지 변화를 수행하기 전에 단 1 포인트를 달성해야 할 수도있습니다 및 지수를 교대의 번호를 추가할 수있습니다.
만약 당신이 시스템의 큰 숫자의 값을 처리를 기다리고있어 귀하의 숫자를 '범위를 전 지점을 고정 표기법을 권하고 싶습니다,하지만 다음 부동 소수점 표기법을 고려해야합니다 작습니다.

 
고마워.그 변화와 정수처럼 취급 정말 현명한 방법.

 
이런 노력하지만, 그것을 나와 함께 작동하지 않습니다,

내가 입력 엑스 Y라는 bit_vector (10 downto 0), 난 7 소수 자릿수가 되네요

mulRes "= bit_vector (((X)로 * (Y) 개의)) 체결에 서명; - mulRes bit_vector (19 downto 0)
입술 "= mulRes (16 downto 8);

엑스 = 001 1010000 "1.5"
Y = 010 0000000 "2.0"

mulRes = 00001101000000000000
입술 = 0110100000이되지 않습니다 3

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="슬픈" border="0" />혹시 잘못된 방향으로 뭔가를 이해??

미리 감사드립니다

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

...

 
네, 당신은 분명히 소수점 숫자의 개념을 오해.
이 sfixed (2 downto -7에 대한 올바른 분수 표현) 형식입니다
코드 :

엑스 = 001 1000000 "1.5"
 
YESSSSSSS, 정말이야,
미안 해요 잘못된 방법으로 생각
그것은 perfectlyyy, 작동
정말 감사합니다

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

Welcome to EDABoard.com

Sponsor

Back
Top