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

 
 
> Вопрос по 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
Ответов
DASM
сообщение Nov 26 2007, 19:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Давноо было дело, забыл наверно я, но Вы пробовали ставить неблокирующее присваиваивание вместо count = count << 1;
написать count <= count << 1; ?
PS если Вам нужен 8 битный регистр то вроде ж так - reg [8:0] count; иначе я не понимаю смысла строки (count == 255)
Хотя я ее все равно не понимаю smile.gif Сдвиги то до 128 только дойдут
Go to the top of the page
 
+Quote Post
Alexander V. Sto...
сообщение Nov 26 2007, 19:59
Сообщение #3





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



Цитата(DASM @ Nov 26 2007, 23:33) *
Давноо было дело, забыл наверно я, но Вы пробовали ставить неблокирующее присваиваивание вместо count = count << 1;
написать count <= count << 1; ?
PS если Вам нужен 8 битный регистр то вроде ж так - reg [8:0] count; иначе я не понимаю смысла строки (count == 255)
Хотя я ее все равно не понимаю smile.gif Сдвиги то до 128 только дойдут


Пробовал, не помогло.

Нужен именно десятичный регистр.

Цитата(Doka @ Nov 26 2007, 23:51) *
судя по дрожанию времянок, я сильно сомневаюсь, что это "чисто поведенческое" моделирование.
попробуйте режим моделирования без "задержек" (behavioral/functional)


А подскажите, где в Quartus это указать?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 19:56
Рейтинг@Mail.ru


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