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

Как прописать констрейнт в sdc файл

Добрый день. В проекте (Cyclone V) есть такой кусок (очень упрощенно):

 

input wire sys_clk; // тактовая частота

input wire [31:0] data_in; // входные данные

output reg [31:0] reg_out; // выходные данные

 

reg [31:0] reg_in_1, reg_in_2, reg_in_3, reg_in_4; // регистры для хранения принятых данных

 

вначале автомат по некоторому закону принимает входные данные в регистры, где они довольно долго (микросекунды) хранятся.

 

always @ (posedge clock_sys)

begin

...

STATE_IN1: reg_in_1 <= data_in;

STATE_IN2: reg_in_2 <= data_in;

STATE_IN3: reg_in_3 <= data_in;

STATE_IN4: reg_in_4 <= data_in;

...

end

 

через некоторое время содержимое этих регистров необходимо подать на выход (в другой регистр). Это делает другой автомат.

 

always @ (posedge clock_sys)

begin

...

STATE_OUT1: reg_out <= reg_in_1;

STATE_OUT2: reg_out <= reg_in_2;

STATE_OUT3: reg_out <= reg_in_3;

STATE_OUT4: reg_out <= reg_in_4;

...

end

 

Время между записью входных данных и передачей их на выход настолько большое, что, казалось бы, можно на эти пути прописать set_false_path

Но - между выходами reg_in_х и входами reg_out Quartus поставит коммутатор. Т.е. на самом деле можно не анализировать пути от выходов reg_in_х до входов этого коммутатора, а

вот время пробега данных от момента выбора с какого входа этого коммутатора данные передаются на входы регистра reg_out не должно превышать такта тактовой частоты clock_sys.

 

Вопрос - как правильно прописать констрейнты для такого случая (как найти этот коммутатор).

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

 

Нашел такую команду:

# Cut timing from a mode_select register, which is static in the design, to all of its destinations:

set_false_path -from [get_keepers *|mode_select]

Оно поможет?

Изменено пользователем Yuri124

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


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

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

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

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

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

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

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

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

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

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