[an error occurred while processing this directive]
Подскажите начинающему по Verilog'у
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено dxp 08 апреля 2004 г. 17:14

Уперся, наконец, в то, что AHDL'я родимого перестало хватать (глобально). Из достойного (VHDL, Verilog) был выбран по ряду причин Verilog. Начал копать, и тут, как и следовало ожидать, вопросы полезли, как грибы после дождя.

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

module ShiftReg(clk, in, out, load);

input clk;
input [7:0] in;
input load;
output out;

reg [7:0] Reg;

always @(posedge clk)
begin
if(load)
Reg = in;
else
Reg = {0,Reg[7:1]};
end

assign out = Reg[0];

endmodule

Компилятор, во-первых, выдает:

FF/Latch (without init value) is constant in block .

Смотрю далее на симуляторе, а там только во время прихода сигнала load на выходе появляется 1. В остальное время 0. Т.е. не выталкивается загруженная последовательность.

Подскажите, плиз, где ошибка, куда копать, и как, вообще, подобные вещи делаются на Verilog'е. Несколько смущает реализация сдвига конкатенацией - насколько это "прямо"? Может есть более другой способ?



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru