Jump to content

    

Recommended Posts

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

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

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

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

CLOCK_LOC "clk" BUFG = CLK;

 

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

Share this post


Link to post
Share on other sites

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 было бы больше.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
Только что, libine сказал:

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

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

Share this post


Link to post
Share on other sites
2 часа назад, libine сказал:

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

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

Но при этом :

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

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

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

 

Share this post


Link to post
Share on other sites

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 отсутствует.

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

Share this post


Link to post
Share on other sites
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.

 

 

Share this post


Link to post
Share on other sites

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

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.