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

Подскажите пожалуйста, как правильно подключить BUFG на вывод, назначенный clk?

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


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

14 часов назад, libine сказал:

Подскажите пожалуйста, как правильно подключить BUFG на вывод, назначенный clk?

В смысле "на вывод"?

Если Вы хотите указать P&R, что, например, сигнал clk должен разводиться через глобальный буфер, то пишете в cst-файле:

CLOCK_LOC "clk" BUFG = CLK;

 

Ну или все то же самое - мышкой во флорпланнере, на закладке "Clock Assignment" (ПКМ - Clock/Control Assignment - выбираем цепь, тип и сигнал).

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


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

StewartLittle, к сожалению, не работает.

Вывод был назван clk, FloorPlanner предлагает Net clk_c. В файле cst получаем запись:

CLOCK_LOC "clk_c" BUFG = CLK;

Замечу: YunYuan позволяет запустить FloorPlanner лишь после того, как проведён синтез посредством Synplify. Которому указание использовать BUFG не передаётся. Если открыть результат в Synplify Technology View, можно увидеть, что clk заведён на IBUF и далее на DFFE. Если запустить следующим шагом Place & Route, получим сообщение: «Warning (PR1014) : Generic routing resource will be used to clock signal 'clk_c' by the specified constraint. And then it may lead to the excessive delay or skew».

Я пробовал подключить BUFG посредством создания его экземпляра, исходный код:

input load, cin, clk;
wire bufg_clk;
reg [7:0] out;

BUFG bufg_buffer(bufg_clk, clk);

//always @(posedge clk)
always @(posedge bufg_clk)
begin
    if (load)
        out = data;
    else
        out = out + cin;    
end

// all bits of out must be one and the
// carry in must be on to generate a
// carry out
assign cout = &out & cin;

endmodule

От Synplify, получаю «@W: MT531 :"/mnt/HDDEXT4/Repositories/FPGA/8bit_counter/src/counter1.v":19:0:19:5|Found signal identified as System clock which controls 8 sequential elements including out[7:0]. Using this clock, which has no specified timing constraint, can prevent conversion of gated or generated clocks and can adversely impact design performance.»

А от Place & Route, всё тот же «Warning (PR1014) : Generic routing resource will be used to clock signal 'clk_c' by the specified constraint. And then it may lead to the excessive delay or skew».

Замечу, что если бы я не описал clk в файле Logic Constrains(FDC), сообщений от Synplify было бы больше.

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


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

12 минут назад, libine сказал:

Если запустить следующим шагом Place & Route, получим сообщение: «Warning (PR1014) : Generic routing resource will be used to clock signal 'clk_c' by the specified constraint. And then it may lead to the excessive delay or skew».

Какая у Вас версия Gowin EDA?

Надо обноситься до v1.9.5 : http://cdn.gowinsemi.com.cn/Gowin_V1.9.5Beta_linux.tar.gz

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


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

Обновился до v1.9.5. Ничего не изменилось. На мой взгляд, имеет место серьёзная проблема.

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


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

Только что, libine сказал:

Обновился до v1.9.5. Ничего не изменилось. На мой взгляд, имеет место серьёзная проблема.

Пришлите, плз, Ваш проект.

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


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

Ну, я в принципе и на своем проекте повторил Ваш релультат.

Смотрите отчет P&R, раздел Global clock usage summary:

 

bufg.png

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


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

Как следует интерпретировать информацию о Global Clock из отчёта совместно с Warning (PR1014)?

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


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

2 часа назад, libine сказал:

Как следует интерпретировать информацию о Global Clock из отчёта совместно с Warning (PR1014)?

Я думаю, на это предупреждение можно забить. Это предупреждение выдается независимо от того, сделан ли физический констрейнт на тактовый сигнал или нет (а если сделан, то какой именно).

Но при этом :

  • если не назначать принудительно clk на BUFG, то P&R достаточно сообразителен, чтобы сделать это самому.
  • если назначить констрейнтом clk на BUFG, то так и будет сделано.
  • если назначить констрейнтом clk на LOCAL_CLOCK, то BUFG использоваться не будет.

И все это будет отображено в отчете P&R.

Попробуйте сами поэкспериментировать с различными физическими констрейнтами на тактовый сигнал (и смотрите разницу в отчетах).

 

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


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

StewartLittle, поэкспериментировал.

Type Global          Clock Usage                   Actual Fmax, MHz

LOCAL_CLOCK      0/8(0%)                        177,869

BUFS                   SECONDARY 1/8(12%)    177,820

BUFG                   PRIMARY 1/8(12%)         177.820

Т.е. разница есть, но с глобальными цепями становится хуже. Объяснение этому придумать можно.

Подключаю BUFG посредством создания экземпляра,

BUFG bufg_buffer(bufg_clk, clk);

Проверяю присутствие BUFG в Synplify, Technology View:

759277671_2020-04-0915-33-37.thumb.png.927ffb205647099dd2330c32e39aa117.png

Запускаю FloorPlanner.

LOCAL_CLOCK     0/8(0%)                            177,869

BUFG                  PRIMARY 1/8(12%)            177.820

Похоже, в первом случае FloorPlanner оказался достаточно самостоятельным, чтобы удалить введённый разработчиком BUFG. Так же он себя ведёт, когда атрибут CLOCK_LOC отсутствует.

Наверное, жить с этим можно. Но любопытно было бы почитать комментарии авторов.

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


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

Ответ относительно BUFG: "Synopsys Synplify Pro® for GoWin. User Guide", стр. 491,

Limitations
• No DDR inference support.
No clock buffer (BUFG and BUFS) inference support.

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


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

2 часа назад, libine сказал:

"Synopsys Synplify Pro® for GoWin. User Guide"

Можно ссылочку на этот документ?

Но вообще-то физические констрейны в Gowin EDA задаются не для синтеза, а для P&R:
 

Цитата

 

Gowin YunYuan software allows users to set constraints for post-synthesis ports, netlist, registers, and instances. The CST file is the main input for defining design planning.

...

Backend placement and routing software acquire users constraints by reading the CST file.

 

 

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


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

16 минут назад, libine сказал:

Файл называется fpga_user_guide.pdf, лежит в папке $GOWIN_HOME/SynplifyPro/doc.

Спасибо! (у  меня это стр. 523).

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


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

Вопрос, наверное, больше к дистрибьютерам -- как соотносятся цены на примерно одинаковые чипы, при прочих равных условиях, у Латиса и Gowin?

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


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

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

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

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

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

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

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

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

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

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