Jump to content

    

Recommended Posts

19 minutes ago, usonic said:

 Пришлось немного модифицировать под особености говина.

Рассказывайте что пришлось изменить - может и другим придётся.

 

 

19 minutes ago, usonic said:

Наверняка где то ошибки в коде, но где?

У меня initial не работал в топе...

 

Самое правильное подключить говиновский отладочный осцилоскоп и посмотреть где не те значения возникают.

 

 

Share this post


Link to post
Share on other sites
16 minutes ago, _4afc_ said:

Рассказывайте что пришлось изменить - может и другим придётся.

 

 

У меня initial не работал в топе...

 

Самое правильное подключить говиновский отладочный осцилоскоп и посмотреть где не те значения возникают.

 

 

Т.к. у говина на эл. ячейке может быть или сет или ресет , то невожно сделать асинхронную установку:

always @(posedge clk or posedge set_dat)
if(set_dat)
  t_dat[7:0]<= i_dat;
else
  t_dat[7:0]<={t_dat[6:0],i_sdat}; 

не реализуемо на говине, если i_dat не константа.

initial я использую только при симуляции.

Использовать говиновский отладочный осцилоскоп не выход, т.к. он сильно меняет поведение проэкта.
И не всё , что видно на железе видно на нём.

 

Share this post


Link to post
Share on other sites
On 12/14/2021 at 12:39 PM, StewartLittle said:

.

Посмотрел как работает PLL 64->48MHz

сразу по включению начинает выдавать частоту около 24МГц, а где-то через 200мкС частота становится 48МГц и возникает сигнал Lock.

 

Можно как-то сделать чтобы до Lock частота в дизайн не уходила?

Некий аналог BUGCE как у хилых?

 

Пробовал DHCEN - сигнал с него никуда не подключить - не синтезируется подключение...

Share this post


Link to post
Share on other sites
6 минут назад, _4afc_ сказал:

Можно как-то сделать чтобы до Lock частота в дизайн не уходила?

А зачем?

Обычно PLL'ным lock'ом подпирают общесистемный ресет, чтобы в проекте ничего не дергалось, покуда PLL не устаканится.

Share this post


Link to post
Share on other sites
6 часов назад, bArtwin сказал:

Коллеги, добрый день. Есть ли у кого-нибудь готовые скрипты для запуска синтеза и пр. из командной строки Windows?

По поводу командной строки - там, насколько я помню, все просто, как грабли.
Надо запускать gw_sh.exe , с указанием имени скрипта

Как писать скрипт - смотрите в разделе 8 документа "Gowin Software User Guide"

 

Для особо ленивых: есть команда saveto , которая сохраняет весь проект, сделанный в оболочке Gowin EDA, в виде готового скрипта.

В Gowin EDA открываем нужный проект, внизу окна выбираем закладку Console, тыкаем курсором в командную строку (там, где %), и вводим saveto -all_options <имя_скрипта>.tcl
Жамкаем Enter, и в папке проекта создается соответствующий скрипт.

В этот скрипт нужно вручную добавить команды компиляции: run <syn, или prn, или all>, и сохранить скрипт.

запускаем gw_sh.exe <имя_скрипта>.tcl

 

Share this post


Link to post
Share on other sites
15 hours ago, StewartLittle said:

По поводу командной строки - там, насколько я помню, все просто, как грабли.
Надо запускать gw_sh.exe , с указанием имени скрипта

Как писать скрипт - смотрите в разделе 8 документа "Gowin Software User Guide"

 

Для особо ленивых: есть команда saveto , которая сохраняет весь проект, сделанный в оболочке Gowin EDA, в виде готового скрипта.

В Gowin EDA открываем нужный проект, внизу окна выбираем закладку Console, тыкаем курсором в командную строку (там, где %), и вводим saveto -all_options <имя_скрипта>.tcl
Жамкаем Enter, и в папке проекта создается соответствующий скрипт.

В этот скрипт нужно вручную добавить команды компиляции: run <syn, или prn, или all>, и сохранить скрипт.

запускаем gw_sh.exe <имя_скрипта>.tcl

 

Спасибо, доку читал. Скрипт свой написал, но сборка происходит очень странно, файл с физическими констрейнами не цепляется. Воспользуюсь saveto)

Share this post


Link to post
Share on other sites

Доброго дня.

Может кто сталкивался, чип GW1NSR-4C. Стоит на плате tang nano 4k. Из коробки чип работал. Но программером 1.9.8.01 отказывался прошиваться во встроенную флэш. В SRAM режиме прошивался. Старой версией программера удалось залить прошивку в флэшу, однако после этого(а также попытки, неудачной, подключиться к cortex-у) попытка перезаписать флэшу проваливается. Ошибок никаких не выводит, но и работать не начинает. Собственно вопрос, это кристалл перевело в какой-то режим что он не проливает флэш, или я ее грохнул? В SRAM режиме заливки работает нормально.

