quartus7.2, циклон 2, скорость 7...
Мне необходимо состряпать счетчик адреса, для чтения данных из памяти. Частота - 133МГц. Предварительно на симуляторе проверяю, для чего пишем такой код:
Код
input ddr_sdram_phy_clk_out;
output [23:0] address_0_r;
output [22:0] address_0_r_x;
input read_n;
input waitrequest;
input HC_VD;
assign address_0_r[23:1] = address_0_r_x;
count_adr c1 (
.clock(ddr_sdram_phy_clk_out),
.cnt_en((~read_n)&(~waitrequest)),
.data(24'd0),
.sload(~HC_VD),
.q(address_0_r_x)
);
address_0_r просто для того чтобы считать по +2.
count_adr - это обычный lpm_count из мегавизарда.
Так вот, когда частота
ddr_sdram_phy_clk_out до 100 МГц - все кое-как работает. Это на первом рисунке видать. А вот если ставим частоту 133МГц - уже, судя по всему не справляется - рисунок 2.
Что делать, как по-другому, "правильно", сделать генератор адреса? Да и почему счетчику такая частота не дается?
Эскизы прикрепленных изображений
Быть. torizin-liteha@yandex.ru