Цитата Сообщение от b2m Посмотреть сообщение
Я не специалист, но по-моему "always @(negedge clk or negedge SHRTC)" это неправильно. Попробуй разделить на две части, одна из которых будет привязана к negedge clk, а вторая - к negedge SHRTC.
Формально в этом нету особой неправильности. Но на практике все такие конструкции имеют такой вид:
Код:
reg [3:0] rrr;

always @(posedge xxx or posedge yyy) 
    if (yyy) 
       rrr <= 0;
    else
       rrr <= rrr + 1;
Если посмотреть на RTL схему от этой конструкции, то можно увидеть, что yyy подается на вход асинхронного сброса (или асинхронной установки) счетчика, а xxx -- на тактирующий вход. Какой фронт используется у обоих сигналов, значения не имеет.

В коде вертикальной развертки все просто -- одна из половинок делает асинхронную установку. А в горизонтальной написано так, что на оба фронта загружается не константа, выходит, что это не регистр с асинхронным сбросом, а что-то типа двухпортовой ячейки, или я даже не знаю что это. Наверное, Квартус тоже не понял.