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

Gowin rPLL, что тебе не хватает?

58 минут назад, Zversky сказал:

Т.е. путаницы нет. Попробуй пройтись по самой модели - чудес-то не бывает.

Предлагаю для начала разобраться с документацией. В своей документации я вижу следующее:

image.png.1a79c12df023187896a58ce522a96821.png

Т.е. параметры (generic) задают значения FBDIV напрямую. Вы же взяли формулу для определения этого параметра из описания входа динамической подстройки:

image.png.fd2207f81190ad35a61b9b0f231a3315.png

Видите разницу? В одном случае есть 64 и слова "actual value is 64-...", а в другом просто "coefficient static setting".

 

 

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


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

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

Видите разницу? В одном случае есть 64 и слова "actual value is 64-...", а в другом просто "coefficient static setting".

Спасибо. Читая документацию и свой код, я увидел вот что:

image.thumb.png.3aa55e91a6bb001409bd883d4906ea55.png

image.thumb.png.2665d1f53bc121e130f15fb0ea9e2fc1.png

image.thumb.png.5b08f474da13d80b04a8d1762a5589f9.png

image.thumb.png.8917aee93e9cd5e995f7ec65a84c0c7c.png

Т.е. на него у меня приходят нули!

Я прошёлся по коду модуля. И то, что я увидел rPll из библиотеки Gowin, сводится к следующему:

Fclkout = Fclkin * (FBDIV_SEL + 1) / (IDIV_SEL + 1)

Что в моём случае
Fclkin = 25MHz
defparam rpll_inst.IDIV_SEL = 4;
defparam rpll_inst.FBDIV_SEL = 15;

даёт Fclkout = 25MHz * 16 / 5 = 80MHz

и совпадает с смоделированным. Приступаю к натурным экспериментам.

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


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

Хотя нет, ещё экспериментов как раз с lock. 

image.thumb.png.f0bfc3d1424d4a2640d7285522167873.png

#  areset to pll_locked is 182,000 ns
#  areset to pll_locked is 52,000 ns
#  areset to pll_locked is 162,000 ns
#  areset to pll_locked is 152,000 ns

Это всё в порядке вещей (для Altea MAX 10)?

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


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

В 31.08.2022 в 17:17, Zversky сказал:

Всем добра.

Пытаюсь завести означенный в теме модуль, сконфигурированный волшебником таким образом
 

  Показать контент
// Copyright (C)2014-2022 Gowin Semiconductor Corporation.
// All rights reserved.
// File Title: IP file
// GOWIN Version: V1.9.8.07
// Part Number: GW2AR-LV18LQ144C8/I7
// Device: GW2AR-18
// Created Time: Tue Aug 30 17:17:08 2022