Share this post


Link to post
Share on other sites

Добрый день.

Из описания на али:

Q2:why program flash failed?

A2:TangNano4K's onboard programmer only support specified version of programmer exe:

dl.sipeed.com/shareURL/TANG/Nano%204K/IDE

Share this post


Link to post
Share on other sites
2 hours ago, dtmf73 said:

Добрый день.

Из описания на али:

Q2:why program flash failed?

A2:TangNano4K's onboard programmer only support specified version of programmer exe:

dl.sipeed.com/shareURL/TANG/Nano%204K/IDE

Именно этим программером и удалось прошить. Но один раз ))

Share this post


Link to post
Share on other sites

У меня tang nano 4k прошивается нормально.

Интересно, а как вы пытались подсоединиться к кортексу.

Я думал что на этой плате это невозможно т.к нужно иметь мультиплексор который перекинет линии JTAG

с микросхемы программатора на плате на внешний подключенный JLINK.

Share this post


Link to post
Share on other sites
On 12/10/2021 at 2:52 PM, _4afc_ said:

3 Симулирую и разрабатываю теперь проект в Modelsim

Как вы IP-ядра в Mentor загоняете?
Например для CPLD GW1N-UV1P5LQ100C6/I5 желаю пользовать OSCO, описанное в UG286-1.9.1E Gowin Clock User Guide.pdf стр. 100/104 глава 6.1.5 OSCO
В d:\Gowin\Gowin_V1.9.8.01\IDE\simlib\gw1n\prim_sim.v смотрим OSCO

//OSCO,for gw1n-2
//Fosc = 250M/FREQ_DIV
module OSCO (OSCOUT, OSCEN);
parameter  FREQ_DIV = 100; // 2~128,only even num
parameter  REGULATOR_EN = 1'b0;  //1'b0, Powered by VCC!; 1’b1: Powered by regulator(only UV/LV).
output OSCOUT;
input OSCEN;

reg oscr;
realtime half_clk;

initial  begin
    oscr = 1'b0;
    half_clk = 	2*FREQ_DIV;
end

assign OSCOUT = OSCEN ? oscr : 1'b1;

always
       begin
            #half_clk;
            oscr = 1'b1;	   
            #half_clk;
            oscr = 1'b0;
       end

endmodule

откуда совсем непонятно, на что влияют оба параметра FREQ_DIV и REGULATOR_EN?
Да и где, собственно, деление опорный частоты?

Share this post


Link to post
Share on other sites
46 minutes ago, AnatolySh said:

откуда совсем непонятно, на что влияют оба параметра FREQ_DIV и REGULATOR_EN?

REGULATOR_EN это аппаратный параметр, в моделировании не нужен. FREQ_DIV - коэффициент деления частоты.

Quote

Да и где, собственно, деление опорный частоты?

99% что вы привели не полный код. там еще должно быть что-то вроде `timescale 1ns/1ps

В этом случае, если FREQ_DIV = 1, частота должна быть 250МГц (4нс) или half_clk = 2нс. Естественно что для этого кода, таймскейл трогать нельзя.

ЗЫ. Это обертка аппаратного генератора. В нем тактовая рождается, а не делится входящая. И это все из предоставленного вами кода, саму доку от латтиса я не читал. 

Share this post


Link to post
Share on other sites
2 hours ago, des00 said:

99% что вы привели не полный код

Конечно, я не буду приводить библиотеку со всеми элементами (её прилагаю): и там, действительно есть указанный вами `timescale 1ns / 1ps.

2 hours ago, des00 said:

ЗЫ. Это обертка аппаратного генератора. В нем тактовая рождается

Эту обёртку мне надо поместить в ментор, а где ментор узнает, что такое FREQ_DIV, я не вижу.

2 hours ago, des00 said:

И это все из предоставленного вами кода, саму доку от латтиса я не читал. 

Я считал, что достаточно представить того, что есть, но раз спрашиваете - вот выдранный кусок (для говина, хотя, как говорят, он пошёл из латтиса)

PS/ по запросу весь документ пришлю.

 

prim_sim.v UG286-1.9.1E Gowin Clock User Guide OSCO.pdf

Share this post


Link to post
Share on other sites
5 minutes ago, AnatolySh said:

Эту обёртку мне надо поместить в ментор, а где ментор узнает, что такое FREQ_DIV, я не вижу.

Ментор узнает значение  FREQ_DIV от вас  так как это параметр который определяется либо напрямую пользователем либо задается из вышестоящего модуля.  Этот  модуль (OSC) сильно упрощенная  модель генератора тактовой с делителем.  

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.