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

15 minutes ago, RobFPGA said:

Ментор узнает значение  FREQ_DIV от вас

Не так выразился: что ментор будет делать с этим параметром - я не вижу.

16 minutes ago, RobFPGA said:

Этот  модуль (OSC) сильно упрощенная  модель генератора тактовой с делителем. 

Где взять более-менее правдоподобную модель (мне самому написать делитель и успокоиться?)?

Вот, что даёт поиск по всему, что установилось с IDE: ищу по всем файлам с вхождением OSCO

image.thumb.png.967e26671e1bfa4f868608ce115beb9f.png

Где тут смотреть подробности? Или поступать, как предположил выше?

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


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

2 minutes ago, AnatolySh said:

Не так выразился: что ментор будет делать с этим параметром - я не вижу.

Ну  так : 

half_clk = 	2*FREQ_DIV;

Фактически тут задается  коэффициент деления исходной тактовой в 250 MHz    :yes3:

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


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

1 minute ago, RobFPGA said:

Фактически тут задается  коэффициент деления исходной тактовой в 250 MHz    :yes3:

Хм. Однако. Но я, честно, не пил! Да мне и нельзя пить. Не рекомендуется. Нечто это кефир такой был?! Ах они, демоны: новогодний кефир - то какой?! :dance3:

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


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

И снова всем всепобеждающего добра в разумных, конечно, пределах.
И снова я чего-то не понимаю. А именно: IDE SV воспринимает, или нет?:

image.thumb.png.515782f75df395acd03227adbc95abe6.png


Нигде в установках типа файла я SystemVerilog не нашёл, однако при выборе типа Verilog одним из вариантов расширения предлагается .sv. Где тут собака порылсь?

image.thumb.png.b5c1a6237ff69485bda7d38b373b323e.png

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


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

13 hours ago, AnatolySh said:

IDE SV воспринимает, или нет?

set_option -verilog_std sysv2017

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


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

Вопрос по TCL. Сделал saveto -all_options proj.tcl и в полученном файле прокомментировал все строчки, которые упомянуты в SUG100-2.6E_Gowin Software User Guide.pdf главе 8 Tcl Commands разделе 8.2 Command Description + немного раскрасил. Получил вот что:

Spoiler

# File name     : VerilogDFF.tcl
# Description   : gowin project tcl script for it's processing by gw_sh.exe  
# Version       : 1.0
# Date          : 08.01.2022

# Author        : Anatoly A. Sharapov
# Email         : 

# Project       : VerilogDFF
# Description   : Simplest Verilog DFF project

# Vendor        : Gowin
# Software      : GOWIN FPGA Designer
# Version       : 1.9.8.01 
# Build         : 55895
# Copyright ©   : 2014-2022 GOWINSEMI

# Device        : CPLD
# Series        : LittleBee
# Type          : GW1N-UV1P5LQ100C6/I5

# Document      : Gowin Software User Guide
# File          : SUG100-2.6E_Gowin Software User Guide.pdf
# Version       : 2.6E
# Pages num     : 91
# Chapter       : 8 Tcl Commands 
# Subchapter    : 8.2 Command Description

set GWProjectPath ../src
set GWHeadersPath ../hdr
set GWProjectName VerilogDFF

set TopModule $GWProjectName.v

add_file -type verilog $GWProjectPath/$TopModule
set_device GW1N-UV1P5LQ100C6/I5 -name GW1N-1P5

set_option -top_module $GWProjectName
# Specify Top Module/Entity

set_option -include_path $GWHeadersPath
# Specify include path When multiple include paths are specified,
# they need to be separated by a semicolon and the path is contained by
# a pair of braces {}, such as -include_path {/path1;/path2;/path3}.

# set_option -inc <incremental.cfg >
# Specify incremental.cfg.

set_option -synthesis_tool gowinsynthesis
# Specify GowinSynthesis® as the synthesis tool.

