CIC фильтр

Обсуждаем цифровые устройства...
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

вот что получилось
sdr.rar
(27.25 КБ) 208 скачиваний

вроде компиляция успешна но на выходе проект занимает 0 логики
самое интересное что нет никаких critical warning


сжато 12 квартусом возможно маладшие версии и не откроют
Последний раз редактировалось yusmat Вс фев 17, 2013 21:11:52, всего редактировалось 1 раз.
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: CIC фильтр

Сообщение Meteor »

Значит не все так хорошо прошло. Чуть позже погляжу если время будет.
Не открывается ваш sdr.qar
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

перезалил без сжатия квартусом
http://2u.rusfolder.net/files/35050429
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: CIC фильтр

Сообщение Meteor »

Скачал, почти открыл, но.. у меня ква 9 и проект под 12.1 он не открывает. Увы :?
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

Ну зато 9-ый самый надёжный :)) А зачем открывать сам прожект то, достаточно только файлы с текстом программы прикрутить... вериложные или VHDL - левские...
Реклама
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

yusmat, не понимаю, что конкретно не работает, проект твой или фильтр. Verilog я к сожалению плохо знаю (нет на него времени) так что тут не помогу, но вот мой проект работает нормально. Нот скрины рабьоты при R = 256. В начале выходной сигнал корявый, но по мере уменьшения частоты входного сигнала выходной становится более менее.
Вложения
Общий вид.JPG
(140.34 КБ) 868 скачиваний
Уменьшение частоты на входе.JPG
(114.25 КБ) 705 скачиваний
Большая частота на входе.JPG
(121.52 КБ) 522 скачивания
Реклама
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

я не смог твой файл скомпилить
почему-то при компиляции он занимает 0 логики хотя компиляция приходит
если чесно я не знаю толком ни верилога ни vhdl а так же в чем между ними разница
в основном я все рисовал в схематике
но признаю что больших схем это не очень удобно так как в проекте получаеться очень много
слишком мелких модулй сгенерированых визардом
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

1.jpg
(33.2 КБ) 721 скачивание

вот результат

Код: Выделить всё

Warning (275008): Primitive "DFF" of instance "inst1" not used
Warning (275008): Primitive "NOT" of instance "inst2" not used
Warning (275008): Primitive "WIRE" of instance "inst7" not used
Warning (12125): Using design file signet_notsignet12.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project
   Info (12023): Found entity 1: signet_notsignet12
   Info (12023): Found entity 1: signet_notsignet12
Warning (10631): VHDL Process Statement warning at CIC_Last_edition.vhd(137): inferring latch(es) for signal or variable "czi", which holds its previous value in one or more paths through the process
Warning (10631): VHDL Process Statement warning at CIC_Last_edition.vhd(137): inferring latch(es) for signal or variable "czq", which holds its previous value in one or more paths through the process
Warning (13024): Output pins are stuck at VCC or GND
   Warning (13410): Pin "dac_r1[11]" is stuck at GND
   Warning (13410): Pin "dac_r1[10]" is stuck at VCC
   Warning (13410): Pin "dac_r1[9]" is stuck at VCC
   Warning (13410): Pin "dac_r1[8]" is stuck at VCC
   Warning (13410): Pin "dac_r1[7]" is stuck at VCC
   Warning (13410): Pin "dac_r1[6]" is stuck at VCC
   Warning (13410): Pin "dac_r1[5]" is stuck at VCC
   Warning (13410): Pin "dac_r1[4]" is stuck at VCC
   Warning (13410): Pin "dac_r1[3]" is stuck at VCC
   Warning (13410): Pin "dac_r1[2]" is stuck at VCC
   Warning (13410): Pin "dac_r1[1]" is stuck at VCC
   Warning (13410): Pin "dac_r1[0]" is stuck at VCC
   Warning (13410): Pin "dac_r2[11]" is stuck at GND
   Warning (13410): Pin "dac_r2[10]" is stuck at VCC
   Warning (13410): Pin "dac_r2[9]" is stuck at VCC
   Warning (13410): Pin "dac_r2[8]" is stuck at VCC
   Warning (13410): Pin "dac_r2[7]" is stuck at VCC
   Warning (13410): Pin "dac_r2[6]" is stuck at VCC
   Warning (13410): Pin "dac_r2[5]" is stuck at VCC
   Warning (13410): Pin "dac_r2[4]" is stuck at VCC
   Warning (13410): Pin "dac_r2[3]" is stuck at VCC
   Warning (13410): Pin "dac_r2[2]" is stuck at VCC
   Warning (13410): Pin "dac_r2[1]" is stuck at VCC
   Warning (13410): Pin "dac_r2[0]" is stuck at VCC
Warning (20013): Ignored assignments for entity "SDR_TEST" -- entity does not exist in design
   Warning (20014): Assignment for entity set_global_assignment -name LL_ROOT_REGION ON -entity SDR_TEST -section_id "Root Region" was ignored
   Warning (20014): Assignment for entity set_global_assignment -name LL_MEMBER_STATE LOCKED -entity SDR_TEST -section_id "Root Region" was ignored
Warning (21074): Design contains 24 input pin(s) that do not drive logic
   Warning (15610): No output dependent on input pin "in_Q[11]"
   Warning (15610): No output dependent on input pin "in_Q[10]"
   Warning (15610): No output dependent on input pin "in_Q[9]"
   Warning (15610): No output dependent on input pin "in_Q[8]"
   Warning (15610): No output dependent on input pin "in_Q[7]"
   Warning (15610): No output dependent on input pin "in_Q[6]"
   Warning (15610): No output dependent on input pin "in_Q[5]"
   Warning (15610): No output dependent on input pin "in_Q[4]"
   Warning (15610): No output dependent on input pin "in_Q[3]"
   Warning (15610): No output dependent on input pin "in_Q[2]"
   Warning (15610): No output dependent on input pin "in_Q[1]"
   Warning (15610): No output dependent on input pin "in_Q[0]"
   Warning (15610): No output dependent on input pin "in_I[11]"
   Warning (15610): No output dependent on input pin "in_I[10]"
   Warning (15610): No output dependent on input pin "in_I[9]"
   Warning (15610): No output dependent on input pin "in_I[8]"
   Warning (15610): No output dependent on input pin "in_I[7]"
   Warning (15610): No output dependent on input pin "in_I[6]"
   Warning (15610): No output dependent on input pin "in_I[5]"
   Warning (15610): No output dependent on input pin "in_I[4]"
   Warning (15610): No output dependent on input pin "in_I[3]"
   Warning (15610): No output dependent on input pin "in_I[2]"
   Warning (15610): No output dependent on input pin "in_I[1]"
   Warning (15610): No output dependent on input pin "in_I[0]"
Warning (292013): Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature.
Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
Warning (169177): 25 pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone III Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems.
   Info (169178): Pin in_Q[11] uses I/O standard 3.3-V LVTTL at 31
   Info (169178): Pin in_Q[10] uses I/O standard 3.3-V LVTTL at 32
   Info (169178): Pin in_Q[9] uses I/O standard 3.3-V LVTTL at 33
   Info (169178): Pin in_Q[8] uses I/O standard 3.3-V LVTTL at 39
   Info (169178): Pin in_Q[7] uses I/O standard 3.3-V LVTTL at 46
   Info (169178): Pin in_Q[6] uses I/O standard 3.3-V LVTTL at 49
   Info (169178): Pin in_Q[5] uses I/O standard 3.3-V LVTTL at 50
   Info (169178): Pin in_Q[4] uses I/O standard 3.3-V LVTTL at 51
   Info (169178): Pin in_Q[3] uses I/O standard 3.3-V LVTTL at 52
   Info (169178): Pin in_Q[2] uses I/O standard 3.3-V LVTTL at 53
   Info (169178): Pin in_Q[1] uses I/O standard 3.3-V LVTTL at 54
   Info (169178): Pin in_Q[0] uses I/O standard 3.3-V LVTTL at 55
   Info (169178): Pin in_I[11] uses I/O standard 3.3-V LVTTL at 59
   Info (169178): Pin in_I[10] uses I/O standard 3.3-V LVTTL at 60
   Info (169178): Pin in_I[9] uses I/O standard 3.3-V LVTTL at 64
   Info (169178): Pin in_I[8] uses I/O standard 3.3-V LVTTL at 65
   Info (169178): Pin in_I[7] uses I/O standard 3.3-V LVTTL at 66
   Info (169178): Pin in_I[6] uses I/O standard 3.3-V LVTTL at 67
   Info (169178): Pin in_I[5] uses I/O standard 3.3-V LVTTL at 68
   Info (169178): Pin in_I[4] uses I/O standard 3.3-V LVTTL at 69
   Info (169178): Pin in_I[3] uses I/O standard 3.3-V LVTTL at 76
   Info (169178): Pin in_I[2] uses I/O standard 3.3-V LVTTL at 77
   Info (169178): Pin in_I[1] uses I/O standard 3.3-V LVTTL at 79
   Info (169178): Pin in_I[0] uses I/O standard 3.3-V LVTTL at 80
   Info (169178): Pin CLK uses I/O standard 3.3-V LVTTL at 25
Warning (20013): Ignored assignments for entity "SDR_TEST" -- entity does not exist in design
   Warning (20014): Assignment for entity set_global_assignment -name LL_ROOT_REGION ON -entity SDR_TEST -section_id "Root Region" was ignored
   Warning (20014): Assignment for entity set_global_assignment -name LL_MEMBER_STATE LOCKED -entity SDR_TEST -section_id "Root Region" was ignored
   Warning (20014): Assignment for entity set_global_assignment -name LL_ROOT_REGION ON -entity SDR_TEST -section_id "Root Region" was ignored
   Warning (20014): Assignment for entity set_global_assignment -name LL_MEMBER_STATE LOCKED -entity SDR_TEST -section_id "Root Region" was ignored
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

No output dependent on input pin "in_Q[11]"
ммм... а ты уверен, что квартус просто напросто я извиняюсь не "оптемизировал" фильтрик?
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

все равно не могу понять в чем дело
оптимизатор стоит в среднем положении normal
и настройки его я никогда не трогал
кроме того ведь другие блоки компиляться нормально
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

No output dependent on input pin "in_Q[11]" - нет выхода, зависимого от входа "in_Q[11]".
Дело не в настройках оптимизатора... ты уверен, что входы в твоём проекте, функционально связанны с какой нибудь логикой? Т.е. ты мог определить некоторые входы и... забыл подключить к ним функционал, или наоборот, и входы есть, и схема к ним подключена, но вот сигналы с этой схемы не идут на другие части схемы и/или выходы... В этом случае, этот кусок просто не нужен... его можно выкинуть, что собсно квартус благополучно и делает....
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

перепроверил уже все что можно
если убрать код фильтра и вставить примитивный все нормально компилиться

Код: Выделить всё

----------
-- Company:
-- Engineer:
--
-- Create Date:    15:33:57 01/26/2012
-- Design Name:
-- Module Name:    CIC_Last_edition - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity CIC_Last_edition is
 
 generic (dec  : integer := 16;
          din  : integer := 12;
          dout   : integer := 12
          );
         
     Port (  CLK : in STD_LOGIC;
          RESET : in STD_LOGIC;
             CE : in STD_LOGIC;
             DI : in STD_LOGIC_VECTOR (din - 1 downto 0);
             DQ : in STD_LOGIC_VECTOR (din - 1 downto 0);
              R : in STD_LOGIC_VECTOR (dec - 1 downto 0);
             QI : out STD_LOGIC_VECTOR (dout - 1 downto 0);
             QQ : out STD_LOGIC_VECTOR (dout - 1 downto 0);
             CV : out std_logic
             );
