Tengo una matriz de puntos de 5 * 7 en mi FPGA, y necesito "caminar" un punto. El data
tiene una longitud de 35 bits, y solo un bit debe ser 1 (visible). El punto superior derecho es (0; 0), el inferior izquierdo es data[34]
. El problema es que no puedo entender cómo debo cambiar un '1' a la posición especificada.
reg [34:0] data;
reg [ 2:0] x, y;
always @ (posedge clk16M) begin
if (rst) begin
x <= 3'b0;
y <= 3'b0;
data <= 35'b1;
end
.. calculate x and y ..
end
always @ (*) begin
data <= 35'b1 << (x * 3'd7 + y);
end
No mueve el punto, sin embargo, los valores de x
y y
están bien. Cambian cuando deberían.