set_option -output_base_name $GWProjectName
# Specify the output files. This option specifies the base name of the
# file, and different processes use the appropriate extension based on
# the type of output file. For example, if -output_base_name abc, the
# netlist file generated by gowinsynthesis is named abc.vg.

# --------- Synthesis Configuration ---------

set_option -verilog_std sysv2017
# -verilog_std <v1995|v2001|sysv2017>
# Specify Verilog: Verilog 95 / Verilog 2001 / System Verilog2017 
# and the default is Verilog 2001.

set_option -vhdl_std vhd1993
# -vhdl_std <vhd1993|vhd2008>
# Specify VHDL: VHDL1993 / VHDL 2008 
# and the default is VHDL1993.

set_option -dsp_balance 0
# -dsp_balance <0|1>
# Specify whether to run DSP Balance automatically when synthesizing,
# and the default is 0.
# 0: No
# 1: Yes

set_option -print_all_synthesis_warning 1
# -print_all_synthesis_warning <0|1>
# Specify whether to print all synthesis warnings, 
# and the default value is 0.
# 0: No
# 1: Yes

set_option -disable_io_insertion 0
# -disable_io_insertion <0|1>
# Enable or disable I/O insertion, and the default is 0.
# 0: No
# 1: Yes

set_option -looplimit 2000
# -looplimit <value>
# Set the loop limit value of the default editor in RTL, 
# and the default value is 2000.

set_option -maxfan 10000
# -maxfan <value>
# Set fanout for an input port, net, or register output, 
# and the default is 10000

set_option -rw_check_on_ram 1
# -rw_check_on_ram <0|1>
# Enable this option to automatically insert bypass logic to prevent
# simulation mismatches for read during write.
# 0: No
# 1: Yes

# --------- Place & Route Configuration ---------

set_option -gen_sdf 0
# -gen_sdf <0|1>
# Specify whether Place & Route to generate an SDF file, 0 by default.
# 0: No
# 1: Yes

set_option -gen_io_cst 1
# -gen_io_cst <0|1>
# Specify whether Place & Route to generate port physical constraints
# file named as *.io.cst, and the default value is 0.
# 0: No
# 1: Yes

set_option -gen_ibis 0
# -gen_ibis <0|1>
# Specify whether Place & Route to generate the input/output buffer file
# named as *.ibs, and the default is 0.
# 0: No
# 1: Yes

set_option -gen_posp 0
# -gen_posp <0|1>
# Specify whether Place & Route to generate place file with *.posp suffix,
# and the default is 0.
# 0: No
# 1: Yes

set_option -gen_text_timing_rpt 0
# -gen_text_timing_rpt <0|1>
# Specify whether Place & Route to generate plain text timing report with
# suffix *.tr, anf the default is 0.
# 0: No
# 1: Yes

set_option -gen_sim_netlist 0
# -gen_sim_netlist <0|1>
# Specify whether Place & Route to generate simulation file with suffix
# *.vo., and the default is 0.
# 0: No
# 1: Yes

set_option -show_init_in_vo 0
# -show_init_in_vo <0|1>
# Add the default initial value to the instance of the generated PnR timing
# simulation model file, and the default is 0.
# 0: No
# 1: Yes

set_option -show_all_warn 1
# -show_all_warn <0|1>
# Output all warnings when Place & Route running, and the default is 0.
# 0: No
# 1: Yes

set_option -timing_driven 1
# -timing_driven <0|1>
# Timing driven optimization of the placement and routing is performed,
# and the default is 1.
# 0: No
# 1: Yes

set_option -use_scf 0
# -use_scf <0|1>
# The *.scf file generated by Synplify Pro is used as an additional timing
# constraint file and defaults to 0.
# 0: No
# 1: Yes

set_option -cst_warn_to_error 1
# -cst_warn_to_error <0|1>
# Change the Physical Constraint Warning to Error when Place & Route
# running, and the default is 1.
# 0: No
# 1: Yes

set_option -rpt_auto_place_io_info 0
# -rpt_auto_place_io_info <0|1>
# Report auto-placed IO location, and the default is 0.
# 0: No
# 1: Yes

