операции в Верилоге, Вивадо - PullRequest
0 голосов
/ 01 декабря 2018

Я работаю в лаборатории, которая включает перемещение зеленого квадрата через монитор, избегая при этом колеблющихся красных прямоугольников, которые пересекают монитор.Чтобы попасть на другую сторону, вы должны маневрировать квадратом через эти маленькие промежутки в красных прямоугольниках.вместо того, чтобы перемещать прямоугольники, я делаю секцию промежутка, где vgaRed низок, и перемещаю промежуток вверх и вниз.длина зазора является суммой двух 8-битных шин.Моя проблема в том, что когда я жестко кодирую значение пробела, он работает, и пробел обнаруживается, но когда я использую переменные или какую-либо операцию сложения вообще, пропуска нет.Буду признателен за любую оказанную помощь.Я разместил код для пробела и красную полосу ниже.Это мой первый пост на этом форуме, так что извините, если я что-то упустил.пс.Мне разрешено использовать только операторы присвоения для этой лаборатории.

assign vertical_gap[0] = (horizontal_count>=10'd458)&(horizontal_count<=10'd466) & (vertical_count >= ({10(gap_position - gap_length + ({8{(bar_go_up[0] - bar_go_down[0])}}))}})&(vertical_count <= (gap_position + gap_length + ({8{(bar_go_up[0] - bar_go_down[0])}}))}});

assign vgaRed = {4{(horizontal_count>=10'd458)&(horizontal_count<=10'd466)&~(vertical_gap[0])}}
...