module Gowin_rPLL (

    input  clkin, 
    output clkout,
    output clkoutd,
    output clkoutd3,
    output clkoutp_o,    
    output lock_o    
    
    );

    rPLL rpll_inst (
    
        .CLKOUT   ( clkout      ),
        .LOCK     ( lock_o      ),
        .CLKOUTP  ( clkoutp_o   ),
        .CLKOUTD  ( clkoutd     ),
        .CLKOUTD3 ( clkoutd3    ),
        .RESET    ( 1'b0        ),
        .RESET_P  ( 1'b0        ),
        .CLKIN    ( clkin       ),
        .CLKFB    ( 1'b0        ),
        .FBDSEL   ( 6'b000000   ),
        .IDSEL    ( 6'b000000   ),
        .ODSEL    ( 6'b000000   ),
        .PSDA     ( 4'b0000     ),
        .DUTYDA   ( 4'b0000     ),
        .FDLY     ( 4'b0000     )
        
    );

    defparam rpll_inst.FCLKIN = "25";
    defparam rpll_inst.DYN_IDIV_SEL = "false";
    defparam rpll_inst.IDIV_SEL = 4;
    defparam rpll_inst.DYN_FBDIV_SEL = "false";
    defparam rpll_inst.FBDIV_SEL = 15;
    defparam rpll_inst.DYN_ODIV_SEL = "false";
    defparam rpll_inst.ODIV_SEL = 8;
    defparam rpll_inst.PSDA_SEL = "0000";
    defparam rpll_inst.DYN_DA_EN = "true";
    defparam rpll_inst.DUTYDA_SEL = "1000";
    defparam rpll_inst.CLKOUT_FT_DIR = 1'b1;
    defparam rpll_inst.CLKOUTP_FT_DIR = 1'b1;
    defparam rpll_inst.CLKOUT_DLY_STEP = 0;
    defparam rpll_inst.CLKOUTP_DLY_STEP = 0;
    defparam rpll_inst.CLKFB_SEL = "internal";
    defparam rpll_inst.CLKOUT_BYPASS = "false";
    defparam rpll_inst.CLKOUTP_BYPASS = "false";
    defparam rpll_inst.CLKOUTD_BYPASS = "false";
    defparam rpll_inst.DYN_SDIV_SEL = 2;
    defparam rpll_inst.CLKOUTD_SRC = "CLKOUT";
    defparam rpll_inst.CLKOUTD3_SRC = "CLKOUT";
    defparam rpll_inst.DEVICE = "GW2AR-18";

endmodule // Gowin_rPLL

 

Но Questa, обрабатывая такой testbench 

  Показать контент
import common_tb_pkg::*;
import gowin_rpll_tb_pkg::*;
    
module gowin_rpll_tb;
   
    bit  clk_in;
    wire clkout; 
    wire clkoutd;
    wire clkoutd3;
    wire clkoutp_o;  
    wire lock_o;

    Gowin_rPLL Gowin_rPLL_inst (
    
        .clkin      ( clk_in     ),     
        .clkout     ( clkout     ),
        .clkoutd    ( clkoutd    ),
        .clkoutd3   ( clkoutd3   ),
        .clkoutp_o  ( clkoutp_o  ),
        .lock_o     ( lock_o     )

    );    
    
    initial begin
        clk_in = 1'b0;
        #2ns
        forever # ( CLK_PRD / 2 ) clk_in = ~clk_in;
    end
    
endmodule : gowin_rpll_tb

 

 

Здравствуйте! Пытаюсь в фоновом режиме) разобраться с аналогичной задачкой - промоделировать rPLL.

Для меня это довольно сложно, поскольку с ПЛИС постоянно не работаю и ранее мне хватало встроенного симулятора что для Altera, что для Xilinx. В последних версиях ПО это все убрали, но кристаллы у меня старенькие и софт аналогичный). Конечно в меня сейчас тапкой бросят))) - это совсем не кошерно, но мне всего хватало. Зато как было удобно... Написал и сразу отмоделировал.

Для Gowin пришлось осваивать внешнее моделирование(. Поскольку использую верилог и всего хватает, поставил Modelsim 10.4. С песнями и бубном освоил пакетный режим и поведенческое моделирование. Вычитывание и правка .do файлов сильно не нравится, но... Еще больше напрягает, что при запуске .bat файла Modelsim каждый раз запускается вновь. Может знаете способ без перезапуска или что написать в .bat , что бы старое окно закрывалось?

Но самое главное, не могли бы Вы поделиться полным набором файлов, которые Вы использовали для скармливания Questa rPLL? Включая

common_tb_pkg::*;
gowin_rpll_tb_pkg::*;

Предполагаю, что последний создается GOWINом?

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


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

В 02.09.2022 в 08:49, Zversky сказал:

Это всё в порядке вещей (для Altea MAX 10)?

Не для MAX 10, а для модели MAX 10. Нормально, в характеристики даташита укладывается.

45 минут назад, Andr2I сказал:

Но самое главное, не могли бы Вы поделиться полным набором файлов, которые Вы использовали для скармливания Questa rPLL?

Сначала нужно скомпилировать библиотеки Verilog или VHDL для Gowin, которые содержат в себе примитивы, существующие на кристалле ПЛИС. После этого всё делается как обычно в Quest/Modelsim в пакетном режиме или созданием проекта в GUI. Поскольку у вас такие проблемы с пакетным режимом, то могу предложить попробовать через GUI.

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


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

48 минут назад, Andr2I сказал:

Пытаюсь в фоновом режиме) разобраться с аналогичной задачкой - промоделировать rPLL

Ставьте задачу шире: моделировать всё и вся. Ибо сказано, что плох тот RTL разработчик, кто не метит в верификаторы.

49 минут назад, Andr2I сказал:

ранее мне хватало встроенного симулятора что для Altera, что для Xilinx

А вы не пробовали их запускать не изнутри среды, а извне через TCL скрипты? Хотите покажу, как это для ISE, например, выглядит?

50 минут назад, Andr2I сказал:

В последних версиях ПО это все убрали, но кристаллы у меня старенькие и софт аналогичный)

Уверен, что не у вас одного: я сам максимум на чём, так это на Спартане-6, и то, приступал к изучению чужого проекта.

52 минуты назад, Andr2I сказал:

Конечно в меня сейчас тапкой бросят)))

