execução Xilinx CoreGen Floating Point V3.0

S

schouten_tjeerd

Guest
Não consigo descobrir a forma de aplicar o Xilinx CoreGen código gerado.Eu quero fazer algumas operações de ponto flutuante (digamos que uma divisão).Só estou interessada em sintetizar meu vhdl código e fazer com que o FPGA realmente fazendo alguma coisa,
a simulação não é utilizado.

Isto é o que eu encontrei para fora até o momento:

Utilizando-ISE WebPack 10/1 gerar um núcleo:
-Projeto-> Nova-fonte> IP (CORE Generator & Arquitectura Wizard)
-Digite o nome do ficheiro e marque "Adicionar ao projeto"
Math-funções-> Variável-ponto v3.0
Selecione a dividir-funtion, único precisão, sem qualquer acréscimo sinais
-Isso adiciona um arquivo *. xco ao projeto.
Xco-Selecione o arquivo na janela fontes, expanda "CORE Generator" na seção "Processos de" janela.
Duplo-clique em "Ver HDL modelo funcional", isto irá abrir o arquivo *. VHD do núcleo.Alguns interessante código ...

Agora, permitam-me ser realmente simples levado a fazer o ponto.

Tenho este código:

Código:--//////////////////////////////////////////////// /////////////library IEEE;

utilização IEEE.STD_LOGIC_1164.ALL;

utilização IEEE.STD_LOGIC_ARITH.ALL;

utilização IEEE.STD_LOGIC_UNSIGNED.ALL;

utilização IEEE.numeric_std.all;testfile entidade é

Porta (input_vector: em STD_LOGIC_VECTOR (7 virou 0);

output_vector: out STD_LOGIC_VECTOR (7 virou 0));

testfile final;Comportamento de arquitectura é testfile

começo

test_process: processo é

variável temp_int: inteiro;

variável temp_real: real;

variável temp_real2: real;começo

- obter a entrada

temp_int: = conv_integer (input_vector);

temp_real: = real (temp_int);temp_real2: = temp_real / 5,3;- despejo de saída

temp_int: = inteiro (temp_real2);

output_vector <= std_logic_vector (to_unsigned (temp_int, 8));

test_process processo final;

termo arquitetura Comportamental;----////////////////////////////////////////////// ///////////////

 
Ok, eu descobri que eu tenho que colocar esse código na arquitetura antes de "começar:
(a partir do núcleo gerado *. vho arquivo)
Código:componente float

porto (

R: No std_logic_VECTOR (15 virou 0);

b: IN std_logic_VECTOR (15 virou 0);

RCL: IN std_logic;

resultado: std_logic_VECTOR OUT (15 virou 0));

componente final;

 
Ok, aqui estão algumas novas conclusões:
Para obter a FPU para trabalhar, isto deve ser feito (eu acho):

Código:variável vector1_from_SDRAM: std_logic_VECTOR (7 virou 0);

variável vector2_from_SDRAM: std_logic_VECTOR (7 virou 0);

variável temp_vector: std_logic_VECTOR (15 virou 0);- copiar os 8 bits vetor para o ponto flutuante formato vetorial

um (9 virou 2) <= vector1_from_SDRAM;

b (9 virou 2) <= vector2_from_SDRAM;- permitir a FPu

- a RCL já está viciado por uma porta para o relógio fonte

ce <='1 ';- espere até que o FPu é feito.

while (rdy / ='1 ') loop

null;

fim loop;- o FPu está feito, então use o resultado

temp_vector: = resultado;

 
Você já ouviu falar sobre a norma IEEE 754.Por favor, leia sobre ele ..

http://en.wikipedia.org/wiki/IEEE_floating-point_standard

http://babbage.cs.qc.cuny.edu/IEEE-754/Decimal.html
format and give it as an input to Xilinx CoreGen Floating Point v3.0 for division.

Assumir ur vai usar um divisor de vírgula flutuante têm u ur ponto flutuante para representar números, em um formato binário
e dá-la como uma entrada a Xilinx CoreGen Floating Point v3.0 para a divisão.

O resultado também seria normalmente representado em ponto flutuante IEEE 754 representação.

 
Obrigado,
na verdade eu tenho a aderir ao formato de ponto flutuante.
Enfim, como eu posso simplificar as operações para fazer o cálculo para o trabalho (habilitar o núcleo com ce, espere até que ele esteja pronto, etc)?
Tal como com uma função.

 
Eu estava passando datasheet do Ponto Flutuante núcleo V3.0.O núcleo tem portos

1> CE: Relógio Active (porta de entrada)

2> RDY: Saída Pronto: Definir alta pelo núcleo quando resultado é válido.

u pode utilizar estas portas para a implementação da funcionalidade e deseja.

Vá através da ficha técnica do núcleo, para mais informações.O documento não é DS335 da Xilinx.

 
Sim, eu percebi que um fora (ver meu post anterior).Eu também descobri como usar sinais de uma função: não utilizar uma função, mas um processo.Isso muito resolve todos estes problemas.

 

Welcome to EDABoard.com

Sponsor

Back
Top