Ir ao conteúdo

Passar C++ para VHDL


DouglasFull

Posts recomendados

Postado

Pessoal sou meio novato na questão programação e linguagens.. bom o fato é que tenho esse código em C++(cálculo de uma variância) e necessito dele em VHDL ou System C, esse código será compilado no programa Design Compiler, que é aberto em uma "máquina virtual" que leva pro ambiente LINUX.. alguém pode dá uma força nessa "tradução"?! Desde já agradeço. Obrigado.

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

float variancia(float **matriz, int lin, int col){

float media = 0;
float soma = 0;
float somatorio = 0;
int i,j;
float N = (float)(lin*col);

for (i = 0; i < lin; i++)
for (j = 0; j < col; j++){
soma += matriz[i][j];
}
media = soma/(float)(lin*col);

for (i = 0; i < lin; i++)
for (j = 0; j < col; j++){
somatorio += pow((matriz[i][j] - media), 2);
}

return (1/(N-1))*somatorio;
}

int main(){

float **mat;
int lin=0;
int col=0;
int i;


printf(" Informe a dimensão da matriz: ");


scanf("%d %d", &lin,&col);




// alocando a matriz
mat = (float**)malloc(sizeof(float*)*lin);

for(i = 0; i < lin; i++){
mat[i] = (float*)malloc(sizeof(float)*col);
}

/*mat[0][0] = 4;
mat[0][1] = 2;
mat[1][0] = 2;
mat[1][1] = 2;
*/

for (i=0; i<lin, i++)
{
for(j=0;j<col; j++)
{
scanf("%f", &mat[i][j]) ; //Verifica se nao vai dar erro nesta instrução
}

}



printf("%f", variancia(mat,lin,col));

fflush(stdin);getchar(); // utilizado apenas para verificar o resultado no Dev C++
}

Postado

Se você tirar as bibliotecas e deixar ele apenas na linguagem natural de C, ele pode rodar diretamente na placa (se não me engano). Caso contrário, recomendo que você tente fazer algo parecido com uma máquina de estados.

Espero ter ajudado.

ZaZ

Postado
Se você tirar as bibliotecas e deixar ele apenas na linguagem natural de C, ele pode rodar diretamente na placa (se não me engano). Caso contrário, recomendo que você tente fazer algo parecido com uma máquina de estados.

Espero ter ajudado.

ZaZ

É que no local onde eu tenho que fazer rodar, aparentemente(ainda não achei nenhuma biblioteca do C no programa) aceita só a linguagem vhdl.. por isso necessito do vhdl que faça o mesmo que esse código em C.

Mas obrigado por sua resposta. Abraço

Postado

No tempo que usei VHDL, lembro que eu usava um compilador do SPARCS (ou algo parecido) e carregava o programa em C para a plaquinha. Para fazer conversão de C para VHDL, você terá que transformar esse programa em algo estático, porque se não me engano não existe alocação dinâmica nessa linguagem de descrição. A entrada você terá que fazer em pinos, provavelmente.

Não vou tentar responder o que não sei, faz tempo que mexi com VHDL. Acho que só posso te ajudar com o que falei até agora.

Boa sorte.

ZaZ

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!