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.