Jump to content
    

SoC типа Zynq от Gowin (ex. XA7Z020. Кто тискал такого зверя? Впечатления?)

11 minutes ago, RobFPGA said:

Показали бы логи пути крит. тайминга, тогда и не выдумывал бы.  

Не могу - я их не понимаю. Не знаю, где смотреть и что есть крит. тайминг. Для меня все эти пикосекунды - китайская грамота, потому и смотрю МГц.

Вот это вам поможет:

 

MUX16_time.zip

Share this post


Link to post
Share on other sites

3 часа назад, _4afc_ сказал:

Что непонятного:

Непонятного то, что не ясно, как реализованы пути и какие элементы используются -- я выше спрашивал: MUX2_LUT5/6/7 -- это аппаратные блоки или как-то на LUTах намутили? Ответа из этого схемы нет, т.к. это просто нетлист в графическом виде.

3 часа назад, _4afc_ сказал:

Так легче:

Нет. Это описание примитивов и нетлист. А как эти примитивы реализованы, из этого не понятно. 

Понятно сделано у Xilinx на картинке, что я приводил выше.

Скорее всего эти упомянутые элементы -- это те же аппаратные муксы, что и у Xilinx. Но может там как-то каскадирование LUT4 сделано прямо внутри CFU. Если так, то это гуд, а если нет, то опять тезис про сложные логические функции обретает значимость, ибо LUT6 тут имеет преимущество перед LUT4.

 

Share this post


Link to post
Share on other sites

В 03.10.2025 в 16:17, dxp сказал:

ибо LUT6 тут имеет преимущество перед LUT4

В новых альтеровских Agilex логические модули могут работать как LUT8.

Share this post


Link to post
Share on other sites

2 hours ago, dxp said:

Скорее всего эти упомянутые элементы -- это те же аппаратные муксы, что и у Xilinx. Но может там как-то каскадирование LUT4 сделано прямо внутри CFU.

Некоторое понимание как это было сделано в младшем семействе GW1N-1 даёт документ: A Complete Open Source Design Flow for Gowin FPGAs

Share this post


Link to post
Share on other sites

On 10/3/2025 at 1:26 PM, _4afc_ said:

Все сигналы подключены к выводам ПЛИС через двойной буфер, кроме клока. 

Чисто из любопытства.. Попробуйте добавить регистров по входам:

module MUX16_v00 ( C, R, CE, iD, iA, oD);

input  wire         C;  
input  wire         R;  
input  wire        CE;  
input  wire [15:0] iD;
input  wire  [3:0] iA;
output reg   oD;

reg       rCE = 0;
reg [15:0] rD = 0;
reg  [3:0] rA = 0;

always @( posedge C) rCE <= CE;
always @( posedge C)  rD <= iD;
always @( posedge C)  rA <= iA;

always @( posedge C) 
    begin : MUX16
    if (!R) oD<=0;
    else if (rCE) oD<=rD[rA]; 
    end

endmodule

Как после этого изменится частота проекта?

Share this post


Link to post
Share on other sites

22 minutes ago, blackfin said:

Как после этого изменится частота проекта?

Частота упала до 594МГц, доп регистры расположились в других половинах плис.

А вот если к rD <= iD; добавить обработку CE и R - частота поднялась до 643МГц.

При добавлении и к rA <= iA обработки CE и R - частота поднялась до 720МГц и регистры рядом с лутами.

Share this post


Link to post
Share on other sites

On 10/3/2025 at 6:33 PM, _4afc_ said:

Частота упала до 594МГц, доп регистры расположились в других половинах плис.

OK. Спасибо.

Share this post


Link to post
Share on other sites

Just now, blackfin said:

OK. Спасибо.

Если всё засунуть в один always - поднялась ещё до 749МГц

Share this post


Link to post
Share on other sites

39 минут назад, _4afc_ сказал:

Если всё засунуть в один always - поднялась ещё до 749МГц

Имхо, странное поведение: логика описания та же, а частота так меняется.

P.S. Немного в сторону вопрос: а вы рабочие проекты тоже пишете на Verilog-95 (как в этом примере)?

Share this post


Link to post
Share on other sites

1 hour ago, dxp said:

Имхо, странное поведение: логика описания та же, а частота так меняется.

Это есть у многих мелких синтезаторов. Тут он пока неправильно размещает регистры на сетку ПЛИС. А я планером пока не пользовался.

Плюс сейчас добавились настройки синтезатора - можно ими ещё поиграться.

Но и у Xilinx была такая хохма - я в их CPLD64 впихивал проект из 65 регистров, где-то на пятый вариант он вписался.

