Jump to content

    

QUARTUS, MODELSIM

Recommended Posts

RobFPGA

Приветствую!

8 hours ago, Sidoroff said:

Если точнее сформулировать, хотелось бы чтобы он их удалял сразу по завершении компияции.

А тайминг анализ вы как будете делать?  А смотреть RTL/MAP/FIT/ChipScope диаграммы? Каждый раз по новой все компилировать будете?  :cray:  

 

21 hours ago, Sidoroff said:

...

На скорость сборки их наличие все равно никак не влияет, только место занимают.

Можно еще удалить все из корня C:, там дофига "ненужных" папок :wink2: :biggrin:  

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Krys

Здравствуйте. С Альтерой у меня опыта нет, поэтому вопрос возможно простой. Плисина Ария 5. Не получается синтезатору запихать выходной регистр внутрь DSP-блока.

Вот так это описано:

	process(clk)
	begin
		if rising_edge(clk) then
			dta_c3_re_r <= coef3_reg_re_pp * deg2_mult_r_reg_pp;
		end if;
	end process;

Предполагается, что регистр dta_c3_re_r будет внутри DSP-блока. Но он снаружи. Я даже атрибут нашёл вот тут и приделал его к описанию регистра:

    signal dta_c3_re_r : signed(2*wide_data_g-pre_dsp_cut_c+16 downto 0) := (others => '0');
    attribute multstyle : string;
    attribute multstyle of dta_c3_re_r : signal is "dsp";

Но это не помогает.

Выглядит это вот так на technology map:

Скрытый текст

Screenshot_7.png.4f9a59c4e5461ccff7e4bbeb289c7b12.png

И вот так на resource property editor:

Скрытый текст

Screenshot_8.thumb.png.25bf5e3ae64e4f7bf0853d02da376551.png

 

Share this post


Link to post
Share on other sites

new123
4 hours ago, Krys said:

. Я даже атрибут нашёл вот тут и приделал его к описанию регистра

у вас мануал от Quartus II, но насколько помню под пятерку можно уже и Prime, если вдруг вы его поставили, то по мануалу там чуть другой параметр.

https://www.intel.com/content/www/us/en/docs/programmable/683122/18-1/signal-level-attribute.html#mwh1409960001532__example_B8DC8B3F5A6F472AB2C34C90FC07D0C1

 

Если сайт не открывается, то прикладываю скрин

image.thumb.png.8c5ad9e1644586eeae6f31e550f9bf28.png

 

image.thumb.png.37a51f1a4860f5f8ca5553a079e8925b.png

 

от себя еще добавлю, что на Verilog я делал, нормально назначало. Даже сам назначал на какой dsp вести сигналы

 

Share this post


Link to post
Share on other sites

Krys
37 минут назад, new123 сказал:

у вас мануал от Quartus II, но насколько помню под пятерку можно уже и Prime, если вдруг вы его поставили, то по мануалу там чуть другой параметр.

Да, Прайм, спасибо за уточнение и помощь с параметром! Я думал всё одинаково с квартусом 2, это от недостатка опыта.

37 минут назад, new123 сказал:

Если сайт не открывается

И ведь точно, не открылось, написало про  санкции, спасибо, что предусмотрительно скинули скрины!

Меня смущает вот это:

Screenshot_20220524-223247_Opera.thumb.jpg.4f7ed437c1e67ee074e7ec6cb50a29ff.jpg

Т.е. применяется к цепям, но не к регистрам. А мне то надо заставить регистр упихаться в DSP блок.

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

Share this post


Link to post
Share on other sites

new123

завтра с утра еще раз мануал перекурю. У меня как то прям без проблем в dsp формула залезала. Вот только не помню, юзал ли я еще dsp ip core или нет. И есть ли она для пятерки или только для десятки.

Вы только имейте ввиду, что dsp расположены же в определенных местах, это надо цепи туда довести, потом от туда забрать. Это хорошо, если чип пустой и можно пихать логику куда хочешь, а если подзабит, то можно и по времянке не пролезть, возможнои  придется ручным размещением заниматься. Быть может это умножение и на logic сделать.

Edited by new123

Share this post


Link to post
Share on other sites

Krys
12 часов назад, new123 сказал:

