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

 
 
> Вопрос по Verilog., Описал сдвиговый регистр, тайминги не лезут ни в какие ворота.
Alexander V. Sto...
сообщение Nov 26 2007, 19:12
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 22-11-07
Пользователь №: 32 592



Сабж. Только-только начал изучать Verilog. Наваял следующий код:

Код
module counter (clk,count);

input clk;
output[9:0] count;
reg [9:0] count;


initial count = 1'b1;

always @(posedge clk) begin
if (count == 255) count = 0;
else count = count << 1;
end

endmodule


Результатом работы которого является нечто:



Как видно, 6-й переход явно какой-то не такой.

А вот если я пишу так:

Код
module counter (clk,count);

input clk;
output[9:0] count;
reg [9:0] count;


initial count = 1'b1;

always @(posedge clk) begin
if (count == 255) count = 0;
else count = count + 1;
end

endmodule


Естественно, графы другие. Но таких явных нарушений в работе нет.

Где грабли?

Сообщение отредактировал Alexander V. Stolyarov - Nov 26 2007, 19:13
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexander V. Sto...
сообщение Nov 27 2007, 09:22
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 22-11-07
Пользователь №: 32 592



Цитата(Tran @ Nov 27 2007, 00:44) *
Вы моделируете работу узла на частоте примерно 200 МГц. Если лействительно нужна такая частота, то нужно подбирать м/с и по типу и по быстродействию + накладывать констрейны таймквестом, если нет - то просто понизьте частоту клока и всё станет на место.


Понизил частоту, тайминги стали значително лучше, но некоторое смещение на 6-м переходе осталось. Не в таком объеме конечно...


Цитата(vetal @ Nov 27 2007, 00:57) *
Это нормальное явление. Смотрите значения сигналов на триггерах, а не на выводах микросхемы прошедших километровые пути.

Вас интересует значение сигнала на триггерах или на выходе? Если на выходе - поставьте буферный регистр на выходе сдвигателя и квартус вам их разместит в элементах ввода/вывода микросхемы.


Меня интересует наличие сигнала на выходе. Я не совсем понял, как это сделать. Разве выход уже не является регистром? Как описать еще дополнительный буферный регистр?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Nov 27 2007, 10:22
Сообщение #3


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Alexander V. Stolyarov @ Nov 27 2007, 12:22) *
Меня интересует наличие сигнала на выходе. Я не совсем понял, как это сделать. Разве выход уже не является регистром?
Смотря что под этим понимать. Формально да, но в данном случае этот регистр стоит не в блоках ввода-вывода, поэтому времянка на выходах может плавать от разводки к разводке.

Цитата
Как описать еще дополнительный буферный регистр?
Поставить регистр между счётчиком и буфером. Прописать в assignments FAST_OUTPUT_REGISTER на эти выходы, тогда этот дополнительный регистр ляжет в блоки выода-вывода, и времянка на выходах будет хорошая, поскольку путь от триггера до пина минимально возможный.
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 27 2007, 10:26
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(andrew_b @ Nov 27 2007, 16:22) *
Поствить регистр между счётчиком и буфером. Прописать в assignments FAST_OUTPUT_REGISTER на эти выходы, тогда этот дополнительный регистр ляжет в блоки выода-вывода, и времянка на выходах будет хорошая, поскольку путь от триггера до пина минимально возможный.

Точнее будет, наверное, сказать, разброс задержек от выходных триггеров до пинов минимально возможный, т.к. именно разброс определяет насколько выходные сигналы "разъезжаются".


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 17:33
Рейтинг@Mail.ru


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