|
программа для генерации фильтров в плис |
|
|
|
Dec 6 2008, 11:26
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Приветствую уважаемые .
Я новичёк в плисоведении .
Cижу разбираюсь с ПЛИС и т.д. , не подскажете какую-либо прогу чтоб могла фильтры генерить для плис Vertex .
Встроенный в ICE генератор делает только FIR и требует файл коэффициентов , руками набить нельзя . В матлабе можно поучить коэффициенты , но некуда их сунуть . Файл в формате ice (coef) не генерится .
Пробовал сгенерировать на verilog - не транслируется в прошивку ( может потому что там разрядность 64 битная ?? не знаю ) - это речь идёт о fdatool .
Пытаюсь сунуть в плис демодулятор на схеме Костоса , в симулинке вроде работает , а в плис то фильтр сделать толком не могу , то функцию sign (x) ( если кто знает - тоже подскажите , плиз ) .
Простите за косноязычность - так всегда бывает когда немного не в теме и одни эмоции .
Не стесняйтесь пинать , но тока советы давайте посодержательней ...я цифровой техникой раньше не занимался вовсе , тока линейной частью и всё.
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 6 2008, 11:33
|
Частый гость
 
Группа: Свой
Сообщений: 125
Регистрация: 14-07-05
Из: Санкт-Петербург
Пользователь №: 6 793

|
Цитата Встроенный в ICE генератор делает только FIR и требует файл коэффициентов , руками набить нельзя . В матлабе можно поучить коэффициенты , но некуда их сунуть . Файл в формате ice (coef) не генерится . Ну это не правда - в fdatool можно сделать генерацию .coe файла. И при этом сделать фильтр для нужной разрядности. В принципе fdatool может генерировать VHDL код для КИХ и БИХ фильтров, но эти фильтры не будут работать на высоких частотах.
|
|
|
|
|
Dec 6 2008, 11:38
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Цитата(AsJohnAs @ Dec 6 2008, 14:33)  Ну это не правда - в fdatool можно сделать генерацию .coe файла. И при этом сделать фильтр для нужной разрядности. В принципе fdatool может генерировать VHDL код для КИХ и БИХ фильтров, но эти фильтры не будут работать на высоких частотах. вы меня не поняли , в fdatool есть возможность сгенерить файл коэффициентов - тока он не генерится , выдаёт непонятные предупреждения и всё , уже всё перебрал . Потому и прошу у людей - может есть какие сторонние програмки для генерации корок для плис . На верилоге генерил и vhdl-е - в ice всё суётся но не транслируется и всё , хоть ты тресни . Причём если сделать на верилоге - то вход и выход всегда 64 битный , а если на vhdl - то всегда однобитный ! ...какая-то ерунда , конечно скроее всего у меня руки кривые - но честно уже устал . Еаверняка есть что-то попроще.
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 6 2008, 16:23
|

Участник

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743

|
Можно еще в MatLab, там тулбокс есть, знакомый делал, поищите. На выходе HDL-описание.
Сообщение отредактировал taurus - Dec 6 2008, 16:23
--------------------
Думать - мое хобби :)
|
|
|
|
|
Dec 6 2008, 17:53
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
Lmx2315, coe-файл у вас не генерируется по той же причине, по которой vhdl/verilog коды фильтров, полученные в fdatool, не синтезируются. Причина - у вас все в двойной точности. Зайдите во вкладку "квантование". Отквантуйте ваш фильтр в фиксированную точку и будет вам счастье. Цитата(taurus @ Dec 6 2008, 19:23)  Можно еще в MatLab, там тулбокс есть, знакомый делал, поищите. На выходе HDL-описание. taurus, о чем вы ?
|
|
|
|
|
Dec 6 2008, 19:24
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 16-12-05
Пользователь №: 12 301

