+2
-2
@@ -19,8 +19,8 @@ set_property PACKAGE_PIN V16 [get_ports {sw[1]}]
|
|||||||
set_property IOSTANDARD LVCMOS33 [get_ports {sw[1]}]
|
set_property IOSTANDARD LVCMOS33 [get_ports {sw[1]}]
|
||||||
set_property PACKAGE_PIN W16 [get_ports {sw[2]}]
|
set_property PACKAGE_PIN W16 [get_ports {sw[2]}]
|
||||||
set_property IOSTANDARD LVCMOS33 [get_ports {sw[2]}]
|
set_property IOSTANDARD LVCMOS33 [get_ports {sw[2]}]
|
||||||
#set_property PACKAGE_PIN W17 [get_ports {sw[3]}]
|
set_property PACKAGE_PIN W17 [get_ports {sw[3]}]
|
||||||
# set_property IOSTANDARD LVCMOS33 [get_ports {sw[3]}]
|
set_property IOSTANDARD LVCMOS33 [get_ports {sw[3]}]
|
||||||
#set_property PACKAGE_PIN W15 [get_ports {sw[4]}]
|
#set_property PACKAGE_PIN W15 [get_ports {sw[4]}]
|
||||||
# set_property IOSTANDARD LVCMOS33 [get_ports {sw[4]}]
|
# set_property IOSTANDARD LVCMOS33 [get_ports {sw[4]}]
|
||||||
#set_property PACKAGE_PIN V15 [get_ports {sw[5]}]
|
#set_property PACKAGE_PIN V15 [get_ports {sw[5]}]
|
||||||
|
|||||||
@@ -45,8 +45,6 @@ mode = str2num(answer{4});
|
|||||||
mode = min(mode, 3);
|
mode = min(mode, 3);
|
||||||
mode = max(mode, 0);
|
mode = max(mode, 0);
|
||||||
%
|
%
|
||||||
step = 0.001; % step for lookuptable file generator loop
|
|
||||||
%
|
|
||||||
%% reading image
|
%% reading image
|
||||||
% f = imread('star640x480.jpg');
|
% f = imread('star640x480.jpg');
|
||||||
f = imread('overlay.jpg');
|
f = imread('overlay.jpg');
|
||||||
@@ -186,6 +184,8 @@ text( 0 , 0 , [ X,' ', Y] );
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
% % Displaying transform matrix in Verilog code style, for easy copying and pasting
|
% % Displaying transform matrix in Verilog code style, for easy copying and pasting
|
||||||
|
%
|
||||||
|
% step = 0.001; % step for lookuptable file generator loop
|
||||||
% disp('Copy those constants in Verilog code'),
|
% disp('Copy those constants in Verilog code'),
|
||||||
% X = ['TRA_IMG_WIDTH = ''d', num2str(width),','];
|
% X = ['TRA_IMG_WIDTH = ''d', num2str(width),','];
|
||||||
% disp(X),
|
% disp(X),
|
||||||
@@ -270,6 +270,7 @@ text( 0 , 0 , [ X,' ', Y] );
|
|||||||
param = ufi(a+1,4,0);
|
param = ufi(a+1,4,0);
|
||||||
temp = ufi(bin2dec([param.bin , sw.bin , cam.bin]),7,0);
|
temp = ufi(bin2dec([param.bin , sw.bin , cam.bin]),7,0);
|
||||||
X = ['P', temp.hex, Thex(a,1:7)];
|
X = ['P', temp.hex, Thex(a,1:7)];
|
||||||
|
% X = ['h',Thex(a,1:7)]; % print just values of matrix
|
||||||
disp(X),
|
disp(X),
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+405
-23
@@ -9,17 +9,102 @@ module default_reg_writer #(parameter
|
|||||||
CAM_LINE = 9,
|
CAM_LINE = 9,
|
||||||
CAM_PIXEL = 10,
|
CAM_PIXEL = 10,
|
||||||
|
|
||||||
TRA_IMG_WIDTH = 'd320,
|
// default settings for mode 0 camera 0
|
||||||
TRA_IMG_DEPTH = 'd240,
|
TRA_IMG_WIDTH_0_0 = 'd320,
|
||||||
T11 = 25'sb0_000000000000_100000000000,
|
TRA_IMG_DEPTH_0_0 = 'd240,
|
||||||
T12 = 25'sb0_000000000000_000000000000,
|
T11_0_0 = 25'sb0_000000000000_100000000000,
|
||||||
T13 = 25'sb0_000000000000_000000000000,
|
T12_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
T21 = 25'sb0_000000000000_000000000000,
|
T13_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
T22 = 25'sb0_000000000000_100000000000,
|
T21_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
T23 = 25'sb0_000000000000_000000000000,
|
T22_0_0 = 25'sb0_000000000000_100000000000,
|
||||||
T31 = 25'sb0_000000000000_000000000000,
|
T23_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
T32 = 25'sb0_000000000000_000000000000,
|
T31_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
T33 = 25'sb0_000000000001_000000000000
|
T32_0_0 = 25'sb0_000000000000_000000000000,
|
||||||
|
T33_0_0 = 25'sb0_000000000001_000000000000,
|
||||||
|
// default settings for mode 0 camera 1
|
||||||
|
TRA_IMG_WIDTH_0_1 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_0_1 = 'd240,
|
||||||
|
T11_0_1 = 25'sb0_000000000000_100000000000,
|
||||||
|
T12_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T13_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T21_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T22_0_1 = 25'sb0_000000000000_100000000000,
|
||||||
|
T23_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T31_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T32_0_1 = 25'sb0_000000000000_000000000000,
|
||||||
|
T33_0_1 = 25'sb0_000000000001_000000000000,
|
||||||
|
// default settings for mode 1 camera 0
|
||||||
|
TRA_IMG_WIDTH_1_0 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_1_0 = 'd240,
|
||||||
|
T11_1_0 = 25'sh0000000,
|
||||||
|
T12_1_0 = 25'sh1fffa04,
|
||||||
|
T13_1_0 = 25'sh0000000,
|
||||||
|
T21_1_0 = 25'sh0000aa8,
|
||||||
|
T22_1_0 = 25'sh0000000,
|
||||||
|
T23_1_0 = 25'sh0000000,
|
||||||
|
T31_1_0 = 25'sh0000000,
|
||||||
|
T32_1_0 = 25'sh00ef000,
|
||||||
|
T33_1_0 = 25'sh0001000,
|
||||||
|
// default settings for mode 1 camera 1
|
||||||
|
TRA_IMG_WIDTH_1_1 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_1_1 = 'd240,
|
||||||
|
T11_1_1 = 25'sh0000000,
|
||||||
|
T12_1_1 = 25'sh1fffa04,
|
||||||
|
T13_1_1 = 25'sh0000000,
|
||||||
|
T21_1_1 = 25'sh0000aa8,
|
||||||
|
T22_1_1 = 25'sh0000000,
|
||||||
|
T23_1_1 = 25'sh0000000,
|
||||||
|
T31_1_1 = 25'sh0000000,
|
||||||
|
T32_1_1 = 25'sh00ef000,
|
||||||
|
T33_1_1 = 25'sh0001000,
|
||||||
|
// default settings for mode 2 camera 0
|
||||||
|
TRA_IMG_WIDTH_2_0 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_2_0 = 'd240,
|
||||||
|
T11_2_0 = 25'sh1fff803,
|
||||||
|
T12_2_0 = 25'sh0000000,
|
||||||
|
T13_2_0 = 25'sh0000000,
|
||||||
|
T21_2_0 = 25'sh0000000,
|
||||||
|
T22_2_0 = 25'sh1fff804,
|
||||||
|
T23_2_0 = 25'sh0000000,
|
||||||
|
T31_2_0 = 25'sh013f000,
|
||||||
|
T32_2_0 = 25'sh00ef000,
|
||||||
|
T33_2_0 = 25'sh0001000,
|
||||||
|
// default settings for mode 2 camera 1
|
||||||
|
TRA_IMG_WIDTH_2_1 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_2_1 = 'd240,
|
||||||
|
T11_2_1 = 25'sh1fff803,
|
||||||
|
T12_2_1 = 25'sh0000000,
|
||||||
|
T13_2_1 = 25'sh0000000,
|
||||||
|
T21_2_1 = 25'sh0000000,
|
||||||
|
T22_2_1 = 25'sh1fff804,
|
||||||
|
T23_2_1 = 25'sh0000000,
|
||||||
|
T31_2_1 = 25'sh013f000,
|
||||||
|
T32_2_1 = 25'sh00ef000,
|
||||||
|
T33_2_1 = 25'sh0001000,
|
||||||
|
// default settings for mode 3 camera 0
|
||||||
|
TRA_IMG_WIDTH_3_0 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_3_0 = 'd240,
|
||||||
|
T11_3_0 = 25'sh0000000,
|
||||||
|
T12_3_0 = 25'sh00005fc,
|
||||||
|
T13_3_0 = 25'sh0000000,
|
||||||
|
T21_3_0 = 25'sh1fff558,
|
||||||
|
T22_3_0 = 25'sh0000000,
|
||||||
|
T23_3_0 = 25'sh0000000,
|
||||||
|
T31_3_0 = 25'sh013f000,
|
||||||
|
T32_3_0 = 25'sh0000000,
|
||||||
|
T33_3_0 = 25'sh0001000,
|
||||||
|
// default settings for mode 3 camera 1
|
||||||
|
TRA_IMG_WIDTH_3_1 = 'd320,
|
||||||
|
TRA_IMG_DEPTH_3_1 = 'd240,
|
||||||
|
T11_3_1 = 25'sh0000000,
|
||||||
|
T12_3_1 = 25'sh00005fc,
|
||||||
|
T13_3_1 = 25'sh0000000,
|
||||||
|
T21_3_1 = 25'sh1fff558,
|
||||||
|
T22_3_1 = 25'sh0000000,
|
||||||
|
T23_3_1 = 25'sh0000000,
|
||||||
|
T31_3_1 = 25'sh013f000,
|
||||||
|
T32_3_1 = 25'sh0000000,
|
||||||
|
T33_3_1 = 25'sh0001000
|
||||||
)(
|
)(
|
||||||
input clk,
|
input clk,
|
||||||
input i_enable,
|
input i_enable,
|
||||||
@@ -56,18 +141,315 @@ if(i_enable)begin
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
case (r_count[6:3])
|
case (r_count[6:3]) // select parameter
|
||||||
'd0 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH;
|
'd0 : begin
|
||||||
'd1 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH;
|
case (r_count[2:1]) // select mode
|
||||||
'd2 : r_data <= T11;
|
'd0 : begin
|
||||||
'd3 : r_data <= T12;
|
case (r_count[0]) // select camera
|
||||||
'd4 : r_data <= T13;
|
'd0 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_0_0;
|
||||||
'd5 : r_data <= T21;
|
'd1 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_0_1;
|
||||||
'd6 : r_data <= T22;
|
endcase
|
||||||
'd7 : r_data <= T23;
|
end
|
||||||
'd8 : r_data <= T31;
|
'd1 : begin
|
||||||
'd9 : r_data <= T32;
|
case (r_count[0]) // select camera
|
||||||
'd10 : r_data <= T33;
|
'd0 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_1_0;
|
||||||
|
'd1 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_2_0;
|
||||||
|
'd1 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_3_0;
|
||||||
|
'd1 : r_data[CAM_PIXEL-1:0] <= TRA_IMG_WIDTH_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_0_0;
|
||||||
|
'd1 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_1_0;
|
||||||
|
'd1 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_2_0;
|
||||||
|
'd1 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_3_0;
|
||||||
|
'd1 : r_data[CAM_LINE-1:0] <= TRA_IMG_DEPTH_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T11_0_0;
|
||||||
|
'd1 : r_data <= T11_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T11_1_0;
|
||||||
|
'd1 : r_data <= T11_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T11_2_0;
|
||||||
|
'd1 : r_data <= T11_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T11_3_0;
|
||||||
|
'd1 : r_data <= T11_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T12_0_0;
|
||||||
|
'd1 : r_data <= T12_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T12_1_0;
|
||||||
|
'd1 : r_data <= T12_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T12_2_0;
|
||||||
|
'd1 : r_data <= T12_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T12_3_0;
|
||||||
|
'd1 : r_data <= T12_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd4 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T13_0_0;
|
||||||
|
'd1 : r_data <= T13_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T13_1_0;
|
||||||
|
'd1 : r_data <= T13_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T13_2_0;
|
||||||
|
'd1 : r_data <= T13_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T13_3_0;
|
||||||
|
'd1 : r_data <= T13_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd5 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T21_0_0;
|
||||||
|
'd1 : r_data <= T21_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T21_1_0;
|
||||||
|
'd1 : r_data <= T21_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T21_2_0;
|
||||||
|
'd1 : r_data <= T21_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T21_3_0;
|
||||||
|
'd1 : r_data <= T21_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd6 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T22_0_0;
|
||||||
|
'd1 : r_data <= T22_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T22_1_0;
|
||||||
|
'd1 : r_data <= T22_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T22_2_0;
|
||||||
|
'd1 : r_data <= T22_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T22_3_0;
|
||||||
|
'd1 : r_data <= T22_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd7 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T23_0_0;
|
||||||
|
'd1 : r_data <= T23_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T23_1_0;
|
||||||
|
'd1 : r_data <= T23_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T23_2_0;
|
||||||
|
'd1 : r_data <= T23_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T23_3_0;
|
||||||
|
'd1 : r_data <= T23_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd8 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T31_0_0;
|
||||||
|
'd1 : r_data <= T31_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T31_1_0;
|
||||||
|
'd1 : r_data <= T31_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T31_2_0;
|
||||||
|
'd1 : r_data <= T31_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T31_3_0;
|
||||||
|
'd1 : r_data <= T31_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd9 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T32_0_0;
|
||||||
|
'd1 : r_data <= T32_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T32_1_0;
|
||||||
|
'd1 : r_data <= T32_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T32_2_0;
|
||||||
|
'd1 : r_data <= T32_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T32_3_0;
|
||||||
|
'd1 : r_data <= T32_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd10 : begin
|
||||||
|
case (r_count[2:1]) // select mode
|
||||||
|
'd0 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T33_0_0;
|
||||||
|
'd1 : r_data <= T33_0_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd1 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T33_1_0;
|
||||||
|
'd1 : r_data <= T33_1_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd2 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T33_2_0;
|
||||||
|
'd1 : r_data <= T33_2_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
'd3 : begin
|
||||||
|
case (r_count[0]) // select camera
|
||||||
|
'd0 : r_data <= T33_3_0;
|
||||||
|
'd1 : r_data <= T33_3_1;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
end
|
||||||
default: begin
|
default: begin
|
||||||
r_configured <= 1; // default case just in case do nothing
|
r_configured <= 1; // default case just in case do nothing
|
||||||
r_we <= 0;
|
r_we <= 0;
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// This module alow to baypass mechanical swiches to
|
||||||
|
// imag_procesor module or automaticly selects
|
||||||
|
// and changes operation and camera select mode
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
module mode_selector#( parameter
|
||||||
|
LIMIT = 2_0000_0000
|
||||||
|
//counter limit when it shoud change mode
|
||||||
|
// 100MHz -> period is 10ns
|
||||||
|
// 5s cycle period result in
|
||||||
|
// limit 5/(10*10^-9)= 500*10^6
|
||||||
|
)(
|
||||||
|
input clk,
|
||||||
|
// input i_enable,
|
||||||
|
input [8:0] i_im_p,
|
||||||
|
input autoselect,
|
||||||
|
output [8:0] o_im_p
|
||||||
|
);
|
||||||
|
|
||||||
|
reg [31:0] counter = 0;
|
||||||
|
reg [5:0] mode = 0; // camera modes
|
||||||
|
reg [2:0] color = 0; // color modes
|
||||||
|
reg [1:0] display = 0; // swiching between cameras
|
||||||
|
|
||||||
|
always@(posedge clk) begin
|
||||||
|
if (counter < LIMIT) begin
|
||||||
|
counter = counter + 1;
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
counter = 0;
|
||||||
|
mode = mode + 1;
|
||||||
|
color = color + 1;
|
||||||
|
display = display + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
assign o_im_p = autoselect ? {color[2:1],mode[5:2],1'b0,display}
|
||||||
|
: i_im_p;
|
||||||
|
|
||||||
|
endmodule
|
||||||
@@ -68,7 +68,7 @@ module top #( parameter
|
|||||||
output [3:0] vgaGreen,
|
output [3:0] vgaGreen,
|
||||||
output Hsync,
|
output Hsync,
|
||||||
output Vsync,
|
output Vsync,
|
||||||
input [2:0] sw,
|
input [3:0] sw,
|
||||||
input [8:0] im_p,
|
input [8:0] im_p,
|
||||||
//UART
|
//UART
|
||||||
input RsRx, // UART RX Data
|
input RsRx, // UART RX Data
|
||||||
@@ -159,6 +159,8 @@ module top #( parameter
|
|||||||
wire [24:0] w_data_com_reg ;
|
wire [24:0] w_data_com_reg ;
|
||||||
wire w_we_com_reg ;
|
wire w_we_com_reg ;
|
||||||
|
|
||||||
|
wire [8:0] w_im_p;
|
||||||
|
|
||||||
//-----sub modules--------------------------
|
//-----sub modules--------------------------
|
||||||
clock_enable_param #(
|
clock_enable_param #(
|
||||||
.WAIT(WAIT),
|
.WAIT(WAIT),
|
||||||
@@ -321,7 +323,7 @@ imag_procesor #(
|
|||||||
.CAM_LINE(CAM_LINE),
|
.CAM_LINE(CAM_LINE),
|
||||||
.CAM_PIXEL(CAM_PIXEL)
|
.CAM_PIXEL(CAM_PIXEL)
|
||||||
) imag_procesor(
|
) imag_procesor(
|
||||||
.im_p(im_p),
|
.im_p(w_im_p),
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.clk25(pixel_clk),
|
.clk25(pixel_clk),
|
||||||
.clk50(clk50),
|
.clk50(clk50),
|
||||||
@@ -379,6 +381,14 @@ debounce_switch debounce_switch_reset(
|
|||||||
.o_switch(w_reset_default)
|
.o_switch(w_reset_default)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
mode_selector mode_selector(
|
||||||
|
.clk(clk),
|
||||||
|
// .i_enable(w_enable),
|
||||||
|
.i_im_p(im_p),
|
||||||
|
.autoselect(sw[3]),
|
||||||
|
.o_im_p(w_im_p)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
always@(posedge clk) begin
|
always@(posedge clk) begin
|
||||||
if (~w_wea_bram) begin
|
if (~w_wea_bram) begin
|
||||||
|
|||||||
Reference in New Issue
Block a user