set_option -place_option 0
# -place_option <0|1>
# Place algorithm option, and the default is 0.
# 0: Use default algorithm.
# 1: Use algorithm 1.

set_option -route_option 0
# -route_option <0|1|2>
# Route algorithm option, and the default is 0.
# 0: Use default algorithm.
# 1: Use algorithm 1
# 2: Use algorithm 2

set_option -ireg_in_iob 1
# -ireg_in_iob <0|1>
# Enable this option, Place & Route will place the registers connected to
# the input Buffer to IOB, and the default is 1.
# 0: Disable
# 1: Enable

set_option -oreg_in_iob 1
# -oreg_in_iob <0|1>
# Enable this option, Place & Route will place the registers connected to
# the Output/Tristate Buffer to IOB, and the default is 1.
# 0: Disable
# 1: Enable

set_option -ioreg_in_iob 1
# ioreg_in_iob <0|1>
# Enable this option, Place & Route will place the registers connected to
# the in/out Buffer to IOB, and the default is 1.
# 0: Disable
# 1: Enable
# Note! For more details, refer to 4.3.3 Place & Route in this manual.

# --------- Dual-purpose Pins Configuration ---------

set_option -use_jtag_as_gpio 0
# -use_jtag_as_gpio <0|1>
# Use relevant pins of JTAG as regular IO pins. These relevant pins are
# TCK, TMS, TDI, and TDO, and the default is 0.
# 0: JTAG pin
# 1: General IO

set_option -use_sspi_as_gpio 0
# -use_sspi_as_gpio <0|1>
# Use relevant pins of SSPI as regular IO pins. These relevant pins are
# SCLK, CLKHOLD_N, SI, SO, SSPI_CS_N, and the default is 0.
# 0: SSPI pin
# 1: General IO

set_option -use_mspi_as_gpio 0
# -use_mspi_as_gpio <0|1>
# Use relevant pins of MSPI as regular IO pins. These relevant pins are
# MCLK, MCS_N, MI, MO, and the default is 0.
# 0: MSPI pin
# 1: General IO

set_option -use_ready_as_gpio 0
# -use_ready_as_gpio <0|1>
# Use READY as regular IO, and the default is 0.
# 0: READY pin
# 1: General IO

set_option -use_done_as_gpio 0
# -use_done_as_gpio <0|1>
# Use DONE as regular IO, and the default is 0.
# 0: DONE pin
# 1: General IO

set_option -use_reconfign_as_gpio 0
# -use_reconfign_as_gpio <0|1>
# Use RECONFIG_N as regular IO, and the default is 0.
# 0: RECONFIG_N pin
# 1: General IO

set_option -use_i2c_as_gpio 0
# -use_i2c_as_gpio <0|1>
# Use relevant pins of I2CI as regular IO pins. These relevant pins are
# SCL and SDA, and the default is 0.
# 0: I2C pin
# 1: General IO

# --------- BitStream Configuration ---------

set_option -bit_format bin
# -bit_format <txt|bin>
# Specify the bitstream file format

set_option -bit_crc_check 1
# -bit_crc_check <0|1>
# Enable CRC check
# 0: Disable
# 1: Enable

set_option -bit_compress 0
# -bit_compress <0|1>
# Compress the generated bitstream file
# 0: Disable
# 1: Enable

set_option -bit_encrypt 0
# -bit_encrypt <0|1>
# Encrypt the bitstream file, only GW2A series supported.
# 0: Disable
# 1: Enable

set_option -bit_encrypt_key 00000000000000000000000000000000
# -bit_encrypt_key <key>
# Use with "-bit_encrypt", and it allows you to customize the encrypted
# key.

set_option -bit_security 1
# -bit_security <0|1>
# Enable security bit
# 0: Disable
# 1: Enable

set_option -bit_incl_bsram_init 1
# -bit_incl_bsram_init <0|1>
# Print BSRAM Initial Value to Bitstream file
# 0: Disable
# 1: Enable

