|
Тестбенч FFT в Quartus8, Как запустить тестбенч fft в Q8? |
|
|
|
 |
Ответов
|
Jan 15 2010, 09:45
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 11-08-06
Из: Москва
Пользователь №: 19 488

|
Цитата(Acvarif @ Jan 15 2010, 12:25)  Пока до конца не понял, неужели для симуляции fft в Q8 нужен ModelSim? По документации получается, что нужен, поскольку мегафункция создает .vhd тест бенч файл в котором какраз и читаются текстовые файлы мнимой и действительной частей входных данных. А тест бенч .vhd я так понял может запуститься только в ModelSim. Если до этого вы обходились симулятором, встроенным в Квартус, то, видимо, пришла пора осваивать более продвинутые системы моделирования. Можно ли в Квартусе запускать тестбенчи я не знаю, никогда им не пользовался. Цитата(Acvarif @ Jan 15 2010, 12:25)  У меня почему то эти файлы визард не создал. Может настроил его не так? Вобщем пришлось их создать в Матлабе и поместить в папку с проектом. Это очень странно, а в отчете о созданных файлах они есть?? Надо бы разобраться, а то может он корку не сгенерировал.
|
|
|
|
|
Jan 15 2010, 12:42
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Builder @ Jan 15 2010, 15:53)  А что было? Сделали как было по ссылке, которую в личку бросал? Большое спасибо. Хорошая ссылка. Надеюсь запустить МS 6.5 На данный момент получилось запустиь MS от Альтеры (который 6.1 под Q8). Прогнал по новой мегафункцию (он действительно создал текстовые файлы мнимой и действительной частей входных данных), в качестве симулятора указал внешний Модель Сим. Запустил еще раз компилер, который в свою очередь после завершения запустил Модель сим (он по моему запустился скриптом созданным самой коркой). Модель Сим загрузил необходимые библиотеки, что-то откомпилировал и сейчас крутится...Жду результат...
|
|
|
|
|
Jan 15 2010, 14:02
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Acvarif @ Jan 15 2010, 16:42)  Модель Сим загрузил необходимые библиотеки, что-то откомпилировал и сейчас крутится...Жду результат... Не получается. Вот что происходит в Q8 Info: Running Quartus II EDA Netlist Writer Info: Command: quartus_eda --read_settings_files=off --write_settings_files=off fft -c fft Info: Generated files "fft.vho" and "fft_vhd.sdo" in directory "D:/Altera/Quartus80/quartus/test/" for EDA simulation tool Info: Quartus II EDA Netlist Writer was successful. 0 errors, 0 warnings Info: Running Quartus II Shell Info: Command: quartus_sh -t d:/altera/quartus80/quartus/common/tcl/internal/nativelink/qnativesim.tcl fft fft Info: Quartus(args): fft fft Info: Start Nativelink Simulation process Info: Starting NativeLink simulation with ModelSim-Altera software Info: Generated ModelSim script file D:/Altera/Quartus80/quartus/test/fft_run_msim_gate_vhdl.do На этом все застряло. Посмотел, что Модель Сим создал файл (в другой директории) D:\Altera\Quartus80\quartus\test\simulation\modelsim\fft_run_msim_gate_vhdl.do Его содержимое: transcript on if {[file exists gate_work]} { vdel -lib gate_work -all } vlib gate_work vmap work gate_work vcom -93 -work work {fft.vho} Пробую как Вы советовали через Модель Сим (через скрипт fft.do, который разместил в папке проекта) Пока запустить его не получается. Команду перехода (cd D:\Altera\Quartus80\quartus\test\) на директорию где он находится Model Sim выполняет. А на команде do fft.do выдает ошибку. Посоветуйте пожалуйста как быть
|
|
|
|
|
Jan 15 2010, 15:06
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(Acvarif @ Jan 15 2010, 17:02)  Посоветуйте пожалуйста как быть А попробуйте не использовать NativeLink, если опыта маловато (т.е. не запускайте ModelSim из-под квартуса). Запустите ModelSim отдельно и скормите ему результаты работы квартусовского нетлист райтера (они в папке <имя_проекта>_sim, если мне склероз не изменяет, находятся - там и vho, и тестбенч, и скрипты). Отокмпилируйте hdl-файлы в соответствии с иерархией, потом запускайте моделирование. Даже если не сразу получится, то так быстрее разберетесь, имхо.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Jan 16 2010, 08:35
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Помогите пожалуйста правильно составить скрипт для симуляции по Model Sim Altera Скрипт: Код ## Компиляция vcom -work work -93 -explicit -quiet -source -O0 -cover s -novopt D:/altera/work/fft/fft_tb.vhd vcom -work work -93 -explicit -quiet -source -O0 -cover s -novopt D:/altera/work/fft/fft.vho
## Запуск проекта на моделирование vsim -t 1ps -title FFT work.fft_tb ## view wave ругается на -cover s -novopt Попробовал сделать так: Код ## Компиляция vcom -93 -work work {D:/altera/work/fft/fft_tb.vhd} vcom -93 -work work {D:/altera/work/fft/fft.vho}
## Запуск проекта на моделирование vsim -t 1ps -title FFT work.fft_tb ## view wave Вроде откомпилировалось все без предупреждений и появилась пустая диаграмма и сигналы. Далее при нажатии на "run All" запустились проходы с кучей варнингсов...все остановилось но результат не высветился (диаграмма так и осталась пустая)
|
|
|
|
|
Jan 16 2010, 19:17
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 11-08-06
Из: Москва
Пользователь №: 19 488

