INEL 4215: Computer
Architecture and Organization
Fall 2004
Nayda G. Santiago
Homework 1: INEL 4215
THIS IS AN INDIVIDUAL HWK
Due November 15, 2004
10 points
The
following piece of code was extracted from an application in the area of
applied electromagnetics. It was written in Fortran and it is the basic kernel
of the code (kernel here means the subroutine more essential or most time
consuming) Convert the code to the assembler of the EASY 1 computer and simulate
it using Active VHDL:
Subroutine BiMATVECCav(vector,product)
Complex
Y(*), vector(*),product(*)
Integer
row, col, index, EndPoint(*)
Complex
matEntry
Do row
= 1, Unk
Do col = 1, Unk
If(row .LT. col) Then
index = EndPoint(row)+col
Else
index = EndPoint(col)+row
EndIf
matEntry = Y(index)
product(row) = product(row) + matEntry*vector(col)
EndDo
EndDo
Return
End
Turn
in timing diagrams showing the contents of the accumulator and the values of
the registers.