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

Мелкие вопросы по Vivado

9 hours ago, Alex77 said:

1) мне не интересно.

Хорошо, что это читают другие!

Но все равно вам спасибо, вы натолкнули на место выбора рассматриваемой псевдо-проблемы, которую вы не просекли...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть важный вопрос об общем ФЛОУ..

Это касается поэтапной сборки всего дизайна, когда есть отлаженные заготовки, но их надо вплести в архитектуру PS. Конкретно, в варианте  многих BRAM и GPIO, куда надо подключить логику, взаимодействующую через регистры и ячейки памяти. 

Речь о промежуточном случае, когда я разрываю шины адреса, данных,стробов управления от BRAM(а их много!) и вешаю пины, которые не подключены вовне.  Получается я перейти к Витис уже не могу ввиду отсутствия файла битстрима\конфигурации!  И пока я не подключу ВСЕ оборванные сигналы я не могу иметь промежуточную отладку в Витис!

Что вы посоветуете стратегически?  Какой пример можно глянуть, чтобы соотнести свои задачи с принятыми стратегиями  подобного построения?  Вообще тема много-уровневой иерархии мне весьма интересна. Даже в диаграммном отображении! Как сделать красиво и без костылей?

И на что обращать внимание для полноценного обновления исходников при добавлении или модификации HDL или Diagrams? (Я понял, что там живет какое-то залочивание, которое не так просто снять). В общем обидно тормозит рост.

Благодарен буду любой информации на эту тему!  Спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОФФТОП:

Если вы разломали движок под капотом у ламборджине и вам хочется ехать - то есть два варианта:

- починить тачку

- оседлать ишака.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Открыт доступ к   https://docs.xilinx.com/r/en-US/ug893-vivado-ide/References

Понравилось    https://mpsu.github.io/APS/Vivado%20Basics/How%20to%20use%20Source%20Window.html

Нюансы стоит учитывать сразу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подборка от Гарсия Хавьера   https://ohwr.org/project/soc-course/wikis/home

Многим будет кстати!

..важный сейчас для меня вопрос, связанный с пуском дизайна PS+PL, где мне необходимо глянуть через ILA сигналы обращения к одному регистру моего IP , чтобы убедится, что примитивная логика работает.

Как оказалось, вижу косвенно, что PL работает, а вот от PS тишина (хотя программно я через паузу делаю только запись по этому фиксированному адресу регистра)!

Мне не понятно, как убедиться в факте выполнения этой программы на А9? Можно ли записать эту программу через JTAG как на PL ?   FSBL  я понял, через uCD грузится...  Но мне важно видеть временную от ILA, а это на ВИВАДе!

Что я тут намудрил ? Дважды грузить (чтобы видеть анализатор) наверное не верно...

Спасибо за вектор верного движения и намек на мой косяк!..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мои находки при освоении VIVADO

Серьёзные проблемы заключительного этапа сборки и отладки.docx

Пришла интересная мысль,- уж коль мне привычнее работать в логике,- сделать проект под МикроБлейз и заливать один раз PL  без этих финтов и полноценным просмотром на ILA...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Не верьте ему... нет волков тут..."

1) не полное (не понятное объяснение проблемных ситуаций)

2) видна борьба с последствиями а не с причиной...

3) неверные выводы о клёвости альтеры  в отличие от ксайлинкса

Другими словами: если делать "своим способом" а не тем что рекомендуется производителем - будут проблемы.

ПС: из всего этого "реально было" то что комплект исходников на СИ (аля драйвер пользовательской корки) не полноценно формировался. но и это обходится (лечится) один раз и навсегда для конкретной корки. года три назад развлекался - подробности подзабыты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/13/2024 at 1:30 PM, Alex77 said:

"Не верьте ему... нет волков тут..."

Обращает внимание на нелепость подхода в системе VIVADO , которую я уже на автомате обходил применением дополнительного редактора, чтобы править VHDL код, который прячут пометкой Read-only ,а править необходимо, глядя на итоговые тексты, где теряются мои целые шины и сигналы за порождаемыми оболочками.

Уже не обращал внимание на эту особенность!

Стоп, думаю, а ведь это фигня!  Спасти дизайн руками - последний ход дизайнера!  Уже сколько раз так спасался...

...Помнится лет 20 назад возмущались, что теперь ограничивают доступ к привычному редактированию в самом низу сборок. ...И в пределе получили вот такое уродство -уже на уровне исходных кодов запрет...   Идиотизм!

Верно говорил мой приятель, что 21 век - век ХАЛТУРЫ!

ЗЫ.  Навигация по тексту с маркерами отсутствует. Только поиск с маркировкой без возможности запомнить важные места ущербно!

Вертикальные редакции с ALT сразу по нескольким строкам сразу раздражает...  Вот почему спасаюсь в других редакторах!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

за 15 лет ни разу не потребовалось "чтобы править VHDL код, который прячут пометкой Read-only ". ЧЯДНТ ? Может в консерватории проблема ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Alex77 said:

за 15 лет ни разу не потребовалось "чтобы править VHDL код, который прячут пометкой Read-only ". ЧЯДНТ ? Может в консерватории проблема ?

Я не идеал... Это мой первый опыт общения с подобными SOC системами, если не считать мое 3-х летнее творчество в ISE.  Там дружественная среда и дискомфорта не испытывал! Может немного атрибутами более насыщено...

Не исключаю и надеюсь, что качественный скачок впереди.  И я по достоинству оценю сей инструментарий!  Но пока что напрягает...

Кстати, в серьезных НИИ времен СССР искали подобных зануд, которые умудрялись находить изъяны в уже отработанном, казалось, материале для рядового состава в войсках!  В итоге выявлялись тупиковые сценарии поведения операторов и документация качественно обогащалась.  Благодарность шла от обычных работников войны и спасла не одну жизнь!  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ух, достала же не возможность быстрого поиска в VIVADO нужных сигналов как в симуляторе, так и в схеме!...   Чисто глазами и никак иначе!

Другое дело для КВА.  Нажимаешь первую букву имени и система поочереди подсвечивает все имена с первой выбранной нами буквой. Уверен, что не пропустишь!  Экономит время и силы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возник вопрос из-за сложностей с атрибутами иерархии keep_hierarchical для примитивов.  ..Когда они единичны все норм.

А вот параметрическая генерация экземпляров показывет синтаксическую ошибку в индексах.   Как это сделать правильно, кто подскажет?      Прицепил  сам первоначальный исходник для оценки... (там ошибка в очередности имен ADC_RAMs[]. ADC_RAMN[]. )

......в разделе деклараций пытаюсь описать имена, как рекомендовано в UG625

attribute keep_hierarchy of architecture_name : architecture is {TRUE|FALSE|SOFT};   Пытался по-всякому

component RAM64X1D_1        --  примитив
  generic (
     INIT : bit_vector(63 downto 0) := X"0000000000000000";
     IS_WCLK_INVERTED : bit := '0'
  );
  port (
     DPO : out std_ulogic;
     SPO : out std_ulogic;
     A0 : in std_ulogic;
     A1 : in std_ulogic;
     A2 : in std_ulogic;
     A3 : in std_ulogic;
     A4 : in std_ulogic;
     A5 : in std_ulogic;
     D : in std_ulogic;
     DPRA0 : in std_ulogic;
     DPRA1 : in std_ulogic;
     DPRA2 : in std_ulogic;
     DPRA3 : in std_ulogic;
     DPRA4 : in std_ulogic;
     DPRA5 : in std_ulogic;
     WCLK : in std_ulogic;
     WE : in std_ulogic
  );
end component;
attribute BOX_TYPE of   RAM64X1D_1 : component is "PRIMITIVE";
attribute keep_hierarchy : string;

