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

19 minutes ago, usonic said:

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

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

 

 

19 minutes ago, usonic said:

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

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

 

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

 

 

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


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

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 я использую только при симуляции.

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

 

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


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

On 12/14/2021 at 12:39 PM, StewartLittle said:

.

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

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

 

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

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

 

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

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


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

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

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

А зачем?

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

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


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

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

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


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

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

 

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


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

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)

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


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

Доброго дня.

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

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


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

Добрый день.

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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?
Да и где, собственно, деление опорный частоты?

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


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

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нс. Естественно что для этого кода, таймскейл трогать нельзя.

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

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


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

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

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


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

5 minutes ago, AnatolySh said:

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

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

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


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

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

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

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

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

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

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

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

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

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