очень надеюсь, что не сильно Вас всех замучил своими вопросами. Целый день читал мануалы, тестился, но так и не решил одну свою незадачку.
Есть два модуля
Код
module MyDelay(In, Out, InNext, OutNext, Do);
input In, OutNext, Do;
output Out, InNext;
assign Out=(Do)?In:OutNext;
assign InNext=(Do)?OutNext:In;
endmodule
module GenDelay(In, Out, Switch);
parameter K;
input In;
input Switch[0:K-1];
output Out;
wire I[0:K-2], O[0:K-2], IO;
MyDelay MyDelay_module_Begin(.In(In), .Out(Out), .InNext(I[0]), .OutNext(O[0]), .Do(Switch[0]));
MyDelay MyDelay_module_End(.In(I[K-2]), .Out(O[K-2]), .InNext(IO), .OutNext(IO), .Do(Switch[K-1]));
generate
genvar i;
for(i=0; i<K-2; i++) begin : aaa
MyDelay MyDelay_module(.In(I[i]), .Out(O[i]), .InNext(I[i+1]), .OutNext(O[i+1]), .Do(Switch[i+1]));
end
endgenerate
endmodule
input In, OutNext, Do;
output Out, InNext;
assign Out=(Do)?In:OutNext;
assign InNext=(Do)?OutNext:In;
endmodule
module GenDelay(In, Out, Switch);
parameter K;
input In;
input Switch[0:K-1];
output Out;
wire I[0:K-2], O[0:K-2], IO;
MyDelay MyDelay_module_Begin(.In(In), .Out(Out), .InNext(I[0]), .OutNext(O[0]), .Do(Switch[0]));
MyDelay MyDelay_module_End(.In(I[K-2]), .Out(O[K-2]), .InNext(IO), .OutNext(IO), .Do(Switch[K-1]));
generate
genvar i;
for(i=0; i<K-2; i++) begin : aaa
MyDelay MyDelay_module(.In(I[i]), .Out(O[i]), .InNext(I[i+1]), .OutNext(O[i+1]), .Do(Switch[i+1]));
end
endgenerate
endmodule
которые я хочу использовать для организации задержки сигнала примерно таким образом:
Код
parameter K=16;
reg InputSignal;
wire DelayedSignal;
reg R[0:K-1]; // маска для задержки, вида 1...<L раз>...10...<K-L раз>...0, так что первые L единиц характеризуют задержку сигнала на L задержек по тригерам.
GenDelay #(.K(K)) GenDelay_module(.In(InputSignal), .Out(DelayedSignal), .Switch(R));
reg InputSignal;
wire DelayedSignal;
reg R[0:K-1]; // маска для задержки, вида 1...<L раз>...10...<K-L раз>...0, так что первые L единиц характеризуют задержку сигнала на L задержек по тригерам.
GenDelay #(.K(K)) GenDelay_module(.In(InputSignal), .Out(DelayedSignal), .Switch(R));
Скажите, пожалуйста, как квартусом измерить на сколько наносекунд у меня происходит задержка сигнала при разных L. Облазиил весь таймквест, пробовал считать задержки, но, похоже, кривые у меня руки, и ни как не получается это из квартуса выудить.
Посоветуйте, пожалуйста, куда смотреть!
Спасибо
ИИВ