attribute keep_hierarchy of ADC_RAMs[0].ADC_RAMN[ 0].Dual_RAMr: architecture is "TRUE";
attribute keep_hierarchy of ADC_RAMs[0].ADC_RAMN[ 1].Dual_RAMr: architecture is "TRUE";
attribute keep_hierarchy of ADC_RAMs[0].ADC_RAMN[ 2].Dual_RAMr: architecture is "TRUE";
и т.д. ....................................

attribute keep_hierarchy of ADC_RAMs[0].ADC_RAMN[31].Dual_RAMr: architecture is "TRUE";

и т.д.......................

attribute keep_hierarchy of ADC_RAMs[1].ADC_RAMN[ 0].Dual_RAMr: architecture is "TRUE";
и т.д..................

.....в разделе коммуникаций порождались экземпляры вот таким макаром..

begin                       -----

ADC_RAMs : for k in 3 downto 0 generate         --ADC
  ADC_RAMN : for n in 31 downto 0 generate
    Dual_RAMr : RAM64X1D_1                   --Здесь хранятся результаты АЦП преобразования
        port map (
                DPO => DRAMs_ADC_B(k)(n), -- Read-only 1-bit data output
                SPO => open, -- R/W 1-bit data output
                A0 => addr_radc(0), -- R/W address[0] input bit
                A1 => addr_radc(1), -- R/W address[1] input bit
                A2 => addr_radc(2), -- R/W address[2] input bit
                A3 => addr_radc(3), -- R/W address[3] input bit
                A4 => addr_radc(4), -- R/W address[4] input bit
                A5 => addr_radc(5), -- R/W address[5] input bit
                D  => DRAM_ADC_B(k)(n), -- Write 1-bit data input
                DPRA0 => ADCdatRAM(0), -- Read-only address[0] input bit
                DPRA1 => ADCdatRAM(1), -- Read-only address[1] input bit
                DPRA2 => ADCdatRAM(2), -- Read-only address[2] input bit
                DPRA3 => ADCdatRAM(3), -- Read-only address[3] input bit
                DPRA4 => ADCdatRAM(4), -- Read-only address[4] input bit
                DPRA5 => ADCdatRAM(5), -- Read-only address[5] input bit
                WCLK => sys_clk200MHz, -- Write clock input
                WE   => wr_mem_s -- Write enable input
              );
        end generate ADC_RAMN;
    end generate ADC_RAMs;
 

Это мне важно для мягкой отладки.

Спасибо!

Вопрос.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Мур said:

Возник вопрос из-за сложностей с атрибутами иерархии keep_hierarchical для примитивов.  ..

Этот атрибут запрещает синтезатору проводить оптимизацию на границах между компонентами. Насколько я понял, вы его хотите применить к набору примитивов. Но их потроха не могут быть оптимизированы, т.к. они - примитивы. В итоге не ясно чего вы хотите добиться использованием атрибута. Поясните.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, kskssk said:

Этот атрибут запрещает синтезатору проводить оптимизацию на границах между компонентами. Насколько я понял, вы его хотите применить к набору примитивов. Но их потроха не могут быть оптимизированы, т.к. они - примитивы. В итоге не ясно чего вы хотите добиться использованием атрибута. Поясните.

Тут все просто. Мне надо оставить память (в симуляции она работает), чтобы в отладке иметь доступ к выходу памяти при помощи ILA . К тому же сам автомат, который читает был из-за этого удален. Я его сумел оставить, но его шина адреса к памяти не доходит (ее нет после имплементации).. 

Меня задевает другое.  Имена памяти как указать?  Не нашел такой сложный случай в интернете...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/22/2024 at 6:29 AM, Мур said:

Мне надо оставить память (в симуляции она работает), чтобы в отладке иметь доступ к выходу памяти при помощи ILA .

 MARK_DEBUG:  UG901, page 58.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...