Вано 0 18 января, 2006 Опубликовано 18 января, 2006 · Жалоба Моделсим 6.0c не понимает функций $fgets,$fscanf и т.д. без подключения доп модуля, т.е. по видимому его компилятор или транслятор не имеет поддержки verilog 2001. Для подключения этих функций необходимо подключить модуль fileio.c к modelsim. Как это сделать ? Или вообще общий случай : как использовать какие-нибудь функции , описанные где-нибудь в сишном файле, чтобы при симулировании modelsim понимал их. Если кто -нибудь симулировал чтение файлов или просто подключал сишные функции к verilog-у в modelsime , а затем использовал их при симуляции(это очень важно, компилить то он компилит , а симулить не хочет, говорит не понимаю) то подскажите! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 15 19 января, 2006 Опубликовано 19 января, 2006 · Жалоба по видимомуего компилятор или транслятор не имеет поддержки verilog 2001 В опциях компилятора она включена? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вано 0 19 января, 2006 Опубликовано 19 января, 2006 (изменено) · Жалоба В modelsime в опциях ничего такого нет. Как я понимаю modelsim версии выше чем 5.5 уже имеет поддержку функций ввода-вывода, об этом гворит еще и следующее HELP-> Technotes-> vlog_2001 , там первой строкой написано что ModelSim supports the following IEEE 1364-2001 features: o New File I/O tasks, command line args $test$plusargs and $value$plusargs , а на самом деле не понимает при симуляции говорит : Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(15): [TOFD] - System task or function '$fopenr' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(21): [TOFD] - System task or function '$fgets' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(24): [TOFD] - System task or function '$feof' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(33): [TOFD] - System task or function '$strobe_compare' is not defined. # Region: /compare/file_block # ** Warning: (vsim-PLI-3003) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(36): [TOFD] - System task or function '$fcloser' is not defined. # Region: /compare/file_block # ** Error: (vsim-PLI-3073) E:/1RAID6_Development/BOOKS_Vegilog/ReadFromFileVerylog/fileio/fileio3.6/compare.v(22): $fgets : Wrong number of arguments. # Region: /compare/file_block Вот что мне и непонятно?!? Почему он априорно имеет поддежку этих функций работы с файлами, а при сиуляции не понимает их . текст проги: `define EOF 32'hFFFF_FFFF `define NULL 0 `define MAX_LINE_LENGTH 1000 module compare; integer file, r; reg a, b, expect, clock; wire out; reg [8*`MAX_LINE_LENGTH-1:0] line; parameter cycle = 20; initial begin : file_block clock = 0; file = $fopenr("compare.txt"); if (file == `NULL) disable file_block; $display(" Time Stim Expect Output"); // Skip comments // r = $fgets(line, `MAX_LINE_LENGTH, file); // r = $fgets(line, `MAX_LINE_LENGTH, file); while (!$feof(file)) begin // Wait until rising clock, read stimulus @(posedge clock) r = $fscanf(file, " %b %b %b\n", a, b, expect); // Wait just before the end of cycle to compare #(cycle - 1) $display("%d %b %b %b %b", $stime, a, b, expect, out); $strobe_compare(expect, out); end // while not EOF r = $fcloser(file); $stop; end // initial // Clock generator always #(cycle / 2) clock = !clock; // Circuit under test and #4 (out, a, b); endmodule // compare Может кто у себя попробует отсимулить эту прогу? compare.txt compare.rar Изменено 19 января, 2006 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 19 января, 2006 Опубликовано 19 января, 2006 · Жалоба Вано, а где Вы в 2001 верилоге нашли такие функции: $fopenr $fcloser $strobe_compare Я не копенгаген в IEEE Std 1364-2001, но текстовый поиск по этому документу таких слов не находит :). Да и я как-то обычно использую $fopen() и $fclose(). Вы же сами говорили, что эти функции определены во внешнем PLI-модуле, исходник у Вас есть, нужно его просто скомпилировать и подключить к симулятору. Как - читайте доки к моделсиму, ключевое слово "PLI". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вано 0 19 января, 2006 Опубликовано 19 января, 2006 (изменено) · Жалоба Спасибо за ответ, сейчас пороюсь в helpe/. Изменено 19 января, 2006 пользователем Вано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться