реклама на сайте
подробности

 
 
> Как из modelsim вызвать функцию написанную на C, Говорит что не описана функция.
inco
сообщение Jan 8 2008, 20:13
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



В файл для проверки модуля решил добавить функцию которая будет эмулировать входные данные.

Такая строка:
integer delay;
...
always @(posedge shEn) dinBus[15:0] = $sinGen(delay - $stime); // Строка 53

Файл с функцией взял из примера который идёт с modelsim 6.2f, немного переделал его:
#include <math.h>
#include "veriuser.h"
#include "acc_user.h"

int sinGen(int );

int func_sizetf()
{
return (16);
}

int func_calltf()
{
int N, result;
N = tf_getp(1);
result = sinGen(N);
tf_putp(0, result);
return(0);
}

int func_checktf()
{
bool err = FALSE;
if (tf_nump() != 1) {
tf_error("$sinGen requires exactly 1 argument.\n");
err = TRUE;
}
/*
if (tf_typep(1) == tf_nullparam) {
tf_error("$func cannot have a NULL argument.\n");
err = TRUE;
}
if (tf_sizep(1) > 8) {
tf_error("$func input no larger than 8-bits.\n");
err = TRUE;
}
*/
if (err) {
tf_message(ERR_ERROR, "", "", "");
}
return(0);
}

#define FREQ 100 // Частота синуса
#define MAX_VAL 65535 // Максимальное значение функции
int sinGen (int N)
{

return ((int)(sin(2*M_PI*FREQ*N)*MAX_VAL));
}

s_tfcell veriusertfs[] =
{
{userfunction, // type of PLI routine - usertask or userfunction
0, // user_data value
func_checktf, // checktf() routine
func_sizetf, // sizetf() routine
func_calltf, // calltf() routine
0, // misctf() routine
"$sinGen" // "$tfname" system task/function name
},
{0} // final entry must be 0
};

Поставил пакет modelsim-gcc-3.3.1-mingw32.zip

Всё компилируется нормально без ошибок!

Но когда запускаю эмуляцию то говорит:
** Warning: (vsim-PLI-3003) E:/Project/adder/adder_test.v(53): [TOFD] - System task or function '$sinGen' is not defined.

Где 53 номер строки.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016