[an error occurred while processing this directive]
|
Уперся, наконец, в то, что 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 Смотрю далее на симуляторе, а там только во время прихода сигнала load на выходе появляется 1. В остальное время 0. Т.е. не выталкивается загруженная последовательность. Подскажите, плиз, где ошибка, куда копать, и как, вообще, подобные вещи делаются на Verilog'е. Несколько смущает реализация сдвига конкатенацией - насколько это "прямо"? Может есть более другой способ?
E-mail:
info@telesys.ru
Ответы