Jhonny
Участник-
Постов
15 -
Зарегистрирован
-
Посещение
Весь контент Jhonny
-
Подскажите пожалуйста, как скачать код с helixcommunity.org?
-
вышел ise 13.4
Jhonny ответил Alex77 тема в Среды разработки - обсуждаем САПРы
Не успел сказать спасибо, а сообщения уже куда-то пропали. :05: -
Спасибо :)
-
Решением не поделитесь? :)
-
Не подскажите, как декодировать исходники?
-
Память STMicroelectronics
Jhonny ответил Jhonny тема в Цифровые схемы, высокоскоростные ЦС
Документацию нашел, читаю:) А можно ли то же самое сделать средствами cadence (просто весь мвршрут в cadence)? -
Память STMicroelectronics
Jhonny опубликовал тема в Цифровые схемы, высокоскоростные ЦС
Здравствуйте. У нас в проекте используются ROM и RAM памяти от ST. Возникли некоторые проблемы с моделированием нетлиста с задержками. Проблемы следующие: 1. Выгрузка sdf: в верилог-модели памяти прописаны пути для Q_data, Q_glitch, тогда как выходным портом является порт Q. В .lib также нет никаких Q_data. Соответственно при аннотации эти пути не подцепляются. В поставке памяти есть папка SYNOPSYS_PT с map файлами, с помощью которых из .lib как-то вытаскиваются нужные пути. Но как пользоваться этими файлами не знаю, смотрел команду write_sdf в документации к DesignCompiler, про map ничего не нашел. Может кто подскажет, что с ними делать? 2. Вот диаграмма чтения из ячейки: Судя по докам, между th и taa на выходе Q висит неопределенное значение, а при моделировании выводятся иксы. Для worst случая th = 2.803 ns, taa = 6.598 ns. Получается почти 4 нс на выходе - иксы. Соответствует ли это поведению реальной памяти? И нужно ли как-то смещать клок памяти относительно клоков триггеров при построении дерева? Заранее спасибо:) -
Здравствуйте, чтобы не создавать новую тему, спрошу здесь. Есть (предполагается) АЦП с частотой дискретизации Fs = 48 кГц, данные обрабатываются ПЛИС с тактовой Fclk=100 МГц. Получается, что Fclk не кратна Fs и данные приходят как бы асинхронно тактовой. Нужно ли их (данные) как то синхронизировать? Или проще поменять тактовую, например, на 96 МГц?
-
Реализация БПФ на ПЛИС
Jhonny ответил ZED тема в Языки проектирования на ПЛИС (FPGA)
Попытался оптимизировать бабочку, убрав повторяющиеся операции. Вот что получилось: architecture RTL of Butterfly is signal D : complex_data_p2_bus; signal add01_re : std_logic_vector(fft_data'high + 2 downto 0); signal add01_im : std_logic_vector(fft_data'high + 2 downto 0); signal add23_re : std_logic_vector(fft_data'high + 2 downto 0); signal add23_im : std_logic_vector(fft_data'high + 2 downto 0); signal sub01_re : std_logic_vector(fft_data'high + 2 downto 0); signal sub01_im : std_logic_vector(fft_data'high + 2 downto 0); signal sub23_re : std_logic_vector(fft_data'high + 2 downto 0); signal sub23_im : std_logic_vector(fft_data'high + 2 downto 0); signal sub01 : std_logic_vector(fft_data'high + 2 downto 0); signal sub02 : std_logic_vector(fft_data'high + 2 downto 0); signal sub13 : std_logic_vector(fft_data'high + 2 downto 0); begin D <= expand_sign(D_i); add01_re <= D(0).re + D(1).re + 1; add01_im <= D(0).im + D(1).im + 1; sub01_re <= D(0).re - D(1).re + 1; sub01_im <= D(0).im - D(1).im + 1; add23_re <= D(2).re + D(3).re + 1; add23_im <= D(2).im + D(3).im + 1; sub23_re <= D(2).re - D(3).re + 1; sub23_im <= D(2).im - D(3).im + 1; sub01 <= D(0).re - D(1).im; sub02 <= D(0).im - D(2).im; sub13 <= D(1).re - D(3).re; process (CLK) variable Y: complex_data_p2_bus; begin if rising_edge(CLK) then if RESETsn = '0' then Y_ro <= (others => (re => (others => '0'), im => (others => '0'))); else if (MODE_i = Butterfly_4_Point) then Y(0).re := add01_re + add23_re; Y(0).im := add01_im + add23_im; Y(1).re := sub01 - D(2).re - D(3).im + 2; Y(1).im := sub02 - sub13 + 2; Y(2).re := sub01_re + sub23_re; Y(2).im := sub01_im + sub23_im; Y(3).re := sub01 - D(2).re + D(3).im + 2; Y(3).im := sub02 + sub13 + 2; Y_ro <= get_msb(Y, 0); else Y(0).re := add01_re; Y(0).im := add01_im; Y(1).re := sub01_re; Y(1).im := sub01_im; Y(2).re := add23_re; Y(2).im := add23_im; Y(3).re := sub23_re; Y(3).im := sub23_im; Y_ro <= get_msb(Y, 1); end if; end if; end if; end process; end RTL; Синтезировал в Xilinx ISE 12.3, до этого было 18-bit adder : 6 18-bit subtractor : 2 19-bit adder : 19 19-bit subtractor :11 После стало так 19-bit adder : 18, 19-bit subtractor :10. Имеет ли право на жизнь такая реализация, или есть другие варианты оптимизации? -
Реализация БПФ на ПЛИС
Jhonny ответил ZED тема в Языки проектирования на ПЛИС (FPGA)
Спасибо за ответы:). То, что принцип соединения бабочек одинаков, интуитивно понятно. Вызывает затруднение количество разнородных бабочек. Для чисел 1152, 1024, 704, 448 я выделил 2-х, 3-х, 4-х, 7-ми и 11-ти точечные бабочки. Это значит, обходиться без хитрых сдвигов и маскирований? Насколько общим должен быть вид? Ведь от конкретного числа точек зависят количество этапов и применяемые бабочки? И еще, все сказанное Вами относится к БПФ типа пинг-понг (разрабатываемого в этой теме)? У Рабинера, Гоулда написано про поточный метод, мне показалось, там проще организация памяти. -
Реализация БПФ на ПЛИС
Jhonny ответил ZED тема в Языки проектирования на ПЛИС (FPGA)
К сожалению, нулями дополнить нельзя. БПФ нужно для демодулятора OFDM, соответственно длительность OFDM-символа определяет количество точек преобразования (если я все правильно понял). -
Реализация БПФ на ПЛИС
Jhonny ответил ZED тема в Языки проектирования на ПЛИС (FPGA)
Здравствуйте. Спасибо за очень полезную тему. У меня есть несколько вопросов касательно БПФ. Необходимо реализовать преобразователь на 1152, 1024, 704 и 448 отсчетов, при этом длина должна выбираться динамически. Возможно ли сделать такой универсальный преобразователь или лучше сделать четыре отдельных с фиксированной длиной? Как я понял, здесь применим алгоритм Cooley-Tukey со смешанными основаниями, т.е. например, 1152 раскладывается как 43322. Также читал про алгоритм Блуштейна (Bluestein's chirp-z) и ряд других. Какой лучше подходит для данной задачи? Может кто-то сталкивался с подобной проблемой? Буду признателен за советы.