Static DLX processor Understanding its architecture and available toolset
Available Tools C compiler Assembler tim2vhdl timtool
C compiler A C compiler for this DLX processor is generated using the retargetable C compiler lcc which was created at Princeton. The url for lcc is A new machine definition file will need to be generated for each profile in order to use the compiler.
C compiler (cont.) The input the the C compiler is standard ANSI C code. The output is an assembly program written in the defined instruction set architecture.
Assembler An assembler is available for the DLX processor using TI’s retargetable Meta Assembler TIM. The url for the basic TIM files is The url for a windows version of TIM is /index.html. I have not used the windows version of this tool, but it may be easier to use so I’m checking it out.
Assembler (cont.) A new TIM definition file will need to generated for each instruction set architecture. The input to the TIM assembler is an assembly program. The output is machine code. By machine code I mean the bit stream that the decode stage is designed to decode.
tim2vhdl This is a tool to convert the machine code that is generated by TIM to VHDL code that can be incorporated into the fetch.vhd module. A full explanation of tim2vhdl, including source code, can be found on pages of the report-4500.ps file posted to egroups.
timtool The assembly file that is generated by the lcc compiler is not precisely compatible with the input needs of TIM. This scripts corrects those problems. The input is the assembly program generated by lcc. The output is the assembly program that is fed into TIM.
timtool (cont.) timtool is responsible for several formatting changes as well as adding/changing some of the code generated. A full explanation of timtool, including source code, can be found on pages of the report-4510.ps file posted on egroups.
Overview of DLX architecture
Reusable modules Modules that should be reusable with little or no modification are the clock, multiply, adder, divider, and multiplexer. The is also a considerable amount of code that can be partially reused or used as an example. The execute and decode unit are good examples of this.
DLX Instruction Flow
Profile Instruction Flow