Я реализую игру тетрис, используя basys 3 на светодиодной матрице 8x8.
reg [7:0]redBlock;
reg [7:0]backupRed= 8'b00011000;
reg [7:0]temp;
assign redBlock=(toRight& oe) ? backupRed>> 1 : backupRed;
Этот код работает, красный блок на светодиодной матрице идет правильно, когда я нажимаю кнопку вправо, но, конечно, он возвращается в исходное положение, поскольку условие 0 равно резервному красному
Чего я действительно хочу, так это
reg [7:0]redBlock = 8'b00011000;;
reg [7:0]backupRed;
reg [7:0]temp;
assign redBlock=(toRight& oe) ? redBlock>> 1 : redBlock;
который должен обновить предыдущее местоположение redBlock, но выдает ошибку
Переменная redBlcok записывается как непрерывными, так и процедурными присваиваниями.
Я использую Vivado для реализации
Вот 10-секундное видео того, что я имел в виду