180 likes | 259 Views
Bubonic Assembly Language. CS232 Computer Architecture I – Team R. Douglas Jeffries Himanshu Narayana David Rickard. February 13, 2002. Overview. Special Features Instruction Set Development Datapath Control Testing Demonstration. Special Features. Memory copy instruction
E N D
Bubonic Assembly Language CS232 Computer Architecture I – Team R Douglas Jeffries Himanshu Narayana David Rickard February 13, 2002
Overview • Special Features • Instruction Set • Development • Datapath • Control • Testing • Demonstration
Special Features • Memory copy instruction • Direct copy between memory locations • Return address register is standalone • Special instructions to load and store • Assembler • Easy assembly of code • Effort to write assembler paid off • Assembled ~100 programs for testing
Instruction Set • 30 instructions designed • 28 instructions implemented • Not enough time for mult or div • 2 instructions “borrow” opcodes • Needed more opcodes • Not really pseudo-instructions • Have their own datapath and control
Instruction Set • Arithmetic • add, sub • Planned mult, div • Logical • and, or, xor, nand, nor, xnor, slt • andi, ori • sll, srl • Branch • beq, bne
Instruction Set • Register • copy, swap, lui • swra, lwra • Memory • lw, sw, mtm • Jump • j, jr, jal, jm, jra
Development • Website documenting progress • Includes all documentation • Progressive datapath construction • Used for design, implementation, testing • Groups of instructions at each step • Test cases • Ensure soundness of design • Include obscure and uncommon cases
Development Problems • Xilinx state diagram and Verilog • Spent over a week attempting to fix it • Advised to use ABEL instead
Datapath • 16-bit memory addresses • 16-bit data bus • 8 registers in register file • 7 static registers • PC, IR, RA, MDR, ALUOut, A, B
Register Name Save Type Description 0 $zero - Value is always zero. 1 $t0 caller Temporary 2 $t1 caller Temporary 3 $t2 caller Temporary 4 $s0 callee Preserved across function calls 5 $s1 callee Preserved across function calls 6 $v caller Return value 7 $sp callee Stack pointer Register File
Testing • 104 proposed test cases • Make sure basic instructions work first • Cannot test every value, so go for exceptions and extremes • Assembler to speed up process • Easy implementation of new programs
Xilinx Implementation • Implementation on 4010XLPC84 • Did not fit on device (179% of CLBs) • 719 / 400 CLBs • 128 32x1 RAMs • 1170 4-in LUTs • 360 3-in LUTs • 128 / 880 Bounded IOBs
Xilinx Implementation • Implementation on 4028XLHQ240-09 • We picked this device at random • Device usage • 827 / 1024 CLBs • 229 / 2048 CLB flip flops • 1426 / 2048 4-in LUTs • 488 / 1024 3-in LUTs • 128 / 2176 TBUFs • 34 / 193 External IOBs
Implementation Speed • Minimum period of 101.497 ns • Maximum net delay of 29.230 ns • Clock speed of 9.853 MHz
Future Improvements • Implement multiplication and division • Multiple input file support for assembler • Better pseudo-instruction substitutions by assembler