Перейти к содержанию
    

sallador

Свой
  • Постов

    51
  • Зарегистрирован

  • Посещение

Весь контент sallador


  1. Самый простой, какой я когда-либо делал для Xilinx - как описал товарищ serjj Прилагаю код. Используется - 1 DDS из CoreGENERATOR. Обычный счетчик управляет частотой NCO. xdsp_trans_ph.vhd
  2. Задам вопрос здесь, если позволите. Есть простой код на VHDL: signal data : std_logic_vector(WIDTH-1 downto 0); attribute use_dsp48 : string; attribute use_dsp48 of data : signal is "yes"; begin pr_cnt: process(rst, clk) begin if (rst = '1') then data <= (others => '0'); elsif rising_edge(clk) then if ena = '1' then data <= data + '1' after td; end if; end if; end process; cnt_out <= data; При разводке хотелось бы задествовать регистр PREG внутри DSP блока. Атрибут KEEP не помог, как бы я его не крутил (хотя он нужен как раз для выноса регистров вне DSP). Xilinx: XST by default tries to infer and implement the maximum macro configuration, including as many registers as possible in the DSP48 Реально ли для счетчика задействовать PREG?
  3. Не для синтеза ведь? use ieee.std_logic_arith.all; ... signal char_signal: character; signal std_signal: std_logic_vector(7 downto 0); ... std_signal <= conv_std_logic_vector(character'pos(char_signal),8);
  4. Год назад тоже были на этих курсах. Поддерживаю. Пересаживаться с SystemGenerator на HLS как-то лениво. И в отсутствие хороших жизненных примеров, а не искуственных типа простейшего FIR и записи/чтения - не очень хочется.
  5. Конкретно на этих курсах не были, но год назад я и коллеги ездили на курсы по Vivado и Vivado HLS к ним. Читал Тарасов. Все понятно и ясно. Как писали выше - в нагрузку каждому дали мануал в виде огромной распечатки + в электронном виде материалы. Полезно или нет - судить каждому для себя. Если постоянно используете полученные навыки в работе - думаю, полезно. Лично мое мнение - цена за курсы высока. За свои кровные я бы не поехал, т.к. у Xilinx очень хорошие материалы лежат в открытом доступе и текстом, и видео. На том же youtube полно подробных роликов.
  6. То есть на остальные слои можно смело забить в связи отсутствия необходимости в них? Ну да, это логично. Спасибо, попробую так. За 3D модель отдельное спасибо!
  7. Добрый день, коллеги! Появилась задача в любительских целях нарисовать следующий держатель для батареек в альтиуме: KEYS1048. Установить планирую на плату с не более, чем 4 слоя. ПДФ-ка: http://files.eleka.info/content/pdf/K/KEYS1048.pdf УГО схемы я нарисую обычным квадратиком с двумя + и -. Теперь вопрос. Правильно ли я понимаю, что для отрисовки PCB компонента мне нужен "Mounting Pad Layout" и все? И если это так, то какие слои грамотно использовать для отрисовки? Спасибо!
  8. 2 verali Вывод POK (power good) на практике зачастую резистором подтягивают к питанию, например 3.3В (которое у вас входное). Если вдруг просядет или от помехи уровень изменится (пусть и кратковременно) - пропадет питание с ПЛИС, что не есть хорошо.
  9. Астрологи объявили месяц курсовых/дипломных работ? Не понимаю, зачем создавать отдельную тему (это отнимает намного больше вашего и нашего времени), если можно вбить в тот же гугл "xilinx complex multiplier"? Если вы научились создавать ядро БПФ от Xilinx, то в том же COREGenerator есть Complex Mult.
  10. Зачем тогда тот же Xilinx так упорно пишет про Power Sequence для всех своих последних серий ПЛИС? и Большая часть Answer Records на их сайте в разделе про питалово связана именно с неправильной последовательностью включения.
  11. Опередили, но добавлю. Если зарегистрироваться, то можно получить доступ к лабораторкам для FPGA и SOC, которые они предлагают. А также получать интересные рассылки по новым материалам от этих ребят. :)
  12. Кстати, на хабре опубликовали интересную статью, в которой описывается не менее интересная книга - Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера». Полностью на русском языке, скачать можно там же. Прочитал на одном дыхании и всегда думал - "Эх, жаль, что у меня такой не было лет 10 назад". Для большей части новичков и студентов - идеальный вариант. Простым языком описывается все от транзисторов и логических элементов до созадния своих архитектур и законченных систем например, на С++ или SV. В будущем семестре даже планирую всем своим студентам рекомендовать её к прочтению. :)
  13. Конечно. В институтах дают лишь часть знаний, которых явно не хватит, чтобы по выпуску называть себя "инженером". Многое приходится учить самому, сидеть ночами, разбираться, спрашивать у старших товарищей и т.д. - на это не все готовы. После окончания обучения многие считают, что все - учеба закончилась, больше нового знать ничего не нужно. Но самое главное - ВУЗ должен учить "учиться" и грамотно применять накопленные знания. Звучит немного пафосно, но на практике так и получается.
  14. По большей части такие вопросы задают студенты. Принцип "как можно быстрее найти ответ". А как это сделать? - конечно же спросить, тут вон сколько грамотных инженеров сидит. Искать по форуму - это непросто и лень. Оффтоп: По поводу учат или нет: учат конечно же. Стоит учитывать, что многим просто не под силу освоить огромный пласт материала. а делать что-то дома - опять же лень. Говорю по собственному опыту преподавания курса по ПЛИС. Из года в год студенты хуже, не хотят сами разбираться и учиться. Например, у нас на занятиях есть доступ в интернет. На вводных лабах дается возможность познакомиться со средой, синтезировать первый триггер и помигать лампочкой. Поражает то, что можно без проблем вбить в гугл "FD VHDL example" или "Led spartan3e starter-kit" и простым копи-пастом сдать вводную лабораторку (благо, она из референс дизайнов от xilinx). Но даже этого никто не хочет делать, увы.
  15. to aBoomest Как правильно сказали выше - используйте полученные "тактовые сигналы" на 40 кГц и 1 кГц как сигналы "разрешения тактирования" частоты 50 МГц. В триггере это порт CE (clock enable). В итоге получите работоспособную схему на 50МГц, но защелкивание будет происходить с нужным периодом. Для VHDL один из примеров: pr_fd: process(clk, reset) is begin if reset = '0' then q <= x"00"; elsif rising_edge(clk) then if ce = '1' then -- это и есть строб разрешения q <= d; else null; end if; end if; end process; Второй пример - это взять FDE триггер из библиотеки UNISIM. Там есть вход разрешения CE. p.s. заметил, что старожилы любят издеваться, хоть и дают ответы начинающим. вспомните себя, сами тоже когда-то такими были :)
  16. В дополнение к serjj Да, без юзергайдов никуда. Натоятельно рекомендую читать мануал. Сам перемножитель сейчас - сложная штука. А писать программы на VHDL в стиле D = A+B*C - конечно можно, но в какие ресурсы это выльется - не всегда ясно и понятно, особенно если проект разросся до огромных размеров. Помимо умножения, в том же DSP48E1 у Xilinx еще можно реализовать суммирование, сравнение, перенос, свдиг, предварительное суммирование и т.д. и т.п. Параллельно чтению UG на перемножители, подумайте над простейшей реализацией того же КИХ-фильтра эдак на 16 отводов. Причем можно реализовать тремя способами и сравнить: 1) Напрямую записать в VHDL через цикл loop или generate; 2) С помощью ip ядер умножения и суммирования; 3) C помощью CORE Generator у Xilinx взять и сразу сделать готовый КИХ на нужное число отводов с нужным числом коэффициентов. По мере увеличения объема знаний - увеличивайте и сложность проекта. К примеру, попытайтесь задействовать предварительные сумматоры в блоке DSP48E1 для реализации КИХ с симметричной характеристикой, сделайте возможность загрузки коэффициентов в блоки DSP и т.д. Может показаться, что это изобретение очередного велосипеда, но для постижения ЦОС - лучше через все это пройти самому. В заключение хотел бы сказать, что многие сейчас смотрят в сторону реализации алгоритмов ЦОС на С++. Конкретно для Xilinx это Vivado HLS, где можно выбирать компромисс между ресурсами и производительностью. Благодаря набору настроек и прагм - можно довольно-таки быстро получить различные решения, сравнить их между собой и выбрать приемлимое в рамках конкретной задачи.
  17. Попробуйте в Design setting -> Simulations -> Additional options Вбить: glbl -relax Забыл об этом уточнении в предыдущей теме =)
  18. Можно попробовать так: 1) COREGenerator -> Project -> Options -> Generation -> Design Entity: Verilog Preferred Simulation Model: Structural 2) Поставить Verilog libraries для Aldec любым удобным для вас способом (сгенерить, скачать, установить...) 3) Если верилог не подцепит во время моделирования, то в Aldec сделать следующие шаги: Design -> Settings -> Simulation -> Verilog -> Добавить в "Verilog lib... (-PL):" то, что касается verilog (с суффиксом _ver).
  19. А в проверяемом компоненте "top" вы изменили тип на std_logic_vector, для которого тестбенч написан? Ругается на несовместимость типов в port map. В вашем случае std_logic и std_logic_vector.
  20. Лицензия стояла от 9.1, которая не проходила. Заменил/добавил следующие DLL: project.dll rmcl.dll rmcldiag.dll scripter.dll VSIMSA.dll В частности, для waveform viewer заменил: tbpviewer.exe tcviewer.exe
  21. 1. Даташит на analog.com На стр. 5, 13-18 описана времянка для программирования регистров микросхемы по SPI. 2. На opencores пример SPI-интерфейса. Из этого набора контроллер управления описываете самостоятельно.
  22. 1. Решил свою же проблему. Причина - неправильно настроенная лицензия и отсутствие некоторых файлов в директории /BIN. Кроме того, исчезли все тормоза, которые возникали во время работы с вейвформами. >> Невозможно нормально остановить или перезапустить симуляцию. Алдек просто вылетает с ошибкой. 2. Обнаружил "плюс" Aldec 9.3. Вернули нормально отображение данных в диаграммах в форме "decimal (signed/unsigned)". В версии 8.3 такое было, а в 9.1 почему-то убрали, заменив числа знаком ?.
  23. Я так понимаю, Вы пользуетесь Accelerated Waveform Viewer? Для Standard Wavefrom Viewer все настройки остаются неизменными после остановки симуляции. Когда-то тоже использовал *do-скрипты. Но тратил на это много времени - отказался. Видимо, для 9.3 придется вернуться к этому. P.S. переход на 9.3 лично у меня обусловлен поддержкой библиотек Xilinx ISE 14.7.
  24. По поводу колесика - масштабируется нормально. Даже при большом количестве сигналов + часть из них в analog-форме выведена. Другая беда - в 9.3 убрали зум по +/-. Привык в 9.1 через + и - ходить по диаграммам. И, кстати, в 9.3 возникает следующая проблема: Невозможно нормально остановить или перезапустить симуляцию. Алдек просто вылетает с ошибкой. Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: avhdl.exe Версия приложения: 9.3.0.1 Отметка времени приложения: 524a9fc3 Имя модуля с ошибкой: vsim.dll Версия модуля с ошибкой: 9.3.0.0 Отметка времени модуля с ошибкой: 52e18de1 Код исключения: c0000005 Смещение исключения: 000618f5 Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Это происходит у меня на двух разных машинах. На каждой стоит Win7 x86, x64. Помимо Aldec 9.3 также установлен Aldec 9.1 (и в нем проблем нет!!). Как бороться с этим?
×
×
  • Создать...