реклама на сайте
подробности

 
 
> Вопрос по TimeQuest
doom13
сообщение Jan 16 2018, 10:26
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую. Тестовый проект прикреплен ниже. Сам модуль:
CODE
module add_three_numbers
(
input clock,
input [7:0] A,
input [7:0] B,
input [7:0] C,
input [7:0] D,
output [7:0] sum
);

reg [7:0] reg_A, reg_B, reg_C, reg_D;
reg [7:0] reg_sum;

reg [7:0] sum1, sum2;
reg [7:0] sum3;


always@(posedge clock)begin
reg_A <= A;
reg_B <= B;
reg_C <= C;
reg_D <= D;
end

always@(posedge clock)begin
sum1 <= reg_A + reg_B;
sum2 <= reg_C + reg_D;
sum3 <= sum1 + sum2;
end


always@(posedge clock)begin
reg_sum <= sum3;
end

assign sum = reg_sum;

endmodule


SDC файл:

Код
create_clock -name {clock} -period 400Mhz [get_ports {clock}]


Входные/выходные порты идут на ножки FPGA. Ругается на путь от reg_B[7] до sum1[7], смотрю как разбросал все в ChipPlanner-e. Если в Chip Planner-e подвинуть reg_B[7] максимально близко к sum1[7] и применить изменения в нетлисте, то все тайминги соблюдаются. Вопрос - почему автоматом не хочет поставить ячейки в нужные места (куча свободных ресурсов), чтоб все тайминги соблюдались.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  test.rar ( 2.71 килобайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Jan 16 2018, 12:18
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(blackfin @ Jan 16 2018, 14:26) *
— Видишь суслика?
— Нет!
— И я не вижу. А он есть!

Цитата
Нет...ну вот привязался...

Спасибо, гуглом я умею пользоваться. Вопрос в том, когда я не задаю вх/выходные задержки (только клок), QII применяет для них какие-то значения по умолчанию и разводит схему криво (!!!), но руками можно "довести её до ума" при тех же условиях, что мешает QII сделать это автоматом (если вручную можно - то должен быть способ сделать это автоматом!).
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 16 2018, 12:32
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(doom13 @ Jan 16 2018, 15:18) *
Спасибо, гуглом я умею пользоваться. Вопрос в том, когда я не задаю вх/выходные задержки (только клок), QII применяет для них какие-то значения по умолчанию и разводит схему криво (!!!), но руками можно "довести её до ума" при тех же условиях, что мешает QII сделать это автоматом (если вручную можно - то должен быть способ сделать это автоматом!).

1. Вы не привели настройки для квартуса(синтез/фиттер).Может автофит стоит.
2. Распиновка жесткая?
3. Если входы и выход на разных концах плисины стоят, то может и не вытянуть при заданной частоте.
4. У Вас есть уверенность, что клок пошел по клоковой дорожке, а не обычной линии? Ощущение возникло, что после добавления ограничений на входы/выходы клок пошел обычным путем, отсюда ухудшение разводки, но их в любом случае требуется задать и, возможно, изменить немного архитектуру - входы на fast input/output register по обычному клоку, а логику по частоте с выхода pll, но это уже по документации и примерам.
ЗЫ. У меня, к сожалению, нет возможности скачать Ваш проект.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 16 2018, 13:40
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(bogaev_roman @ Jan 16 2018, 15:32) *
1. Вы не привели настройки для квартуса(синтез/фиттер).Может автофит стоит.
2. Распиновка жесткая?


QSF-file:
CODE

# -------------------------------------------------------------------------- #
#
# Copyright © 2016 Intel Corporation. All rights reserved.
# Your use of Intel Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel MegaCore Function License Agreement, or other
# applicable license agreement, including, without limitation,
# that your use is for the sole purpose of programming logic
# devices manufactured by Intel and sold by Intel or its
# authorized distributors. Please refer to the applicable
# agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus Prime
# Version 16.1.0 Build 196 10/24/2016 SJ Standard Edition
# Date created = 11:20:56 January 12, 2018
#
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# test_00_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus Prime software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #


set_global_assignment -name FAMILY "Cyclone V"
set_global_assignment -name DEVICE 5CEBA4F17I7
set_global_assignment -name TOP_LEVEL_ENTITY add_three_numbers
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 16.1.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "11:20:56 JANUARY 12, 2018"
set_global_assignment -name LAST_QUARTUS_VERSION "16.1.0 Standard Edition"
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name MIN_CORE_JUNCTION_TEMP "-40"
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 100
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 256
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 256
set_global_assignment -name VERILOG_FILE top.v
set_global_assignment -name SDC_FILE top.sdc
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_location_assignment PIN_A3 -to A[0]
set_location_assignment PIN_A4 -to A[1]
set_location_assignment PIN_A5 -to A[2]
set_location_assignment PIN_A7 -to A[3]
set_location_assignment PIN_A8 -to A[4]
set_location_assignment PIN_A9 -to A[5]
set_location_assignment PIN_B6 -to A[6]
set_location_assignment PIN_B7 -to A[7]
set_location_assignment PIN_B10 -to B[0]
set_location_assignment PIN_C9 -to B[1]
set_location_assignment PIN_C10 -to B[2]
set_location_assignment PIN_B11 -to B[3]
set_location_assignment PIN_C11 -to B[4]
set_location_assignment PIN_D11 -to B[5]
set_location_assignment PIN_A12 -to B[6]
set_location_assignment PIN_A13 -to B[7]
set_location_assignment PIN_B16 -to C[0]
set_location_assignment PIN_C16 -to C[1]
set_location_assignment PIN_D16 -to C[2]
set_location_assignment PIN_E16 -to C[3]
set_location_assignment PIN_C15 -to C[4]
set_location_assignment PIN_D14 -to C[5]
set_location_assignment PIN_D13 -to C[6]
set_location_assignment PIN_F15 -to C[7]
set_location_assignment PIN_G16 -to sum[0]
set_location_assignment PIN_H16 -to sum[1]
set_location_assignment PIN_J16 -to sum[2]
set_location_assignment PIN_G15 -to sum[3]
set_location_assignment PIN_K16 -to sum[4]
set_location_assignment PIN_K15 -to sum[5]
set_location_assignment PIN_L15 -to sum[6]
set_location_assignment PIN_L14 -to sum[7]
set_location_assignment PIN_J14 -to sum[8]
set_location_assignment PIN_J12 -to sum[9]
set_location_assignment PIN_F12 -to clock
set_location_assignment PIN_T15 -to D[0]
set_location_assignment PIN_T14 -to D[1]
set_location_assignment PIN_R16 -to D[2]
set_location_assignment PIN_R14 -to D[3]
set_location_assignment PIN_P16 -to D[4]
set_location_assignment PIN_P14 -to D[5]
set_location_assignment PIN_P13 -to D[6]
set_location_assignment PIN_M13 -to D[7]
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
set_global_assignment -name SMART_RECOMPILE ON
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top



Цитата(bogaev_roman @ Jan 16 2018, 15:32) *
3. Если входы и выход на разных концах плисины стоят, то может и не вытянуть при заданной частоте.

А почему же тогда ручками можно подправить один путь, чтоб вытянуло? Это больше всего смущает. Почему QII (такой умный) не смог заметить очевидное решение! Я понимаю, что не всё ему описал, но он уже тут накосячил, зачем ещё что-то "ограничивать".

Цитата(bogaev_roman @ Jan 16 2018, 15:32) *
4. У Вас есть уверенность, что клок пошел по клоковой дорожке, а не обычной линии? Ощущение возникло, что после добавления ограничений на входы/выходы клок пошел обычным путем, отсюда ухудшение разводки, но их в любом случае требуется задать и, возможно, изменить немного архитектуру - входы на fast input/output register по обычному клоку, а логику по частоте с выхода pll, но это уже по документации и примерам.

На глобальной линии сидит (см. рис.).


Цитата(blackfin @ Jan 16 2018, 15:28) *
А что пишут в add_three_numbers.sta.rpt?

Добавил файлик.
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  test_00.sta.rpt.txt ( 67.63 килобайт ) Кол-во скачиваний: 17
 
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 16 2018, 13:54
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(doom13 @ Jan 16 2018, 16:40) *
QSF-file:

Не увидел настроек Fitter_effort и optimization_technique. Не знаю, каким образом может повлиять настройка smart_recompile, если менять только ограничения, по идее - никак.
Цитата
На глобальной линии сидит (см. рис.).

Значит с этим все в порядке.
Цитата
А почему же тогда ручками можно подправить один путь, чтоб вытянуло? Это больше всего смущает. Почему QII (такой умный) не смог заметить очевидное решение! Я понимаю, что не всё ему описал, но он уже тут накосячил, зачем ещё что-то "ограничивать".

Если речь идет о пути сигнала reg_B->sum1, то есть еще путь от B до reg_B - о нем мне ничего не известно - укорачивая путь описанным образом от reg_B до sum1 Вы удлиняете путь от B до reg_B.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 17 2018, 10:28
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(bogaev_roman @ Jan 16 2018, 16:54) *
Не увидел настроек Fitter_effort и optimization_technique. Не знаю, каким образом может повлиять настройка smart_recompile, если менять только ограничения, по идее - никак.

Если изменить Optimization mode c Balanced (Normal flow) на Performance (High effort - increases runtime), то это даёт пинок QII развести всё без ошибок, но на опции Fitter_effort и optimization_technique это не влияет. Fmax в этом случае может выдержать 443 MHz.

Т.е. пока так и не понял, что при стандартных настройках мешает автоматической разводке с выполнением всех таймингов, если вручную есть такая возможность.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- doom13   Вопрос по TimeQuest   Jan 16 2018, 10:26
- - blackfin   Цитата(doom13 @ Jan 16 2018, 13:26) SDC ф...   Jan 16 2018, 10:50
- - doom13   Он-то локаничен, но почему есть возможность вручну...   Jan 16 2018, 11:24
|- - blackfin   Цитата(doom13 @ Jan 16 2018, 14:13) Поясн...   Jan 16 2018, 11:26
- - doom13   Вопрос остался. Если убрать один регистр с выхода,...   Jan 16 2018, 11:47
|- - blackfin   Цитата(doom13 @ Jan 16 2018, 14:47) Тут в...   Jan 16 2018, 11:58
|- - Maverick   http://www.alterawiki.com/wiki/Timing_Constraints ...   Jan 16 2018, 12:06
|- - blackfin   Цитата(doom13 @ Jan 16 2018, 15:18) Вопро...   Jan 16 2018, 12:28
|- - bogaev_roman   Цитата(doom13 @ Jan 17 2018, 13:28) Если ...   Jan 17 2018, 10:44
|- - doom13   Цитата(bogaev_roman @ Jan 17 2018, 13:44)...   Jan 17 2018, 12:01
|- - doom13   Цитата(bogaev_roman @ Jan 17 2018, 13:44)...   Jan 26 2018, 08:18
- - blackfin   Цитата(doom13 @ Jan 16 2018, 16:40) Добав...   Jan 16 2018, 13:55
|- - doom13   Цитата(blackfin @ Jan 16 2018, 16:55) Из ...   Jan 16 2018, 14:18
|- - bogaev_roman   Цитата(blackfin @ Jan 16 2018, 16:55) Из ...   Jan 16 2018, 14:23
|- - doom13   Цитата(bogaev_roman @ Jan 16 2018, 17:23)...   Jan 16 2018, 14:47
|- - bogaev_roman   Цитата(doom13 @ Jan 16 2018, 17:32) Я пыт...   Jan 16 2018, 14:48
|- - doom13   Цитата(bogaev_roman @ Jan 16 2018, 17:48)...   Jan 17 2018, 05:33
- - doom13   Если проектик скачать (или заново создать), то мож...   Jan 16 2018, 15:01
- - ViKo   Так покажите уже файлы sta.rpt для обоих своих вар...   Jan 17 2018, 05:38
|- - doom13   Цитата(ViKo @ Jan 17 2018, 08:38) Так пок...   Jan 17 2018, 05:47
|- - warrior-2001   Цитата(doom13 @ Jan 17 2018, 08:47) Этот ...   Jan 17 2018, 06:34
|- - Flip-fl0p   Цитата(warrior-2001 @ Jan 17 2018, 09...   Jan 17 2018, 06:46
|- - doom13   Цитата(warrior-2001 @ Jan 17 2018, 09...   Jan 17 2018, 07:40
- - ViKo   И как следствие, меняется отчет.   Jan 17 2018, 07:04
- - ViKo   А файлы отчета показать - не минутное дело?   Jan 17 2018, 07:50
|- - doom13   Цитата(ViKo @ Jan 17 2018, 10:50) А файлы...   Jan 17 2018, 07:59
|- - ViKo   Цитата(doom13 @ Jan 17 2018, 10:59) А зап...   Jan 17 2018, 08:05
|- - doom13   Цитата(ViKo @ Jan 17 2018, 11:05) Не пони...   Jan 17 2018, 08:35
- - ViKo   Запустите Design Space Explorer, и он "ператр...   Jan 17 2018, 08:44
- - doom13   Поменял опцию Fitter-a Fitter Initial Placement S...   Jan 17 2018, 09:10
- - ViKo   Кроме Auto Fit и Fast Fit есть еще Standard Fit.   Jan 17 2018, 09:32
|- - doom13   Цитата(ViKo @ Jan 17 2018, 12:32) Кроме A...   Jan 17 2018, 09:37
|- - ViKo   Цитата(doom13 @ Jan 17 2018, 12:37) да, о...   Jan 17 2018, 09:40
- - warrior-2001   Много глюков ловил в новых версиях квартуса из-за ...   Jan 18 2018, 08:04
|- - bogaev_roman   Цитата(warrior-2001 @ Jan 18 2018, 11...   Jan 18 2018, 10:03
- - doom13   del   Jan 18 2018, 10:43
- - Kluwert   Цитата(doom13 @ Jan 16 2018, 14:26) Входн...   Feb 7 2018, 20:45
- - doom13   Цитата(Kluwert @ Feb 7 2018, 23:45) Это -...   Feb 9 2018, 06:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 16:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.02501 секунд с 7
ELECTRONIX ©2004-2016