А вы не бойтесь: в этой жизни, как показывает практика есть мизерная доля того, что действительно надо бояться. Остальное - самосаботаж, если понимаете, о чём я ))

53 минуты назад, Andr2I сказал:

Зато как было удобно...

Вам, просто, никто не показывал, как удобно работать с TCL, если его освоить, и я готов показать вам это, если на то будет ваше желание.

54 минуты назад, Andr2I сказал:

Для Gowin пришлось осваивать внешнее моделирование(

С таким же успехом можно сетовать на то, что прекрасно кататься на велосипеде, а пришла пора перебраться за город, и на велосипеде уже дальше собственного посёлка не уедешь, ибо дальше начинается хайвей, и приходится осваивать самодвижущуюся повозку.

56 минут назад, Andr2I сказал:

Поскольку использую верилог и всего хватает, поставил Modelsim 10.4.

К языку тут никакой привязки нет. И Aldec с его Active-HDL и Mentor с его ModelSim-ом и QuestaSim-ом - смешанные инструменты. Т.е. им без разницы, что обрабатывать. Насчёт версии тоже не совсем понятно: с таким же успехом можно взять из закромов или иранского ресурса последнюю, имеющуюся и там и там версию Questa 2021.1 с неменьшим успехом двигаться ц цели. Другое дело, а нужен ли здесь майбах, когда и на гелике вполне можно ехать?

59 минут назад, Andr2I сказал:

С песнями и бубном освоил пакетный режим и поведенческое моделирование.

Это хорошо. Можете показать, как вы это освоили, а я покажу, что есть у меня: на примере вашего проекта. Если хотите. Насчёт поведенческого (функционального): вам осталось полшага до покрытия кода, если вам это нужно (работаете по DO-254) или просто интересно

1 час назад, Andr2I сказал:

Вычитывание и правка .do файлов сильно не нравится, но.

Про вычитывание не очень понял, а про правку: а как без неё?

1 час назад, Andr2I сказал:

Еще больше напрягает, что при запуске .bat файла Modelsim каждый раз запускается вновь.

Стрелку вверх в окне транскрипт нажать не пробовали?

1 час назад, Andr2I сказал:

Но самое главное, не могли бы Вы поделиться полным набором файлов, которые Вы использовали для скармливания Questa rPLL? Включая

Я могу поделиться и этим и всем, что попросите. Пришлите мне свой Емайл в ЛС.

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


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

47 минут назад, makc сказал:

Сначала нужно скомпилировать библиотеки Verilog или VHDL для Gowin, которые содержат в себе примитивы, существующие на кристалле ПЛИС.

В Verilog библиотеке всего один примитив, который, кроме него самого, больше ничего не требует. И его можно просто присоединить к проекту, компилируя вместе с ним. Прилагаю его.

PS. Внутри я селёдку заворачивал )

Gowin_rPLL.v

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


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

1 час назад, makc сказал:

Сначала нужно скомпилировать библиотеки Verilog или VHDL для Gowin, которые содержат в себе примитивы, существующие на кристалле ПЛИС. 

Правильно я понимаю, нужно из установленного GOWIN скопировать 2 файла  GOWIN\IDE\simlib\gw1n\prim_sim.v и prim_tsim.v (если мне нужен gw1n) в рабочую папку WORK Modelsim и скомпелировать Modelmом? А в эту кучу пихать свои верилоговские файлы и макросы?

 

1 час назад, makc сказал:

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

Интересно конечно. Существует GUI, который за меня все макросы пишет, а я только тестбенч создаю в нормальном редакторе, а не в блокноте? Чувствую, что все не так безоблачно)))

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


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

5 минут назад, Andr2I сказал:

Правильно я понимаю, нужно из установленного GOWIN скопировать 2 файла  GOWIN\IDE\simlib\gw1n\prim_sim.v и prim_tsim.v (если мне нужен gw1n) в рабочую папку WORK Modelsim и скомпелировать Modelmом? А в эту кучу пихать свои верилоговские файлы и макросы?

GOWIN\IDE\simlib\gw1n\prim_sim.v - для функционального моделирования (без задержек);
GOWIN\IDE\simlib\gw1n\prim_tsim.v - для временного.

Выберите один из них и используйте.

 

7 минут назад, Andr2I сказал:

А в эту кучу пихать свои верилоговские файлы и макросы?

Не понял, про какую кучу идёт речь.

7 минут назад, Andr2I сказал:

Интересно конечно. Существует GUI, который за меня все макросы пишет, а я только тестбенч создаю в нормальном редакторе, а не в блокноте? Чувствую, что все не так безоблачно)))

Да, когда просто запускаете vsim, то запускается GUI.

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


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

1 час назад, Zversky сказал:

Ставьте задачу шире: моделировать всё и вся. Ибо сказано, что плох тот RTL разработчик, кто не метит в верификаторы.

"Нельзя объять необъятное"

 

1 час назад, Zversky сказал:

А вы не пробовали их запускать не изнутри среды, а извне через TCL скрипты? Хотите покажу, как это для ISE, например, выглядит?

Честно говоря, и не хочу. Я понимаю, что там кусок кода Modelsim, который люди специально обрезали и сделали удобным для работы. Гвозди можно забивать и молотком без ручки. Но зачем? - с ручкой мне удобнее)))

 

1 час назад, Zversky сказал:

Уверен, что не у вас одного: я сам максимум на чём, так это на Спартане-6, и то, приступал к изучению чужого проекта.

И у меня все влезает в Спартан-6. Дорогие они шибко стали)))

 

1 час назад, Zversky сказал:

Вам, просто, никто не показывал, как удобно работать с TCL, если его освоить, и я готов показать вам это, если на то будет ваше желание.

Это интересно. По мере погружения буду спрашивать.

 

1 час назад, Zversky сказал:

К языку тут никакой привязки нет. И Aldec с его Active-HDL и Mentor с его ModelSim-ом и QuestaSim-ом - смешанные инструменты. Т.е. им без разницы, что обрабатывать. Насчёт версии тоже не совсем понятно: с таким же успехом можно взять из закромов или иранского ресурса последнюю, имеющуюся и там и там версию Questa 2021.1 с неменьшим успехом двигаться ц цели. Другое дело, а нужен ли здесь майбах, когда и на гелике вполне можно ехать?

Насколько я понял, после беглого просмотра, QuestaSim заточена под sverilog. Мне он на данный момент не нужен. Хватает verilog. Modelsim побыстрее работает. Меньше весит. Из тех же соображений была и версия выбрана - мне бантиков не нужно. Каждый бантик отжирает быстродействие и ресурсы.

 

1 час назад, Zversky сказал:

Это хорошо. Можете показать, как вы это освоили, а я покажу, что есть у меня: на примере вашего проекта. Если хотите. Насчёт поведенческого (функционального): вам осталось полшага до покрытия кода, если вам это нужно (работаете по DO-254) или просто интересно

Ничего тайного))). Все предельно просто. Пишу в блокноте. После ISE - тошнит... Функционального моделирования мне пока хватает. С DO-254 не работаю.

3.zip

1 час назад, Zversky сказал:

Стрелку вверх в окне транскрипт нажать не пробовали?

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

4.jpg

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


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

24 minutes ago, Andr2I said:

Интересно конечно. Существует GUI, который за меня все макросы пишет, а я только тестбенч создаю в нормальном редакторе, а не в блокноте? Чувствую, что все не так безоблачно)))

Существуют -  HDL Designer за  вас сделает почти все, ...  если вы его купите конечно.    

А так пару простеньких скриптов  которые отдельно  компилируют  и отдельно запускаю сим.  И тогда при  перекомпиляции можно  просто делать restart в GUI modelsim. 
Ну или можно вызывать компиляцию файла прямо из любимого редактора с последующим рестартом  в GUI.   

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


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

1 час назад, Zversky сказал:

В Verilog библиотеке всего один примитив, который, кроме него самого, больше ничего не требует. И его можно просто присоединить к проекту, компилируя вместе с ним. Прилагаю его.

PS. Внутри я селёдку заворачивал )

Gowin_rPLL.v 17 кБ · 0 загрузок

А где Вы его взяли? Из Вашего проекта или из папок GOWIN-а?

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


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

29 минут назад, Andr2I сказал:

3.zip 26 кБ · 0 загрузок

Дайте мне ещё имя вашего ПК, расположение ModelSim-а и разрешения экрана (или экранов, если их два - в этом случае напишите, какой главный, а на котором отображать времянку?).

3 минуты назад, Andr2I сказал:

из папок GOWIN-а?

^^^^^^^^^^

34 минуты назад, Andr2I сказал:

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

image.thumb.png.075093b8628c65963b74cc678484c97b.png

Вот сюда в приглашение надо встать и нажать

20 минут назад, RobFPGA сказал:

если вы его купите конечно.

Даже не знаю. В закромах лежит. С лекарством. А в современных условиях уже грешно покупать: воевать - так воевать. На всех фронтах.

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


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

51 минуту назад, makc сказал:

GOWIN\IDE\simlib\gw1n\prim_sim.v - для функционального моделирования (без задержек);
GOWIN\IDE\simlib\gw1n\prim_tsim.v - для временного.

Выберите один из них и используйте.

Т.е. мне нужно прямо в папке GOWIN -а провести компиляцию с помощью Modelsim. Modelsim просит создать там папку Work - создавать? Это однократная процедура или каждый раз перед запуском .bat файла?

 

54 минуты назад, makc сказал:

Да, когда просто запускаете vsim, то запускается GUI.

Файл vsim.vlf? - у меня нет приложения, завязанного на него(

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


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

33 минуты назад, Andr2I сказал:

Т.е. мне нужно прямо в папке GOWIN -а провести компиляцию с помощью Modelsim. Modelsim просит создать там папку Work - создавать? Это однократная процедура или каждый раз перед запуском .bat файла?

Нет, лучше скопировать эти файлы в директорию хранения ваших библиотек и там скомпилировать.

33 минуты назад, Andr2I сказал:

Файл vsim.vlf? - у меня нет приложения, завязанного на него(

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

1 час назад, Andr2I сказал:

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

4.jpg

Вот же ваше GUI Modelsim, вы сами показали его скриншот. Поэтому я не понимаю, какие проблемы с его запуском.

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


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

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

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

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

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

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

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

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

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

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