|
Цитата(Acvarif @ Jan 16 2010, 11:35)  Вроде откомпилировалось все без предупреждений и появилась пустая диаграмма и сигналы. Далее при нажатии на "run All" запустились проходы с кучей варнингсов...все остановилось но результат не высветился (диаграмма так и осталась пустая) Вот, все так и должно быть. А на диаграмме ничего нет, потому что вы не добавили в нее сигналы из проекта. Попробуйте так: перед нажатием run -all в консоли написать add wave /fft/* или перенести мышкой из левой части, где список сигналов и процессов. Моделсима нет под рукой, не помню как окно называется...
|
|
|
|
|
Jan 18 2010, 08:14
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Prusak @ Jan 16 2010, 23:17)  Вот, все так и должно быть. А на диаграмме ничего нет, потому что вы не добавили в нее сигналы из проекта. Попробуйте так: перед нажатием run -all в консоли написать add wave /fft/* или перенести мышкой из левой части, где список сигналов и процессов. Моделсима нет под рукой, не помню как окно называется... Спасибо. Все!!! Диаграмма получилась. Теперь, как предлагает толмуд по Мегафункции необходимо проделать то же но в Матлабе, который создаст те же выходные файлы мнимой и действительной частей + файл експоненты. И я так понял, что после этого можно сравнить то, что создано Модель симом и Матлабом. Оно должно быть одинаково. Поскольку по умолчанию входные данные мегафункция создает на базе случайного процесса, то мне ради еще одной проверки придется входные файлы мнимой и действительной частей попробовать сделать на базе гармонической функции. Далее все отсимулировать и увидеть одну гармонику. Чем сейчас и займусь.. Еще вопрос: Как эта мегафункция роаботает непосредственно в железе? Был ли у Вас опыт? Нет ли там каких-то проблем?
|
|
|
|
|
Jan 18 2010, 08:52
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 11-08-06
Из: Москва
Пользователь №: 19 488

|
Цитата(Acvarif @ Jan 18 2010, 11:14)  Спасибо. Все!!! Диаграмма получилась. Поздравляю :-) Цитата(Acvarif @ Jan 18 2010, 11:14)  Еще вопрос: Как эта мегафункция роаботает непосредственно в железе? Был ли у Вас опыт? Нет ли там каких-то проблем? Да, я столкнулся с проблемами и тоже хочу здесь спросить у имевших опыт общения с этой коркой форумчан: Архитектура FFT: Burst, Quad output Число точек N =512 Разрядность данных : 14 На вход input_real подаю синусойду. На вход input_imag подаю 0. Получаю спектр сигнала на выходе и сразу подаю его на обратное преобразование IFFT, в качестве которой вторая корка FFT, с теми же параметрами, только, вывод inverse=1. И вижу что на выходе IFFT есть данные и на выходе real и image, т.е сигнал стал комплексным!! И даже после взятия модуля такого комплексного числа синусойда на выходе - сильно искажена. Начинаю разбираться и ахаю. Спектр на выходе FFT оказывается несимметричный (а при реальном сигнале на входе - он всегда должен быть симметричным)!!! Нет, он конечно похож, но конкретные числа немного отличаются. Пробовал увеличить разрядность данных до 16, игрался с параметром twiddle precision, пробовал архитектуры buffered burst, ничего не помогало. Сейчас подозреваю, что проблема в округлении. В даташите написано что в архитектуре variable streamming применен более продвинутый блок floating point, но опробывать эту архитектуру не успел. Выкрутился тем, что взял тупо первую половину спектра (1-N/2 отсчетов) и зеркально отобразил, и скопировал на место второй части (N/2-N отсчеты), конечно так не совсем честно, и для комплекс. сигнала не покатит, но в моем случае свою синусойду обратно я получил и без комплексного сигнала на выходе, на чем пока и успокоился.
|
|
|
|
|
Jan 18 2010, 09:19
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(Prusak @ Jan 18 2010, 12:52)  На вход input_real подаю синусойду. На вход input_imag подаю 0. Если можно подскажите пожалуйста как теперь создать текстовые файлы (входные) для мнимой и действительной частей гармонического сигнала (ведь сам визард по умолчанию их создает для случайного процесса). Там еще предлагается (его тоже создает визард) какой то матлабовский файл в котором вроде можно заменить x = .. на гармонический. Но запуск его в матлабе ничего не дает.
|
|
|
|
|
Jan 18 2010, 10:05
|
Частый гость
 
Группа: Свой
Сообщений: 78
Регистрация: 11-08-06
Из: Москва
Пользователь №: 19 488

|
Цитата(Acvarif @ Jan 18 2010, 12:19)  Если можно подскажите пожалуйста как теперь создать текстовые файлы (входные) для мнимой и действительной частей гармонического сигнала (ведь сам визард по умолчанию их создает для случайного процесса). Там еще предлагается (его тоже создает визард) какой то матлабовский файл в котором вроде можно заменить x = .. на гармонический. Но запуск его в матлабе ничего не дает. Я подавал только действительный сигнал, код следующий: Код Fs = 40e6; % Частота дискретизации, Гц Td = 1/Fs; % период дискретизации сигнала Tend = 1e-1; % Конечное время наблюдения. t=0:Td:Tend; Fif = 1e6; % Частота синусойды, Гц A = 2^12; % Амлитуда синусойды Ns=32000; % Число сэмплов для записи в файл
%Генерируем Синус S = A*sin(2*pi*Fif*t);
% Открываем выходной файл на запись f1 = fopen('C:\sin_out.txt','w');
% Выводим данные в файл for i=1:Ns str_tmp = int2str(S(i)); % Преобразуем целое десятичное число в строку fprintf(f1, '%s \n', str_tmp); % Записываем ее в файл end; fclose(f1);
|
|
|
|
Сообщений в этой теме
Acvarif Тестбенч FFT в Quartus8 Jan 13 2010, 14:29 Builder Цитата(Acvarif @ Jan 13 2010, 16:29) Инте... Jan 13 2010, 16:03 Acvarif Цитата(Builder @ Jan 13 2010, 19:03) Я не... Jan 14 2010, 08:15  Builder Цитата(Acvarif @ Jan 14 2010, 10:15) Неуж... Jan 14 2010, 09:09   Acvarif Цитата(Builder @ Jan 14 2010, 12:09) Оста... Jan 14 2010, 09:46    Builder Цитата(Acvarif @ Jan 14 2010, 11:46) На т... Jan 14 2010, 15:29     Acvarif Цитата(Builder @ Jan 14 2010, 19:29) Стра... Jan 15 2010, 07:24 IL-76 Поставьте Modelsim Altera Starter Edition. Он бесп... Jan 14 2010, 09:56 Prusak Цитата(Acvarif @ Jan 13 2010, 17:29) Откл... Jan 15 2010, 08:59 Acvarif Цитата(Prusak @ Jan 15 2010, 12:59) Удало... Jan 15 2010, 09:25             Acvarif Спасибо.
Смысл понятен. Пропустил через симулятор... Jan 18 2010, 13:17              Acvarif Вобщем после немного подумать пришол к выводу:
Ме... Jan 22 2010, 06:50               Prusak Цитата(Acvarif @ Jan 22 2010, 09:50) Вобщ... Feb 2 2010, 07:38                novartis Цитата(Prusak @ Feb 2 2010, 10:38) novart... Feb 3 2010, 15:58 Prusak Цитата(Acvarif @ Jan 15 2010, 14:28) Mode... Jan 15 2010, 12:06 novartis Добрый вечер, уже замучился разбираться с магафунк... Jan 24 2010, 17:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|