[an error occurred while processing this directive]
|
но и на нем если в лоб, то получается максимум 60 Мгц.
А вот если кэйсы поменять на ифы. То уже 110 Мгц.
Ну вот например
if (v_counter[9:6] == 4'b1001)
begin
if (v_counter[5:0] == 6'b010111) v_state <= 1;
if (v_counter[5:0] == 6'b011010) v_state <= 2;
if (v_counter[5:0] == 6'b011110) v_state <= 3;
if (v_counter[5:0] == 6'b110011) v_state <= 0;
end
вместо
case (v_state)
2'b00: if(v_counter == 599) //work area
v_state = 2'b01;
2'b01: if(v_counter == 602) //back proach
v_state = 2'b10;
2'b10: if(v_counter == 606) //vertical sync
v_state = 2'b11;
2'b11: if(v_counter == 627)//front proach
v_state = 2'b00;
endcase
и
if (h_counter == 799) h_state <= 2'b01;
if (h_counter == 842) h_state <= 2'b10;
if (h_counter == 970) h_state <= 2'b11;
if (h_counter == 1055) h_state <= 2'b00;
вместо
case (h_state)
2'b00: if (h_counter == 799) // work area
h_state = 2'b01;
2'b01: if (h_counter == 842) h_state = 2'b10;
back proach h_state = 2'b10;
2'b10: if (h_counter == 970) // horizontalsync
h_state = 2'b11;
2'b11: if (h_counter == 1055) //front proach
h_state = 2'b00;
endcase
Вобщем я каждую схему оптимизирую под конкретные параметры.
Нужно быстродействие, смотрю критический путь и работаю в этом направлении.
E-mail: info@telesys.ru