AnatolySh 0 2 января, 2022 Опубликовано 2 января, 2022 · Жалоба 15 minutes ago, RobFPGA said: Ментор узнает значение FREQ_DIV от вас Не так выразился: что ментор будет делать с этим параметром - я не вижу. 16 minutes ago, RobFPGA said: Этот модуль (OSC) сильно упрощенная модель генератора тактовой с делителем. Где взять более-менее правдоподобную модель (мне самому написать делитель и успокоиться?)? Вот, что даёт поиск по всему, что установилось с IDE: ищу по всем файлам с вхождением OSCO Где тут смотреть подробности? Или поступать, как предположил выше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 2 января, 2022 Опубликовано 2 января, 2022 · Жалоба 2 minutes ago, AnatolySh said: Не так выразился: что ментор будет делать с этим параметром - я не вижу. Ну так : half_clk = 2*FREQ_DIV; Фактически тут задается коэффициент деления исходной тактовой в 250 MHz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 2 января, 2022 Опубликовано 2 января, 2022 · Жалоба 1 minute ago, RobFPGA said: Фактически тут задается коэффициент деления исходной тактовой в 250 MHz Хм. Однако. Но я, честно, не пил! Да мне и нельзя пить. Не рекомендуется. Нечто это кефир такой был?! Ах они, демоны: новогодний кефир - то какой?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 7 января, 2022 Опубликовано 7 января, 2022 · Жалоба И снова всем всепобеждающего добра в разумных, конечно, пределах. И снова я чего-то не понимаю. А именно: IDE SV воспринимает, или нет?: Нигде в установках типа файла я SystemVerilog не нашёл, однако при выборе типа Verilog одним из вариантов расширения предлагается .sv. Где тут собака порылсь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 8 января, 2022 Опубликовано 8 января, 2022 · Жалоба 13 hours ago, AnatolySh said: IDE SV воспринимает, или нет? set_option -verilog_std sysv2017 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 8 января, 2022 Опубликовано 8 января, 2022 · Жалоба Вопрос по 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 Внизу остались непрокомментированные строки, смысл которых, по кр. мере из упомянутого выше документа никак не ясен. Просьба пнуть в нужном направлении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 10 января, 2022 Опубликовано 10 января, 2022 · Жалоба 08.01.2022 в 19:39, AnatolySh сказал: Внизу остались непрокомментированные строки, смысл которых, по кр. мере из упомянутого выше документа никак не ясен. Просьба пнуть в нужном направлении. Это дефолтные опции настойки синтезатора GowinSynthesis (к сожалению, они плохо документированы - что-то есть в доке с описанием синтезатора, но тем не все, и, к тому же, обойдено молчанием все. что отностся к файлу констрейнтов синтеза .gsc). Я попрошу у Gowin какую-нибудь информацию по этому поводу. Последнее назначение - опция настройки P&R (относительно режима пинов MODE). Теперь они по умолчанию становятся пользовательскими пинами после окончания конфигурирования массива программируемой логики - я это проверил на своей плате с ПЛИС Gowin. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 января, 2022 Опубликовано 10 января, 2022 · Жалоба 1 hour ago, StewartLittle said: Это дефолтные опции настойки синтезатора GowinSynthesis (к сожалению, они плохо документированы - что-то есть в доке с описанием синтезатора, но тем не все, и, к тому же, обойдено молчанием все. что отностся к файлу констрейнтов синтеза .gsc). так SV поддерживается или нет? Есть задача переезда готовых IP на говин, не хотелось бы все переписывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 10 января, 2022 Опубликовано 10 января, 2022 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 10 января, 2022 Опубликовано 10 января, 2022 · Жалоба 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: если интересно, могу причесать и выложить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 января, 2022 Опубликовано 11 января, 2022 · Жалоба 17 hours ago, StewartLittle said: И проходится переписывать так: Понятно, проблемы с default типом) но поддерживается. оке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 27 января, 2022 Опубликовано 27 января, 2022 · Жалоба On 1/10/2022 at 10:25 AM, StewartLittle said: . Оказывается 24.01.2022 вышла новая Gowin EDA v1.9.8.03 как обычно хотелось бы взглянуть на Release Note чтоб узнать что там нового и интересного :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 27 января, 2022 Опубликовано 27 января, 2022 · Жалоба 4 hours ago, _4afc_ said: как обычно хотелось бы взглянуть на Release Note чтоб узнать что там нового и интересного А нет смысла. Там ничего не пишут полезного :) К примеру, при помощи недетских усилий Stewart little в этой версии исправили найденный мной глюк с заведением клока на прямые пины-входы PLL (предыдущая версия заводила его через логику, а не прямо, как минимум в GW1-NS). И в RN об этом не сказано. Отсюда можно сделать вывод, что и еще много о чем не сказано. Там вообще почти ноль информации. А посмотреть его не проблема, он в папке IDE/doc лежит после установки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 28 января, 2022 Опубликовано 28 января, 2022 · Жалоба 13 hours ago, SM said: К примеру, при помощи недетских усилий Stewart little в этой версии исправили найденный мной глюк с заведением клока на прямые пины-входы PLL (предыдущая версия заводила его через логику, а не прямо, как минимум в GW1-NS). А вы как это увидели? Это заведение где-то отображалось? 13 hours ago, SM said: А нет смысла. Там ничего не пишут полезного :) А посмотреть его не проблема, он в папке IDE/doc лежит после установки. Для этого его надо поставить. Каждый раз обновлять IDE как только оно выходит - тоже не дело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 января, 2022 Опубликовано 28 января, 2022 · Жалоба 14 minutes ago, _4afc_ said: Каждый раз обновлять IDE как только оно выходит Она не обновляется, она рядом ставится, не снося предыдущую. 14 minutes ago, _4afc_ said: Это заведение где-то отображалось? Были неадекватные Clock latency по этим цепям в отчете анализатора времянок, и бонусом варнинг о проходе клока через логику (generic routing resources). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться