关键代码
//输出赋值
always@(posedge i_clk or negedge i_rst)begin
if(!i_rst)begin
rgb_data_o<=24'hffffff;
address<=0;
end else if(set_x_i>=Pic_X_Min&set_x_i<Pic_X_Max&set_y_i>=Pic_Y_Min&set_y_i<Pic_Y_Max)begin
rgb_data_o<={r_data,b_data,g_data};
//address<=((set_x_i-Pic_X_Min)<<6)+((set_x_i-Pic_X_Min)<<5)+((set_x_i-Pic_X_Min)<<2)+set_y_i-Pic_Y_Min;
//右旋
// set_x<=set_y_i+Pic_X_Min-Pic_Y_Min;
// set_y<=(Pic_H-1)-(set_x_i-Pic_X_Min)+Pic_Y_Min;
//左旋
// set_x<=(Pic_H-1)-(set_y_i-Pic_Y_Min)+Pic_X_Min;
// set_y<=set_x_i-Pic_X_Min+Pic_Y_Min;
//旋转180
set_x<=(Pic_H-1)-(set_x_i-Pic_X_Min)+Pic_X_Min;
set_y<=(Pic_H-1)-(set_y_i-Pic_Y_Min)+Pic_Y_Min;
address<=((set_x-Pic_X_Min)<<6)+((set_x-Pic_X_Min)<<5)+((set_x-Pic_X_Min)<<2)+set_y-Pic_Y_Min;
end
else begin
address<=0;
rgb_data_o<=24'hffffff;
end
end
实现方法
将图片用matlab转成coe文件,存在ROM中,最后输出在HDMI显示屏上的规定位置。由于资源有限,图片不能太大,选择100*100。
硬件验证成功。