А алгоритм не менялся.

 

1 hour ago, dxp said:

P.S. Немного в сторону вопрос: а вы рабочие проекты тоже пишете на Verilog-95 (как в этом примере)?

Чисто теоретически - да. Чисто практически, не помню из-за какой конструкции в GoWin пришлось вкл. режим Verilog-2001.

 

PS: увидел, в 95 не умеют [x +: const]
 

Share this post


Link to post
Share on other sites

А чем Verilog-95 привлекает? Хотя бы по сравнению с тем же Verilog-2001? Ведь этот удобнее -- описание компактнее получается -- те же порты описываются короче и выразительнее (сразу видно и направление, и тип), писанины чуть не в три раза меньше, читать тоже легче. 

SystemVerilog чем не хорош? Синтез Gowin поддерживает SystemVerilog?

Share this post


Link to post
Share on other sites

6 hours ago, dxp said:

А чем Verilog-95 привлекает? Хотя бы по сравнению с тем же Verilog-2001? Ведь этот удобнее -- описание компактнее получается -- те же порты описываются короче и выразительнее (сразу видно и направление, и тип), писанины чуть не в три раза меньше, читать тоже легче. 

Я не помню чем Verilog-2001 компактнее описывает порты.

Но идеология GoWin любит, не исключая других вариантов, передавать режимы модулей через defparam. И мне так тоже кажется читабельней.

Соответственно битность портов и прочее переменно обычно.

Ещё, модуль пишется один раз и используется 100500, поэтому довольно просто в первую строку насовать точек и скобок при использовании.

 

6 hours ago, dxp said:

SystemVerilog чем не хорош? Синтез Gowin поддерживает SystemVerilog?

Синтез Gowin поддерживает SystemVerilog. Я пишу в Sigasi. Он может нарисовать FSM только от SystemVerilog, поэтому проекты со сложными FSM только ради диаграмм синтезируются в Gowin в режиме  SystemVerilog.

 

Мне хватает Verilog-95, С++ стиля со структурами и функциями мне в коде не надо.

 

Share this post


Link to post
Share on other sites

В 04.10.2025 в 16:22, _4afc_ сказал:

Я не помню чем Verilog-2001 компактнее описывает порты.

Ну как же: в V2001 в описании порта сразу можно указать и направление, и тип:

module counter_m
(
    input  wire      clk,
    input  wire      en,
    input  wire      dir,
    output reg [7:0] val
);

и всё. А на V95, насколько помню:

module counter_m
(
    clk,
    en,
    dir,
    val
);

input  clk;
input  en;
input  dir
output val;

wire       clk;
wire       en;
wire       dir
reg  [7:0] val;

 

В 04.10.2025 в 16:22, _4afc_ сказал:

Мне хватает Verilog-95, С++ стиля со структурами и функциями мне в коде не надо.

C++ там и близко нет (в синтезирумом подмножестве), едва до средств, аналогичных С, дотягивает. Функции есть и в V95, насколько помню (functions, tasks). А структуры чем плохи? Они помогают структурировать (пардон за тавтологию) исходник. Пакованные структуры вообще удобны для описания разного рода регистров, которые объединяют битовые поля (и это хорошо работает в отличие от тех же С/C++, где битовые поля в структурах привносят непреносимость и зависимость от реализации (гарантированное размещение поля в структуре с т.з. битовой позиции). Ну, и интерфейсы -- очень эффективное средство для организации межмодульных связей. Кроме того, SV -- это ещё и верификация (вплоть до UVM)... Ладно, не пристаю больше с этим, вам виднее, как вам лучше. 🙂

Share this post


Link to post
Share on other sites

On 9/17/2025 at 1:53 PM, StewartLittle said:

DK_MOTOR_GW5AS-EV25UG256C2I1_V1.1

Товарищи, добрый день. Подскажите, как на данной отладке подружить встроенный мк и плис? Правильно ли я понимаю, что нужно использовать встроенное Ip AHB-Arbiter?

Share this post


Link to post
Share on other sites

В 01.12.2025 в 10:49, HCQ сказал:

Товарищи, добрый день. Подскажите, как на данной отладке подружить встроенный мк и плис? Правильно ли я понимаю, что нужно использовать встроенное Ip AHB-Arbiter?

Взаимодействие между Артери и ПЛИС у GW5AS-25 осуществляется через блок XMC.

Примеры можно посмотреть в SDK для GW5AS-25 : https://cdn.gowinsemi.com.cn/Gowin_EMPU(GW5AS-25)_V1.2.zip

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.

×
×
  • Create New...