|
Lmx2315: Если Вам нужны готовые реализации фильтров в качестве примера посмотрите на www.opencores.org И учите матчасть без нее никуда, есть хорошая книга возможно Вам пригодится Digital Signal Processing with Field Programmable Gate Arrays автор: Dr. Uwe Meyer-Baese http://www.dsp-book.narod.ru/books.html
|
|
|
|
|
Dec 6 2008, 19:52
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Цитата(Tue @ Dec 6 2008, 20:53)  Lmx2315, coe-файл у вас не генерируется по той же причине, по которой vhdl/verilog коды фильтров, полученные в fdatool, не синтезируются. Причина - у вас все в двойной точности. Зайдите во вкладку "квантование". Отквантуйте ваш фильтр в фиксированную точку и будет вам счастье. вот спасибо  , попробую на работе - дома матлаба нет ...да и айса тоже нет . Надеюсь поможет , если найду вкладку квантование . Цитата(hitower1 @ Dec 6 2008, 22:24)  Lmx2315: Если Вам нужны готовые реализации фильтров в качестве примера посмотрите на www.opencores.org И учите матчасть без нее никуда, есть хорошая книга возможно Вам пригодится Digital Signal Processing with Field Programmable Gate Arrays автор: Dr. Uwe Meyer-Baese http://www.dsp-book.narod.ru/books.htmlза книжку спасибо , про теорию оно понятно что изучать надо ..тока вот натура человеческая такая - хочется всего и сразу как говорится по мановению в.п. . а на www.opencores.org я был , там теперь доступ получать нужно , я вроде постучался к ним - но не пишут , видать не поразил талантами , жаль там много чего интересного . ..по моему тут где-то у кого-то совет видел - вот чем пользуюсь в гугле набрать строку - поиск кода и первой строчкой в результатах идёт их сервис http://www.google.ru/codesearch а в нём набираю lang:verilog fir - например , или что нужно . Тока так я долго нужное искать буду , потому просьба продолжается к умным людям - на предмет есть у кого проги как фильтры цифровые генерить . И не забудте подсказать как функцию sign(x) из блоков в айсе соорудить . Я пробовал делать из компаратора и сумматора , типа если число меньше нуля - то сумматор вычитает из 0 еденицу , если число больше нуля то сумматор складывает еденицу и ноль ...но по моему получается бред. ...подскажите люди добрые .
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 7 2008, 21:00
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Цитата(Tue @ Dec 7 2008, 16:12)  Lmx2315, вы бы хоть описали что вы подразумеваете под функцией sign(x). Если судить из названия, то смею предпложить, что на входе этой функции должно быть знаковое число, на выходе - знак числа. Если так, то что мешает вам брать самый старший разряд, являющийся знаковым разрядом, и выдавать его наружу ? правильно мне нужен знак числа или ноль если число - ноль . Ну возьму я зтарший знак числа а как мне на него умножить следующее число ? у меня после этой функции - перемножитель на другое число .
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 8 2008, 04:30
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Lmx2315 @ Dec 7 2008, 16:00)  Ну возьму я зтарший знак числа а как мне на него умножить следующее число ? хмм, самый простой вариант Код assign sign = b[$high(b)]; assign res = sign ? -a : a; правда есть вариант лучше, но думаю сами догадаетесь. Насчет FIR : Господа а что ручками уже делать FIR не модно ? На написание с нуля уходит минуты 2-3, а на создание конфигурируемого чуть больше.
--------------------
|
|
|
|
|
Dec 8 2008, 08:22
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
Цитата(Lmx2315 @ Dec 8 2008, 00:00)  правильно мне нужен знак числа или ноль если число - ноль .
Ну возьму я зтарший знак числа а как мне на него умножить следующее число ?
у меня после этой функции - перемножитель на другое число . Ну допустим знак вы получили - однобитовое число: '0' - число положительное, '1' - число отрицательное. Далее вы можете превратить это однобитовое число в знаковое число, у которого старший бит - знак, остальная часть представляет коэффициент и умножать на второе множимое. В данном случае достаточно всего 2-х битов. Но можно поступить умнее и ничего не умножать. Анализируя значения знака, переводить ваше второе множимое в знаковое число и выдавать либо его положительное, либо отрицательное значение Ниже приведен примерный код на VHDL вашего "перемножителя". Предполагается, что "siggn" - знак числа, "m" - беззнаковое 13-битное входное число, "outp" - знаковое выходное 14-битное число. Код LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all;
ENTITY make_signed_out IS PORT ( siggn : IN std_logic; m : IN std_logic_vector(12 DOWNTO 0); outp : OUT std_logic_vector(13 DOWNTO 0)); END make_signed_out;
ARCHITECTURE fsm_SFHDL OF make_signed_out IS
BEGIN make_signed_out : PROCESS (siggn, m) VARIABLE a_s : signed(13 DOWNTO 0); VARIABLE a_s_0 : signed(14 DOWNTO 0); BEGIN a_s := signed(resize(unsigned(m), 14));
IF siggn /= '0' THEN a_s_0 := - (resize(a_s, 15)); outp <= std_logic_vector(a_s_0(13 DOWNTO 0)); ELSE outp <= std_logic_vector(a_s); END IF;
END PROCESS make_signed_out;
END fsm_SFHDL;
Сообщение отредактировал Tue - Dec 8 2008, 08:28
|
|
|
|
|
Dec 8 2008, 18:57
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Спасибо за помощь  . К сати в матлабе в тулсе фильтровом - нашёл как сделать чтоб всё в айс транслировалось хоть на верилоге хоть как таблица коэффициентов , жаль только что всё равно не работают . Я эти получившиеся фильтры на 160 Мгц - тактовой запустил , хотел фильтровать выход петли Костоса . А от фильтров никакой реакции , как полосу не меняю - хоть в десятки раз . Если фильтр выкинуть - реакция кольца есть (хаотичная - но всё же) , с фильтром - никакой NCO висит в начальном положении . ...если у кого мысли есть и просто что хотят уточнить - я всегда рад , даже пинкам  . попробую по книжке фильтр сбацать ручками .
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Dec 9 2008, 03:46
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Lmx2315 @ Dec 8 2008, 13:57)  попробую по книжке фильтр сбацать ручками . 4 схемы построения FIR фильтров в атаче Удачи!!!
Прикрепленные файлы
fir.zip ( 3.71 килобайт )
Кол-во скачиваний: 98
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|