Цитата(DmitryR @ Jan 24 2018, 14:14)

Решил я оптимизировать один простой контроллер, чтобы был кратким (как выстрел, ЛОЛ) и полностью конфигурируемым. В частности чтобы можно было ему задавать фронт, по которому работать. Ну и пишу:
clocking get_edge @((posedge clk iff a) or (negedge clk iff !a));
И сразу же выясняется, что ни clocking, ни даже iff синтезатором (Квартус) не поддерживаются. У кого-нибудь есть идеи, как это сделать элегантно с помощью синтезируемых конструкций? Я понимаю, как это сделать с помощью условной компиляции, но это мне кажется как-то... Не совсем современно, что ли.
Сам не пробовал, ну а вдруг
Объявите
`define EDGE_CLK posedge
ну или
`define EDGE_CLK negedge
и используйте
always@(`EDGE_CLK my_clk) begin
end
Сообщение отредактировал Dantist2k17 - Jan 25 2018, 10:55