end CIC_Last_edition;


architecture Behavioral of CIC_Last_edition is

   SIGNAL ii   : STD_LOGIC_VECTOR (11 DOWNTO 0);
   SIGNAL iq   : STD_LOGIC_VECTOR (11 DOWNTO 0);
      
begin      
               
       ii <=   DI;   
       iq <=    DI;         
            
   integr: process(CLK, RESET, CE)
   begin
   
       if RESET = '0' then      
        QI <=   ii;   
        QQ <=    iq;
        else
         
         QI <=   "000000000001";   
        QQ <=    "000000000001";
        end if;
       
   end process integr;
            
END Behavioral;
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

вот походу тут и есть проблема

Код: Выделить всё

Warning (10631): VHDL Process Statement warning at CIC_Last_edition.vhd(137): inferring latch(es) for signal or variable "czi", which holds its previous value in one or more paths through the process


http://electronix.ru/forum/index.php?showtopic=39397
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

Ну что я могу сказать... попробуй просто создать отдельный проект с фильтром, ничего к нему не прикручивая...
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

вот тут есть интересный момент рисунок 21 http://www.dsplib.ru/content/cic/cic.html
из него следует что многокаскадный фильтр можно собрать из однокаскадных и он будет стабильние
вопрос в другом что предпологаеться под термином "округление"
так как вся система работает в знаковом режиме и у интегратора переполнение норма то тогда в чом же заключаеться
проблема округления
собственно я так и не могу понять нужно ли увеличивать разрядность или нет
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

Под термином "округление" здесь понимается то же, что и везде, т.е. округление)) Штука в том, что интеграторы будут у тебя работать с переполнением, но если правильно выбрать размер буфера, то это самое переполнение на результат не повлияет. В статье же говорится о том, что результата надо добиваться не путём округления результата, а путём выбора размера регистра.
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

фокус в том что если разширить разрядность то в принципе можно добиться того что переполнения в интеграторе не будет вовсе
так как сигнал ведь полярный и отрицательные значения будут компенсировать положительные
переполнение наступит только если постоянку подавать
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: CIC фильтр

Сообщение Грендайзер »

Да ты чертовски прав... Вообще по этим фильтрам отличная статья тов. Хогенауэра в нете валялась... токо вот куда то пропала... я месяца 4 назад искал но она как сквозь землю провалилась... так вот он там описывает как разрядности выбирать, даже формулу расчёта приводит... токо вот чёт найти её не удаётся никак...
Да кстати, как там проект то, запустился?
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

разрядность разширять не хотелось бы потому что это сьест прилично логики
все равно потом придеться урезать до исходного
вся проблема в том что какой режим считать правильным
если режим с переполнением то тогда какой фиг увеличивать разрядность ведь оно все равно произойдет
второй вариант не допускать переполнения в зоне рабочих частот фильтра тогда действительно увеличение разрядности
имеет смысл

Да кстати, как там проект то, запустился?

нет так и не удалось запустить
yusmat
Родился
Сообщения: 19
Зарегистрирован: Пт фев 15, 2013 14:43:06

Re: CIC фильтр

Сообщение yusmat »

собрал я таки этот фильтр методом научного тыка
как всегда это самый простой метод хоть и долгий
разширять разрядность нужно так как каждый блок дает усиление
которое зависит от коф фильтрации
так вот если сигнал будет усилен настолько что выйдет за пределы разрядности то он естественно будет испорчен

интуитивно этот фильтр можно представить как комбинацию скомкивателя и разглаживателя
то есть сигнал сначала скомкиваеться интегратором вычисляеться среднее по больнице :))
а затем это среднее растягиваеться обратно причем сила растягивания регулируеться
после нескольких таких прогонов в результате получаем сигнал без вч состовляющих
Ответить

Вернуться в «Цифровая техника»