set_option -bg_programming off
# -bg_programming <off | jtag | i2c | internal | i2c_jtag_sspi_qsspi>
# Background programming, programming Flash without interrupting the
# current FPGA running.
# Off: Background programming off
# Jtag: Background programming using JTAG mode
# I2C: Background programming using I2C mode
# Internal: Background programming using I2C internal logic
# i2c_jtag_sspi_qsspi: Background programming using I2C/JTAG/SSPI/QSSP

set_option -hotboot 0
# -hotboot <0|1>
# 0: Disable
# 1: Enable

set_option -i2c_slave_addr 00
# -i2c_slave_addr <value>
# I2C Slave Address(Hex): 00~7F

set_option -secure_mode 0
# -secure_mode <0|1>
# Enable secure mode. Use JTAG pin as GPIO, and device can be
# programmed only once.
# 0: Disable
# 1: Enable

set_option -loading_rate default
# -loading_rate <value>
# In AutoBoot mode and MSPI mode, the rate of loading bitstream data
# from Flash to SRAM is 2.500MHz by default.

set_option -spi_flash_addr 00000000
# -spi_flash_addr <value>
# Specify SPI Flash address

set_option -program_done_bypass 0
# -program_done_bypass <0|1>
# After this option is configured, when the Done Final internal signal
# takes effect, the external Done Pin remains low so that new bitstream
# can be forwarded after the bitstream is loaded. The default is 0.
# 0: Disable
# 1: Enable

set_option -power_on_reset 0
# -power_on_reset <0|1>
# Power on reset enable
# 0: Disable
# 1: Enable

set_option -wakeup_mode 0
# -wakeup_mode <0|1>
# Wake up mode enable
# 0: Disable
# 1: Enable

set_option -user_code default
# -user_code <default|value>
# You can customize user code.
# Note! For more details, refer to 4.3.3 BitStream in this manual.

# --------- Unused Pin Configuration ---------

set_option -unused_pin default
# -unused_pin <default|open_drain>
# Set IO types and attributes for unused pins (except dual-purpose pins).
# Note! For more details of Unused Pin option, refer to 4.3.3 Unused Pin in this manual.

set_option -allow_duplicate_modules 0
set_option -multi_file_compilation_unit 1
set_option -auto_constraint_io 0
set_option -default_enum_encoding default
set_option -compiler_compatible 1
set_option -fix_gated_and_generated_clocks 1
set_option -frequency Auto
set_option -pipe 1
set_option -resolve_multiple_driver 0
set_option -resource_sharing 1
set_option -retiming 0
set_option -run_prop_extract 1
set_option -supporttypedflt 0
set_option -symbolic_fsm_compiler 1
set_option -synthesis_onoff_pragma 0
set_option -update_models_cp 0
set_option -write_apr_constraint 1
set_option -use_mode_as_gpio 0

 

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

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


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

08.01.2022 в 19:39, AnatolySh сказал:

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

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

Последнее назначение - опция настройки P&R (относительно режима пинов MODE).
Теперь они по умолчанию становятся пользовательскими пинами после окончания конфигурирования массива программируемой логики - я это проверил на своей плате с ПЛИС Gowin.

 

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


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

1 hour ago, StewartLittle said:

Это дефолтные опции настойки синтезатора GowinSynthesis (к сожалению, они плохо документированы - что-то есть в доке с описанием синтезатора, но тем не все, и, к тому же, обойдено молчанием все. что отностся к файлу констрейнтов синтеза .gsc).

так SV поддерживается или нет? Есть задача переезда готовых IP на говин, не хотелось бы все переписывать. 

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


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

40 минут назад, des00 сказал:

так SV поддерживается или нет? Есть задача переезда готовых IP на говин, не хотелось бы все переписывать. 

Поддерживается:

Цитата

Support Verilog/SystemVerilog, VHDL and mixed design input.

Но мне показалось (хоть я и не большой знаток SV), что к синтаксису исходника GowinSynthesis относится строже, чем Quartus.