На работе ваша ссылка открыталсь (до этого смотрел из дома, а на работе хитрый прокси есть для обхода). Я посмотрел оглавление документа и понял, что это всё про синплифай синопсис. Или для квартус прайм тоже годится?

Скрытый текст

Screenshot_9.thumb.png.8b62e668c3658dcc12f517baca9122c8.png

 

7 часов назад, new123 сказал:

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

У меня с чего всё началось: после компиляции прошивки моего чудо-девайса вылезли слаки. Я начал разбираться, понял, что регистр, который подразумевался внутри DSP-блока, был размещён снаружи по непонятной мне причине. Вот это и есть причина слака. Вот если регистр всё же заставить упихаться, тогда и посмотрим, "в определённых местах" или не в определённых местах. А пока до этого ещё не дошли, это так сказать величина второго порядка малости )

Share this post


Link to post
Share on other sites

Krys
12 часов назад, Krys сказал:

Я тут подумал... Не может ли виной быть, что задействована межкаскажная шина?

И всё же меня смущает, зачем задействована межкаскадная шина. Вот она на resource property editor (есть и в первом посте, но ниже более подробно):

Скрытый текст

Screenshot_10.thumb.png.5dc47ce4d6e87910fa2b5d4e98c68354.pngScreenshot_11.png.d55d2c243f354aa7f2cd206d7820d04e.png

В первом посте есть картинка из Technology map viewer, привожу её ещё раз, чтобы туда не прокручивать:

Скрытый текст

Screenshot_7.png.4f9a59c4e5461ccff7e4bbeb289c7b12.png

И на этой картинке видно, что операнды 25 и 16 бит, а результат 22 бита (лишние биты не используются, отрезаны). Для таких разрядностей всё должно влезать в один DSP-блок, без каскадирования. И главное на этой же картинке не показано наличие этой межкаскадной шины. И я даже не понимаю, где и как глянуть, куда всё же она потом идёт с выхода DSP-блока.

Share this post


Link to post
Share on other sites

blackfin
17 hours ago, Krys said:

Плисина Ария 5. Не получается синтезатору запихать выходной регистр внутрь DSP-блока.

Была похожая тема:

 

Share this post


Link to post
Share on other sites

Krys
1 час назад, blackfin сказал:

Была похожая тема:

Огромное спасибо, действительно, проблема один в один, сейчас буду читать, что там вышло в итоге. Понравились высказывания, ржал ))

Цитата

Оказалось  что корка LPM_MULT   в Qu это не корка а так  - чистый  надувательство

Цитата

а я то наивный, Xilinx разбалованный, думал что там уже если не нетлист то хотя-бы жестко на примитивах собрано)

Цитата

лепит умножитель на чистой комбинаторике из DSP, а сзади цепляет к нему регистры (и даже пытается оптимизировать их в shift-ram, ха-ха-ха)

Цитата

Ну думаю - может подкину ему еще  1-2 дополнительных pipeline и все будет ок.

Выше - это один в один мои мысли. Думаю чо мозг напрягать, подкину регистров, 5 на входе, 5 на выходе, "пусть долгоносик подавится" ))))

И вообще, продвинутые спецы умеют под альтеру в виваде сразу разводить:

Цитата

Ну и Quartus я уже давно заменил на Vivado и, как видно, не зря..

Ржал до слёз:

Цитата

Ведь не факт что похожее только с mult случается.  Например похожая по непонятности  ситуация  с  атрибутом синтеза maxfan.  На который как я вижу Qu кладет свой maxfuck.

Цитата

дало  увеличение времени сборки  на 40 мин и толику временных ошибок типа "поиздеваться над разработчиком", в цепях регистр - адрес памяти  ошибка тайминга  ~0.05 ns. :ireful2:

 

Share this post


Link to post
Share on other sites

Krys
24.05.2022 в 21:55, new123 сказал:

от себя еще добавлю, что на Verilog я делал, нормально назначало.

Переделал всё на верилог. Умножение сделал через генерацию LPM_MULT в визарде. Прописал latency большую в надежде, что упихает в регистры внутри DSP-блока. Нифига. Сделал снаружи на рассыпухе.

Сейчас умножение напишу прямо на верилоге, может поможет.

 

Дополнение: но при этом слаков больше нет. Значит переделывать не буду, так и оставлю, не стоит оно идеализации.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.