LAB PROJECT
In the lab project, you will be applying the knowledge acquired in this course to design basic mathematical and signal processing operations. Your system must be able to provide different options, as discussed below, according to the state of Port 0.
|
Input (P0)
|
Operation
|
Result (External Memory)
|
Marks
|
1
|
00000000
|
Dot Product (A.B)
|
Store Result at 250H...
|
2
|
2
|
00000001
|
Convolution of same length vectors (A*B)
|
Store Result at 260H...
|
3
|
3
|
00000010
|
Convolution of variable length vectors (C*D)
|
Store Result at 270H...
|
4
|
4
|
00000011
|
l0, l1, l2, l∞ norm of vector A
|
Store Result at 280-283H
|
3
|
5
|
00000100
|
2D Convolution (E*F)
|
Store Result at 300H...
|
8
|
Note that for 2D Convolution, the resultant matrix should be of size 8 x 8. Use the concept of boundary extension, if required.
Inputs:
A = [a1 a2 a3 a4 a5]
B = [b1 b2 b3 b4 b5]
where A and B, both are positive vectors of fixed length 5.
Define two variables, VECTORA and VECTORB, in external RAMto store the input vectors A and B.
ORG 100H
VECTORA: DB a1, a2, a3, a4, a5
ORG 110H
VECTORB: DB b1, b2, b3, b4, b5
For, variable length vectors,
C = [lc c1 c2 . .]
D = [ld d1 d2 . .]
where C and D, both are positive vectors of length lc and ld.
Define two more variables, VECTORC and VECTORD in external RAM. These vectors can have arbitrary length. The first element of each vector will be the length of that vector.
ORG 130H
VECTORC: DB lc, a1, a2, a3, a4, a5
ORG 150H
VECTORD: DB ld, b1, b2, b3, b4, b5
For 2D convolution,
where E and F are positive matrices of size 8 x 8 and 3 x 3
Define two variables, MATRIXE and MATRIXF, in external RAMto store the input matrices.
ORG 170H
MATRIXE: DB e11, e12, e13, e14, e15, e16, e17, e18,e21, e22, e23, e24, e25, e26, e27, e28,e31, e32, e33, e34, e35, e36, e37, e38,e41, e42, e43, e44, e45, e46, e47, e48,e51, e52, e53, e54, e55, e56, e57, e58,e61, e62, e63, e64, e65, e66, e67, e68,e71, e72, e73, e74, e75, e76, e77, e78,e81, e82, e83, e84, e85, e86, e87, e88,
ORG 220H
MATRIXF: DB f11, f12, f13, f21, f22, f23, f31, f32, f33
Example:
C = [5 2 4 6 1 5]
D = [3 1 2 2]
Conv(C, D) = [2 8 18 21 19 12 10]
Initialization:
ORG 130H
MATRIXA: DB 5, 2, 4, 6, 1, 5
ORG 150H
MATRIXB: DB 3, 1, 2, 2
Result after execution of code
At 270H: 2 8 18 21 19 12 10
You are required to complete the project in following steps.
1. Outline a scheme to do the project and develop an algorithm to accomplish this taskand show using flowchart.
2. Write the assembly language code in Mide-51 simulator.
3. Run the code and check the output
4. Finalize the code, verify all outputs.
5. Write a brief report on your project, defining your methodology to accomplish the task and your code.
6. Demonstrate the code (the date of project exam will be communicated later)