Initial commit
Uploading to GitHub
This commit is contained in:
+154
@@ -0,0 +1,154 @@
|
||||
// Default parameters for image transform module
|
||||
// Four MSB are actual registers
|
||||
// next two bits are one of modes selected by swishes. 4 modes are avilable
|
||||
// LSB are camera bit. avilable two cameras. Camera 0 and camera 1.
|
||||
//
|
||||
//
|
||||
module reg_reader #(parameter
|
||||
CAM_LINE = 9,
|
||||
CAM_PIXEL = 10//,
|
||||
)(
|
||||
input clk,
|
||||
input i_enable,
|
||||
input [24:0] i_data,
|
||||
output [6:0] o_addr_rd,
|
||||
// camera modes from input swiches
|
||||
input [1:0] i_cam0_mode,
|
||||
input [1:0] i_cam1_mode,
|
||||
|
||||
// 1st camera
|
||||
output [CAM_PIXEL-1:0] o_cam0_WIDTH,
|
||||
output [CAM_LINE-1:0] o_cam0_DEPTH,
|
||||
output [24:0] o_cam0_T11,
|
||||
output [24:0] o_cam0_T12,
|
||||
output [24:0] o_cam0_T13,
|
||||
output [24:0] o_cam0_T21,
|
||||
output [24:0] o_cam0_T22,
|
||||
output [24:0] o_cam0_T23,
|
||||
output [24:0] o_cam0_T31,
|
||||
output [24:0] o_cam0_T32,
|
||||
output [24:0] o_cam0_T33,
|
||||
|
||||
// 2nd camera
|
||||
output [CAM_PIXEL-1:0] o_cam1_WIDTH,
|
||||
output [CAM_LINE-1:0] o_cam1_DEPTH,
|
||||
output [24:0] o_cam1_T11,
|
||||
output [24:0] o_cam1_T12,
|
||||
output [24:0] o_cam1_T13,
|
||||
output [24:0] o_cam1_T21,
|
||||
output [24:0] o_cam1_T22,
|
||||
output [24:0] o_cam1_T23,
|
||||
output [24:0] o_cam1_T31,
|
||||
output [24:0] o_cam1_T32,
|
||||
output [24:0] o_cam1_T33
|
||||
);
|
||||
|
||||
// Internal variables and registers
|
||||
|
||||
reg [6:0] r_count = 'b0;
|
||||
reg [24:0] r_data = 'b0;
|
||||
|
||||
reg [CAM_PIXEL-1:0] r_cam0_WIDTH = 'b0;// 'd320;
|
||||
reg [CAM_LINE-1:0] r_cam0_DEPTH = 'b0;// 'd240;
|
||||
reg [24:0] r_cam0_T11 = 'b0;// 25'b0_000000000000_100000000000;
|
||||
reg [24:0] r_cam0_T12 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T13 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T21 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T22 = 'b0;// 25'b0_000000000000_100000000000;
|
||||
reg [24:0] r_cam0_T23 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T31 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T32 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam0_T33 = 'b0;// 25'b0_000000000001_000000000000;
|
||||
|
||||
reg [CAM_PIXEL-1:0] r_cam1_WIDTH = 'b0;// 'd320;
|
||||
reg [CAM_LINE-1:0] r_cam1_DEPTH = 'b0;// 'd240;
|
||||
reg [24:0] r_cam1_T11 = 'b0;// 25'b0_000000000000_100000000000;
|
||||
reg [24:0] r_cam1_T12 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T13 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T21 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T22 = 'b0;// 25'b0_000000000000_100000000000;
|
||||
reg [24:0] r_cam1_T23 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T31 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T32 = 'b0;// 25'b0_000000000000_000000000000;
|
||||
reg [24:0] r_cam1_T33 = 'b0;// 25'b0_000000000001_000000000000;
|
||||
|
||||
|
||||
|
||||
//--------------------------- synchonus logic------------------
|
||||
always @ (posedge clk) begin
|
||||
if(i_enable)begin
|
||||
r_count <= r_count + 1;
|
||||
end
|
||||
|
||||
if(i_enable) begin
|
||||
case (r_count[0])
|
||||
'b0 : begin
|
||||
case (r_count[6:3])
|
||||
'd0 : r_cam0_WIDTH <= i_data[CAM_PIXEL-1:0];
|
||||
'd1 : r_cam0_DEPTH <= i_data[CAM_LINE-1:0];
|
||||
'd2 : r_cam0_T11 <= i_data;
|
||||
'd3 : r_cam0_T12 <= i_data;
|
||||
'd4 : r_cam0_T13 <= i_data;
|
||||
'd5 : r_cam0_T21 <= i_data;
|
||||
'd6 : r_cam0_T22 <= i_data;
|
||||
'd7 : r_cam0_T23 <= i_data;
|
||||
'd8 : r_cam0_T31 <= i_data;
|
||||
'd9 : r_cam0_T32 <= i_data;
|
||||
'd10 : r_cam0_T33 <= i_data;
|
||||
default: ;
|
||||
endcase
|
||||
end
|
||||
'b1 : begin
|
||||
case (r_count[6:3])
|
||||
'd0 : r_cam1_WIDTH <= i_data[CAM_PIXEL-1:0];
|
||||
'd1 : r_cam1_DEPTH <= i_data[CAM_LINE-1:0];
|
||||
'd2 : r_cam1_T11 <= i_data;
|
||||
'd3 : r_cam1_T12 <= i_data;
|
||||
'd4 : r_cam1_T13 <= i_data;
|
||||
'd5 : r_cam1_T21 <= i_data;
|
||||
'd6 : r_cam1_T22 <= i_data;
|
||||
'd7 : r_cam1_T23 <= i_data;
|
||||
'd8 : r_cam1_T31 <= i_data;
|
||||
'd9 : r_cam1_T32 <= i_data;
|
||||
'd10 : r_cam1_T33 <= i_data;
|
||||
default: ;
|
||||
endcase
|
||||
end
|
||||
endcase
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
//------------------ combinational logic ----------------------
|
||||
|
||||
assign o_addr_rd = {r_count[6:3], (r_count[0])? i_cam1_mode : i_cam0_mode , r_count[0] };
|
||||
|
||||
// 1st camera
|
||||
assign o_cam0_WIDTH = r_cam0_WIDTH;
|
||||
assign o_cam0_DEPTH = r_cam0_DEPTH;
|
||||
assign o_cam0_T11 = r_cam0_T11;
|
||||
assign o_cam0_T12 = r_cam0_T12;
|
||||
assign o_cam0_T13 = r_cam0_T13;
|
||||
assign o_cam0_T21 = r_cam0_T21;
|
||||
assign o_cam0_T22 = r_cam0_T22;
|
||||
assign o_cam0_T23 = r_cam0_T23;
|
||||
assign o_cam0_T31 = r_cam0_T31;
|
||||
assign o_cam0_T32 = r_cam0_T32;
|
||||
assign o_cam0_T33 = r_cam0_T33;
|
||||
|
||||
// 2nd camera
|
||||
assign o_cam1_WIDTH = r_cam1_WIDTH;
|
||||
assign o_cam1_DEPTH = r_cam1_DEPTH;
|
||||
assign o_cam1_T11 = r_cam1_T11;
|
||||
assign o_cam1_T12 = r_cam1_T12;
|
||||
assign o_cam1_T13 = r_cam1_T13;
|
||||
assign o_cam1_T21 = r_cam1_T21;
|
||||
assign o_cam1_T22 = r_cam1_T22;
|
||||
assign o_cam1_T23 = r_cam1_T23;
|
||||
assign o_cam1_T31 = r_cam1_T31;
|
||||
assign o_cam1_T32 = r_cam1_T32;
|
||||
assign o_cam1_T33 = r_cam1_T33;
|
||||
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user