vsrb 1 20 ноября, 2023 Опубликовано 20 ноября, 2023 · Жалоба 39 minutes ago, BSACPLD said: Коллеги, кто-нибудь сталкивался с такой ошибкой? Попробуйте расширение *.dat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 20 ноября, 2023 Опубликовано 20 ноября, 2023 · Жалоба А формат обычный Intel HEX или Verilog HEX? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iglaz3 0 20 ноября, 2023 Опубликовано 20 ноября, 2023 · Жалоба 4 часа назад, BSACPLD сказал: Коллеги, кто-нибудь сталкивался с такой ошибкой? HEX и BIN в данном случае не тип(расширение) файла, а формат данных внутри их файла (вроде *.dat) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vsrb 1 20 ноября, 2023 Опубликовано 20 ноября, 2023 · Жалоба 4 hours ago, BSACPLD said: А формат обычный Intel HEX или Verilog HEX? Приложил примеры файлов, взяты из установочного каталога среды PDS (комментарии в начале файлов надо удалить). Каждая строка - это слово, шириной, равной ширине шины данных без всяких дополнительных префиксов (типа 0x, h или b) и без указания смещения. Я через $readmemh делал, тоже работает. Там любое имя файла можно указывать. Еще бы через скрипт научиться обновлять в уже готовом битстриме, чтобы при каждом изменении заново не запускать компиляцию. P.S. В каталоге PDS, кстати, есть так же TCL-скрипты: окно конфигурации IP-ядер запускается через них, там вся логика обработки введенных параметров. init_param_bin_exmp.dat init_param_hex_exmp.dat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 20 ноября, 2023 Опубликовано 20 ноября, 2023 · Жалоба 6 hours ago, vsrb said: Еще бы через скрипт научиться обновлять в уже готовом битстриме, чтобы при каждом изменении заново не запускать компиляцию Для меня это тоже актуально. Сейчас перешёл к написанию констрейнов. Возник вопрос как прописать false_path между клоками с выхода PLL. В Vivado я просто брал названия клоков из отчёта о времянках и писал их в set_false_path. Здесь такое не прокатывает - PDS не может найти клоки по названию которое сам же написал в отчёте по таймингам. Неужели вручную придётся прописывать клоки для каждого выхода PLL через create_generated_clock? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 214 21 ноября, 2023 Опубликовано 21 ноября, 2023 · Жалоба 7 часов назад, BSACPLD сказал: Неужели вручную придётся прописывать клоки для каждого выхода PLL через create_generated_clock? Я так и делал, прямо как у Gowin. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 21 ноября, 2023 Опубликовано 21 ноября, 2023 · Жалоба Тогда ещё вопрос. Как правильно констрейнить IDDR? Скопировал рабочие констрейны с Xilinx/Fudan: create_clock -period 7.200 -name {RXC_VIRTUAL[0]} create_clock -period 7.200 -name {RXC[0]} [get_ports {eth_rxc[0]}] # RGMII set_false_path -rise_from [get_clocks {RXC_VIRTUAL[0]}] -rise_to [get_clocks {RXC[0]}] set_false_path -fall_from [get_clocks {RXC_VIRTUAL[0]}] -fall_to [get_clocks {RXC[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -max 0.500 [get_ports {eth_rx_ctl[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -min -0.500 [get_ports {eth_rx_ctl[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -max -add_delay 0.500 [get_ports {eth_rx_ctl[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -min -add_delay -0.500 [get_ports {eth_rx_ctl[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -max 0.500 [get_ports {eth_rd[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -min -0.500 [get_ports {eth_rd[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -max -add_delay 0.500 [get_ports {eth_rd[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -min -add_delay -0.500 [get_ports {eth_rd[0]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -max 0.500 [get_ports {eth_rd[1]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -min -0.500 [get_ports {eth_rd[1]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -max -add_delay 0.500 [get_ports {eth_rd[1]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -min -add_delay -0.500 [get_ports {eth_rd[1]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -max 0.500 [get_ports {eth_rd[2]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -min -0.500 [get_ports {eth_rd[2]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -max -add_delay 0.500 [get_ports {eth_rd[2]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -min -add_delay -0.500 [get_ports {eth_rd[2]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -max 0.500 [get_ports {eth_rd[3]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -min -0.500 [get_ports {eth_rd[3]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -max -add_delay 0.500 [get_ports {eth_rd[3]}] set_input_delay -clock [get_clocks {RXC_VIRTUAL[0]}] -clock_fall -min -add_delay -0.500 [get_ports {eth_rd[3]}] И какое бы значение входной задержки я не ставил, всё время получаю ругань на hold: Также смущает очень кривая оценка частот во время синтеза: При этом финальные частоты получаются нормальные: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gas Wilson 65 21 ноября, 2023 Опубликовано 21 ноября, 2023 · Жалоба Вот инфа из документации Spoiler 2.2.2 Inputs/outputs command In the creation command window and form of Set Input Delay and Set Output Delay, you can set the parameters of the "set_input_delay" and "set_output_delay" commands. 2.2.2.1 set_input_delay In the Set Input Delay window, you can set the parameters of the set_input_delay command. The format of the command is as follows: set_input_delay -clock <clock_name> [-clock_fall] [-rise] [-fall] [-max] [-min] [-add_delay] [-source_latency_included] <delay_value> <port_list> [-disable] The meaning of each parameter in the command is explained as follows. Square brackets indicate that the parameter is an optional value, and angle brackets indicate the parameter value or parameter list: -clock: Indicates the name of its associated capture clock. [-clock_fall]: Indicates that only the falling edge of the trigger clock is considered. [-rise]: Only consider the rising edge of the input signal at input. [-fall]: Only consider the falling edge of the input signal at input. Note: If the user does not define either, the software will consider both the rising edge and the falling edge of the input signal at the input. [-max]: Indicates that the user-defined delay value is the maximum value. [-min]: Indicates that the user-defined delay value is the minimum value. Note: If the user does not define either, the software will use the user-defined delay value in both maximum and minimum delay analysis. [-add_delay]: If the user has previously set_input_delay constraints on the input port, then adding this parameter means that the software will retain the previously set constraint values. [-source_latency_included]: Indicates that the clock source latency is already included in the value and does not need to be calculated again. <delay_value>: Delay value, which is a floating point number and the unit is ns. <port_list>: input port, must be obtained through get_ports. [-disable]: Disable this constraint. 2.2.2.2 set_output_delay In the Set Output Delay window, you can set the parameters of the set_output_delay command. The format of the command is as follows: set_output_delay -clock <clock_name> [-clock_fall] [-rise] [-fall] [-max] [-min] [-add_delay] [-source_latency_included] <delay_value> <port_list> [-disable] The meaning of each parameter in the command is explained as follows. Square brackets indicate that the parameter is an optional value, and angle brackets indicate the parameter value or parameter list: -clock: Indicates the name of its associated launch clock. [-clock_fall]: Indicates that only the falling edge of the trigger clock is considered. [-rise]: Only consider the rising edge of the input signal at the output. [-fall]: Only consider the falling edge of the input signal at the output. Note: If the user does not define either, the software will consider both the rising edge and the falling edge of the input signal at the output. [-max]: Indicates that the user-defined delay value is the maximum value. [-min]: Indicates that the user-defined delay value is the minimum value. Note: If the user does not define either, the software will use the user-defined delay value in both maximum and minimum delay analysis. [-add_delay]: If the user has previously set_output_delay constraints on the output port, then adding this parameter means that the software will retain the previously set constraint values. [-source_latency_included]: Indicates that the clock source latency is already included in the value and does not need to be calculated again. <delay_value>: Delay value, which is a floating point number and the unit is ns. <port_list>: output port, must be obtained through get_ports. [-disable]: Disable this constraint. Spoiler 2.2.4.4 set_false_path In the Set False Path window, you can set the parameters of the set_false_path command. The format of the command is as follows: set_false_path [-setup] [-hold] [-from <from_list> | -rise_from < rise_from_list> | -fall_from <fall_from_list>] [-through <through_list>]* [-to <to_list> | -rise_to <rise_to _list> | -fall_to <fall_to_list>] [-disable] The meaning of each parameter in the command is explained as follows. Square brackets indicate that the parameter is an optional value, angle brackets indicate parameter value or parameter list, * indicates that the parameter can be repeated, | indicates the or symbol, and only one can be used for multiple options at the same level. : [-setup]: Indicates that setup analysis is performed [-hold]: Indicates that hold analysis is performed [-from]: <from_list> represents the startpoint of the path, which can be obtained through get_ports, get_cells, get_pins, and get_clocks. [-rise_from]: This parameter can only be specified as clocks, indicating that the starting point of the timing path is triggered by the rising edge of the clock. The rising edge of the clock here refers to the rising edge of the clock definition point. [-fall_from]: This parameter can only be specified as clocks, indicating that the starting point of the timing path is triggered by the falling edge of the clock. The falling edge of the clock here refers to the falling edge of the clock definition point. [-through]: <through_list> represents the intermediate point passed by the path, which can be obtained through get_cells, get_pins, and get_nets. [-to]: <to_list> represents the endpoint of the path, which can be obtained through get_ports, get_cells, get_pins, and get_clocks. [-rise_to]: This parameter can only be specified as clocks, indicating that the end of the timing path is triggered by the rising edge of the clock. The rising edge of the clock here refers to the rising edge of the clock definition point. [-fall_to]: This parameter can only be specified as clocks, indicating that the end of the timing path is triggered by the falling edge of the clock. The falling edge of the clock here refers to the falling edge of the clock definition point. [-disable]: Disable this constraint. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 21 ноября, 2023 Опубликовано 21 ноября, 2023 · Жалоба 1 hour ago, Gas Wilson said: Вот инфа из документации Так у меня же set_input_delay, что я написал, не противоречит документации... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 21 ноября, 2023 Опубликовано 21 ноября, 2023 · Жалоба С hold разобрался - у меня была неправильно выставлена задержка на входной ЛЗ. Увеличил с 78 до 100 и ругань на hold исчезла. Видимо я неправильно учёл задержку в клоковом буфере... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gas Wilson 65 22 ноября, 2023 Опубликовано 22 ноября, 2023 · Жалоба PDS 2022.2 SP6.1 Windows залил в upload Release_Notes.pdf PDS 2022.2 sp6.1 innek.pdf 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MartensA93 0 23 ноября, 2023 Опубликовано 23 ноября, 2023 · Жалоба Всем привет! Кто-нибудь знает, где можно найти описание на IP ядро SEU, а именно "AN04001 PG2L100H SEU. Application Guide"? Самого ядра нет, соответственно и документации тоже. Еще интересует, кто-нибудь работал с инстансом GTP_IPAL_E2? Описание на него маловато, не совсем понятно как работает, в доках дают ссылку на вышеуказанный апноут. Заранее благодарю! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gas Wilson 65 24 ноября, 2023 Опубликовано 24 ноября, 2023 · Жалоба On 11/23/2023 at 10:14 AM, MartensA93 said: Всем привет! Кто-нибудь знает, где можно найти описание на IP ядро SEU, а именно "AN04001 PG2L100H SEU. Application Guide"? Самого ядра нет, соответственно и документации тоже. Еще интересует, кто-нибудь работал с инстансом GTP_IPAL_E2? Описание на него маловато, не совсем понятно как работает, в доках дают ссылку на вышеуказанный апноут. Заранее благодарю! К сожалению новее варианта нет. AN04001 Logos2 SEU Application Guide_innek.pdf Вот более актуальное ips2l_seu_v1_8.iar UG042001_Logos2_SEU_IP.pdf 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MartensA93 0 24 ноября, 2023 Опубликовано 24 ноября, 2023 · Жалоба 4 часа назад, Gas Wilson сказал: К сожалению новее варианта нет. AN04001 Logos2 SEU Application Guide_innek.pdf 1.04 МБ · 3 загрузки Вот более актуальное ips2l_seu_v1_8.iar 2.76 МБ · 2 загрузки UG042001_Logos2_SEU_IP.pdf 1.36 МБ · 2 загрузки Спасибо большое очень выручили, я думаю, это хотя бы позволит понять принцип работы этого GTP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 14 26 ноября, 2023 Опубликовано 26 ноября, 2023 · Жалоба Коллеги, у вас не было такого бага, что все тайминги выполняются, но встроенный лог. анализатор не срабатывает на некоторые сигналы? Либо наоборот ложные срабатывания. Либо после загрузки прошивки пишет, что набор сигналов в ПЛИС и в проекте различается. Директива syn_keep = 1 на нужных сигналах стоит, но, похоже, что Synplify все равно оптимизирует данные сигналы. Иногда не до конца, иногда полностью их выкидывает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться