[an error occurred while processing this directive]
|
Нужно сделать счетчик с подстройкой фазы деленой частоты по входу синхронизации. Решил написать на Verilog-е, сразу скажу что его почти не знаю, а схему лень было рисовать.
Вот что получилось:
module sinhrov( clkx8, sinhro, clko);
// Port Declaration
input clkx8, sinhro;
output clko;
reg [2:0]cnt;
reg [1:0]sum;
assign clko = cnt[2];
initial
begin
cnt = 0;
sum = 1;
end
always @(posedge clkx8 or posedge sinhro)
begin
if(clkx8) begin
cnt <= cnt + sum;
sum = 1;
end else begin
if(cnt[2]==0) sum = 2;
else sum = 0;
end
end
endmodule
Глюк проявляется в том что когда фаза clkx8 = 1 то постоянно выполняется код
cnt <= cnt + sum;
sum = 1;
А когда в описании убираю "or posedge sinhro" то считает нормально, но уже синхронизация не работает.
Может кто знает где глюк закопан ???
E-mail: info@telesys.ru