Вот Ваш :) пример :

Скрытый текст

module hello (input clk, output led) ;
 
      logic [15 : 0]     cnt_low, cnt_high;
      logic
      cnt_low_done;
 
      always_ff @(posedge clk) begin
            cnt_low     <= cnt_low + 1’b1;
            cnt_low_done     <= (cnt_low == 16’hFFFE);
      
      if (cnt_low_done)
            cnt_high <= cnt_high + 1’b1;
            led <= cnt_high[15];
      end
 
endmodule

Компиляция такого исходника в GS дает ошибку: "Procedural assignment  to a non-register 'led' is not permitted"

И проходится переписывать так:

Скрытый текст

module hello (input clk, output led) ;
 
      logic [15 : 0]     cnt_low, cnt_high;
      logic
      cnt_low_done;
 
      always_ff @(posedge clk) begin
            cnt_low     <= cnt_low + 1’b1;
            cnt_low_done     <= (cnt_low == 16’hFFFE);
      
      if (cnt_low_done)
            cnt_high <= cnt_high + 1’b1;
      end
     assign led = cnt_high[15];
endmodule

 

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


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

9 hours ago, StewartLittle said:

Компиляция такого исходника в GS дает ошибку: "Procedural assignment  to a non-register 'led' is not permitted"

Потому что компилятор не знает, что выход - это регистр. Объявление его таким образом

module hello (input clk, output logic led);

спасает положение дел.

10 hours ago, des00 said:

так SV поддерживается или нет?

Я выше написал, правда без комментариев

# -verilog_std <v1995|v2001|sysv2017>
# Specify Verilog: Verilog 95 / Verilog 2001 / System Verilog2017 
# and the default is Verilog 2001.

И сотворил некое подобие компиляции простейшего примера на Verilog и SystemVerilog из командной строки с использованием tcl: если интересно, могу причесать и выложить.

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


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

17 hours ago, StewartLittle said:

И проходится переписывать так:

Понятно, проблемы с default типом) но поддерживается. оке. 

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


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

On 1/10/2022 at 10:25 AM, StewartLittle said:

.

Оказывается 24.01.2022 вышла новая Gowin EDA v1.9.8.03

как обычно хотелось бы взглянуть на Release Note чтоб узнать что там нового и интересного :)

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


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

4 hours ago, _4afc_ said:

как обычно хотелось бы взглянуть на Release Note чтоб узнать что там нового и интересного

А нет смысла. Там ничего не пишут полезного :)

К примеру, при помощи недетских усилий Stewart little в этой версии исправили найденный мной глюк с заведением клока на прямые пины-входы PLL (предыдущая версия заводила его через логику, а не прямо, как минимум в GW1-NS). И в RN об этом не сказано. Отсюда можно сделать вывод, что и еще много о чем не сказано. Там вообще почти ноль информации. А посмотреть его не проблема, он в папке IDE/doc лежит после установки.

 

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


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

13 hours ago, SM said:

К примеру, при помощи недетских усилий Stewart little в этой версии исправили найденный мной глюк с заведением клока на прямые пины-входы PLL (предыдущая версия заводила его через логику, а не прямо, как минимум в GW1-NS).

А вы как это увидели? Это заведение где-то отображалось?

 

13 hours ago, SM said:

А нет смысла. Там ничего не пишут полезного :)

А посмотреть его не проблема, он в папке IDE/doc лежит после установки.

Для этого его надо поставить.

Каждый раз обновлять IDE как только оно выходит - тоже не дело.

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


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

14 minutes ago, _4afc_ said:

Каждый раз обновлять IDE как только оно выходит

Она не обновляется, она рядом ставится, не снося предыдущую.

 

  

14 minutes ago, _4afc_ said:

Это заведение где-то отображалось?

Были неадекватные Clock latency по этим цепям в отчете анализатора времянок, и бонусом варнинг о проходе клока через логику (generic routing resources).

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


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

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

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

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

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

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

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

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

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

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