The LARD code for a simplified version of the instruction issuer without branch instructions or variable length instructions is here. This model also includes code to drive a block viewer display showing activity in the controllers, and can be compiled as follows:
ernie$ lcd -O -lchannels -ltime -lmsg -lblock_view issuer.lHere are screenshots from the Time View and Block View displays. In the time view display we can see that a group of instructions whose blob is selected contains instructions 15 to 19 for functional units 3, 4, 4, 2 and 4 respectively. Studying the outputs to those functional units shows that these instructions are indeed despatched corectly.
The Time View display also shows messages from the controllers in its lower section.
The block view display shows a snapshot of activity when instructions in columns 1, 3 and 4 are being despatched to functional units 4, 2 and 1 respectively, and the controllers for functional units 0 and 3 are searching for a valid instruction. The occupancy of the instruction fifos between the issuer and the functional units can also be observed.